You are on page 1of 7

Тема 1

Да се дефинира клас Matrica, който реализира матрица от реални числа с член – данни с частен достъп, като размерностите са
статични, с подразбиращ се конструктор, който нулира елементите на матрицата, конструктор, който подава матрица, деструктор,
който съобщава за унищожаване на обект, методи за: намиране на максимален елемент на матрица, извеждане на матрица и
изчисляване на сумата от елементите на матрицата. Да се разработят приятелски функции на класа за поелементно събиране и
изваждане на матрици. Да се тества класът, като се създадат матрици M1, M2 и M3, като M1 се създаде с подразбиращия се
конструктор, а другите се въвеждат от клавиатурата. Главната функция, в която се създават и обработват обектите да не е
приятелска за класа.

Тема 2
Да се дефинира клас Matrica, който реализира матрица от цели числа с член – данни с частен достъп, като размерностите са
статични, с подразбиращ се конструктор, който нулира елементите на матрицата, конструктор, който подава матрица, деструктор,
който съобщава за унищожаване на обект, методи за: намиране на брой четни елементи на матрица, извеждане на матрица и
изчисляване на сумата от елементите на матрицата с четна сума на индексите. Да се разработят приятелски функции на класа за
поелементно събиране и изваждане на матрици. Да се тества класът, като се създадат матрици P1, P2 и P3, като P1 се създаде с
подразбиращия се конструктор, а другите се въвеждат от клавиатурата. Главната функция, в която се създават и обработват
обектите да не е приятелска за класа.

Тема 3
Да се дефинират класове Figura с член – данни име на фигура и тип на фигура (ръбесто или валчесто тяло) и нейни наследници
Conus (прав кръгов) и Paralelepiped (правоъгълен), с радиус за конуса и две страни за паралелепипеда, и височина за всяка от
двете фигури. Да се дефинират конструктори, деструктор, който съобщава за унищожаване на обект, методи за достъп до член-
данните и две приятелски функции за намиране на лицата на основите. Член-данните на класовете да са с частен достъп (private).
Главната функция, в която се създават динамично поне по два обекта от всеки клас и се тестват всички методи, да не е приятелска
за класовете.

Тема 4
Да се дефинира клас Conе , съдържащ име на фигура, радиус на основата, и височина. Да се дефинират конструктори
(подразбиращ се, който заделя памет за името на фигурата и въвежда член – данните и конструктор с параметри), деструктор,
който съобщава за унищожаване на обект, и освобождава памет, методи за достъп до член-данните, намиране на лицето на
освновата и обема. Член-данните на класа да са с частен достъп (private). Класът да има и статична член – променлива, която да
брои създадените обекти и методи, които да увеличават и намаляват тази променлива и да се извикват съответно от конструктора
и деструктора. Главната функция, в която се създават динамично поне по три обекта (Conus1, Conus2, Conus3,) и се тестват член -
функциите, да не е приятелска за класа.

Тема 5
Да се дефинира клас PrParalelepiped (правоъгълен), съдържащи име на фигура, две страни на основата, и височина. Да се
дефинират конструктори (подразбиращ се, който заделя памет за името на фигурата и въвежда член – данните и конструктор с
параметри), деструктор, който съобщава за унищожаване на обект, и освобождава памет, методи за достъп до член-данните,
намиране на лицето на освновата и обема. Член-данните на класа да са с частен достъп (private). Класът да има и статична член –
променлива, която да брои създадените обекти и методи, които да увеличават и намаляват тази променлива и да се извикват
съответно от конструктора и деструктора. Главната функция, в която се създават динамично поне три обекта ( Paralelogr1,
Paralelogr2, Paralelogr2 ) и тестват член - функциите, да не е приятелска за класа.

Тема 6
Да се напише програма на С++, която въвежда масив D от комплексни числа с не повече от 100 елемента и намира най-голямото
по модул комплексно число и неговия индекс в масива. Комплексните числа да бъдат реализирани като обекти на клас
Comp_number с реална и имагинерна част, които са член-данни с частен достъп. Класът да има конструктори (подразбиращ се и с
параметри), деструктор, който съобщава за унищожаване на обект и член-функции за: извеждане на компонентите на комплексно
число, изчисляване на модул и приятелски функции за реализиране на събиране и изваждане на комплексни числа. Масивът от
комплексни числа да се въвежда и обработва чрез функции, които не са приятелски за класа.

