Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Лабораторна робота №4. Тема: Створення класів




В кожному варіанті розробити вказаний клас і протестувати його, для чого в основній програмі створити необхідну кількість об’єктів, використовуючи які, продемонструвати всі розроблені оператори і функції. Частину перевизначених операторів і функцій зробити дружніми, а частину – членами класу.

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

1. Визначити клас: трикутник на площині. Він визначається трьома вершинами А(X1,Y1), B(X2,Y2), C(X3,Y3). Xi, Yi є R. Створити конструктор і деструктор.

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

«<<» друку інформації про об’єкт;

«==», «!=» порівняння двох об’єктів.

Визначити функції:

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

2. Визначити клас многочленів степеня n з дійсними коефіцієнтами P(x)=a0 +a1 x +a2 x2 +…+ an-1 xn-1, x є R.

Для збереження коефіцієнтів многочлена використати масив. Створити конструктори і деструктор.

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

«+», «-», «*» -додавання, віднімання і множення многочленів.

Визначити функції:

  • друку многочлена;
  • створення копії многочлена;
  • знаходження значення многочлена в точці;
  • знаходження частки і залишка від ділення многочлена на многочлен;
  • обчислення многочленів (x-a)P(x), P(x+a) (a задається), P’(x), P(Q(x)).

3. Визначити клас: довге ціле число. Для збереження числа використати масив (один елемент масиву - одна цифра числа). Створити конструктори i деструктор.

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

"+", "-", "*" додавання, віднімання, множення чисел;

"/" цілочислове ділення;

"%" залишок від ділення;

"==","!=",">","<","<=",">=" порівняння.

Визначити функції:

  • друку числа;
  • логічну функцію, яка визначає, чи дорівнює число нулю.

Визначити, чи є число 250+1 простим. Роздрукувати числа 210, 2100, 100!.

4. Створити клас: рядок символів. Рядок символів зберігається в пам’яті з допомогою однонапрямного зв’язного списку. Створити конструктори і деструктор.

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

«+» зчеплення двох рядків;

«==», «!=», «<», «>», «<=», «>=» операції порівняння двох рядків;

«<<» операцію друку рядка.

Визначити функції:

  • копіювання рядка;
  • знищення N символів рядка, починаючи з позиції Poz;
  • вставка рядка St1 в рядок St2, починаючи з позиції Рoz;
  • визначення довжини рядка;
  • виявлення першого входження в рядок St1 підрядка St2. Результат – номер позиції.

5. Створити клас: множина точок на площині. P(X,Y), X,Y є Z. Для збереження множини використати лінійний однонапрямний список. Створити конструктори і деструктор.

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

«*», «+», «-» перетин, об’єднання, різниця двох множин;

«==»,«!=», «>=», «<=» операції відношення множин;

«<<» операцію друку множини.

Визначити функції:

  • створення копії множини;
  • визначення кількості елементів в множині;
  • визначення належності точки до множини;
  • порівняння з порожньою множиною;
  • впорядкування множини по відстаням від точок до початку координат;
  • впорядкування множини по куту повороту відносно вісі ОХ.

6. Визначити клас: прямий паралелограм на площині. Паралелограм визначається числами (X1, Y1, X2, Y2, X3, Y3), де Xi, Yi є N.

(X2, Y2) (X3, Y2)

(X1, Y1)

Створити конструктор і деструктор.

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

“+”, “*”, “-” площа об’єднання, перетину і різниці паралелограмів;

“==” порівняння паралелограмів на співпадання при переносі.

Визначити функції:

  • друку інформації про паралелограм;
  • знаходження площі і периметру об’єкта;
  • графічного зображення об’єкта;
  • знаходження гострого кута при вершині;
  • зсуву об’єкта на 10 пікселей вправо.

7. Створити клас: множина цілих чисел. Для представлення множини використати бінарний вектор. Створити конструктор і деструктор.

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

«*» – перетин двох множин;

«+» – об’єднання множин;

«-» – різниця двох множин;

«~» – доповнення множини;

«%»– симетричну різницю множин;

«==», «!=», «>=», «<=» – операції відношення множин;

