Практическа задача № 2 Да се моделира дадения в задачата "реален" обект с неговите свойства, като се създаде клас, със следните членове: - констуктор, създаващ обект с указател, - деструктор, освобождаващ заетата от обекта памет, - 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. Обект - сфера в пространството; функция - обем на сферата; операция - равенство на две сфери (==).