Тема 7
Да се напише програма на С++, която въвежда два масива M и N от комплексни числа с не повече от 200 елемента и изчислява и
извежда масиви C = M+N и D= M-N. Комплексните числа да бъдат реализирани като обекти на клас Complex_num с реална и
имагинерна част. Класът да има конструктори, деструктор, който съобщава за унищожаване на обект и член-функции за достъп до
реалната и имагинерната част, извеждане на компонентите на число, събиране и изваждане на комплексни числа. Член-данните на
класа да са с частен достъп (private). Масивът от комплексни числа да се въвежда и обработва чрез функции, които не са
приятелски за класа.
Тема 8
Да се дефинира клас Bank_acc, съхраняващ информация за банкови клиенти: име, адрес, номер на сметка, сума. Името и
адреса да се реализират динамично, а номер на сметка и сумата да не са указатели. Класът да има 2 конструктора (един от които
подразбиращ се, който въвежда член – данните от клавиатурата), деструктор, който съобщава за унищожаване на обект и
освобождава памет и методи за извеждане на информация по въведен номер на сметка, теглене и внасяне на пари. Член-данните
на класа да са с частен достъп (private). В главната функция да се дефинира и обработва масив Klients от клиенти. Главната
функция да не е приятелска за класа.

Тема 9
Да се дефинира клас Bankinformation, съхраняващ информация за валутни курсове: номер на описание, име на валута 1,
име на валута 2, коефициент. Класът да има конструктори (подразбиращ се и с параметри), които инициализират и съобщават за
създадени обекти, деструктор, който съобщава за унищожаване на обект и методи за извеждане на информация по въведен номер
на описание и име на валута. Член-данните на класа да са с частен достъп (private). В главната функция да се дефинира и
обработва масив Val_Courses от данни за курсовете. Главната функция да не е приятелска за класа.

Тема 10
Да се дефинират класове My_Cilnder и My_Pyramid, съдържащи име на фигура, тип на фигура, лице на основата и височина. Да
се дефинират конструктори (поне 2, единият от които да предефинира подразбиращия се), деструктори, които съобщават за
унищожаване на обект, методи за достъп до член-данните, за извеждането им на екрана, за изчисляване на обем и две приятелски
функции: едната за сравняване на обемите, а другата – за сравняване на височините им. Член-данните на класовете да са с частен
достъп (private). Главната функция, в която се създават динамично поне по два обекта (Cilinder1, Cilinder2, Pyramid1, Pyramid2) от
всеки клас и се тестват всички методи, да не е приятелска за класовете.

Тема 11
Да се дефинират класове My_Conus и My_Paralelepiped (правоъгълен), съдържащи име на фигура, тип на фигура, радиус за
конуса и две страни за паралелепипеда, и височина за всяка от двете фигури. Да се дефинират поне по два конструктори,
деструктор, който съобщава за унищожаване на обект, методи за достъп до член-данните и намиране на лицето и две приятелски
функции: едната за сравняване на лицата на основите, а другата – за сравняване на височините им. Член-данните на класовете да
са с частен достъп (private). Главната функция, в която се създават динамично поне по три обекта (Conus1, Conus2, Conus3, Paral1,
Paral2, Paral2 ) от всеки класи се тестват член - функциите, да не е приятелска за класовете.

Тема 12
Да се дефинира клас Otsechka, задаващ отсечка в равнината чрез декартови координати. В класа да са дефинирани: конструктор
по подразбиране, въвеждащ от клавиатурата данни за отсечката, конструктор с 4 параметъра, задаващ координатите на краищата
на отсечката, операторни функции за намиране дължина на отсечка, деструктор, който съобщава за унищожаване на отсечка. Да
се разработи приятелска функция за сравняване на дължините на отсечки. Член-данните на класа да са с частен достъп (private) .
Класът да има статична член – променлива, която да брои създадените обекти. Да се тества класът, като се създадат поне 4
отсечки и се подредят по дължина и всеки от методите на класа да бъде извикан поне веднъж. Главната функция, в която се
създават обектите да не е приятелска за класа.

