Summary Files Commits Branches @commit @diff @stats
diff options
context:
space:
mode:
Commit0db24ceb2ef06358c32dd171d04050d5e3880a59 (patch)
Author
 Syndamia <kamen@syndamia.com>
2026-03-11 08:17:05 +0200
Committer
 Syndamia <kamen@syndamia.com>
2026-03-11 08:17:05 +0200
Filesc5e825a47c64d5c7c8e030e527169ca54fb10e87
syndamia.com-0db24ceb2ef06358c32dd171d04050d5e3880a59.tar
syndamia.com-0db24ceb2ef06358c32dd171d04050d5e3880a59.tar.gz
syndamia.com-0db24ceb2ef06358c32dd171d04050d5e3880a59.zip
Parent68868dff1fe4c0e8d8094043118f39eccd5a58f3 (diff)
feat(teaching/oop-2025/w04): Add exercises
3 files changed, 69 insertions, 0 deletions
-rw-r--r--meta/meta.tsv1
-rw-r--r--src/teaching/oop-2025/index.du9
-rw-r--r--src/teaching/oop-2025/week04/index.du59
diff --git a/meta/meta.tsv b/meta/meta.tsv
index dca2136..06e31ec 100644
--- a/meta/meta.tsv
+++ b/meta/meta.tsv
@@ -118,6 +118,7 @@ teaching/oop-2025/week01/intro.html Уводни бележки - ООП, Сед
teaching/oop-2025/week01/index.html Задачи - ООП, Седмица 1, 18.02.2026 Условията на задачите за упражнение.
teaching/oop-2025/week02/index.html Задачи - ООП, Седмица 2, 25.02.2026 Условията на задачите за упражнение.
teaching/oop-2025/week03/index.html Задачи - ООП, Седмица 3, 04.03.2026 Условията на задачите за упражнение.
+teaching/oop-2025/week04/index.html Задачи - ООП, Седмица 4, 11.03.2026 Условията на задачите за упражнение.
blog/connect-to-mysql-in-dotnet-ef/index.html Connect to MySql in .NET and Entity Framework Connecting a .NET application to a MySql database (with Entity Framework) can be tricky. Here is what works for me.
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`] обект, който е транспонираната матрица на текущата