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
|
# Задачи - ООП, Седмица 4, 11.03.2026
'define expected-reading 3 min
'define created 11 March 2026
'define edited 11 March 2026
[$pagenav]
.warn За всеки клас имплементирайте [=голяма четворка!=]
## За решаване
### Задача 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`] обект, който е транспонираната матрица на текущата
|