«<<»,«>>» - операції вводу і виводу інформації про множину.

Визначити функції:

  • створення копії множини;
  • визначення кількості елементів в множині;
  • визначення, чи належить число до множини;
  • порівняння з порожньою множиною;
  • знаходження мінімального елемента множини.

8. Визначити клас многочленів з комплексними коефіцієнтами P(x)=a0 +a1 x +a2 x2 +…+ an-1 xn-1, x є C, ak =u+iv, u є Z, v є Z. Для збереження коефіцієнтів в пам’яті використати лінійний однонапрямний зв’язний список. Створити конструктори і деструктор

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

«+»,«-», «*» додавання, віднімання, множення многочленів;

«==» операцію порівняння многочленів.

Визначити функції:

· друку многочлена;

· створення копії многочлена;

· обчислення значення многочлена в точці a;

· друку многочлена Р(x+а) для заданного a.

9. Визначити клас многочленів довільного степеня з цілими коефіцієнтами P(x)=a0 +a1 x +a2 x2 +…+ an-1 xn-1.

Для збереження коефіцієнтів в пам’яті використати лінійний однонапрямний зв’язний список. Створити конструктори і деструктор

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

«+»,«-», «*» додавання, віднімання, множення многочленів;

«<<»,«>>» операції виводу і вводу многочленів.

Визначити функції:

  • перевірки рівностей двох многочленів;
  • створення копії многочлена;
  • знаходження значення многочлена в точці;
  • обчислення многочленів Р(x+а), (x-а)Р(x), Р’(x) для заданного a;
  • графічного зображення функції y=Р(x).

10. Визначити клас многочленів з раціональними коефіцієнтами коефіцієнтами P(x)=a0 +a1 x +a2 x2 +…+ an-1 xn-1, x є Q, ak =uk/vk, uk є Z, vk є N.

Для збереження коефіцієнтів використати один двовимірний або два одновимірні масиви. Створити конструктор та деструктор.

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

«+» додавання двох многочленів;

«-» віднімання двох многочленів;

«*» множення двох многочленів;

«<<» друку многочлена;

«==» порівняння двох многочленів.

Визначити функції:

  • створення копії многочлена;
  • скорочення раціонального дробу;
  • знаходження значення многочлена в точці;
  • знаходження Р’(х), Р(х+а).

11. Визначити клас: комплексне число. Створити конструктори і деструктор.

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

«+»,«-»,«*»,«/» - арифметичні операції;

«=» – присвоєння;

«!» – отримання спряженого числа.

Створити функції:

  • друку комплексного числа;
  • створення копії;
  • знаходження кореня n-го степеня з комплексного числа;
  • знаходження |z|, Arg z, za (a–дійсне число);
  • обчислення з заданою точністю за допомогою рядів

12. Створити клас матриць розмірності n х n з дійсними коефіцієнтами. Визначити конструктор і деструктор.

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

«+»,«-»,«*» для матриць;

«<<» друку матриці;

«>>» вводу матриці;

«==» порівняння матриць.

Визначити функції:

  • знаходження визначника матриці;
  • знаходження оберненої матриці;
  • знаходження норми матриці;
  • знаходження сліду матриці;
  • функцію, яка визначає, чи є матриця симетричною.

13. Визначити клас векторів розмірності n. Створити конструктори і деструктор.

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

«+»,«-» додавання і віднімання векторів;

«*» скалярний добуток векторів;

«>>» вводу вектора;

«^» множення вектора на число.

Визначити функції:

  • друку вектора;
  • знаходження довжини вектора;
  • створення копії вектора;
  • сортування елементів вектора;
  • нормування вектора.

14. Створити клас: рядок символів Рядок символів зберігається як в мові Паскаль. Для його збереження використовується масив символів. В нульовому елементі зберігається поточна довжина рядка. Створити конструктори і деструктор.

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

«+» зчеплення двох рядків;

«%» логічне додавання (добавляються тільки ті символи з другого рядка, яких немає в першому рядку);

«==»,«!=»,«<»,«>»,«<=»,«>=» операції порівняння двох рядків.

