42026

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

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

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

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

Русский

2013-10-27

58 KB

24 чел.

Лабораторная работа № 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.


 

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

32876. СРЕДНЕВЕКОВАЯ ФИЛОСОФИЯ. ОТЦЫ ЦЕРКВИ. ВАСИЛИЙ ВЕЛИКИЙ, ГРИГОРИЙ БОГОСЛОВ, ИОАНН ЗЛАТОУСТ, ФОМА АКВИНСКИЙ, ГРИГОРИЙ ПАЛАМА. РЕАЛИЗМ И НОМИНАЛИЗМ 45.65 KB
  которое признавало Бога в качестве высшего существующего начала а весь окружающий мир Его творения. 50 Можно выделить следующие основные черты средневековой теологической философии: теоцентризм главной причиной всего сущего высшей реальностью основным предметом философских исследований являлся Бог; изучению самого по себе космоса природы явлений окружающего мира уделялось мало внимания так как они считались творением Бога; господствовали догматы истины не нуждающиеся в доказательствах о творении всего Богом и откровении...
32877. Географическая среда в развитие общества. Географическое направление в обществоведении 41.93 KB
  Географическая среда в развитие общества. В более узком смысле это часть материи за исключением общества т. Географическая среда имеет историческую обусловленность и расширяется с развитием общества. Географическая среда является важным фактором развития общества: Она влияет на разделение труда на размещение отраслей производства что изучается экономической географией; Она влияет на темпы развития общества может быть боле или менее благоприятной; Она опосредованно влияет на характер политических систем что изучается...
32878. Материальное производство. Труд. Производительные силы. Технологический способ труда. Технократическое направление в обществоведении 41.14 KB
  Технологический способ труда. Лишь для земледельческого труда делалось некоторое исключение. Средневековую цивилизацию многие историки культуры трактуют как цивилизацию труда. ознаменовался новым сдвигом в социальном статусе и образе труда.
32879. Производственные отношения. Социальная закономерность. Фатализм и волюнтаризм 30.27 KB
  Производственные отношения. Производственные отношения совокупность материальных и экономических отношений между людьми в процессе общественного производства и движения общественного продукта от производства до потребления. Производственные отношения являются необходимой стороной общественного производства. В процессе труда складываются отношения обусловленные потребностями технологии и организации производства например отношения между рабочими различных специальностей между организаторами и исполнителями связанные с...
32880. Общественно-экономическая формация и цивилизация 38.11 KB
  Общественноэкономическая формация в марксизме стадия общественной эволюции характеризующаяся определённой ступенью развития производительных сил общества и соответствующим этой ступени историческим типом экономических производственных отношений которые зависят от неё и определяются ею. Не существует формационных ступеней развития производительных сил которым не соответствовали бы обусловленные ими типы производственных отношений. Как ступени исторического развития человечества следующие за варварством. Как уровень ступень...
32881. Социальная структура. Классы и классовая борьба. Интеллигенция 42.81 KB
  Устойчивые связи между любыми элементами общества устойчивые взаимозависимости корреляции; 2. В широком смысле под социальной структурой понимается строение общества в целом совокупность устойчивых связей между его основными функциональными сферами экономикой политикой культурой и др. В узком смысле под социальной структурой общества понимается деление общества на различные социальные группы системы устойчивых связей между ними а также внутренняя структура различных социальных общностей. В европейской философии XVIIXVIII...
32882. Государство. Монархия и республика. Право 45.02 KB
  Государство. Государство ядром полит. Государство это соц. Теории происхождения государство: 1.
32883. Общественное сознание и его структура. Ценности, нравственность, искусство 39.97 KB
  Общественное сознание и его структура. Общественное сознание воззрения людей в их совокупности на явления природы и социальную реальность выраженные в созданных обществом естественном или искусственном языке творениях духовной культуры социальных нормах и взглядах соц. Сознание людей может отставать от общественного бытия и не соответствовать ему. 3 Общественное сознание активно воздействует на всю жизнь общества.
32884. Революция и реформа. Смена лидеров в истории 45.35 KB
  Революция и реформа. Революция радикальное коренное глубокое качественное изменение скачок в развитии общества природы или познания сопряжённое с открытым разрывом с предыдущим состоянием. Социальная революция качественный скачок в развитии общества который сопровождается переходом государственной власти в руки революционного класса или классов и глубокими изменениями во всех сферах общественной жизни. В марксистской традиции введено разделение на буржуазные революции Приводят к замене феодализма капитализмом в экономике не до...