Summary Files Commits Branches @commit @diff @stats
path: root / src
diff options
context:
space:
mode:
Commitb08779c75128475b250625b5f31e62e43b8abdd3 (patch)
Author
 Syndamia <kamen@syndamia.com>
2024-05-08 10:11:23 +0300
Committer
 Syndamia <kamen@syndamia.com>
2024-05-08 10:11:23 +0300
Filese1ccd9f967f98d67d075a953df337f4df04de002 /src
syndamia.com-b08779c75128475b250625b5f31e62e43b8abdd3.tar
syndamia.com-b08779c75128475b250625b5f31e62e43b8abdd3.tar.gz
syndamia.com-b08779c75128475b250625b5f31e62e43b8abdd3.zip
Parent3c54c1adbf08d5b548fd96d1c0524d880c39b3d6 (diff)
[te/oop-2023/w9,w10] Added exercise solutions
2 files changed, 22 insertions, 0 deletions
-rw-r--r--src/teaching/oop-2023/week10/index.md20
-rw-r--r--src/teaching/oop-2023/week9/index.md2
diff --git a/src/teaching/oop-2023/week10/index.md b/src/teaching/oop-2023/week10/index.md
index d73913b..961e247 100644
--- a/src/teaching/oop-2023/week10/index.md
+++ b/src/teaching/oop-2023/week10/index.md
@@ -8,11 +8,15 @@ GitHub classroom: [classroom.github.com/a/PbkITWhF](https://classroom.github.com
### Задача 1 - Шаблони
+&::solution-link [Решение](https://github.com/Syndamia/oop-2023-solutions/blob/main/week10/Exercise1)
+
Реализирайте шаблонен клас `Array`, който запазва динамично-заделен и оразмеряем масив от елементи с подаден тип.
Имплементирайте голяма четворка.
### Задача 2 - Оператори
+&::solution-link [Решение](https://github.com/Syndamia/oop-2023-solutions/blob/main/week10/Exercise2)
+
За предходния шаблонен клас имплементирайте оператори:
- [], който връща референция към елемента на подадения индекс
@@ -21,6 +25,8 @@ GitHub classroom: [classroom.github.com/a/PbkITWhF](https://classroom.github.com
### Задача 3 - Грешки
+&::solution-link [Решение](https://github.com/Syndamia/oop-2023-solutions/blob/main/week10/Exercise3)
+
Имплементирайте функция, която приема име на текстов файл и изкарва на екрана първия ред от него.
Ако файлът не може да бъде отворен, хвърлете грешка - низ.
Ако във файлът няма други редове (няма знакът `'\n'`), тогава хвърлете грешка число - размерът на файла.
@@ -33,6 +39,8 @@ GitHub classroom: [classroom.github.com/a/PbkITWhF](https://classroom.github.com
### Задача 4
+&::solution-link [Решение](https://github.com/Syndamia/oop-2023-solutions/blob/main/week10/Exercise4)
+
Реализирайте клас `Time24`, който запазва час и минути (в 24-часов формат) в две отделни целичислени член-данни.
Имплементирайте член-функция `Print24`, която изкарва часа на екрана в 24-часов формат.
Нека конструкторът му приема две целочислени променливи, една за часа и втора за минутите.
@@ -42,6 +50,8 @@ GitHub classroom: [classroom.github.com/a/PbkITWhF](https://classroom.github.com
### Задача 5
+&::solution-link [Решение](https://github.com/Syndamia/oop-2023-solutions/blob/main/week10/Exercise5)
+
Реализирайте клас `FN`, който запазва факултетен номер като неотрицателно цяло число от 5 цифри.
Реализирайте негов наследник `ModernFN`, който запазва и начален (префиксен) низ, състоящ се от цифра, две букви и още две цифри.
@@ -50,6 +60,8 @@ GitHub classroom: [classroom.github.com/a/PbkITWhF](https://classroom.github.com
### Задача 6
+&::solution-link [Решение](https://github.com/Syndamia/oop-2023-solutions/blob/main/week10/Exercise6)
+
Реализирайте клас `Grade`, който запазва оценка (от 2 до 6) като неотрицателна целочислена член-данна.
Реализирайте и негов наследник `GradeWithName`, който запазва и името на оценката като низ с произволна дължина.
@@ -58,6 +70,8 @@ GitHub classroom: [classroom.github.com/a/PbkITWhF](https://classroom.github.com
### Задача 7
+&::solution-link [Решение](https://github.com/Syndamia/oop-2023-solutions/blob/main/week10/Exercise7)
+
Реализирайте клас `String`, който запазва низ с произволна дължина.
Имплементирайте голяма петица и член-функция `At`, която приема индекс и връща референция към буквата на този индекс (при невалиден индекс хвърляте грешка).
@@ -70,6 +84,8 @@ GitHub classroom: [classroom.github.com/a/PbkITWhF](https://classroom.github.com
### Задача 8
+&::solution-link [Решение](https://github.com/Syndamia/oop-2023-solutions/blob/main/week10/Exercise8)
+
Реализирайте клас `User`, който запава име и парола като два низа с произволна дължина.
Реализирайте негов наследник `Moderator`, който запазва и подпис, който също е низ с произволна дължина.
Реализирайте наследник `Administrator` на `Moderator`, който запазва и оразмеряващ се масив от цели числа.
@@ -82,6 +98,8 @@ GitHub classroom: [classroom.github.com/a/PbkITWhF](https://classroom.github.com
### Задача 9
+&::solution-link [Решение](https://github.com/Syndamia/oop-2023-solutions/blob/main/week10/Exercise9)
+
Реализирайте клас `CommunicationPacket`, който запазва начален и краен адрес като две неотрицателни цели числа, заедно с трето число за размера на данните.
В този клас никога няма данни, затова размера винаги е нула.
@@ -92,6 +110,8 @@ GitHub classroom: [classroom.github.com/a/PbkITWhF](https://classroom.github.com
### Задача 10
+&::solution-link [Решение](https://github.com/Syndamia/oop-2023-solutions/blob/main/week10/Exercise10)
+
Реализирайте клас `String`, който запазва низ с произволна дължина, и имплементира оператори ==, !=, + (който връща нов низ с конкатенацията на двата низа).
Реализирайте негов наследник `ModifiableString`, който имплементира оператор[] &#20;(връщащ референция към буквата на дадения индекс) и оператор+=.
diff --git a/src/teaching/oop-2023/week9/index.md b/src/teaching/oop-2023/week9/index.md
index db2b6c3..50cea93 100644
--- a/src/teaching/oop-2023/week9/index.md
+++ b/src/teaching/oop-2023/week9/index.md
@@ -29,6 +29,8 @@ GitHub classroom: [classroom.github.com/a/wlL1oUg2](https://classroom.github.com
### Задача 3
+&::solution-link [Решение](https://github.com/Syndamia/oop-2023-solutions/blob/main/week09/Exercise3)
+
Реализирайте клас Train, който съдържа:
- модел като низ с максимална дължина от 127 знака