Тема 13
Да се дефинира клас Vector, задаващ вектор в равнината чрез декартови координати. В класа да са дефинирани: конструктор по
подразбиране, задаващ нулев вектор, конструктор с 4 параметъра, задаващ координатите на началото и каря на вектора, функции
за достъп, намиращи координатите, операторни функции за умножение на вектор с число и намиране на дължина на вектор,
деструктор, който съобщава за унищожаване на обект. Да се разработи приятелска функция за събиране на вектори. Член-данните
на класа да са с частен достъп (private). Да се тества класът, като се създадат поне 3 вектора V1, V2 и V3 и всеки от методите на
класа да бъде извикан поне веднъж. Главната функция, в която се създават обектите да не е приятелска за класа.

Тема 14
Да се дефинира клас SVector, задаващ вектор в пространството чрез декартови координати. В класа да са дефинирани:
конструктор по подразбиране, въвеждащ вектор от клавиатурата, конструктор с 4 параметъра, задаващ координатите на вектора и
името му, функции за достъп, намиращи координатите, операторни функции за намиране на дължина на вектор, умножение на
вектор с число, извеждане на член – данните на вектор, приятелска функция за изваждане на вектори, деструктор, който съобщава
за унищожаване на обект. Член-данните на класа да са с частен достъп (private). Да се тества класът, като се създадат 3 вектора
first, second, third, единият от които е нулев, да се съберат и извадят ненулевите, да се подредят по големина. Главната функция, в
която се създават обектите да не е приятелска за класа.

Тема 15
Да се дефинира клас StSegment, задаващ отсечка в пространството чрез декартови координати. В класа да са дефинирани:
конструктор по подразбиране, въвеждащ отсечка от клавиатурата, конструктор с 6 параметъра, задаващ координатите на краищата
на отсечката и съобщаващ за създаването и, операторни функции за намиране дължина на отсечка и извеждане член-данните на
обект, приятелска функция за сравняване на дължините на отсечки, деструктор, който съобщава за унищожаване на обект. Член-
данните на класа да са с частен достъп (private). Да се тества класът, като се създадат 4 отсечки Z1, Z2, Z3 и Z4 и се подредят по
дължина. Главната функция, в която се създават обектите да не е приятелска за класа.
Тема 16
Да се дефинира клас Dict, който създава тълковен речник, реализиран като масив или свързан списък от двойки дума – тълкуване
с методи за: създаване на речник, извеждане на елементите на речник, включване на нова дума заедно с нейното тълкуване,
изключване на дума, намиране на дума и показване на нейното тълкуване. Член-данните на класа да са с частен достъп (private) .
Да се тества класът, като се създаде обект - речник и всеки от методите се извика поне веднъж. Главната функция, в която се
създава обектът да не е приятелска за класа.

Тема 17
Да се дефинира клас SqMatrica, който реализира квадратна матрица от цели числа с член – данни с частен достъп, с подразбиращ
се конструктор, конструктор, който въвежда матрица и подава размерността като параметър, деструктор, който съобщава за
унищожаване на обект, методи за: намиране на максимален елемент на матрица, извеждане на матрица и изчисляване на сумата от
елементите по главния диагонал. Да се разработят приятелски функции на класа за поелементно изваждане на матрици. Да се
тества класът, като се създадат матрици M1, M2 и M3, като M1 се създаде с подразбиращия се конструктор, а другите се въвеждат
от клавиатурата. Главната функция, в която се създават и обработват обектите да не е приятелска за класа.

Тема 18
Да се дефинира клас Matr, който реализира квадратна матрица от реални числа с член – данни с частен достъп, подразбиращ се
конструктор, конструктор, който въвежда матрица и подава размерността като параметър, конструктор за копиране и деструктор,
който съобщава за унищожаване на обект, методи за: намиране на минимален елемент по второстепенния диагонал на матрица,
извеждане на матрица, изчисляване на средното аритметично на елементите на матрицата. Да се разработи приятелска функции
на класа за поелементно събиране на матрици. Да се тества класът, като се създадат 3 матрици x, y и z. Главната функция, в която
се създават и обработват обектите да не е приятелска за класа.

