Класове, предефиниране на операции
Да се моделира дадения в задачата "реален" обект с неговите
свойства, като се създаде клас, със следните членове:
- констуктор, създаващ обект с указател,
- деструктор, освобождаващ заетата от обекта памет,
- get функции,
- set функции,
- print функция, извеждаща на екрана в подходящ вид
членовете-данни на класа,
- функциите, описани в конкретната задача,
- предефиниране на поне една операция,
- допълнителни функции, по желание на студента.
Да се напише тестваща програма за демонстрация на създадения
клас с подходящи примери.
Задачи:
0. Обект - окръжност в равнината, зададена с център и радиус;
функция - намиране на пресечните точки на окръжността с
координатните оси;
операция - събиране (+) - резултатът е най-малката окръжност,
съдържаща две дадени.
1. Обект - вектор в равнината;
функция - скаларно произведение;
операция - събиране (+) на вектори.
2. Обект - комплексно число;
функция - модул на комплексно число;
операция - събиране (+) на комплексни числа.
3. Обект - матрица 2х2;
функция - детерминантата на матрицата;
операция - събиране (+) на матрици.
4. Обект - триъгълник в равнината;
функция - лице на триъгълник;
операция - транслация (>>) на триъгълник.
5. Обект - квадрат в равнината със страни, успоредни на
координатните оси;
функция - разстоянието от центъра на квадрата до началото
на координатната система;
операция - пресечния квадрат на два квадрата (&&).
6. Обект - отсечка в равнината;
функция - дължина на отсечка;
операция - транслация (>>) на отсечка.
7. Обект - низ с дължина 3;
функция - сума от ASCII кодовете на елементите му;
операция - превръщане на малки букви в главни (!).
8. Обект - масив от цели числа с дължина 3;
функция - сума на елементите му;
операция - увеличение на всичките му елементи с 1 (++).
9. Обект - масив от 3 цели числа и 3 низа;
функция - дали 3-те числа от масива са дължини на 3-ти низа;
операция - присвояване на елементите на масива дължините на
низовете (~).
10. Обект - лек автомобил в автокъща с характеристики: модел,
година на производство, пробег, цвят, обем на
двигателя, цена;
функция - при зададена година на производство връща на колко
години е колата;
операция - сравнения на два автомобила (>): операцията
сравнява отношенията цена/обем на двигателя.
11. Обект - полином от 2-ра степен;
функция - пресмятане на стойността на полинома при
зададено число;
операция - събиране (+) на полиноми.
12. Обект - държава с атрибути: име, брой на населението, площ,
имена на държави, с които има обща граница;
функция - дава дали населението на държавата е повече от
зададено число;
операция - обща граница (&) дава 1, ако двете държави имат
обща граница и 0 иначе.
13. Обект - паспорт, съдържащ следните данни: име, презиме и фамилия,
народност, дата на раждане, ЕГН, дата до която паспорта е
валиден;
функция - проверка на валидността на паспорта: при въвеждане на дата,
извежда 0, ако паспорта е невалиден на тази дата;
операция - извежда на екран с cout << обект от класа, като отпечатва
ими, презиме и фамилия и ЕГН.
14. Обект - сила в равнината, зададена с приложна точка, посока и
големина;
функция - промяна на посоката на силата, като се завърта на зададен
ъгъл;
операция - добавяне (+=) към една сила друга сила, само ако имат
една и съща приложна точка.
15. Обект - n-мерен вектор;
функция - скаларно произведение;
операция - събиране (+) на вектори.
16. Обект - 3-ъгълна пирамида;
функция - намиране на центъра на тежестта на пирамидата;
операция - хомотетия (%) със зададено число и център на
хомотетията - центъра на тежестта на пирамидата.
17. Обект - правоъгълник в равнината със страни, успоредни на
координатните оси;
функция - разстоянието от центъра на правоъгълника до началото
на координатната система;
операция - пресечния правоъгълник на два правоъгълника (&&).
18. Обект - кръг и точка в равнината;
функция - проверка дали точката лежи в кръга;
операция - транслация (>>) на кръга - точката става център на кръга.
19. Обект - низ (с произволна дължина), съдържащ само десетични цифри;
функция - превръща цяло число в низ;
операция - добавяне на 1 (++) - резултатът е низ, съдържащ число,
с 1 по-голямо.
20. Обект - окръжност в равнината, зададена с център и радиус;
функция - намиране на пресечните точки на две окръжностти;
операция - изваждане (-) - резултатът е най-голямата окръжност,
съдържаща две дадени.
21. Обект - вектор в 3-мерното пространство;
функция - скаларно произведение;
операция - събиране (+) на вектори.
22. Обект - комплексно число;
функция - ъгъла, от представянето в тригонометричен вид;
операция - умножаване (*) на комплексни числа.
23. Обект - матрица 2х2;
функция - най-големия елемент на матрицата;
операция - умножение (*) на матрици.
24. Обект - триъгълник в равнината;
функция - периметър на триъгълник;
операция - ротация (|) около началото на координатната система.
25. Обект - квадрат в равнината със страни, успоредни на
координатните оси;
функция - пресича ли квадрата координатна ос;
операция - транслация (>>) на квадрат.
26. Обект - отсечка в равнината;
функция - ъгъла, който отсечката сключва с абсцисната ос;
операция - въртене (*) на отсечка около центъра й.
27. Обект - низ с дължина 5;
функция - ASCII кода на първия символ от низа;
операция - превръщане на главни букви в малки (!).
28. Обект - масив от цели числа с дължина 3;
функция - максимален елемент;
операция - сравнение (==) на два масива за равенство.
29. Обект - цяло число и низ;
функция - дали числото е равно на дължината на низа;
операция - събиране с присвояване (+=) с аргументи два обекта -
двете цели числа се събират, а двата низа се конкатинират.
30. Обект - лек автомобил с характеристики: модел, цвят, обем на
двигател, цена;
функция - при зададено число, връща разликата между това число
и цената на колата;
операция - сравнения на два автомобила (>): операцията сравнява
отношенията цена/обем на двигателя.
31. Обект - полином от 2-ра степен;
функция - пресмятане на корените на полинома;
операция - унарен минус (-) - противоположен полином.
32. Обект - държава с атрибути: име, брой на населението, площ,
имена на народности, живеещи в държавата;
функция - дава дали населението на държавата е повече от
зададено число;
операция - обща националност (&&) дава 1, ако в двете държави
живее една и съща народност, иначе - 0.
33. Обект - шофьорска книжка, съдържащ следните данни: име, презиме
и фамилия, ЕГН, дата до която книжката е валидна и
категория на водача;
функция - проверка на валидността на книжката: при въвеждане на
дата, извежда 0, ако паспорта е невалиден на тази дата;
операция - извежда на екран с cout << обект от класа, като
отпечатва ими, презиме и фамилия и категорията.
34. Обект - сила в равнината, зададена с приложна точка, посока и
големина;
функция - промяна на големината на силата, като се умножава със
зададено число;
операция - изваждане (-=) от една сила друга сила, само ако имат
една и съща приложна точка.
35. Обект - n-мерен вектор;
функция - намиране на големината на вектора;
операция - умножение (*) на вектор с число.
36. Обект - правилен тетраедър в пространството;
функция - намиране на центъра на тежестта на тетраедъра;
операция - хомотетия (%) със зададено число и център на
хомотетията - началото на координатната система.
37. Обект - правоъгълник в равнината със страни, успоредни на
координатните оси;
функция - лицето на правоъгълника;
операция - транслация (>>) на правоъгълник със зададено число
и посока на оста x.
38. Обект - кръг и точка в равнината ;
функция - проверка дали точката лежи в кръга;
операция - транслация (>>) на кръга - точката става негов център.
39. Обект - низ (с произволна дължина), съдържащ само десетични цифри;
функция - превръща цяло число, записано в цяла променлива, в низ;
операция - допълнение (~) - дава нов низ, всеки символ на който
се получава по формулата 9-x, където x е съответната
цифра от дадения низ.
40. Обект - окръжност в равнината, зададена с център и радиус;
функция - намиране на разстоянето между центровете на две окръжности;
операция - увеличаване с 1 (++) - резултатът е окръжност със
същия център и с единица по-голям радиус.
41. Обект - вектор в 3-мерното пространство;
функция - скаларно произведение;
операция - умножение (*) на вектор с число.
42. Обект - комплексно число;
функция - ъгъла, от представянето в тригонометричен вид;
операция - събиране с присвояване (+=).
43. Обект - матрица 2х2;
функция - най-големия елемент на матрицата;
операция - умножение с присвояване (*=).
44. Обект - триъгълник в равнината;
функция - координати на медицентъра;
операция - хомотетия (%) с център медицентъра на триъгълника.
45. Обект - квадрат в равнината със страни, успоредни на
координатните оси;
функция - съдържа ли квадрата началото на координатната система;
операция - хомотетия (%) с център началото на координатната система.
46. Обект - отсечка в равнината;
функция - пресичане на две отсечки;
операция - получаване на нова отсечка (*=), с краища средите
на двете отсечки.
47. Обект - низ с дължина 4;
функция - колко цифри съдържа низа;
операция - сравнение (==) на низове за равенство.
48. Обект - масив от цели числа с дължина 5;
функция - търсене за наличие на зададено число;
операция - умножение (*) на два масива.
49. Обект - цяло число и символ;
функция - дали числото е равно на ASCII кода на символа;
операция - сравнение (>) на два обекта - истина, ако числото
от първия аргумент е по-голямо от числото на втория аргумент
и символите на двата аргумента са едни и същи.
50. Обект - лек автомобил с характеристики: модел, цвят, обем на
двигател, бензин/дизел, с или без клматик, цена;
функция - при зададено число, връща разликата между това число
и цената на колата;
операция - сравнения на два автомобила (>): операцията сравнява
отношенията цена/обем на двигателя.
51. Обект - полином от 2-ра степен;
функция - извежда 0, ако полинома няма реални корени, иначе 1;
операция - умножение (*) на полином с число.
52. Обект - държава с атрибути: име на континет, име на държава,
брой на населението и площ;
функция - при зададен континет проверява дали държавата е в този
континент;
операция - сравнява (>=) 2 държави по население.
53. Обект - шофьорска книжка, съдържащ следните данни: име, презиме и
фамилия, ЕГН, дата до която книжката е валидна и категория
на водача;
функция - проверка за зададена категория;
операция - извежда на екран с cout << обект от класа, като отпечатва
ими, презиме и фамилия и категорията.
54. Обект - сила в равнината, зададена с приложна точка, посока и
големина;
функция - промяна на приложната точка на силата, като тя се премества
в друга зададена точка;
операция - неравенство (!=) на сили.
55. Обект - n-мерен вектор;
функция - проверка за ортогоналност на два вектора;
операция - умножение (*) на вектор с число.
56. Обект - права в пространството;
функция - при зададена равнина, намиране на пресечната точка
на правата и равнината;
операция - сравняване за кръстосаност (|) - дава истина, ако правите
са кръстосани.
57. Обект - правоъгълник в равнината със страни, успоредни на
координатните оси;
функция - разстоянието на центъра на правоъгълника до абсцисната ос; ;
операция - хомотетия (>>) на правоъгълник със зададено число
и център - центъра на правоъгълника.
58. Обект - кръг и точка в равнината;
функция - разстояние между точката и центъра на кръга;
операция - транслация (<<) на точката - тя става център на кръга.
59. Обект - низ (с произволна дължина), съдържащ само десетични цифри;
функция - дава число, сумата от цифрите в низа;
операция - "равенство" (==) - истина, ако двата низа се състоят
от едни и същи цифри (може и различен ред).
60. Обект - студент: име, презиме, фамилия, фак. номер, курс, група;
функция - извежда фак. номер на студента, ако той е от дадени
курс и група (като параметри на функцията);
операция - равенство (==) - проверява се само по фак. номер.
61. Обект - учебна дисциплина: име, в кой курс се изучава, колко са
часовете за лекции и упражнения седмично;
функция - извежда обекта, ако седмичните часове за лекции са
повече от зададено число;
операция - сравнение (>) по сумата от часовете за лекции и
упражнения.
62. Обект - студентски изпит: име на дисциплината, дата за изпита,
курс, семестър;
функция - при зададени курс и семестър връща името на дисциплината,
ако те съвпадат с тези на обекта;
операция - сравнение (>) по датите за изпит.
63. Обект - матрица 2х3;
функция - максимален елемент на матрица;
операция - събиране (+) на матрици.
64. Обект - наредена четворка точки в равнината;
функция - дава 1, ако точките образуват изпъкнал четириъгълник;
операция - унарен минус (-) - резултатът е 4 точки, със същите
координати, наредени в обратен ред.
65. Обект - низ с дължина 10;
функция - дава символа от низа с най-голям ASCII код;
операция - превръщане на малки букви в главни (!).
66. Обект - масив от цели числа с дължина 15;
функция - максимален елемент на масив;
операция - увеличение на всичките му елементи с 1 (++).
67. Обект - полином от 3-та степен;
функция - намиране на определен интеграл от полинома при зададени
граници;
операция - събиране с присвояване (+=).
68. Обект - дробно-линейна функция (частно на две линейни функции);
функция - намиране на стойност на функцията при зададен аргумент;
операция - "обръщане" (!) - размяна на числителя и знаменателя.
79. Обект - сфера в пространството;
функция - повърхнина на сферата;
операция - събиране (+) - резултатът е най-малката сфера, съдържаща
двете сфери.
70. Обект - студент: име, фамилия, фак. номер, курс, група;
функция - извежда фак. номер на студента, ако той е от дадени
курс и група (като параметри на функцията);
операция - сравнение (>=) по фак. номера.
71. Обект - учебна дисциплина: име, в кой курс се изучава, колко са
часовете за лекции и упражнения седмично;
функция - извежда обекта, ако седмичните часове за лекции са
повече от зададено число;
операция - сравнение (>) на две учебни дисциплини по часовете за
лекции.
72. Обект - студентски изпит: име на дисциплината, дата за изпита,
курс, семестър, брой на изпитите (статичен член);
функция - статична функция, брой на създадените обекти;
операция - преместване (++) на датата за изпит с 1 ден напред.
73. Обект - матрица 3х2;
функция - минимален елемент на матрица;
операция - събиране с присвояване (=+) на матрици.
74. Обект - три точки в равнината;
функция - лице на триъгълника, определен от тези точки;
операция - унарен минус (-) - резултатът са 3 точки, средите на
отсечките, свързващи дадените точки.
75. Обект - низ с дължина 15;
функция - дава символа от низа с най-голям ASCII код;
операция - превръщане на главни букви в малки (!).
76. Обект - масив от цели числа с дължина 20;
функция - брой на елементите със зададена стойност;
операция - увеличение на всичките му елементи с 1 (++).
77. Обект - полином от 3-та степен;
функция - пресмятане на стойността на полинома при
зададено число;
операция - производната на полинома (~).
78. Обект - отсечка в равнината;
функция - дължина на отсечка;
операция - получаване на нова отсечка с краища - средите на
две дадени отсечки (*).
79. Обект - сфера в пространството;
функция - обем на сферата;
операция - равенство на две сфери (==).