Summary Files Commits Branches @commit @diff @stats
path: root / src / teaching / upp-2023 / week11 / index.du
diff options
context:
space:
mode:
1 files changed, 63 insertions, 31 deletions
-rw-r--r--src/teaching/upp-2023/week11/index.du94
diff --git a/src/teaching/upp-2023/week11/index.du b/src/teaching/upp-2023/week11/index.du
index b0f5be1..3750b01 100644
--- a/src/teaching/upp-2023/week11/index.du
+++ b/src/teaching/upp-2023/week11/index.du
@@ -1,30 +1,34 @@
-# Задачи - УПП, Седмица 11, 22.12.2023
+'def title Задачи - УПП, Седмица 11, 22.12.2023
+'def desc Условия на задачите за упражнение
+
+# {title}
\n
-GitHub classroom: [url https://classroom.github.com/a/cZRnZj9y classroom.github.com/a/cZRnZj9y]
+GitHub classroom: {url classroom.github.com/a/cZRnZj9y;https://classroom.github.com/a/cZRnZj9y}
-.important Във всички задачи [=трябва=] да използвате рекурсия!
+.important Във всички задачи {b трябва} да използвате рекурсия!
.warn Някои задачи се повтарят с тези от миналия път, ако преди не сте ги решили, сега ги решете
## Алтернативни задачи
-Считайте [url https://github.com/ivanahristova/introduction-to-programming-2023-2024/tree/main/sem11#%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8 задачите от семинара] като задачи преди тези.
+Считайте {url задачите от семинара;https://github.com/ivanahristova/introduction-to-programming-2023-2024/tree/main/sem11#%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8} като задачи преди тези.
Тоест, за хората които се затрудняват повечко, решете семинарните и след това се върнете тук.
Разбира се, ще помагам и със семинарните задачи.
## Задача 1
-От входа получавате неотрицателно число [`N`], което ще бъде някое число на Фибоначи.
+От входа получавате неотрицателно число {` N}, което ще бъде някое число на Фибоначи.
Трябва да върнете кое по ред е, като 0 е нулевото, 1 е първото, 2 е третото, 3 е четвъртото и так. нат.
Напомням, че нормално Фибоначи се дефинира като редица, която започва с числата 0 и 1, и всяко следващо е сумата на предходните две.
-Тоест, нулевото число е 0, първото 1, второто е [`0 + 1 = 1`] (понеже 1 се повтаря, зачитаме го за първото число), третото е [`1 + 1 = 2`], четвъртото е [`1 + 2 = 3`] и так. нат.
+Тоест, нулевото число е 0, първото 1, второто е {` 0 + 1 = 1} (понеже 1 се повтаря, зачитаме го за първото число), третото е {` 1 + 1 = 2}, четвъртото е {` 1 + 2 = 3} и так. нат.
-[=Примери:=]
+{b Примери:}
-:table_2
+:table
+:2
|= Вход
|= Изход
@@ -47,17 +51,19 @@ GitHub classroom: [url https://classroom.github.com/a/cZRnZj9y classroom.github.
|: 24
+
## Задача 2
-От входа получавате положително число [`N`], трябва да изкарате на екрана "рисунка" на триъгълници.
+От входа получавате положително число {` N}, трябва да изкарате на екрана "рисунка" на триъгълници.
### a) горен триъгълник
-Рисунката е един правоъгълен равнобедрен триъгълник от знака [`+`], като [`N`] определя размера на равнобедрените страни (вижте примерите).
+Рисунката е един правоъгълен равнобедрен триъгълник от знака {` +}, като {` N} определя размера на равнобедрените страни (вижте примерите).
-[=Примери:=]
+{b Примери:}
-:table_2
+:table
+:2
|= Вход
|= Изход
@@ -87,82 +93,101 @@ GitHub classroom: [url https://classroom.github.com/a/cZRnZj9y classroom.github.
+++++
+
### б) долен триъгълник
-Подобно на предходната подточка, обаче обърнат по хоризонтала, и със знака [`#`].
+Подобно на предходната подточка, обаче обърнат по хоризонтала, и със знака {` #}.
-[=Примери:=]
+{b Примери:}
-:table_2
+:table
+:2
|= Вход
|= Изход
|: 1
|:
```
+'emplace
#
+'endemplace
|: 2
|:
```
+'emplace
##
#
+'endemplace
|: 3
|:
```
+'emplace
###
##
#
+'endemplace
|: 5
|:
```
+'emplace
#####
####
###
##
#
+'endemplace
+
### в) пълен триъгълник
-[=Използвайки само една рекурсивна функция,=] сега трябва да изкарате първо горния триъгълник и след това долния.
+{b Използвайки само една рекурсивна функция,} сега трябва да изкарате първо горния триъгълник и след това долния.
Ако просто извикате предходните две функции една след друга, задачата се обезсмисля.
-[=Примери:=]
+{b Примери:}
-:table_2
+:table
+:2
|= Вход
|= Изход
|: 1
|:
```
+'emplace
+
#
+'endemplace
|: 2
|:
```
+'emplace
+
++
##
#
+'endemplace
|: 3
|:
```
+'emplace
+
++
+++
###
##
#
+'endemplace
|: 5
|:
```
+'emplace
+
++
+++
@@ -173,11 +198,13 @@ GitHub classroom: [url https://classroom.github.com/a/cZRnZj9y classroom.github.
###
##
#
+'endemplace
+
## Задача 3
-Направете програма която разрешава проблема с [url https://en.wikipedia.org/wiki/Ages_of_Three_Children_puzzle възрастта на трите деца].
+Направете програма която разрешава проблема с {url възрастта на трите деца;https://en.wikipedia.org/wiki/Ages_of_Three_Children_puzzle}.
Една жена има три деца за които знаем три неща: умножението на техните възрасти, сбора на техните възрасти и факта, че има едно дете, което е най-голямо.
Трябва да намерите възрастта на всяко дете, само по тази информация.
@@ -185,11 +212,12 @@ GitHub classroom: [url https://classroom.github.com/a/cZRnZj9y classroom.github.
Разбира се, от входа получавате две числа, съответно умножението и сбора на възрастите им.
Трябва на екрана да изкарате три числа - възрастите на трите деца.
-[=Подсказка:=] най-лесното решение е да пробвате всички възможни възрасти, като избягвате техни пермутации
+{b Подсказка:} най-лесното решение е да пробвате всички възможни възрасти, като избягвате техни пермутации
-[=Примери:=]
+{b Примери:}
-:table_2
+:table
+:2
|= Вход
|= Изход
@@ -203,14 +231,16 @@ GitHub classroom: [url https://classroom.github.com/a/cZRnZj9y classroom.github.
|: 2 5 35
+
## Задача 4
-От входа получавате число [`N`], след това трябва да изкарате на нови редове, в нарастващ ред, всички двоични числа, които могат да се представят с [`N`]-бита.
-Вкарвате и водещи нули, тоест всяко число е съставено от точно [`N`] букви ([`N`] нули и единици).
+От входа получавате число {` N}, след това трябва да изкарате на нови редове, в нарастващ ред, всички двоични числа, които могат да се представят с {` N}-бита.
+Вкарвате и водещи нули, тоест всяко число е съставено от точно {` N} букви ({` N} нули и единици).
-[=Примери:=]
+{b Примери:}
-:table_2
+:table
+:2
|= Вход
|= Изход
@@ -245,28 +275,30 @@ GitHub classroom: [url https://classroom.github.com/a/cZRnZj9y classroom.github.
```
0000
0001
-[*...*]
+{i ...}
0111
1000
1001
-[*...*]
+{i ...}
1101
1110
1111
+
## Задача 5
-Направете програма която разрешава [url https://en.wikipedia.org/wiki/Takuzu Такузо пъзели].
+Направете програма която разрешава {url Такузо пъзели;https://en.wikipedia.org/wiki/Takuzu}.
Започвате с дъска 4х4, в тази дъска може да имате само цифрите 0 и 1, като няколко клетки вече идват с попълнени стойности (но повечето са празни).
Обаче, на всяка колона и ред трябва да има еднакъв брой 0ли и 1ци, и не трябва да има повече от две последователни еднакви цифри (в реда или колоната).
От входа получавате дъската, като с -1 обозначаваме празна клетка.
-[=Примери:=]
+{b Примери:}
-:table_2
+:table
+:2
|= Вход
|= Изход