Тема 19
Да се дефинира клас MyPoint, който реализира точка в равнината с три член – данни с частен достъп (име и координати на
точката), с подразбиращ се конструктор, който задава нулеви координати, конструктор, който предава чрез параметри координати,
деструктор, който съобщава за унищожаване на обект, методи за: намиране разстоянието на точката до началото на координатната
система, извличане на абсцисата, извличане на ординатата, определяне на квадранта, в който се намира, извеждане на
координатите на точката. Класът да има статична член – променлива, която да брои създадените обекти и статичен метод, който
извежда този брой. Да се тества класът, като се създадат поне 4 точки X1, X2, X3, X4. Главната функция, в която се създават и
обработват обектите да не е приятелска за класа.

Тема 20
Да се дефинира клас Point, който реализира точка в пространството с четири член – данни с частен достъп (име и координати на
точката), с подразбиращ се конструктор, който въвежда координати, конструктор, който предава чрез параметри координати,
деструктор, който съобщава за унищожаване на обект, методи за: намиране разстоянието на точката от началото на координатната
система, извличане на абсцисата, извличане на ординатата и апликатата, извеждане на всички член-данни. Да се дефинира
приятелска функция, която събира координатите на две точки. Да се тества класът, като се създадат поне 4 точки Sp1, Sp2, Sp3,
Sp4. Главната функция, в която се създават и обработват обектите да не е приятелска за класа.

Тема 21
Да се дефинират класове MyCar и MyBus, които описват съответно кола и автобус с член данни с частен достъп ( тип превозно
средство, марка, брой места и максимална скорост). Класовете да имат подразбиращи се конструктори, които въвеждат
информация за обектите, конструктори, чрез които явно се подават стойностите на член-данните, деструктори, които съобщават за
унищожаване на обект, методи за достъп до скорост, методи за извеждане на член – данните на обектите. Да се дефинира
приятелска функция, която определя колата или автобусът имат по-голяма максимална скорост. Да се тества класът, като се
създадат поне 3 коли и 3 автобуса. Главната функция, в която се създават и обработват обектите да не е приятелска за класовете.

Тема 22
Да се дефинира клас MyCircle, който реализира кръг в равнината, с член-данни с частен достъп (координатите на центъра и
радиус) подразбиращ се конструктор, който задава кръг с радиус 1 и център началото на координатната система, конструктор,
който въвежда координати на центъра при подаден с параметър радиус, конструктор който подава всички член-данни чрез
параметри, деструктор, който съобщава за унищожаване на обект, методи за: определяне на лицето и обиколката на кръга, метод
за извеждане на всички член-данни. Класът да има статична член – променлива, която да брои създадените обекти и статичен
метод, който извежда този брой. Да се тества класът, като се създадат поне 3 кръга S1, S2, S3 с използване на всички конструктори
и извикване на всички методи поне веднъж. Главната функция, в която се създават и обработват обектите да не е приятелска за
класа.

Тема 23
Да се дефинира клас Sphere, който реализира сфера в пространството с член-данни с частен достъп (име, координати на центъра
и радиус), с подразбиращ се конструктор, който задава сфера с център началото на координатната система и радиус 1,
конструктор, който подава координати на центъра и радиус чрез параметри, деструктор, който съобщава за унищожаване на
обект, методи за: намиране на лицето на повърхнината на сферата и обема на кълбото, метод за извеждане на всички член -
данни. Да се дефинира приятелска функция, която определя дали две сфери имат общи точки. Да се тества класът, като се
създадат поне 3 сфери sfere1, sfere2, sfere3 с използване на всички конструктори и извикване на всички методи поне веднъж.
Главната функция, в която се създават и обработват обектите да не е приятелска за класа.
Тема 24
Да се дефинира клас Person, съдържащ име, фамилия и възраст. Да се дефинират два класа-наследници на Person - Doctor и
Patient, като пациентът обяви доктора за приятел. Patient да се дефинира като лице, извършило определен брой посещения при
лекаря, а докторът е човек, който има не повече от 1000 пациенти и извършва прегледи, които регистрира чрез увеличаване на
броя на прегледите на пациента (да има една променлива за броя на пациентите). Член – данните на родителския клас да са със
защитен достъп, а тези на дъщерните – с частен достъп. Всички класове да имат поне по два явно зададени конструктора и
деструктор, в които освен другите операции да се съобщава и за създаване и унищожаване на обект. В класа на доктора да има
член-функции за регистрация на посещение при лекар, извеждане на всички член - данни и изчисляване общия брой посещения
при лекаря. Да се създадат 5 обекта-хора - двама лекари и трима пациенти и да се регистрират поне 3 посещения. Главната
функция, в която се създават и обработват обектите да не е приятелска за класа.

