# Задачи - ООП, Седмица 4, 11.03.2026 'define expected-reading 3 min 'define created 11 March 2026 'define edited 11 March 2026 [$pagenav] .warn За всеки клас имплементирайте [=голяма четворка!=] ## За решаване ### Задача 1 Реализирайте клас [`Train`], който съдържа брой вагони, брой места за пътници, брой приети пътници, брой спирки които е минал, брой спирки които му остават, цена на билет и печалба от билети. Реализирайте селектори на всички тези параметри, конструктор с подадени стойности и публична член-функция [`ArriveAtStation`], която приема брой слизащи пътници и брой качващи се пътници. Освен това реализирайте публична член-функция [`Print`], която изкарва всички стойности на класа. ### Задача 2 Реализирайте клас [`IntArray`], който съдържа указател към масив от [`int`] елементи и капацитет. Реализирайте публични член-функции: .unordered - [`At`] която връща стойността по подаден индекс, - [`Resize`] която променя размера на масива по подаден такъв. - [`Concat`] която приема [`IntArray`] обект и слепява всички негови елементи след тези в текущия ### Задача 3 Реализирайте клас [`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`] обект, който е транспонираната матрица на текущата