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.


 

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

6134. Школы стратегий. Стратегическое сафари: экскурсия по дебрям стратегий менеджмента 2.47 MB
  Школы стратегий. Стратегическое сафари: экскурсия по дебрям стратегий менеджмента. Перед вами умный, блестящий путеводитель по бизнес-стратегиям, который может стать жизненно необходимым руководством для творчески мыслящих менеджеров. В этой увлек...
6135. Котельные установки и парогенераторы 3.64 MB
  Котельные установки и парогенераторы Характеристики и виды движения водного теплоносителя в паровых котлах Гидродинамика водного теплоносителя в паровых котлах Температурный режим поверхностей нагрева паровых котлов Физико-х...
6136. Основы логических методов построения устройств противоаварийной автоматики подстанций с электродвигателями 2.21 MB
  Учебное пособие предназначено для использования студентами электротехнических специальностей в процессе изучения курса релейной защиты и автоматизации электроэнергетических систем. В нем рассматриваются специальные вопросы выполнения устройств проти...
6137. Конические зубчатые передачи 45 KB
  Конические зубчатые передачи Конические зубчатые передачи применяют при пересекающихся или скрещивающихся осях. Межосевой угол может изменяться в широком диапазоне значений, но наибольшее распространение имеют ортогональные конические перед...
6138. Порядок совершения таможенных операций при перемещения товары через таможенную границу 63 KB
  При ввозе товаров на таможенную территорию товаров предусмотрено последовательное совершение таможенных операций, которые связано с прибытием товаров на ТТ ТС и перемещения товаров в соответствии с ТП ТТ до ТО, в котором будет совершаться декларирование в соответствии с избранной ТП.
6139. Виды и структура планов воспитательной работы 44 KB
  Виды и структура планов воспитательной работы Структура плана воспитательной работы класса включает в себя следующие разделы: Психолого–педагогическая характеристика класса, анализ состояния здоровья детей (составляется на конец предыдущего уч...
6140. Щастя. Як ми його розуміємо 43.5 KB
  Практична: Поглибити знання учнів про диспут та його проведення, розширити розуміння поняття щастя, виховувати людяність, працьовитість, любов до людей, чесність...
6141. Место уголовно-исполнительного права в системе российского права и его взаимосвязь с другими отраслями права 45.83 KB
  Место уголовно-исполнительного права в системе российского права и его взаимосвязь с другими отраслями права Введение Уголовно-исполнительное право представляет собой самостоятельную отрасль права, которая характеризуется собственными предметом, мет...
6142. Валы и оси. Общие сведения 51.5 KB
  Валы и оси. Общие сведения Вал - деталь машин, предназначенная для передачи крутящего момента вдоль своей осевой линии. В большинстве случаев валы поддерживают вращающиеся вместе с ними детали (зубчатые колеса, шкивы, звездочки и др.). Некоторы...