1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
'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} обект, който е транспонираната матрица на текущата
|