42026

Перегрузка операций и функций

Лабораторная работа

Математика и математический анализ

Для всех заданий реализовать: а конструктор инициализирующий значения полей некоторыми значениями; б вывод данных на экран оператор . Необходимо корректное описание данного оператора в демонстрация всех операций должны быть реализована через пользовательское меню где пользователь выбирает действие вводит данные указывает тип данных если нужно и т. Реализовать: а сложение вычитание векторов операторы ; б умножение вектора на скаляр оператор ; в скалярное произведение векторов оператор ; г векторное произведение...

Русский

2013-10-27

58 KB

19 чел.

Лабораторная работа № 4

Тема: перегрузка операций и функций.

Цель работы: освоить разработку программ с использованием перегрузки операций и функций. В задании на программирование требуется реализовать классы и операции (функции) для работы с объектами этих классов.

Для всех заданий реализовать:

а) конструктор, инициализирующий значения полей некоторыми значениями;

б) вывод данных на экран (оператор <<). Необходимо !корректное! описание данного оператора

в) демонстрация всех операций должны быть реализована через пользовательское меню, где пользователь выбирает действие, вводит данные, указывает тип данных (если нужно) и т.д.

Варианты заданий

1. Вектор в пятимерном евклидовом пространстве задается пятеркой своих координат. Реализовать:

а) сложение/вычитание векторов (операторы +, );

б) умножение вектора на скаляр (оператор *);

в) скалярное произведение векторов (оператор *);

г) векторное произведение векторов (оператор **).

2. Строка символов. Реализовать операции:

сравнения строк (оператор ==);

удаления из строки указанного символа (оператор -);

удаления из первой строки всех символов, встречающихся во второй строке (оператор -).

переворота строки (оператор ~),

3. В британском формате дата задается как чч/мм/гггг. Реализовать с учетом високосных годов (по грегорианскому стилю):

а) сложение даты и определенного пользователем количества дней (+);

б) вычитание из даты определенного пользователем количества дней (-);

в) вычитание числа дней, прошедших между датами (оператор -).

4. В американском формате дата задается как мм/чч/гггг. Реализовать с учетом високосных годов (по грегорианскому стилю):

а) сложение даты и определенного пользователем количества дней (+);

б) вычитание из даты определенного пользователем количества дней (-);

в) вычитание числа дней, прошедших между датами (оператор -).

5. Ввести класс для работы с прямоугольной матрицей. Реализовать следующие операции:

а) сложение (вычитание) двух матриц (операции +, );

б) умножение двух матриц (оператор *)

в) транспонирование матрицы (оператор !)

г) нахождение обратной матрицы (оператор ~)

6. Комплексное число задается своим модулем и углом (например, число 10*(cos(/6)+i*sin(/6)) задается парой (10, /6):

а) сложение (вычитание) чисел;

б) произведение двух чисел;

в) деление чисел;

г) возведение в целочисленную степень (оператор ^);

д) извлечение квадратного корня (функция sqrt()).

7. Комплексное число задается своей вещественной и мнимой частями (например, 5 + 3i задается парой (5, 3)). Реализовать:

а) сложение (вычитание) чисел (операции +, );

б) произведение двух чисел (оператор *);

в) деление чисел (оператор /);

г) возведение в целочисленную степень (оператор ^);

д) извлечение квадратного корня (функция sqrt()).

8. Время задается в формате чч.мм.сс. Реализовать следующие операции (учесть переход через 24 ч):

а) сложение времени и определенного пользователем количества секунд (оператор +);

б) вычитание из времени указанного пользователем количества секунд (оператор );

в) сложение двух моментов времени (оператор +);

г) вычитание из одного момента времени другого (оператор );

д) подсчет числа секунд между двумя моментами времени, лежащими в пределах одних суток (оператор %).

9. Ввести класс для работы с объектом «полином». Реализовать следующие операции:

а) сложение (вычитание) двух полиномов;

б) умножение (деление) двух полиномов;

в) умножение полинома на число (оператор &);

г) вычисление значения полинома в заданной точке Х (оператор ());

д) дифференцирование полинома (оператор ~);

е) интегрирование полинома (бинарный оператор !, второй операнд – значение константы С, например x2!8 = 0.333x3+8).

10. Ввести класс для работы с объектом «множество целых чисел». Реализовать следующие операции:

а) объединение двух множеств (оператор +);

б) пересечение двух множеств (оператор &);