Тема 25
Да се дефинира клас MyPerson, съдържащ име, фамилия и възраст. Да се дефинират два класа-наследници на MyPerson -
MyStudent и MyWorker. Член – данните на родителския клас да са със защитен достъп, а тези на дъщерните – с частен достъп.
Student да се дефинира като лице, което посещава университет и има успех, а работникът е човек, който има длъжност и получава
заплата. В класа на студента да има член-функции за въвеждане на оценки и изчисляване на среден успех, а в класа на работника-
метод за въвеждане на заплата и изчисляване на данъка. Всички класове да имат поне по два явно зададени конструктора и
деструктор, в които освен другите операции да се съобщава и за създаване и унищожаване на обект. Да се създадат 5 обекта-хора-
двама студенти и трима работници. Главната функция, в която се създават и обработват обектите да не е приятелска за класа.

Тема 26
Да се дефинира клас Poligon, с член-данни със защитен достъп: брой на страните, обиколка, лице и динамичен масив за
съхраняване на страните. Класът да има подразбиращ се конструктор, който въвежда от клавиатурата броя страни и техните
дължини и извежда съобщение за броя на страните на създавания обект, деструктор, който унищожава динамичния масив и
извежда съобщение какъв многоъгълник е унищожен, метод за намиране на обиколка, извеждане на страните и виртуален метод
за намиране на лице. Да се дефинират два класа-наследници – триъгълник и правоъгълник с член данни с частен достъп: име и
тип на многоъгълника и предефинирани методи за намиране на лице. Да се разработят приятелски функции, които определят
дали два триъгълника и два правоъгълника са подобни. Да се създадат 4 обекта-фигури - два триъгълника (t1 и t2)и два
правоъгълника (p1 и p2)и да се тестват всички методи. Главната функция, в която се създават и обработват обектите да не е
приятелска за класовете.

Тема 27
Да се дефинира клас CPoligon, с член-данни със защитен достъп: брой на страните, обиколка, лице, тип и име и динамичен масив
за съхраняване на страните. Класът да има подразбиращ се конструктор, който въвежда от клавиатурата името, броя страни и
техните дължини и извежда съобщение за типа на създавания обект, деструктор, който унищожава динамичния масив и извежда
съобщение какъв многоъгълник е унищожен, метод за намиране на обиколка, и виртуален метод за намиране на лице. Да се
дефинират два класа-наследници – успоредник с член – променлива за ъгъл с частен достъп и правилен шестоъгълник с
предефиниран метод за намиране на лице. Да се създадат 4 обекта-фигури - два шестоъгълника и два успоредника и да се тестват
всички методи. Главната функция, в която се създават и обработват обектите да не е приятелска за класовете.

Тема 28
Да се създадат родителски клас успоредник и дъщерен - правоъгълник. Успоредникът да има три член-данни със защитен
достъп, конструктор с три параметъра, като ъгълът е с подразбираща се стойност 90 градуса и подразбиращ се конструктор, който
въвежда от клавиатурата стойности за всички член-данни. Правоъгълникът да има член – променлива с частен достъп, в която се
записва типът на фигурата и конструктор, който извиква явно конструктор на успоредника. Двата класа трябва да имат
деструктори, които съобщават за унищожаване на обект, методи за изчисляване на обиколка и лице и за извеждане на членовете-
данни. Да се демонстрира работата на програмата с подходящи тестови примери за: създаване и унищожаване на обекти и
указатели от двата класа; работата на член-функциите на класовете. Главната функция, в която се създават и обработват обектите
да не е приятелска за класовете.