Визначити функції:

  • друку рядка;
  • копіювання рядка;
  • знищення N символів рядка, починаючи з позиції Poz;
  • вставки рядка st1 в рядок st2, починаючи з позиції Poz;
  • визначення довжини рядка;
  • виявлення першого входження в рядок st1 підрядка st2. Результат - номер позиції.

15. Визначити клас: рядок символів. Для збереження рядка використати масив, ознакою кінця рядка символів є символ ‘\0’. Створити конструктори і деструктор.

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

«*» логічне множення двох рядків (повертається рядок, в якому є тільки спільні символи);

«+» операцію зчеплення двох рядків;

«==», «!=», «<», «>», «<=», «>=», операції порівняння двох рядків.

Визначити функції:

  • друку рядка;
  • копіювання рядка;
  • знищення N символів рядка, починаючи з позиції Poz;
  • вставка рядка St1 в рядок St2, починаючи з позиції Poz;
  • визначення довжини рядка;
  • виділення із рядка підрядок довжиною N символів починаючи з позиції Poz;
  • виявлення першого входження рядка в підрядок. Результат - номер позиції;
  • перевірки, чи є рядок записом цілого додатного числа;
  • перетворення рядка символів в ціле число, записом якого він є.

16. Визначити клас: круг на площині. Круг визначається трійкою чисел (х, у, r). Створити конструктори і деструктор.

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

«+» – площа об'єднання двох кругів;

«–» – площа різниці двох кругів;

«*» – площа перетину двох кругів.

Визначити функції:

  • друку інформації про коло;
  • порівняння площ;
  • знаходження площі круга;
  • довжини дуги для заданого в градусах центрального кута;
  • графічного зображення кола на екрані.

17. Визначити клас: прямокутник на площині. Прямокутник визначається координатами точки А(х1,у1) – верхня ліва точка, і точки В(х2,у2) – нижня права точка прямокутника (х1,у1,х2,у2єN). Створити конструктори і деструктор.

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

«+» – площа об'єднання двох прямокутників;

«–» – площа різниці двох прямокутників;

«*» – площа перетину двох прямокутників.

Визначити функції:

  • друку інформації про прямокутник;
  • порівняння прямокутників за площами;
  • порівняння прямокутників на співпадання при переносі;
  • знаходження площі і периметру прямокутника;
  • графічного зображення прямокутника на екрані.

18. Визначити клас: довге ціле число. Для збереження числа використати лінійний однонапрямний список. Створити конструктор i деструктор.

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

"+", "-", "*" додавання, віднімання, множення чисел;

"/" цілочислове ділення;

"%" залишок від ділення.

Визначити функції:

  • друку числа;
  • знаходження кількості цифр в числі;
  • нормалізації числа (відкидання незначущих нулів);
  • логічну функцію, яка визначає, чи дорівнює число нулю.

Визначити, чи є число 2100+1 простим.

19. Створити клас: правильний многокутник. Об’єкт визначається через 5 цілих чисел X1,Y1, R, N. Тут O(X1,Y1)- центр описаного кола, R – радіус описаного кола, N – кількість сторін, A(X1-R, Y1) –координати першої вершини. Створити конструктор і деструктор.

Визначити операцію:

“==”, “!=”– порівняння двох об’єктів;

“<<”– друку інформації про об’єкт.

Визначити функції:

· знаходження площі і периметра об’єкта;

· знаходження радіуса вписаного кола;

· знаходження кута при вершині;

· графічного зображення об’єкта на екрані;

· зсуву зображення на 20 пікселей вліво.

20. Визначити клас: площина у просторі. Площина задається загальним рівнянням А,В,С,D – коефіцієнти. Створити конструктор і деструктор, генератор копій.

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

«^» – кут між площинами;

«||» – відстань між площинами;

«==», «!=» – порівняння двох площин.

Визначити функції:

· друку інформації про площину;

· перевірки на належність точки до площини;

· визначення коефіцієнтів нормального рівняння площини;

· перевірки на паралельність площини координатним площинам;

· перевірки паралельності і перпендикулярності двох площин;