в) разность двух множеств (оператор );

г) добавление элемента во множество (оператор +);

д) удаление элемента из множества (оператор ).

11. Ввести класс для работы с объектом «рациональная дробь» (вида m/n). Реализовать:

а) сложение/вычитание двух дробей (операторы + и );

б) умножение/деление двух дробей (операторы * и /);

в) приведение дроби к несократимому виду (оператор !);

г) вывод дроби в виде m/n (оператор <<);

д) сравнения двух дробей (операторы >, <, ==, !=).

12. Класс, представляющий целое число для арифметики с насыщением для диапазона от 18 до 185 (это такая арифметика, где число может принимать только значения из указанного диапазона). Например, если x – такое число, то х = 23 - 15 будет равно 18 (достигли левой границы), аналогично х = 170 + 300 будет равно 185 (достигли правой границы). Реализовать:

а) операторы арифметических действий над такими классами(+, -, *);

б) те же операторы арифм. действий над классом и целым числом;

в) операторы строгого сравнения ( <, >, ==, !=).

13. Класс, представляющий целое число для арифметики с циклическим переходом через границы для диапазона от 80 до 230 (это такая арифметика, где число может принимать только значения из указанного диапазона). Например, если x – такое число, то:

х = 80 – 1 = 230 (переход  через границу),

х = 93 – 25 = (93 – 13) – 1 – 11 = (80 – 1) – 11 = 230 – 11 = 219

х = 170 + 300 = (170 + 60) + 1 + 239 = (230 + 1) + 239 = 80 + 239 = (80 + 150) + 1 + 88 = (230 + 1) + 88 = 80 + 88 = 168

Реализовать:

а) операторы арифметических действий над такими классами(+, -, *);

б) те же операторы арифм. действий над классом и целым числом;

в) операторы строгого сравнения ( <, >, ==, !=).


14.
Класс представляющий единицу длины с поддержкой преобразования из метров в футы и обратно (1 фут = 0,3048 м). При реализации арифметических операторов предусмотреть корректное вычисление результата при использовании различных единиц длины. Например, 1м + 2фута = 1м + 0,6098м = 1,6098м. Добровольно презреть законы физики и принять, что:

м*м = м (а не м2) – с футами тоже самое;

м/м = м (а не разы) – с футами тоже самое;

м ОП ф = м,      ф ОП м = ф  (результат равен ед. изм. левого операнда).

Реализовать:

а) операторы арифметических действий над такими классами(+, -, /, *);

б) операторы * и / над классом и целым числом;

в) операторы строгого сравнения ( <, >, ==, !=) двух таких классов.

г) оператор преобразования единицы измерения в классе (~).

15. Класс, имитирующий процесс управления колонией бактерий. В классе содержится переменная, соответствующая количеству бактерий в текущий момент времени. Реализовать:

а) Операторы ++ и --, которые соответственно увеличивают/ уменьшают размер популяции вдвое.

б) Оператор + между двумя колониями производит их слияние, итоговая колония обладает суммарным количеством бактерий.

в) Оператор - производит удаление заданного количества бактерий из популяции.

г) Оператор ! производит уничтожение колонии.

16. Класс, имитирующий управление системой круиз-контроля автомобиля. В классе содержится переменная, соответствующая заданной скорости движения в км/ч. Реализовать:

а) Оператор ~ включает/выключает круиз-контроль.

б) Оператор + (с целым числом) увеличивает скорость на заданную величину при выключенном круиз-контроле; при включенном – не работает.

в) Оператор - (с целым числом) уменьшает скорость на заданную величину при выключенном круиз-контроле; при включенном – выключает его и затем уменьшает скорость.

г) Операторы ++/-- соответственно увеличивают/уменьшают скорость на 10 км/ч при включенном круиз-контроле; при выключенном – не работают.

д) При включенном круиз-контроле скорость должна находится в пределах от 10 до 110 км/ч, при выключенном – от 0 до 110 км/ч.


17.
Класс, определяющий первые 10 значений функции вида

y = A*sin (k * x + b)

для x, начиная от 0, с шагом 0.01.

а) Операторы +/- (с числом) над классом и числом увеличивают/уменьшают частоту k на заданную величину.

б) Операторы +, -, *, / над классами выполняют соответствующие операции над всеми параметрами функции (на этот раз презреем законы математики). Например, 5*sin(2x–4) + 2*sin(–8x+3) = 7*sin(–6x–1).

