Summary Files Commits Branches @commit @diff @stats
path: root / src / teaching / upp-2025 / week08 / index.du
diff options
context:
space:
mode:
1 files changed, 146 insertions, 102 deletions
-rw-r--r--src/teaching/upp-2025/week08/index.du248
diff --git a/src/teaching/upp-2025/week08/index.du b/src/teaching/upp-2025/week08/index.du
index 4b75284..f7b2eaa 100644
--- a/src/teaching/upp-2025/week08/index.du
+++ b/src/teaching/upp-2025/week08/index.du
@@ -1,22 +1,23 @@
-# Задачи - УПП, Седмица 8, 20.11.2025
+'def title Задачи - УПП, Седмица 8, 20.11.2025
+'def desc Условията на задачите за упражнение.
-'define expected-reading 34 min
-'define created 15 November 2025
-'define edited 23 November 2025
-[$pagenav]
+# {title}
-GitHub Classroom: [url https://classroom.github.com/a/rhpKbNmH]
+{pagenav 34 min;15 November 2025;23 November 2025}
+
+GitHub Classroom: {url https://classroom.github.com/a/rhpKbNmH}
## За решаване
### Задача 1
-.solution-link [url https://github.com/Syndamia/upp-2025-solutions/tree/main/Week08/Exercise01.cpp Решение]
+.solution-link {url Решение;https://github.com/Syndamia/upp-2025-solutions/tree/main/Week08/Exercise01.cpp}
От входа получавате матрица 5 на 5 от цели числа.
-Трябва да върнете дали е разредена матрица: дали има [*повече*] нули отколкото други числа.
+Трябва да върнете дали е разредена матрица: дали има {i повече} нули отколкото други числа.
-:table_2
+:table
+:2
|= Вход
|= Изход
@@ -45,9 +46,10 @@ Not sparse
Sparse
+
### Задача 2
-.solution-link [url https://github.com/Syndamia/upp-2025-solutions/tree/main/Week08/Exercise02.cpp Решение]
+.solution-link {url Решение;https://github.com/Syndamia/upp-2025-solutions/tree/main/Week08/Exercise02.cpp}
Напишете функция, която получава матрица с произволен размер и масив, чиято дължина е същата като на един ред в матрицата.
@@ -56,7 +58,8 @@ Sparse
От входа получавате матрица 7 на 3 от цели неотрицателни числа.
Използвайки вашата функция, намерете сумата на всички редове и я изкарайте.
-:table_2
+:table
+:2
|= Вход
|= Изход
@@ -89,9 +92,10 @@ Sparse
204 208 379
+
### Задача 3
-.solution-link [url https://github.com/Syndamia/upp-2025-solutions/tree/main/Week08/Exercise03.cpp Решение]
+.solution-link {url Решение;https://github.com/Syndamia/upp-2025-solutions/tree/main/Week08/Exercise03.cpp}
Напишете функция, която получава две матрици с произволни размери, съствени от реални числа.
Може да допуснете, че размера на втората матрица е по-малък от тази на първата.
@@ -100,14 +104,15 @@ Sparse
Тоест, всички елементи от горния ляв ъгъл, надолу и надясно колкото е размера на втората матрица.
От входа получавате матрица 6 на 6 от реални числа.
-След това получавате 4 неотрицателни числа: първите две са координат в матрицата (където горния ляв ъгъл е [`(0, 0)`]), вторите две са нейни размери.
+След това получавате 4 неотрицателни числа: първите две са координат в матрицата (където горния ляв ъгъл е {` (0, 0)}), вторите две са нейни размери.
-Използвайки вашата функция, трябва да изкарате подматрицата с начало подадения координат и размери подадените размери [=използвайки=] вашата функция.
+Използвайки вашата функция, трябва да изкарате подматрицата с начало подадения координат и размери подадените размери {b използвайки} вашата функция.
.note
-[=(23.11.2025)=] Опростени някои примери.
+{b (23.11.2025)} Опростени някои примери.
-:table_2
+:table
+:2
|= Вход
|= Изход
@@ -180,26 +185,28 @@ Sparse
100 64 46.204 30812
+
### Задача 4
-.solution-link [url https://github.com/Syndamia/upp-2025-solutions/tree/main/Week08/Exercise04.cpp Решение]
+.solution-link {url Решение;https://github.com/Syndamia/upp-2025-solutions/tree/main/Week08/Exercise04.cpp}
City Bloxx е известна мобилна игра за строене на сгради.
В нейния "Build city" режим, целта е построените сгради да се подредят в матрица 5 на 5.
Нека да разгледаме следните правила за сгради (в самата игра има някои разлики):
.numbered
-1. [*Жилищните сгради*] може да се поставят навсякъде.
-2. [*Търговските сгради*] трябва да бъдат поставени до поне една жилищна сграда.
-3. [*Офис сградите*] трябва да бъдат поставени до поне една жилищна и една търговска.
-4. [*Луксозните сгради*] трябва да бъдат поставени до поне една жилищна, една търговска и една офис сграда.
+1. {i Жилищните сгради} може да се поставят навсякъде.
+2. {i Търговските сгради} трябва да бъдат поставени до поне една жилищна сграда.
+3. {i Офис сградите} трябва да бъдат поставени до поне една жилищна и една търговска.
+4. {i Луксозните сгради} трябва да бъдат поставени до поне една жилищна, една търговска и една офис сграда.
-Сгради са съседни само по вертикал и хоризонтал, [=не=] по диагонал.
+Сгради са съседни само по вертикал и хоризонтал, {b не} по диагонал.
От входа получавате масив 5 на 5 с цели числа, където с 1 до 4 се обозначават сградите, от жилищни до луксозни.
Изкарайте дали подредбата на сградите е позволена (следва горните правила).
-:table_2
+:table
+:2
|= Вход
|= Изход
@@ -254,14 +261,16 @@ City Bloxx е известна мобилна игра за строене на
|: Valid
+
### Задача 5
-.solution-link [url https://github.com/Syndamia/upp-2025-solutions/tree/main/Week08/Exercise05.cpp Решение]
+.solution-link {url Решение;https://github.com/Syndamia/upp-2025-solutions/tree/main/Week08/Exercise05.cpp}
От входа получавате матрица 3 на 3, съствена от цели числа.
Трябва да я транспонирате: да смените елементите над и под главния диагонал, и да изкарате резултата.
-:table_2
+:table
+:2
|= Вход
|= Изход
@@ -290,9 +299,10 @@ City Bloxx е известна мобилна игра за строене на
0 2 5
+
### Задача 6
-.solution-link [url https://github.com/Syndamia/upp-2025-solutions/tree/main/Week08/Exercise06.cpp Решение]
+.solution-link {url Решение;https://github.com/Syndamia/upp-2025-solutions/tree/main/Week08/Exercise06.cpp}
Напишете функция, която приема матрица с произволни размери, съствена от реални числа, заедно с два индекса.
Разменете колоните на подадените индекси, ако това е възможно.
@@ -302,9 +312,10 @@ City Bloxx е известна мобилна игра за строене на
Трябва да размените двете колони, използвайки вашата функция, и да изкарате резултата.
-[*Вашия изход не е нужно да бъде подравнен.*]
+{i Вашия изход не е нужно да бъде подравнен.}
-:table_2
+:table
+:2
|= Вход
|= Изход
@@ -348,17 +359,19 @@ City Bloxx е известна мобилна игра за строене на
16.84 53.84 0 -21.11 23.22
+
### Задача 7
-.solution-link [url https://github.com/Syndamia/upp-2025-solutions/tree/main/Week08/Exercise07.cpp Решение]
+.solution-link {url Решение;https://github.com/Syndamia/upp-2025-solutions/tree/main/Week08/Exercise07.cpp}
От входа получавате матрица от букви 3 на 3.
-Тя определя шаблон, където буквата [`*`] означава, че всяка стойност е позволена.
+Тя определя шаблон, където буквата {` *} означава, че всяка стойност е позволена.
След това от входа получавате матрица 6 на 6, съствена от букви.
-Трябва да намерите всички срещания на шаблона в тази матрица, като [=срещанията може да се застъпват!=]
+Трябва да намерите всички срещания на шаблона в тази матрица, като {b срещанията може да се застъпват!}
-:table_2
+:table
+:2
|= Вход
|= Изход
@@ -419,17 +432,19 @@ City Bloxx е известна мобилна игра за строене на
|: 16
+
### Задача 8
-.solution-link [url https://github.com/Syndamia/upp-2025-solutions/tree/main/Week08/Exercise08.cpp Решение]
+.solution-link {url Решение;https://github.com/Syndamia/upp-2025-solutions/tree/main/Week08/Exercise08.cpp}
От входа получавате две матрици 3 на 3, съствени от цели неотрицателни числа.
Пресметнете умножението на матриците (ред по стълб) и изкарайте резултата.
.note
-[=(23.11.2025)=] Оправен входа на втория пример.
+{b (23.11.2025)} Оправен входа на втория пример.
-:table_2
+:table
+:2
|= Вход
|= Изход
@@ -464,30 +479,32 @@ City Bloxx е известна мобилна игра за строене на
17 13 14
+
### Задача 9
-.solution-link [url https://github.com/Syndamia/upp-2025-solutions/tree/main/Week08/Exercise09.cpp Решение]
+.solution-link {url Решение;https://github.com/Syndamia/upp-2025-solutions/tree/main/Week08/Exercise09.cpp}
При изграждането на устройства като клавиатури, често се използва "бутонна матрица".
-Няма да навлизаме в електрониката, но идеята е че когато натиснеш бутон, съответната колона [=и=] ред са "свързани"/активни.
+Няма да навлизаме в електрониката, но идеята е че когато натиснеш бутон, съответната колона {b и} ред са "свързани"/активни.
-[=Тоест, когато активни ред и колона се пресичат, тогава съответния бутон е натиснат.=]
+{b Тоест, когато активни ред и колона се пресичат, тогава съответния бутон е натиснат.}
Това означава, че се нуждаем да погледнем само състоянията на всеки ред и колона, и ще знаем всички натиснати бутони (вместо да поглеждаме всеки бутон поотделно).
'footnote keypad_image_attrib Изображение от Sakurambo - създадено чрез Adobe Illustrator CS2, Публичен домейн, [url https://commons.wikimedia.org/w/index.php?curid=2048341]
-Нека да разглеждаме стандартна 4 на 3 телефонна клавиатура[$keypad_image_attrib]:
+Нека да разглеждаме стандартна 4 на 3 телефонна клавиатура{keypad_image_attrib}:
-[image https://upload.wikimedia.org/wikipedia/commons/thumb/7/73/Telephone-keypad2.svg/330px-Telephone-keypad2.svg.png]
+{img https://upload.wikimedia.org/wikipedia/commons/thumb/7/73/Telephone-keypad2.svg/330px-Telephone-keypad2.svg.png}
От входа първо получавате 4 булеви стойности: дали реда е активен (отгоре надолу).
След това получавате още 3 булеви стойности: дали колоната е активна (отляво надясно).
-Изкарайте кои бутони са натиснати, използвайки цифровите знаци, звезда ([`*`]) и диез ([`#`]).
+Изкарайте кои бутони са натиснати, използвайки цифровите знаци, звезда ({` *}) и диез ({` #}).
Ако няма натиснати, изкарайте съответно съобщение.
-:table_2
+:table
+:2
|= Вход
|= Изход
@@ -510,43 +527,44 @@ City Bloxx е известна мобилна игра за строене на
|: Nothing pressed
+
### Задача 10
-.solution-link [url https://github.com/Syndamia/upp-2025-solutions/tree/main/Week08/Exercise10.cpp Решение]
+.solution-link {url Решение;https://github.com/Syndamia/upp-2025-solutions/tree/main/Week08/Exercise10.cpp}
-[url https://en.wikipedia.org/wiki/Pascal%27s_triangle Триъгълника на Паскал] е изчисление, при което се конструира триъгълник от числа.
+{url Триъгълника на Паскал;https://en.wikipedia.org/wiki/Pascal%27s_triangle} е изчисление, при което се конструира триъгълник от числа.
По двете "рамене" има единици, и всяко вътрешно число е сумата на горните две.
'footnote pascal_animation_attrib Анимация от Hersfold - собствен труд, Публичен домейн, [url https://commons.wikimedia.org/w/index.php?curid=3902538]
-Пояснителна анимация[$pascal_animation_attrib]:
+Пояснителна анимация{pascal_animation_attrib}:
-[image https://upload.wikimedia.org/wikipedia/commons/0/0d/PascalTriangleAnimated2.gif]
+{img https://upload.wikimedia.org/wikipedia/commons/0/0d/PascalTriangleAnimated2.gif}
-[=Генерирайте=] и изкарайте триъгълника на паскал в матрица 11 на 11, където двете страни на триъгълника са първата колона и главния диагонал.
+{b Генерирайте} и изкарайте триъгълника на паскал в матрица 11 на 11, където двете страни на триъгълника са първата колона и главния диагонал.
Нека стойностите извън триъгълника да са нули.
-[=Изход:=] [*(не е нужно да бъде подравнен)*]
+{b Изход:} {i (не е нужно да бъде подравнен)}
.comment https://www.fcfung2000.com/ufcfiles/ufcmatrk.htm
```
-[=1=] 0 0 0 0 0 0 0 0 0 0
-[=1=] [=1=] 0 0 0 0 0 0 0 0 0
-[=1=] 2 [=1=] 0 0 0 0 0 0 0 0
-[=1=] 3 3 [=1=] 0 0 0 0 0 0 0
-[=1=] 4 6 4 [=1=] 0 0 0 0 0 0
-[=1=] 5 10 10 5 [=1=] 0 0 0 0 0
-[=1=] 6 15 20 15 6 [=1=] 0 0 0 0
-[=1=] 7 21 35 35 21 7 [=1=] 0 0 0
-[=1=] 8 28 56 70 56 28 8 [=1=] 0 0
-[=1=] 9 36 84 126 126 84 36 9 [=1=] 0
-[=1=] 10 45 120 210 252 210 120 45 10 [=1=]
+{b 1} 0 0 0 0 0 0 0 0 0 0
+{b 1} {b 1} 0 0 0 0 0 0 0 0 0
+{b 1} 2 {b 1} 0 0 0 0 0 0 0 0
+{b 1} 3 3 {b 1} 0 0 0 0 0 0 0
+{b 1} 4 6 4 {b 1} 0 0 0 0 0 0
+{b 1} 5 10 10 5 {b 1} 0 0 0 0 0
+{b 1} 6 15 20 15 6 {b 1} 0 0 0 0
+{b 1} 7 21 35 35 21 7 {b 1} 0 0 0
+{b 1} 8 28 56 70 56 28 8 {b 1} 0 0
+{b 1} 9 36 84 126 126 84 36 9 {b 1} 0
+{b 1} 10 45 120 210 252 210 120 45 10 {b 1}
### Задача 11
-.solution-link [url https://github.com/Syndamia/upp-2025-solutions/tree/main/Week08/Exercise11.cpp Решение]
+.solution-link {url Решение;https://github.com/Syndamia/upp-2025-solutions/tree/main/Week08/Exercise11.cpp}
От входа получавате матрица 10 на 10 от цели неотрицателни числа.
След това получавате размер между 0 и 10.
@@ -559,11 +577,12 @@ City Bloxx е известна мобилна игра за строене на
Не добавяйте към средното аритметично несъществуващи клетки (напр. клетката в горния ляв ъгъл няма клетки над или в ляво от себе си).
.note
-[=(23.11.2025)=] Добавени още примери.
+{b (23.11.2025)} Добавени още примери.
-[*(Вашия изход не е нужно да бъде подравнен.)*]
+{i (Вашия изход не е нужно да бъде подравнен.)}
-:table_2
+:table
+:2
|= Вход
|= Изход
@@ -649,61 +668,65 @@ City Bloxx е известна мобилна игра за строене на
0 0 0 0 0 0 2 0 0 0
+
### Задача 12
-.solution-link [url https://github.com/Syndamia/upp-2025-solutions/tree/main/Week08/Exercise12.cpp Решение]
+.solution-link {url Решение;https://github.com/Syndamia/upp-2025-solutions/tree/main/Week08/Exercise12.cpp}
От входа получавате два реални координата, между (0,0) и (10,10).
-Трябва да върнете матрица 10 на 10 от знаци, която се съставя единствено от шпации (spaces) и хиксове ([`x`]).
+Трябва да върнете матрица 10 на 10 от знаци, която се съставя единствено от шпации (spaces) и хиксове ({` x}).
Зачитаме, че координатите директно съответстват на матрицата, като (0,0) се намира в горния ляв ъгъл и (10,10) в долния десен.
В тази матрица, по подразбиране стоят само шпации.
Хиксовете се намират там, където начертаната отсечка между входните точки би застъпила матрицата.
Примерна диаграма:
-[image ./img/line_interpolation.png]
+{img ./img/line_interpolation.png}
Тази операция се нарича интерполация.
.note
-[=(23.11.2025)=] Добавени още примери.
+{b (23.11.2025)} Добавени още примери.
-:table_2
+:table
+:2
|= Вход
|= Изход
|: 1 8.5 8.5 2.5
|:
```
-'include ./text/output_interpolation_1.txt
+'snippet 1 $ ./text/output_interpolation_1.txt
|: 0 0 10 10
|:
```
-'include ./text/output_interpolation_2.txt
+'snippet 1 $ ./text/output_interpolation_2.txt
|: 2.3 1.8 9.9 7
|:
```
-'include ./text/output_interpolation_3.txt
+'snippet 1 $ ./text/output_interpolation_3.txt
|: 0 5 10 5
|:
```
-'include ./text/output_interpolation_4.txt
+'snippet 1 $ ./text/output_interpolation_4.txt
+
## За самоподготовка
### Задача 13
-.solution-link [url https://github.com/Syndamia/upp-2025-solutions/tree/main/Week08/Exercise13.cpp Решение]
+.solution-link {url Решение;https://github.com/Syndamia/upp-2025-solutions/tree/main/Week08/Exercise13.cpp}
От входа получавате матрица 8 на 8, съставена от символите точка и плюс.
Трябва да върнете височината и ширината на най-големия правоъгълник, който застъпва всички плюсове.
-:table_2
+:table
+:2
|= Вход
|= Изход
@@ -747,14 +770,16 @@ City Bloxx е известна мобилна игра за строене на
|: 8 8
+
### Задача 14
-.solution-link [url https://github.com/Syndamia/upp-2025-solutions/tree/main/Week08/Exercise14.cpp Решение]
+.solution-link {url Решение;https://github.com/Syndamia/upp-2025-solutions/tree/main/Week08/Exercise14.cpp}
От входа приемате масив от 6 елемента и матрица с 6 реда и 3 колони, всички съставени от реални числа.
Трябва да реализирате умножение на вектор по матрица (където масива е вектора).
-:table_2
+:table
+:2
|= Вход
|= Изход
@@ -783,16 +808,18 @@ City Bloxx е известна мобилна игра за строене на
|: 8 7 41.8
+
### Задача 15
-.solution-link [url https://github.com/Syndamia/upp-2025-solutions/tree/main/Week08/Exercise15.cpp Решение]
+.solution-link {url Решение;https://github.com/Syndamia/upp-2025-solutions/tree/main/Week08/Exercise15.cpp}
От входа получавате матрица 9 на 7 с реални числа.
След това получавате още едно реално число: максимална разлика.
Проверете дали данните са гладки: стойността във всяка една клетка да се различава с най-много максималната разлика от всички свои съседни клетки (по хоризонтала, вертикала и диагонала).
-:table_2
+:table
+:2
|= Вход
|= Изход
@@ -857,6 +884,7 @@ City Bloxx е известна мобилна игра за строене на
|: Not smooth
+
### Задача 16
Напишете функция която приема матрица с произволни размери и "връща" матрица, която е като входната матрица, но всички елементи са "завъртяни" на дясно с 90 градуса.
@@ -867,9 +895,10 @@ City Bloxx е известна мобилна игра за строене на
Ако не можете, не записвайте нищо във върнатата.
От входа получавате матрица 4 на 8, съставена от цели числа.
-[=Използвайки вашата функция=], завъртете матрицата и изкарайте резултата.
+{b Използвайки вашата функция}, завъртете матрицата и изкарайте резултата.
-:table_2
+:table
+:2
|= Вход
|= Изход
@@ -892,6 +921,7 @@ City Bloxx е известна мобилна игра за строене на
32 24 16 8
+
### Задача 17
Трябва да реализирате (опростен вариант на) "pixel binning": спрямо подаден коефициент, стойностите в клетки се смесват.
@@ -901,7 +931,8 @@ City Bloxx е известна мобилна игра за строене на
От входа получавате матрица 12 на 12 с цели неотрицателни числа и неотрицателен binning коефициент.
Трябва да върнете матрицата след приложен binning.
-:table_2
+:table
+:2
|= Вход
|= Изход
@@ -937,6 +968,7 @@ City Bloxx е известна мобилна игра за строене на
2 2 0 0 0 0 0 0 0 0 12 12
+
### Задача 18
От входа получавате матрица 10 на 10 с цели неотрицателни числа.
@@ -945,7 +977,8 @@ City Bloxx е известна мобилна игра за строене на
Сравнявайте матриците по техния размер, тоест броя елементи.
Ако има няколко еднакво големи подматрици, може да изкарате която и да е от тях.
-:table_2
+:table
+:2
|= Вход
|= Изход
@@ -970,6 +1003,7 @@ City Bloxx е известна мобилна игра за строене на
1 1 1
+
### Задача 19
От входа получавате матрица 8 на 8 от реални числа.
@@ -984,7 +1018,8 @@ City Bloxx е известна мобилна игра за строене на
Накрая изкарате резултатното число.
-:table_2
+:table
+:2
|= Вход
|= Изход
@@ -1020,9 +1055,10 @@ City Bloxx е известна мобилна игра за строене на
160 155
+
### Задача 20
-[=Генерирайте=] и изкарайте [url https://en.wikipedia.org/wiki/Bell_triangle триъгълника на Бел] в долния ляв ъгъл на матрица 11 на 11.
+{b Генерирайте} и изкарайте {url триъгълника на Бел;https://en.wikipedia.org/wiki/Bell_triangle} в долния ляв ъгъл на матрица 11 на 11.
Това означава, че страните на триъгълника включват първата колона и главния диагонал.
.bulleted
@@ -1033,13 +1069,13 @@ City Bloxx е известна мобилна игра за строене на
'footnote bell_animation_attrib Анимация от Xanthoxyl - собствен труд, CC BY-SA 3.0, [url https://commons.wikimedia.org/w/index.php?curid=5832904]
-Пояснителна анимация[$bell_animation_attrib]:
+Пояснителна анимация{bell_animation_attrib}:
-[image https://upload.wikimedia.org/wikipedia/commons/a/ab/BellNumberAnimated.gif]
+{img https://upload.wikimedia.org/wikipedia/commons/a/ab/BellNumberAnimated.gif}
-Тази задача е подобна на [url #-10 Задача 10].
+Тази задача е подобна на {url Задача 10;#-10}.
-[=Изход:=] [*(не е нужно да бъде подравнен)*]
+{b Изход:} {i (не е нужно да бъде подравнен)}
.comment https://oeis.org/A011971
@@ -1068,7 +1104,8 @@ https://www.apcomputersciencetutoring.com/2d-array-practice-exercises/#grow-meth
Ако изходната матрица е по-голяма, попълнете празните позиции с нули.
-:table_2
+:table
+:2
|= Вход
|= Изход
@@ -1101,6 +1138,7 @@ https://www.apcomputersciencetutoring.com/2d-array-practice-exercises/#grow-meth
7 8
+
### Задача 22
От входа получавате матрица 3 на 3 със знаци.
@@ -1108,11 +1146,12 @@ https://www.apcomputersciencetutoring.com/2d-array-practice-exercises/#grow-meth
Трябва да изкарате матрица със знаци 9 на 9, в която е попълнено изображението спрямо режима.
.numbered
-1. [=Режим 1=] обозначава повтаряне, където изображението се повтаря последователно
-2. [=Режим 2=] обозначава "border", където изображението се слага в центъра и останалта част се попълва със знак диес [`#`].
-3. [=Режим 3=] обозначава "clamp", изображението се слага в центъра и останалата част се попълва като се повтаря последната буква. Тоест, дясното 3 на 3 се попълва с повторение на десния знак.
+1. {b Режим 1} обозначава повтаряне, където изображението се повтаря последователно
+2. {b Режим 2} обозначава "border", където изображението се слага в центъра и останалта част се попълва със знак диес {` #}.
+3. {b Режим 3} обозначава "clamp", изображението се слага в центъра и останалата част се попълва като се повтаря последната буква. Тоест, дясното 3 на 3 се попълва с повторение на десния знак.
-:table_2
+:table
+:2
|= Вход
|= Изход
@@ -1144,6 +1183,7 @@ f g h
|:
```
+'emplace
# # # # # # # # #
# # # # # # # # #
# # # # # # # # #
@@ -1153,6 +1193,7 @@ f g h
# # # # # # # # #
# # # # # # # # #
# # # # # # # # #
+'endemplace
|:
```
@@ -1174,6 +1215,7 @@ f f f g g g h h h
f f f g g g h h h
+
### Задача 23
От входа получавате цяло неотрицателно число, по-малко от 50.
@@ -1181,9 +1223,10 @@ f f f g g g h h h
Зачитайте, че 0 винаги е в центъра на спиралата и се въртите първо с една позиция разстояние, после с две и так. нат.
-[*(Вашия изход не е нужно да бъде подравнен.)*]
+{i (Вашия изход не е нужно да бъде подравнен.)}
-:table_2
+:table
+:2
|= Вход
|= Изход
@@ -1215,6 +1258,7 @@ f f f g g g h h h
15 14 13 12
+
## За любознателни
### Задача 24
@@ -1222,24 +1266,24 @@ f f f g g g h h h
Реализирайте матричен калкулатор.
От входа получавате матрица 4 на 4 с реални числа и след това получавате редица операции.
-Всяка операция започва с буква, като буквата [`$`] сигнализира край на програмата.
+Всяка операция започва с буква, като буквата {` $} сигнализира край на програмата.
След всеки знак има няколко аргумента, т.е. допълнителни стойности които трябва да се въведат, преди операцията да се изпълни.
.bulleted
-- Операцията [`*`] обозначава умножение на ред, и след знака има цяло неотрицателно число за индекс на ред и след него е реално число (коефициент с който да умножим реда).
-- Операцията [`+`] обозначава сума на редове, след знака се очакват два неотрицателни индекса на редове, първия ред се сумира в втория
-- Операцията [`^`] обозначава размяна на редове, след знака се очакват два неотрицателни индекса на редове и стойностите им се разменят.
+- Операцията {` *} обозначава умножение на ред, и след знака има цяло неотрицателно число за индекс на ред и след него е реално число (коефициент с който да умножим реда).
+- Операцията {` +} обозначава сума на редове, след знака се очакват два неотрицателни индекса на редове, първия ред се сумира в втория
+- Операцията {` ^} обозначава размяна на редове, след знака се очакват два неотрицателни индекса на редове и стойностите им се разменят.
-След всяка операция (освен [`$`]) трябва да изкарате състоянието на матрицата.
+След всяка операция (освен {` $}) трябва да изкарате състоянието на матрицата.
### Задача 25
-Трябва да реализирате [url https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life Играта "Живот"].
+Трябва да реализирате {url Играта "Живот";https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life}.
От входа получавате матрица 10 на 10 с булеви стойности.
След това получавате неотрицателно число: брой генерации (ходове).
-Всяка клетка наричаме жива или мъртва (съответно на [`true`] или [`false`]).
+Всяка клетка наричаме жива или мъртва (съответно на {` true} или {` false}).
В една генерация (ход) на играта, всяка клетка променя своя статус (стойност) по следните правила:
.bulleted
- всяка жива клетка с по-малко от два живи съседа (вертикално, хоризонтално и диагонално) умира