Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Помогите написать программу на С++ (http://www.tehnari.ru/f41/t49969/)

andr47 05.04.2011 14:38

Помогите написать программу на С++
 
Задача №1

Написать программу на языке C++, реализующию перегруженную функцию z_cnt, получа-
ющую в качестве аргумента или массив целых чисел, или символьную строку, и возвраща-
ющую количество подсчитанных элементов. Признаком конца числового массива считать
элемент с нулевым значением (добавить при инициализации массива). Словом считать по-
следовательность символов, для которых функция isalpha возвращает истину. Функция не
должна изменять переданные ей массивы и должна это гарантировать.
Для массива целых чисел функция должна подсчитать количество последовательно-
стей из одинаковых чисел (в последовательности не менее двух чисел), а для символьной
строки – количество слов длиннее 4 символов.
Пример:
[ 12 2 7 7 7 7 54 67 3 3 4 0 ] - 2
"Hello zz! laba - chaos! sos aaaaaaaaaa" - 3
В функции main следует подготовить исходные данные, вызвать оба варианта функ-
ции, а затем вывести исходные данные и результаты. Предусмотреть меры против аварий-
ного завершения программы из-за неправильно указанных аргументов.

Задача №2


Написать программу на языке C++, моделирующую поведение строителя пира-
миды (Mason) путём создания соответствующего класса.
Каждый строитель идентифицируется именем и долей b 2 (0; 1) каменных бло-
ков, разбиваемых при кладке. Все рабочие имеют одинаковое ограничение – проф-
союз запрещает принимать более N0 блоков за смену.
Высота h построенного строения зависит от количества выданных блоков N сле-
дующим образом
h = 10 •√(pmin(N,N0)(1 - b).)
В функции main провести тестирование работоспособности разработанного клас-
са. Использование данного класса не должно приводить к утечке памяти, неопреде-
лённому поведению и аварийному завершению программы. Длина имени объекта
не ограничена.

Задача №3


Написать программу на языке C++, реализующую арифметику комплекс-
ных чисел. Должны быть как минимум определены операторы +, +=, -,
-=, *, *=, /, /=, = , допускающие построение арифметических выраже-
ний в том виде, в каком они справедливы для double, а также позволяющие
в одном выражении смешивать комплексные и вещественные числа. Опре-
делите функции arg,mod, Re, Im.
Предусмотреть возможность печати комплексных чисел любым удобным
способом.
Текстовымпредставлениемкомплексного числа считать строки вида a±bi,
где a, b — представления чисел типа double.

Задача №4


Написать программу на языке C++, реализующую иерархию классов соби-
рателей водорослей (Collector). Собиратели бывают следующих типов:
Дельфин (Dolphin) Стартовая скорость не зависит от оплаты (её не платят)
и составляет 15 кг/час. Коэффициент уставания – 0.1.
Водолаз (Diver) Стартовая скорость кусочно-линейно зависит от оплаты: в
диапазоне 0–120 грн пропорциональна оплате, коэффициент пропорцио-
нальности – 0.3 кг/грн.При дальнейшемросте оплатыстартовая скорость
остаётся постоянной. Коэффициент уставания – 0.3.
Доброволец (Volunteer) Стартовая скорость зависит от оплаты таким обра-
зом: v = 10 · (1 − exp(−0.2x)), где v – скорость в кг/час, x – оплата в грн/час.
Коэффициент уставания – 0.4.
Киборг (Cyborg) Стартовая скорость не зависит от оплаты и составляет 7
кг/час. Коэффициент уставания – 0.01, но после 4 часов работы киборг
выключается из-за истощения топливного элемента. Имя для всех ки-
боргов одно (IС1000).
В программе завести массив (или другой стандартный контейнер по вы-
бору) указателей на собирателей, заполнить указателями на конкретных со-
бирателей разных типов. Для измерения добычи для каждого объекта по
указателю вызывается функция work без аргументов, возвращающая иско-
мый показатель. Перед работой каждый сборщик получает (или игнорирует)
оплату с помощью функции pay. После каждого часа работы скорость падает
пропорционально коэффициенту уставания. Например, при начальной ско-
рости 10 кг/час и коэффициенте уставания 0.15 в первый час будет собрано
10 кг, во второй – 8.5 кг, в третий – 7.225 кг. и т.д.
Вывести почасовую добычу всех созданных собирателей.
Предоставить возможность определить для каждого типа количество со-
бирателей и полное количество всех собирателей.
Программа не должна завершаться аварийно, приводить к утечке или
порче памяти. Объектылюбого из созданных классов должныпозволять кор-
ректную передачу в произвольную функцию по значению, а также возврат
по значению из функции.


Заранее спасибо!


Часовой пояс GMT +4, время: 23:35.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.