Тема 29
Да се разработи клас figura, представящ многоъгълник, с четири член – данни със защитен достъп: обиколка, лице, име и брой
страни, и негов наследник - triangle с три собствени член – данни с частен достъп – трите страни. Двата класа трябва да
съдържат конструктори (подразбиращи се и с параметри) и деструктори, които съобщават за унищожаване на обект. figura да има
виртуален метод за извеждане на членовете-данни, който да бъде предефиниран в наследника. Triangle да има методи за
изчисляване на обиколка и лице. Да се разработи приятелска функция на двата класа, която намира фигурата с по-голямо лице. Да
се демонстрира работата на програмата с подходящи тестови примери за: създаване и унищожаване на обекти и указатели от
двата класа; работата на член-функциите на класовете. Главната функция, в която се създават и обработват обектите да не е
приятелска за класовете.

Тема 30
Да се моделира квадрат с неговите свойства като се използват класове и наследяване чрез създаване на родителски клас
правоъгълник и дъщерен - квадрат. Правоъгълникът да има член – данни със защитен достъп две страни, обиколка, лице и тип
фигура. Двата класа трябва да съдържат конструктори, като този на правоъгълника да е с един подразбиращ се параметър и да
извежда съобщение за създаване на обект при извикването му, деструктори, които съобщават за унищожаване на обект, методи за
изчисляване на обиколка и лице и виртуална функция за отпечатване на членовете-данни. Да се демонстрира работата на
програмата с подходящи тестови примери за: създаване и унищожаване на обекти и указатели от двата класа; работата на член-
функциите на класовете. Главната функция, в която се създават и обработват обектите да не е приятелска за класовете.

Тема 31
Да се моделира конус с неговите свойства като се използват класове и наследственост. Да се създаде родителски клас валчесто
тяло и дъщерен - конус. Класът на валчестото тяло трябва да има защитени член-данни тип, радиус на основата, височина,
обиколка на основата, лице на основата, обем, конструктор по подразбиране, който въвежда от клавиатурата стойности за всички
член – данни и конструктор с параметри, който инициализира радиуса на основата, височината и типа на фигурата.
Конструкторите и деструкторите и на двата класа трябва да съобщават за създаване и унищожаване на обект. Класът на конуса
трябва да съдържа методи за изчисляване на повърхнина и обем и виртуална функция за отпечатване на членовете-данни. Да се
демонстрира работата на програмата с подходящи тестови примери за: създаване и унищожаване на обекти и указатели от двата
класа; работата на член-функциите на класовете. Главната функция, в която се създават и обработват обектите да не е приятелска
за класовете.

Тема 32
Да се дефинират класове vehicle и truck, които описват съответно превозно средство и камион с член данни за родителския клас
vehicle със защитен достъп (цена, марка, брой места и максимална скорост) и товароподемност за камиона. Класовете да имат
подразбиращи се конструктори, които въвеждат информация за обектите, конструктори, чрез които явно се подават стойностите
на член-данните, деструктори, които съобщават за унищожаване на обект, методи за достъп до скорост, виртуален метод за
извеждане на член – данните на vehicle, предефиниран за truck. Да се тества класът, като се създадат поне 3 коли и 3 автобуса.
Главната функция, в която се създават и обработват обектите да не е приятелска за класовете.

Тема 33
Да се създаде клас Poli4, представящ полином от четвърта степен с реални коефициенти с член – данни с частен достъп,
съхраняващи коефициентите. Да се дефинират подразбиращ се конструктор, който въвежда коефициентите от клавиатурата,
конструктор с параметри, който подава коефициентите, деструктор, който съобщава за унищожен обект. Класът да има set и get
методи за достъп до коефициентите пред втората, третата и четвъртата степен, както и член-функция calc_valueX, която да
изчислява стойността на полинома в точка point_X, предавана като параметър на функцията, и метод за извеждане на всички член
- данни. Класът да има статична член – променлива, която да брои създадените обекти и статични методи, които манипулират този
брой. Да се разработи приятелска функция на класа, която определя дали е биквадратен, от по-ниска степен или е пълен полином
от четвърта степен. Да се покаже работата с обекти от класа с подходящи примери. Главната функция, в която се създават и
обработват обектите да не е приятелска за класа.

