'def title Задачи - ООП, Седмица 4, 11.03.2026 'def desc Условията на задачите за упражнение. # {title} {pagenav 3 min;11 March 2026;11 March 2026} .warn За всеки клас имплементирайте {b голяма четворка!} ## За решаване ### Задача 1 .solution-link {url Решение;https://github.com/Syndamia/oop-2025-solutions/tree/main/Week04/Exercise01} Реализирайте клас {` Train}, който съдържа брой вагони, брой места за пътници, брой приети пътници, брой спирки които е минал, брой спирки които му остават, цена на билет и печалба от билети. Реализирайте селектори на всички тези параметри, конструктор с подадени стойности и публична член-функция {` ArriveAtStation}, която приема брой слизащи пътници и брой качващи се пътници. Освен това реализирайте публична член-функция {` Print}, която изкарва всички стойности на класа. ### Задача 2 .solution-link {url Решение;https://github.com/Syndamia/oop-2025-solutions/tree/main/Week04/Exercise02} Реализирайте клас {` IntArray}, който съдържа указател към масив от {` int} елементи и капацитет. Реализирайте публични член-функции: .unordered - {` At} която връща стойността по подаден индекс, - {` Resize} която променя размера на масива по подаден такъв. - {` Concat} която приема {` IntArray} обект и слепява всички негови елементи след тези в текущия ### Задача 3 .solution-link {url Решение;https://github.com/Syndamia/oop-2025-solutions/tree/main/Week04/Exercise03} Реализирайте клас {` String}, който съдържа низ {` char*} и размер. Напомняме, че низа пак трябва да завършва на терминираща нула! Реализирайте конструктори: .unordered - по подразбиране, в който се запазва низа {` ""} - приемащ {` const char*} - приемащ {` String} Реализирайте публични член-функции: .unordered - селектор {` GetLength}, който връща размера на низа - константен селектор {` GetStr}, който връща константен указател към низа - {` Substring} който връща нов {` String} обект със съдържание, което е под-низ по подадените индекси - {` Concat} който връща нов {` String} обект със съдържание, което е слепения (конкатениран) низ между текущия и подадения {` String} ### Задача 4 Реализирайте клас {` Matrix}, който съдържа матрица от реални числа и нейния размер. Реализирайте конструктор, който приема размери и масив и попълва матрицата от ляво на дясно, от горе на долу. Реализирайте член-функции: .unordered - {` InsertRow}, която приема индекс и масив от реални числа и вмъква елементите като нов ред в матрицата - {` InsertCol}, което приема индекс и масив от реални числа и вмъква елементите като нова колона в матрицата - {` Sum}, която приема втора матрица и връща {` Matrix} обект, който е сумата на текущата и подадената матрица - {` Multiply}, която приема втора матрица и връща {` Matrix} обект, който е умножението на текущата и подадената матрица (ред по стълб) - {` Transpose}, която връща {` Matrix} обект, който е транспонираната матрица на текущата