Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 05.04.2011, 14:38   #1 (permalink)
andr47
Новичок
 
Регистрация: 05.04.2011
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Помогите написать программу на С++

Задача №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 кг. и т.д.
Вывести почасовую добычу всех созданных собирателей.
Предоставить возможность определить для каждого типа количество со-
бирателей и полное количество всех собирателей.
Программа не должна завершаться аварийно, приводить к утечке или
порче памяти. Объектылюбого из созданных классов должныпозволять кор-
ректную передачу в произвольную функцию по значению, а также возврат
по значению из функции.


Заранее спасибо!
andr47 вне форума   Ответить с цитированием

Старый 05.04.2011, 14:38
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Посоветую уделить немного времени прочтению схожих постов

Помогите написать программу на PASCAL
Помогите написать программу
Помогите написать программу в Delphi
Помогите написать программу в Excel
Помогите написать программу

Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




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

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.