· знаходження відстані між точкою і площиною;

21. Визначити клас: ламана на площині. Ламана задається координатами точок, які зберігаються в двовимірному або одновимірному масиві. Створити конструктори і деструктор.

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

"+"- склеювання двох ламаних;

"<<", ">>"- виводу і вводу ламаної (кількість вершин та їх координати).

Визначити функції:

· визначення, чи ламана замкнута;

· визначення, чи є самоперетин ламаної;

· визначення, чи є замкнута ламана опуклою;

· знаходження площі фігури, обмеженою опуклою ламаною;

· графічного зображення ламаної.

Для спрощення алгоритму всі вершини, крім, можливо, першої, і останньої вважати різними.

22. Визначити клас: пряма на площині. Пряма задається загальним рівнянням, А,В,С – коефіцієнти. Створити конструктор і деструктор, генератор копій.

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

«^» – кут між прямими;

«||» – відстань між прямими;

«==», «!=» – порівняння двох прямих.

Визначити функції:

· друку інформації про пряму;

· знаходження перетину двох прямих;

· перевірки на належність точки до прямої;

· визначення коефіцієнтів нормального рівняння прямої;

· перевірки на паралельність прямої координатним осям;

· перевірки паралельності і перпендикулярності двох прямих;

· знаходження відстані між точкою і прямою.

23. Визначити клас: точка на площині. Створити конструктори і деструктор, генератор копій.

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

«++»,«--» – зсув точки вправо/вліво на 10 пікселів;

«||» – відстань між точками;

«<<», «>>» – вивід і ввід точок.

«==», «!=» – порівняння двох точок.

Визначити функції:

· знаходження полярних координат точки;

· графічного зображення точки на координатній площині;

· визначення, в якій чверті координатної площини лежить точка;

· визначення, чи утворюють 4 дані точки коло.

· визначення належності 3 даних точок одній прямій.

24. Визначити клас: ламана у просторі. Ламана задається координатами точок, які зберігаються в масиві розміром 3 х n. Створити конструктори і деструктор, генератор копій.

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

"+"- склеювання двох ламаних;

"="-присвоєння.

Визначити функції:

· друку інформації про ламану (кількість вершин та їх координати);

· визначення, чи ламана замкнута;

· визначення, чи належить вона одній площині;

· знаходження проекцій ламаної на координатні площини;

· графічного зображення проекції ламаної на XOY.

25. Визначити клас: точка у просторі. Створити конструктор, деструктор, генератор копій.

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

«==», «!=» – порівняння точок;

«||» – відстань між точками;

«=» – присвоєння;

«+», «-» – додавання, віднімання точок.

Створити функції:

· друку інформації про точку;

· знаходження сферичних координат;

· визначення належності точки координатним площинам.

· визначення рівняння прямої, що проходить через 2 задані точки;

· визначення рівняння площини, що проходить через 3 задані точки;

26. Визначити клас: ціле число. Створити конструктор і деструктор.

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

«++» - сума цифр числа;

«—» – знищення незначущих цифр числа;

«!» - обертання числа (цифри – в оберненому порядку);

«&» – ділення чисел (результат–дійсне число).

Створити функції:

· перевірки, чи є число простим;

· знаходження простих дільників числа;

· розклад числа на прості множники;

· знаходження найменшого спільного кратного двох чисел;

· друку числа в різних системах числення (від двійкової до десяткової).

27. Визначити клас: раціональне число x=p/q, де p є Z, q є N. Створити конструктор і деструктор.

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

"+", "-", "*", "/" додавання, віднімання, множення, ділення дробів;

"==","!=",">","<","<=",">=" порівняння;

«<<» – виводу та «>>» – вводу.

Визначити функції:

· піднесення до степеня: xa, a є Z;

· скорочення раціонального дробу;

· копії об’єкта.

28. Створити клас: куля у просторі. Куля задається координатами центру і радіусом. Створити конструктор, деструктор і генератор копій.

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

“==” – порівняння радіусів

“<<” – друк інформації про кулю;

“<=” – визначення належності однієї кулі іншій;

“>=” – визначення включення однієї кулі іншою;