в) Операторы * и / (с числом) увеличивают/уменьшают амплитуду A в указанное число раз.

г) Операторы % и # (с числом) увеличивают/уменьшают значение сдвига b на указанную величину.

д) В результате применения операторов значения функции пересчитываются.

18. Класс, представляющий «округление» дробного числа по следующему правилу:

1) дробная часть [0; 0.25) – отбрасывается (то есть модуль целой части не изменяется)

2) дробная часть [0.25; 0.75] заменяется на 0.5

3) при дробной части (0.75; 0.(9)] целая часть получает +1 к модулю

Например: 15.1815;  3.413.5;   8.728.5;   51.8652;   –3.31–3.5;          –18.28–18;    –31.76–32

а)Класс хранит во внутреннем поле точное значения числа, но при выводе на экран ведет себя как округленное.

б) Арифметические операторы +, -, *, / для дробного числа и числа типа класс – класс ведет себя как округленное число. Например,  класс(1.6)*3 = 4.5

в) Для операций сравнения (<, >, ==, !=) класс ведет себя как округленное значение.

г) Арифметические операторы +, -, *, / для двух чисел данного класса производятся операции с точным значением внутреннего поля, результат представляет собой новый класс, который ведет себя по описанным принципам. Например, класс(1.82)/класс(1.3)=класс(1.4), а при выводе на экран появится число 1.5.


 

А также другие работы, которые могут Вас заинтересовать

32639. Технико-экономическое обоснование проекта: содержание, назначение 27 KB
  Техникоэкономическое обоснование проекта: содержание назначение ТЭО Основным документом обосновывающим целесообразность и эффективность проекта является ТЭО проекта. Эти задачи решаются с помощью ТЭО. ТЭО является обязательным документом в случае если финансирование капитальных вложений в основные фонды осуществляется полностью или на долевых началах из Государственного бюджета Российской Федерации и ее внебюджетных фондов централизованных фондов министерств и ведомств а также собственных финансовых ресурсов государственных предприятий....
32640. Бизнес- план инвестиционного проекта: содержание, назначение 51 KB
  Бизнес план инвестиционного проекта: содержание назначение Бизнес план Бизнесплан это подробный четко структурированный и тщательно подготовленный документ описывающий цели и задачи которые необходимо решить предприятию компании способы достижения поставленных целей и техникоэкономические показатели предприятия и или проекта в результате их достижения. Содержание бизнесплана Вводная часть резюме проекта Вводная часть как правило пишется уже после того как составлен весь план. в ней содержатся основные положения всего...
32641. Принципы и процессы планирования проекта. Уровни планирования 62.5 KB
  Принципы и процессы планирования проекта. Принципы и процессы планирования Сущность планирования состоит в задании целей и способов их достижения на основе формирования комплекса работ мероприятий действий которые должны быть выполнены применении методов и средств реализации этих работ увязки ресурсов необходимых для их выполнения согласовании действий организаций участников проекта. Основная цель планирования состоит в построении модели реализации проекта. Она необходима для координации деятельности участников проекта с ее помощью...
32642. Формирование статей затрат проекта. Калькуляция расходов, сметы, бюджет проекта 27.5 KB
  Формирование статей затрат проекта. Калькуляция расходов сметы бюджет проекта. Бюджет проекта предназначен для планирования расхода средств проекта по временным периодам год квартал месяц в течение всего времени его осуществления. Обычно расход средств проекта первого года планируется более подробно показывается поквартальное и помесячное распределение денежных средств.
32643. Управление качеством в проекте 40 KB
  Управление качеством в проекте. Управление качеством Одной из ключевых функций управления проектом наряду с такими как управление стоимостью и временем является управление качеством проекта. Качество это целостная совокупность характеристик объекта относящихся к его способности удовлетворять установленные или предполагаемые потребности. Понятие качество следует отличать от понятия градация сорт класс.
32644. Проектные риски и их основные виды 39.5 KB
  Вероятность рисков это вероятность того что в результате принятия решения произойдут потери для предприятия то есть вероятность нежелательного исхода. Проектные риски это совокупность рисков угрожающих реализации инвестиционного проекта или способных снизить его эффективность коммерческую экономическую бюджетную социальную и т. Виды инвестиционных рисков многообразны. В отдельных источниках также выделяют такие риски как: риск связанный с отраслью производства вложение в производство товаров народ ного потребления в среднем...