Summary Files Commits Branches @commit @diff @stats
path: root / src / teaching / oop-2023 / week6 / index.du
diff options
context:
space:
mode:
1 files changed, 28 insertions, 25 deletions
-rw-r--r--src/teaching/oop-2023/week6/index.du53
diff --git a/src/teaching/oop-2023/week6/index.du b/src/teaching/oop-2023/week6/index.du
index 2662f2c..5eee7f9 100644
--- a/src/teaching/oop-2023/week6/index.du
+++ b/src/teaching/oop-2023/week6/index.du
@@ -1,8 +1,11 @@
-# Задачи - ООП, Седмица 6, 28.03.2024
+'def title Задачи - ООП, Седмица 6, 28.03.2024
+'def desc Условия на задачите за упражнение
+
+# {title}
\n
-GitHub classroom: [url https://classroom.github.com/a/rzSTn5pu classroom.github.com/a/rzSTn5pu]
+GitHub classroom: {url classroom.github.com/a/rzSTn5pu;https://classroom.github.com/a/rzSTn5pu}
.warn В задачите за файлове имплементирайте всички нужни проверки и затваряния
@@ -10,17 +13,17 @@ GitHub classroom: [url https://classroom.github.com/a/rzSTn5pu classroom.github.
### 1 задача - Копиращ конструктор и оператор=
-.solution-link [url https://github.com/Syndamia/oop-2023-solutions/blob/main/week06/Exercise01.cpp Решение]
+.solution-link {url Решение;https://github.com/Syndamia/oop-2023-solutions/blob/main/week06/Exercise01.cpp}
-Имплементирайте структура [`WoodenPlank`], която скрито запазва ширина, дължина и височина на дъската (целочислено), цената ѝ (число с плаваща запетая) и типа дърво (низ с максимум 1024 знака).
+Имплементирайте структура {` WoodenPlank}, която скрито запазва ширина, дължина и височина на дъската (целочислено), цената ѝ (число с плаваща запетая) и типа дърво (низ с максимум 1024 знака).
Имплементирайте get-ъри, set-ъри, копиращ конструктор, оператор=
### 2 задача - Голяма четворка
-.solution-link [url https://github.com/Syndamia/oop-2023-solutions/blob/main/week06/Exercise02.cpp Решение]
+.solution-link {url Решение;https://github.com/Syndamia/oop-2023-solutions/blob/main/week06/Exercise02.cpp}
-Имплементирайте структура [`DynamicString`], която скрито запазва указател към низ (в динамичната памет) и неговия размер.
+Имплементирайте структура {` DynamicString}, която скрито запазва указател към низ (в динамичната памет) и неговия размер.
Имплементирайте голяма четворка.
@@ -28,37 +31,37 @@ GitHub classroom: [url https://classroom.github.com/a/rzSTn5pu classroom.github.
### 3 задача
-.solution-link [url https://github.com/Syndamia/oop-2023-solutions/blob/main/week06/Exercise03.cpp Решение]
+.solution-link {url Решение;https://github.com/Syndamia/oop-2023-solutions/blob/main/week06/Exercise03.cpp}
Имплементирайте програма, която отваря файл (създава го, ако вече не е създаден) и вкарва текста "Hello World!" във файла.
Името на файла се подава от стандартния вход на един ред.
### 4 задача
-.solution-link [url https://github.com/Syndamia/oop-2023-solutions/blob/main/week06/Exercise04.cpp Решение]
+.solution-link {url Решение;https://github.com/Syndamia/oop-2023-solutions/blob/main/week06/Exercise04.cpp}
Имплементирайте програма, която приема име на файл от стандартния вход.
Изкарайте последния ред от файла.
-Редовете са разделени със знака [`\\n`].
+Редовете са разделени със знака {` \\n}.
### 5 задача
-.solution-link [url https://github.com/Syndamia/oop-2023-solutions/blob/main/week06/Exercise05.cpp Решение]
+.solution-link {url Решение;https://github.com/Syndamia/oop-2023-solutions/blob/main/week06/Exercise05.cpp}
Имплементирайте програма, която приема име на файл от стандартния вход.
Изкарайте броя редове и броя думи във файла.
### 6 задача
-.solution-link [url https://github.com/Syndamia/oop-2023-solutions/blob/main/week06/Exercise06.cpp Решение]
+.solution-link {url Решение;https://github.com/Syndamia/oop-2023-solutions/blob/main/week06/Exercise06.cpp}
От стандартния вход получавате, на два отделни реда, две имена на файлове.
Вмъкнете съдържанието на втория файл по средата на първия файл.
### 7 задача
-.solution-link [url https://github.com/Syndamia/oop-2023-solutions/blob/main/week06/Exercise07.cpp Решение]
+.solution-link {url Решение;https://github.com/Syndamia/oop-2023-solutions/blob/main/week06/Exercise07.cpp}
От стандартния вход получавате числата m и n, както и името на файл (на свой си ред).
Изкарайте на екрана от m-тата до n-тата буква (включително) от всеки ред във файла.
@@ -66,9 +69,9 @@ GitHub classroom: [url https://classroom.github.com/a/rzSTn5pu classroom.github.
### 8 задача
-.solution-link [url https://github.com/Syndamia/oop-2023-solutions/blob/main/week06/Exercise08.cpp Решение]
+.solution-link {url Решение;https://github.com/Syndamia/oop-2023-solutions/blob/main/week06/Exercise08.cpp}
-Имплементирайте структура [`FileBuffer`], която в конструктора си приема име на файл, отваря го и запазва (копира) цялото му съдържание в динамичната памет (с указател член-данна).
+Имплементирайте структура {` FileBuffer}, която в конструктора си приема име на файл, отваря го и запазва (копира) цялото му съдържание в динамичната памет (с указател член-данна).
.question Кога трябва да затворим файла?
@@ -76,29 +79,29 @@ GitHub classroom: [url https://classroom.github.com/a/rzSTn5pu classroom.github.
### 9 задача
-.solution-link [url https://github.com/Syndamia/oop-2023-solutions/blob/main/week06/Exercise09.cpp Решение]
+.solution-link {url Решение;https://github.com/Syndamia/oop-2023-solutions/blob/main/week06/Exercise09.cpp}
-Имплементирайте структура [`Person`], която приема име на човек (низ с максимална дължина от 1024 знака) и неговата възраст (целочислена стойност).
-Имплементирайте методи [`Save`] и [`Load`], които съответно запазват/прочитат данните в (двоичен) файл с подадено име.
+Имплементирайте структура {` Person}, която приема име на човек (низ с максимална дължина от 1024 знака) и неговата възраст (целочислена стойност).
+Имплементирайте методи {` Save} и {` Load}, които съответно запазват/прочитат данните в (двоичен) файл с подадено име.
## Трудни задачи
### 10 задача
-Имплементирайте структура [`Table`], която запазва произволен брой колони и редове с низови стойности.
+Имплементирайте структура {` Table}, която запазва произволен брой колони и редове с низови стойности.
Броя редове/колони може да се уразмерява по време на изпълнение.
Имплементирайте голяма четворка.
-Имплементирайте методи [`AddRow`] и [`AddColumn`], които вмъкват подадените стойности като нов ред/колона на дадения индекс.
-Аналогично имплементирайте методи [`RemoveRow`] и [`RemoveColumn`].
-[=Чрез всички тези=] имплементирайте метода [`ModifyValue`], който променя стойността на клетката на дадените индекси.
+Имплементирайте методи {` AddRow} и {` AddColumn}, които вмъкват подадените стойности като нов ред/колона на дадения индекс.
+Аналогично имплементирайте методи {` RemoveRow} и {` RemoveColumn}.
+{b Чрез всички тези} имплементирайте метода {` ModifyValue}, който променя стойността на клетката на дадените индекси.
-Имплементирайте методи [`Save`] и [`Load`], които запазват/зреждат таблицата в/от файл с подадено име, в текстовия CSV формат (всеки ред в таблицата е ред във файла, всички стойности в реда от таблицата са разделени със запетая в реда във файла).
+Имплементирайте методи {` Save} и {` Load}, които запазват/зреждат таблицата в/от файл с подадено име, в текстовия CSV формат (всеки ред в таблицата е ред във файла, всички стойности в реда от таблицата са разделени със запетая в реда във файла).
### 11 задача
-Имплементирайте структура [`City`], която запазва името на даден град (низ с максимална дължина от 1024 знака) и масив от указатели към други градове, които са негови съседи.
-Имплементирайте методи [`AddNeighbour`] и [`RemoveNeighbour`] (броя съседи може да се променя), както и голяма четворка.
+Имплементирайте структура {` City}, която запазва името на даден град (низ с максимална дължина от 1024 знака) и масив от указатели към други градове, които са негови съседи.
+Имплементирайте методи {` AddNeighbour} и {` RemoveNeighbour} (броя съседи може да се променя), както и голяма четворка.
-Имплементирайте методи [`Save`] и [`Load`], които запазват/зреждат всичките достижими градове от сегашния в/от (бинарен) файл с подадено име.
+Имплементирайте методи {` Save} и {` Load}, които запазват/зреждат всичките достижими градове от сегашния в/от (бинарен) файл с подадено име.
Подсказвам, че не можете да запазите указателите ей-така.