“*” – знаходження об’єму перетину куль.

Визначити функції:

· зсуву кулі на заданий вектор;

· стискання кулі в задану кількість разів;

· друку інформації про перетин з іншою кулею (одна точка та її координати, безліч точок перетину).

29. Створити клас: вектор на площині. Створити конструктор і деструктор, генератор копій.

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

«+» – сума векторів;

«-» – різниця векторів;

«*» – скалярний добуток;

«=» – присвоєння;

«<» – кут між векторами.

Визначити функції:

· визначення, чи вектори колінеарні;

· визначення, чи вектори ортогональні;

· друку вектора;

· графічного зображення вектора;

· визначення довжини вектора.

30. Створити клас: вектор у просторі. Створити конструктор і деструктор, генератор копій.

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

«&» – кут між векторами;

«&&» – векторний добуток векторів;

«*» – скалярний добуток;

«=» – присвоєння;

«<<» – друку вектора.

Визначити функції:

· визначення, чи вектори колінеарні;

· визначення, чи вектори компланарні;

· визначення мішаного добутку векторів;

· графічного зображення проекцій вектора на кожну координатну площину;

· визначення довжини вектора.

31. Створити клас: еліпс. Еліпс задається коефіцієнтами a, b канонічного рівняння. Створити конструктори, деструктор.

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

“=” – присвоєння;

“==”- порівняння;

“<<” – друку інформації про еліпс;

“<=”, “>=” – включення одного еліпсу в інший та навпаки.

Визначити функції:

· визначення координат фокусів;

· визначення ексцентриситету;

· визначення фокального параметру;

· визначення рівнянь директрис;

· графічного зображення еліпсу.

32. Створити клас: циліндр, нижня основа якого паралельна координатній площині XOY. Циліндр задається координатами центру нижньої основи, радіусом основи і висотою. Створити конструктори, деструктор.

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

«=» - присвоєння;

«==» - порівняння циліндрів за об’ємами;

«<<» - друк інформації про циліндр;

«<=» - визначення належності одного циліндру іншому;

«>=» - визначення включення одним циліндром іншого.

Визначити функції:

· зсуву циліндру на заданий вектор;

· стискання розмірів циліндру в задану кількість разів;

· друку інформації про перетин з іншим циліндром (так, ні).

33. Створити клас: автомобіль. Автомобіль задається даними: номер. марка, ціна, колір, прізвище та ім’я власника, рік випуску, ознака проходження мита. Створити конструктори, деструктор.

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

«=» - присвоєння;

«<»,«>» - порівняння автомобілів за ціною;

«<=»,«>=» - порівняння автомобілів за роком випуску;

«<<» - друк інформації про автомобіль;

«+» - сумарна ціна автомобілів.

Визначити функції:

· розмитнення авто в залежності від року випуску;

· зміна кольору та власника;

· визначення, чи розмитнений автомобіль;

· визначення, чи номер автомобіля є щасливим (симетричним);

· визначення, скільки років автомобілю.

34. Створити клас: таймер. Таймер задається проміжком часу, через якій буде викликана функція та часом початку та кінця роботи. Створити конструктори, деструктор.

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

«=» - присвоєння;

«==» - порівняння двох таймерів;

«<=»,«>=» - порівняння проміжків часу двох таймерів;

«<»,«>» - порівняння часу початку роботи двох таймерів;

«<<» - друк інформації про таймер;

«-» - визначення різниці в часі між двома таймерами.

Визначити функції:

· графічного зображення зміни часу у вигляді відрізка, довжина якого збільшується з часом (функція викликатися через заданий таймером проміжок часу);

· зміни проміжку часу;

· визначення кількості викликів таймером заданої функції;

· створення копії таймера;

· зміни часу початку роботи таймера.





Поделиться с друзьями:


Дата добавления: 2016-07-29; Мы поможем в написании ваших работ!; просмотров: 684 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Чтобы получился студенческий борщ, его нужно варить также как и домашний, только без мяса и развести водой 1:10 © Неизвестно
==> читать все изречения...

2489 - | 2380 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.117 с.