From 0db24ceb2ef06358c32dd171d04050d5e3880a59 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Wed, 11 Mar 2026 08:17:05 +0200 Subject: feat(teaching/oop-2025/w04): Add exercises --- meta/meta.tsv | 1 + src/teaching/oop-2025/index.du | 9 ++++++ src/teaching/oop-2025/week04/index.du | 59 +++++++++++++++++++++++++++++++++++ 3 files changed, 69 insertions(+) create mode 100644 src/teaching/oop-2025/week04/index.du 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`] обект, който е транспонираната матрица на текущата -- cgit v1.3.1-23-gd82d