Тема 34
Създайте клас MyCat, който да описва котки със следните характеристики: име, цвят, възраст (години), които са член-данни с частен достъп.
Когато се ражда коте, което е представител на този клас, то обикновено се казва Писана, черно е на цвят и е на нула години. Има възможност
при раждането да дадем желано от нас име и цвят на котката. Има и възможност да променяме кое да е от тези свойства на някоя котка
впоследствие, както и да научаваме нейното име, цвят или години (чрез извеждане на екрана). Всяка котка има следните поведения: може да
мяука (извежда се подходящ надпис на екрана, например „Котката Маца каза мяу”) и може да мърка. Създайте няколко котки (поне 4) от класа
MyCat, като поне една е със свойствата по подразбиране. На останалите променяйте името, цвета или възрастта. Накарайте всички котки да
мъркат. После ги накарайте да мяукат. Попитайте за името, цвета и възрастта на третата котка. Главната функция, в която се създават и
обработват обектите да не е приятелска за класа. Класът да има статична член – променлива, която да брои създадените обекти и статичен метод,
който извежда този брой.

Тема 35
Да се създаде клас PolinomSecondPower, представящ полином от втора степен с член – данни с частен достъп, съхраняващи
целочислените му коефициенти и решенията на квадратното уравнение. Да се дефинират подразбиращ се конструктор, който
въвежда коефициентите от клавиатурата, конструктор с параметри, който подава коефициентите, деструктор, който съобщава за
унищожен обект. Класът да има set и get методи за достъп до решенията, както и член-функция calcValue, която да изчислява
стойността на полинома в точка, предавана като параметър на функцията, и метод за извеждане на всички член - данни. Да се
разработи приятелска функция eqSolve за решаване на съответното квадратно уравнение. Да се въведат и обработят 10 полинома,
като се съхраняват в масив P2. Главната функция, в която се създават и обработват обектите да не е приятелска за класа.

Тема 36
Да се дефинират класове Conus (прав кръгов) и Paralelepiped (правоъгълен), съдържащи име на фигура, тип на фигура (ръбесто
или валчесто тяло), радиус за конуса и две страни за паралелепипеда, и височина за всяка от двете фигури. Да се дефинират
конструктори, където да се заделя памет за низовите променливи и да се инициализират член - данните, деструктор, който
съобщава за унищожаване на обект и освобождава заделената памет, методи за достъп до член-данните и три приятелски
функции: две за намиране на лицата на основите, и третата – за сравняване на лицата на основите им. Член-данните на класовете
да са с частен достъп (private). Главната функция, в която се създават динамично поне по два обекта от всеки клас и се тестват
всички методи, да не е приятелска за класовете.

Тема 37
Да се създаде клас, представящ полином от трета степен с целочислени коефициенти (член – данни с частен достъп). Да се
дефинират конструктори, които въвеждат коефициентите от клавиатурата или ги предават чрез параметри, set и get методи, както
и приятелска функция, която определя дали е от втора, от по-ниска степен или е пълен полином от трета степен, и член-функция
calculate_value която да изчислява стойността на полинома в точката x0, предавана чрез параметър. Класът да има статична член
– променлива, която да брои създадените обекти и статични методи, които манипулират този брой и се използват в
конструкторите и деструкторите. Да се покаже работата с обекти на класа с подходящи примери. Главната функция, в която се
създават динамично поне четири обекта да не е приятелска за класа.

Тема 38
Да се дефинира клас SVector, задаващ вектор в пространството чрез име и декартови координати. В класа да са дефинирани:
конструктор по подразбиране, задаващ нулев вектор, конструктор с 4 параметъра, заделящ памет за името на вектор и задаващ
координатите на вектора и името му, конструктор за копиране, функции за достъп, които връщат координати, приятелски функции
за събиране и изваждане на вектори и операторна функция за намиране на дължина на вектор, деструктор, който съобщава за
унищожаване на обект и освобождава памет. Класът да има статична член – променлива, която да брои създадените обекти и
статични методи, които манипулират и извеждат този брой и се извикват от конструкторите и деструкторите. Да се тества класът,
като се създадат поне 4 вектора. Член-данните на класа да са с частен достъп. Главната функция да не е приятелска за класа.

