Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OOP_Посібник (1).doc
Скачиваний:
8
Добавлен:
01.05.2019
Размер:
544.77 Кб
Скачать

Лабораторна робота №2 (6 балів) Тема: Перезавантаження операцій і функцій Завдання

Перезавантажити функції для різних типів вхідних даних, або створити шаблони функцій, або перевизначити операції для означених користувачем типів (нові типи задавати у вигляді структур).

Варіанти завдань

1. Створити функцію, яка на вхід одержує текст і перетворює його: відкидає повторні пробіли. Функція повинна повертати кількість відкинутих пробілів. Текст передавати в функцію по посиланню. Перезавантажити операцію "<<" виводу перетвореного рядка, в якій використати створену функцію.

2. Створити структуру, що визначає трикутник на площині. Перевизначити операції:

“++” – зсув трикутника на 10 пікселів вправо,

“--” – зсув трикутника на 10 пікселів вліво,

“<”– порівняння площ.

3. Cтворити структуру, що визначає вектор на площині. Перевизначити операції:

“!” – обчислення вектора, який отримується з даного поворотом на 90 градусів проти годинникової стрілки,

“-”– обчислення вектора, який протилежний даному і має з ним однакову довжину,

“++”– нормування вектора.

4. Створити функції, які інвертують масиви, що складаються з елементів типу int, double, а також – функцію, яка переставляє слова в реченні в зворотному порядку. Використати перезавантаження функцій і створити шаблон функції.

5. Створити функції, які порівнюють цілі числа, рядки символів, норми векторів і повертають

0, якщо дані рівні,

1, якщо перше більше/довше другого,

-1, якщо перше більше/довше другого.

Використати перезавантаження функцій.

6. Створити функції, які друкують квадратні корені з дійсного і комплексного числа і норму вектора. Використати перезавантаження функцій.

7. Створити функції, які знаходять максимальний елемент масивів, що складаються з елементів типу int, double, а також – функцію, яка знаходить максимальну довжину слова в рядку (тип char*). Використати перезавантаження функцій і створити шаблон функції.

8. Визначити операцію ++ обчислення визначника матриці методом Гаусса. Використати перезавантаження операторів.

9. Перезавантажити операції “<<”, “>>” для вводу і виводу транспонованих цілих і дійсних матриць розмірністю nxm.

10. Визначити операцію логічного віднімання двох рядків символів S3=S1-S2. Рядок S3 складається з символів, які належать рядку S1 і не належать S2. Використати перезавантаження операторів.

11. Визначити операції “+”, “-“, “*”, “/” для комплексного числа. Обчислити вираз z=(x+y)/(x-y)+xy/(x+y). Використати перезавантаження операторів.

12. Визначити операції “+”, “-“, “*” для матриць (nxn). Обчислити вираз D=A*B+C*A-A*C. Використати перезавантаження операторів.

13. Визначити операції “+”, “-“, “*” для векторів розмірності n. Обчислити вираз d=(a+b)(a-b). Використати перезавантаження операторів.

14. Визначити операцію логічного додавання двох рядків символів S3=S1+S2. Рядок S3 складається з символів, які належать хоча б одному рядку S1 або S2. Використати перезавантаження операторів.

15. Визначити операцію логічного множення двох рядків символів S3=S1*S2. Рядок S3 складається з символів, які належать рядкам S1 і S2 одночасно. Використати перезавантаження операторів.

16. Трійка чисел (x,y,r) визначає круг на площині. Визначити операції

“+”, “-“ , “*” для двох кругів:

"+" – площа об’єднання,

"*" – площа перетину,

"-" – площа різниці.

Використати перезавантаження операторів.

17. Четвірка чисел (x1,y1,x2,y2) визначає прямокутник на площині.

(x1,y1)

Визначити операції (x2,y2)

“+”, “-“ , “*” для двох прямокутників:

"+" – площа об’єднання,

"*" – площа перетину,

"-" – площа різниці.

Використати перезавантаження операторів.

18. Масив чисел А(n) визначає многочлен a0 +a1 x +a2 x2 +…+ an-1 xn-1.

Визначити операції “+”, “-“ , “*” многочленів. Коефіцієнти зберігаються в пам’яті у вигляді масиву. Використати перезавантаження операторів.

19. Масив чисел А(n) визначає многочлен a0 +a1 x +a2 x2 +…+ an-1 xn-1. Визначити операцію “++” – обчислення значення многочлена в точці. Коефіцієнти зберігаються в пам’яті у вигляді списку. Використати перезавантаження операторів.

20. Перезавантажити операції “<<” і “>>” для виводу і вводу комплексного числа, а також операцію “==” порівняння модулів двох комплексних чисел.

21. Перезавантажити операції “<<” і “>>” для виводу і вводу структури. В структурі зберігаються відомості про кількість пар у кожний день тижня в комп’ютерному класі.

22. Перезавантажити операцію “*” для множення двох комплексних чисел, множення дійсного і комплексного числа, обчислення скалярного добутку двох векторів.

23. Для рядків символів перезавантажити операції:

"– " (унарний мінус). Перевертає рядок на своєму місці.

"*" (множення цілого числа k на рядок s).

Якщо к>0, то в результаті одержується рядок із k повторень рядка S. Якщо k<0, то в результаті одержується із k повторень перевернутих рядків S.

24. Визначити операції:

a & b – векторний добуток векторів,

! a – нормування вектора.

Обчислити вираз a & a, a & b, ! a.

25. Перезавантажити операції “<<” та “>>” для вводу і виводу многочленів степеня n з дійсними коефіцієнтами.

26. Визначити операції “+”, “-“, “*”,”/” для дробів P/Q, де PєZ, QєN. Перезавантажити ці операції. Обчислити вираз a/d-(a+b)/(cd), a,b,c,d – дроби.

27. Визначити структуру, яка визначає прямокутник на площині. Визначити операції “<<”, “>>“ для прямокутників:

">>" – ввід інформації про координати і назву прямокутника,

"<<" – вивід інформації про прямокутник (назва, координати, площа).

28. Масив чисел A(n) визначає многочлен з цілими коефіцієнтами a0 +a1 x +a2 x2 +…+ an-1 xn-1 . Визначити операцію ! – знаходження похідної від многочлена.

29. Для множин, які зберігаються в пам’яті у вигляді бінарних векторів розмірності n перевизначити операції:

"+" – об’єднання множин,

"*" – перетину множин,

">>" – ввід множини.

30. Для множин, які зберігаються в пам’яті у вигляді бінарних векторів розмірності n перевизначити операції:

"-" – різниці множин,

"^" – доповнення множин,

"<<" – вивід множини.

31. Створити функції, які знаходять довжину вектора на площині, довжину вектора у просторі, довжину речення (кількість слів). Використати перезавантаження функцій.

32. Створити функції, які знаходять висоту трапеції, висоту паралелограма, максимальну висоту трикутника. Використати перезавантаження функцій.

  1. Визначити операцію добутку “*” матриці розмірності n x n на вектор розмірності n та навпаки (вектора на матрицю).

  1. Масиви чисел визначають многочлени з цілими коефіцієнтами A(n) = a0 +a1 x +a2 x2 +…+ an-1 xn-1 та B(m) = b0 +b1 x +b2 x2 +…+ bm-1 xm-1. Визначити операцію “/” –ділення цих многочленів. Результат – два многочлени P(r) та Q(l) такі, що A(n) = P(r)*B(m) + Q(l).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]