diff options
| Commit | 0db24ceb2ef06358c32dd171d04050d5e3880a59 (patch) | |
|---|---|---|
| Author | 2026-03-11 08:17:05 +0200 | |
| Committer | 2026-03-11 08:17:05 +0200 | |
| Files | c5e825a47c64d5c7c8e030e527169ca54fb10e87 /src | |
| syndamia.com-0db24ceb2ef06358c32dd171d04050d5e3880a59.tar syndamia.com-0db24ceb2ef06358c32dd171d04050d5e3880a59.tar.gz syndamia.com-0db24ceb2ef06358c32dd171d04050d5e3880a59.zip | ||
| Parent | 68868dff1fe4c0e8d8094043118f39eccd5a58f3 (diff) | |
feat(teaching/oop-2025/w04): Add exercises
2 files changed, 68 insertions, 0 deletions
| -rw-r--r-- | src/teaching/oop-2025/index.du | 9 | ||||
| -rw-r--r-- | src/teaching/oop-2025/week04/index.du | 59 |
diff --git a/src/teaching/oop-2025/index.du b/src/teaching/oop-2025/index.du index 2cc5491..1ca27ca 100644 --- a/src/teaching/oop-2025/index.du +++ b/src/teaching/oop-2025/index.du @@ -51,3 +51,12 @@ |: [url ./week03 Задачи] || [url https://github.com/Syndamia/oop-2025-solutions/tree/main/Week03 Решения] + +|: 4 +|: 11.03.2026 +|: Голяма четворка + +|: +|: +|: +[url ./week04 Задачи] diff --git a/src/teaching/oop-2025/week04/index.du b/src/teaching/oop-2025/week04/index.du new file mode 100644 index 0000000..330e8c4 --- /dev/null +++ b/src/teaching/oop-2025/week04/index.du @@ -0,0 +1,59 @@ +# Задачи - ООП, Седмица 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`] обект, който е транспонираната матрица на текущата |