Тема 39
Да се дефинира клас Uchenik, съдържащ следните член-данни с частен достъп: име, клас, ръст и тегло. Класът да има конструктор
по подразбиране, който заделя памет за име и въвежда данните на ученик от клавиатурата, конструктор с два параметъра, който
задава клас и име, като подразбираща се стойност за класа е 1, конструктор с четири параметъра и копиращ конструктор. Класът
да има и деструктор, който съобщава името на унищожавания ученик и освобождава заделената памет. Да се реализират методи за
извеждане на информация за ученик, за достъп до ръста и за достъп до теглото на ученик. В главната функция да се създаде по
един ученик с всеки от конструкторите с параметри и масив u с не повече от 10 ученика с подразбиращия се конструктор. Да се
изведе информация за всички ученици от избран клас. Главната функция да не е приятелска за класа.

Тема 40
Да се дефинира клас student, съдържащ следните член-данни с частен достъп: име, фак.номер, курс и успех. Класът да има
конструктор по подразбиране, който въвежда данните на студент от клавиатурата, конструктор с три параметъра, който заделя
памет за име, задава курс, факултетен номер и име, като подразбираща се стойност за курса е 1, конструктор с четири параметъра
и копиращ конструктор. Класът да има и деструктор, който съобщава името на унищожавания студент и освобождава заделената
памет. Да се реализират методи за извеждане на информация за студент, за достъп до курса и за достъп до успеха. В главната
функция да се създаде по един студент с всеки от конструкторите с параметри и масив с не повече от 20 студента с
подразбиращия се конструктор. Да се изведе информация за всички студенти от избран курс. Главната функция да не е приятелска
за класа.

Тема 41
Да се напише програма на С++, която въвежда масив CNumbs от комплексни числа с не повече от 50 елемента и намира най-
голямото по модул комплексно число и неговия индекс в масива. Комплексните числа да бъдат реализирани като обекти на клас с
три член–данни с частен достъп (име на числото, реална и имагинерна част). Класът да има подразбиращ се конструктор, който
заделя памет за името и въвежда комплексно число, конструктор с параметри, който подава името и стойностите на реалната и
имагинерната част), деструктор, който съобщава за унищожаване на обект и освобождава памет и член-функции за: извеждане на
компонентите на комплексно число, изчисляване на модул и приятелски функции за реализиране на умножение и деление на
комплексни числа. Масивът от комплексни числа да се въвежда и обработва чрез функции, които не са приятелски за класа.

Тема 42
Създайте клас MyDog, който да описва куче със следните характеристики: име, цвят, възраст (години), които са член-данни с
частен достъп. Когато се ражда куче, което е представител на този клас, то обикновено се казва Шаро, пъстро е на цвят и е на нула
години. Има възможност при раждането да дадем желано от нас име и цвят на кучето. Има и възможност да променяме кое да е от
тези свойства на някое куче впоследствие, както и да научаваме неговото име, цвят или години (чрез извеждане на екрана). Всяко
куче има следните поведения: може да лае (извежда се подходящ надпис на екрана, например „Шаро каза Бау”) и може да яде.
Създайте няколко кучета(поне 4) от класа MyDog, като поне едно е със свойствата по подразбиране. На останалите променяйте
името, цвета или възрастта. Накарайте всички кучета да лаят. После ги накарайте да ядат . Попитайте за името, цвета и възрастта
на първото куче. Главната функция, в която се създават и обработват обектите да не е приятелска за класа. Класът да има статична
член – променлива, която да брои създадените обекти и статичен метод, който извежда този брой.
Тема 43
Да се дефинира клас KvMatrica, който реализира квадратна матрица от цели числа с член – данни с частен достъп, с подразбиращ
се конструктор, конструктор, който въвежда матрица и подава размерността като параметър, деструктор, който съобщава за
унищожаване на обект, методи за: намиране на минимален елемент по главния диагонал, извеждане на матрица и изчисляване на
сумата от елементите по второстепенния диагонал. Да се разработят приятелски функции на класа за поелементно събиране на
матрици. Да се тества класът, като се създадат матрици Т1 и Т2, като Т1 се създаде с подразбиращия се конструктор, а другата се
въвежда от клавиатурата. Главната функция, в която се създават и обработват обектите да не е приятелска за класа.

You might also like