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.


 

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

57369. Ознайомлення з дією додавання. Знак «+». Складання прикладів на додавання за предметними малюнками. Написання цифр 33.5 KB
  Мета: вчити учнів складати приклади на додавання; ознайомити зі знаком вчити читати цей знак; формувати вміння обчислювати приклади на додавання записувати приклади в зошит...
57370. Складання прикладів на додавання за малюнками монет. Порівняння чисел. Поняття на, над, під. Порівняння за віком (молодий — старий) 32.5 KB
  Мета: формувати в учнів вміння складати приклади на додавання на основі малюнків; вправляти учнів у засвоєнні результатів додавання в межах 5 на основі складу чисел; розвивати мислення.
57371. Число і цифра 8. Написання цифри 8. Порівняння чисел у межах 8. Послідовність чисел у межах 8. Додавання у випадку трьох доданків 36.5 KB
  Мета: ознайомити з числом і цифрою 8; пояснити утворення числа 8; вчити писати цифру 8; закріплювати нумерацію чисел у межах 8; розвивати логічне мислення вдосконалювати навички усної лічби. Фронтальне опитування Назвати числа від 1 до 7; від 3 до 7; від 1 до 5.
57372. Склад числа 10. Послідовність чисел у межах 10. Складання й розв’язання прикладів на додавання. Написання цифр 32.5 KB
  Мета: показати утворення числа 10 шляхом складання окремих групп предметів закріпити у дітей знання усної нумерації чисел першого десятка формувати навички кількісної та порядкової лічби; розвивати увагу уяву логічне мислення.
57373. Повторення складу числа 10. Складання прикладів за малюнками предметів та монет. Розпізнавання геометричних фігур. Написання цифр 31.5 KB
  Мета: продовжити роботу над формуванням у дітей вміння порівнювати числа в межах 10; закріплювати знання складу числа 10; вдосконалювати навички усної лічби; розвивати логічне мислення. Повторення складу числа 10 На дошці силуети будинків.
57374. Ознайомлення з термінами доданок, сума. Складання прикладів на додавання за числовим відрізком, за малюнком 35.5 KB
  Мета: розкрити зміст дії додавання; ознайомити учнів з компонентами дії додавання доданками сумою; продовжити формування вміння складати приклади на додавання; вдосконалювати навички усної лічби...
57375. Повторення складу чисел 5 і 6. Складання й розв’язання прикладів за малюнками предметів і монет 31 KB
  Назвіть усі числа від 1 до 7. Яке число стоїть за числом 7 Більше воно чи менше 7 Назвіть усі числа менше 7. За яким числом воно стоїть Як утворити число 6 додаючи 1 Порівняйте числа 6 і 7. Порівняйте числа 3 і 5.