Summary Files Commits Branches @commit @diff @stats
diff options
context:
space:
mode:
Commit8b262046665b76926dc91ef92d64a2ea20d1e9c9 (patch)
Author
 Syndamia <kamen@syndamia.com>
2025-11-05 21:52:05 +0200
Committer
 Syndamia <kamen@syndamia.com>
2025-11-05 21:52:05 +0200
Files82db544679346f19dd0b1e376a5aa49a5860c4bf
syndamia.com-8b262046665b76926dc91ef92d64a2ea20d1e9c9.tar
syndamia.com-8b262046665b76926dc91ef92d64a2ea20d1e9c9.tar.gz
syndamia.com-8b262046665b76926dc91ef92d64a2ea20d1e9c9.zip
Parent04e3d68180d69394e60ca7c81c584a800e043578 (diff)
feat(teaching/upp-2025/w06): Add exercises
diff --git a/meta/meta.tsv b/meta/meta.tsv
index 1e6ae49..9b440f3 100644
--- a/meta/meta.tsv
+++ b/meta/meta.tsv
@@ -101,6 +101,7 @@ teaching/upp-2025/week02/machine_table.html Машинна таблица - УП
teaching/upp-2025/week03/index.html Задачи - УПП, Седмица 3, 16.10.2025 Условията на задачите за упражнение.
teaching/upp-2025/week04/index.html Задачи - УПП, Седмица 4, 23.10.2025 Условията на задачите за упражнение.
teaching/upp-2025/week05/index.html Задачи - УПП, Седмица 5, 30.10.2025 Условията на задачите за упражнение.
+teaching/upp-2025/week06/index.html Задачи - УПП, Седмица 6, 06.11.2025 Условията на задачите за упражнение.
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/upp-2025/index.du b/src/teaching/upp-2025/index.du
index 8449995..c442927 100644
--- a/src/teaching/upp-2025/index.du
+++ b/src/teaching/upp-2025/index.du
@@ -69,3 +69,11 @@
|| [url https://github.com/Syndamia/upp-2025-solutions/tree/main/Week05 Решения]
|| [url https://classroom.github.com/a/6oPRMxJx GitHub Classroom]
:|
+
+|:6:|
+ |:06.11.2025:|
+ |:Подготовка за контролно:|
+|::||::||:
+ [url ./week06 Задачи]
+ || [url https://classroom.github.com/a/JSB1UK_f GitHub Classroom]
+ :|
diff --git a/src/teaching/upp-2025/week06/img/rectangle_and_line.png b/src/teaching/upp-2025/week06/img/rectangle_and_line.png
new file mode 100644
index 0000000..1480947
--- /dev/null
+++ b/src/teaching/upp-2025/week06/img/rectangle_and_line.png
Binary files differ
diff --git a/src/teaching/upp-2025/week06/img/rectangles_and_circle.png b/src/teaching/upp-2025/week06/img/rectangles_and_circle.png
new file mode 100644
index 0000000..52856b5
--- /dev/null
+++ b/src/teaching/upp-2025/week06/img/rectangles_and_circle.png
Binary files differ
diff --git a/src/teaching/upp-2025/week06/img/triangle_and_circle.png b/src/teaching/upp-2025/week06/img/triangle_and_circle.png
new file mode 100644
index 0000000..986369c
--- /dev/null
+++ b/src/teaching/upp-2025/week06/img/triangle_and_circle.png
Binary files differ
diff --git a/src/teaching/upp-2025/week06/img/two_circles.png b/src/teaching/upp-2025/week06/img/two_circles.png
new file mode 100644
index 0000000..7a62a52
--- /dev/null
+++ b/src/teaching/upp-2025/week06/img/two_circles.png
Binary files differ
diff --git a/src/teaching/upp-2025/week06/index.du b/src/teaching/upp-2025/week06/index.du
new file mode 100644
index 0000000..219fdc5
--- /dev/null
+++ b/src/teaching/upp-2025/week06/index.du
@@ -0,0 +1,298 @@
+# Задачи - УПП, Седмица 6, 06.11.2025
+
+'define expected-reading 10 min
+'define created 01 November 2025
+'define edited 05 November 2025
+[$pagenav]
+
+GitHub Classroom: [url https://classroom.github.com/a/JSB1UK_f]
+
+## За решаване
+
+### Задача 1
+
+През 1837 година, [url https://en.wikipedia.org/wiki/Charles_Babbage Чарлз Бабидж] пита въпроса:
+
+.quote
+What is the smallest positive integer whose square ends in the digits 269,696?
+
+Според него това число е 99736 (чиито квадрат е 9947269696).
+Напишете програма, която =[намира]= най-малкото число, отговарящо на въпроса.
+
+[$examples_bg]
+|::||:25264:|
+
+### Задача 2
+
+От входа получавате 8 цели положителни числа.
+Трябва да изкарате най-голямото общо делимо между всички тези числа.
+
+[$examples_bg]
+|:8 8 8 8 8 8 8 8:||:8:|
+|:2 6 14 8 20 4 12 14:||:2:|
+|:318 577 200 235 72 333 947 37:||:1:|
+
+### Задача 3
+
+Получавате цяло положително число.
+В него трябва да замените всички срещания на най-срещаната цифра с 0.
+
+Ако има няколко такива цифри, трябва да замените само най голямата от тях.
+
+[$examples_bg]
+|:1:||:0:|
+|:5:||:0:|
+|:10:||:0:|
+|:15:||:10:|
+|:99:||:0:|
+|:9988:||:88:|
+|:138783:||:130703:|
+|:535735737:||:535035030:|
+
+### Задача 4
+
+Получавате една редица от 15 цели числа и след това втора редица с 5 цели уникални числа.
+Трябва да върнете броя срещания в първата редица на всяко от числата във втората редица.
+
+[$examples_bg]
+|:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15<br>1 2 3 4 5:||:1 1 1 1 1:|
+|:1 2 2 1 1 2 0 2 1 1 0 2 2 1 1<br>-9 0 1 2 300:||:0 2 7 6 0:|
+
+### Задача 5
+
+От входа получавате две реални числа: координати на точка в равнината.
+Спрямо следното изображение:
+
+[image ./img/rectangle_and_line.png]
+
+изкарайте дали точката е в защрихованата област или не.
+Областта =[не]= включва правата и правоъгълника!
+
+Зачитайте, че черните прави отбелязват главните оси, а разстоянията между съседни сиви оси е единица.
+
+[$examples_bg]
+|:0 0:||:Outside:|
+|:-1 0:||:Outside:|
+|:-1.1 0:||:Inside:|
+|:-2 1:||:Inside:|
+|:-4 2:||:Outside:|
+|:-3.9 1.9:||:Inside:|
+|:-4 -1:||:Outside:|
+|:-3.9 -0.9:||:Inside:|
+|:1 2:||:Outside:|
+|:0.9 2:||:Outside:|
+|:1 1.9:||:Outside:|
+|:0.9 1.9:||:Outside:|
+|:0.8 1.9:||:Inside:|
+
+### Задача 6
+
+От входа получавате цяло положително число.
+Трябва да върнете дали то е [url https://en.wikipedia.org/wiki/Happy_number щастливо].
+
+Нека да вземем нашето число и да го заменим със сумата на всички свои цифри, повдигнати на квадрат.
+Оригиналното число е щастливо, ако след краен брой прилагания на тази операция, получим числото 1.
+
+Когато число не е щастливо, влизаме в безкрайния цикъл 4, 16, 37, 58, 89, 145, 42, 20, 4, 16, ...
+Това е единствения възможен цикъл в който нещастно число може да попадне.
+
+[$examples_bg]
+|:1:||:Happy:|
+|:7:||:Happy:|
+|:14:||:Not happy:|
+|:28:||:Happy:|
+|:318:||:Not happy:|
+|:319:||:Happy:|
+|:320:||:Happy:|
+|:888:||:Happy:|
+
+### Задача 7
+
+От входа получавате 6 реални числа.
+Пресметнете съответните 6 [url https://en.wikipedia.org/wiki/Prefix_sum префиксни суми] и ги изкарайте.
+
+Това са сумите на всички числа до сега.
+Тоест, префиксната сума на второто число е сумата на първото и второто число.
+Префиксата сума на третото число е сумата на първото, второто и третото число.
+
+[$examples_bg]
+|:1 2 3 4 5 6:||:1 3 6 10 15 21:|
+|:30.86 967.214 85 515.27 -453 -37.79:||:30.86 998.074 1083.07 1598.34 1145.34 1107.55:|
+
+### Задача 8
+
+От входа получавате две реални числа: координати на точка в равнината.
+Спрямо следното изображение:
+
+[image ./img/two_circles.png]
+
+изкарайте дали точката е в защрихованата област или не.
+Областта =[не]= включва самите окръжности!
+
+Зачитайте, че черните прави отбелязват главните оси, а разстоянията между съседни сиви оси е единица.
+
+[$examples_bg]
+|:1 1:||:Outside:|
+|:-1.5 -2.5:||:Outside:|
+|:0 2:||:Outside:|
+|:0 2.1:||:Inside:|
+|:-1 2:||:Inside:|
+|:4 0:||:Outside:|
+|:3.9 0:||:Inside:|
+|:3 0:||:Inside:|
+|:3 -1:||:Outside:|
+|:3 -2:||:Inside:|
+|:2.586 -2.5356:||:Inside:|
+|:2.5356 -2.586:||:Outside:|
+|:-1.54 1.584:||:Inside:|
+|:-1.55 1.55:||:Outside:|
+
+### Задача 9
+
+От входа получавате 10 цели числа.
+Трябва да върнете дали сред тях същестуват три числа (на различни позиции), чиято сума е равна на 0.
+
+[$examples_bg]
+|:1 -2 3 -4 5 -6 7 -8 9 -10:||:Exists:|
+|:2 4 45 6 -10 5 -45 8 23 11:||:Exists:|
+|:1 4 45 6 -11 4 -45 8 23 11:||:Doesn't exist:|
+
+### Задача 10
+
+От входа получавате четири трицифрени цели неотрицателн числа.
+Трябва да върнете най-голямото възможно цяло число, което се получава след "слепване" на тези числа.
+
+*[Не е нужно да използвате сортиращ алгоритъм!]*
+
+[$examples_bg]
+|:100 200 300 400:||:400300200100:|
+|:552 285 732 937:||:937732552285:|
+|:492 352 289 382:||:492382352289:|
+
+### Задача 11
+
+От входа получавате две реални числа: координати на точка в равнината.
+Спрямо следното изображение:
+
+[image ./img/triangle_and_circle.png]
+
+Областта =[не]= включва правата и правоъгълника!
+
+Зачитайте, че черните прави отбелязват главните оси, а разстоянията между съседни сиви оси е единица.
+
+[$examples_bg]
+|:-1 1:||:Inside:|
+|:-1 -1:||:Outside:|
+|:-2 -1:||:Inside:|
+|:2 2:||:Inside:|
+|:3 2:||:Outside:|
+|:2.9 2:||:Inside:|
+|:0 1.5:||:Inside:|
+|:1 1.5:||:Outside:|
+|:2 1.5:||:Inside:|
+|:2 1.1:||:Outside:|
+|:-3.354 -1.831:||:Inside:|
+|:1.864 1.356:||:Inside:|
+|:1.73 1.287:||:Outside:|
+
+## За самоподготовка
+
+### Задача 12
+
+От входа получавате цяло неотрицателно число.
+Трябва да върнете дали е [url https://en.wikipedia.org/wiki/Sum-product_number число на "сума-произведение"].
+
+С други думи, дали е равно на сумата на цифрите си, умножено по умнежнието на цифрите.
+
+[$examples_bg]
+|:0:||:Sum-product number:|
+|:2:||:Not a sum-product number:|
+|:22:||:Not a sum-product number:|
+|:135:||:Sum-product number:|
+|:1337:||:Not a sum-product number:|
+
+### Задача 13
+
+От входа получавате цяло положително число.
+Трябва да върнете всички негови делители.
+
+[$examples_bg]
+|:5:||:1 5:|
+|:15:||:1 3 5:|
+|:16:||:1 2 4 8 16:|
+|:137:||:1 137:|
+|:864:||:1 2 3 4 6 8 9 12 16 18 24 27 32 36 48 54 72 96 108 144 216 288 432 864:|
+
+### Задача 14
+
+От входа получавате две цели неотрицателни числа.
+Трябва да намерите [url https://en.wikipedia.org/wiki/Tetration тетрацията] на първото числото на степен второто число.
+
+Както нормалното степенуване е повторено умножение, така тетрацията е повторено степенуване.
+Число на тетрация "степен" озачава, че числото се повдига на нормална степен себе си, тетрация степен на брой пъти.
+
+Тетрацията расте бързо, използвайте най-големия възможен тип.
+
+[$examples_bg]
+|:2 4:||:65536:|
+|:3 1:||:3:|
+|:3 2:||:27:|
+|:3 3:||:7625597484987:|
+|:8 2:||:16777216:|
+
+### Задача 15
+
+От входа получавате 8 цели неотрицателни числа.
+Трябва да върнете най-малкото общо кратно на всеки две съседни числа.
+
+Най-малко общо кратно е най-малкото число, което се дели без остатък на двете числа.
+
+[$examples_bg]
+|:1 2 3 4 5 6 7 8:||:2 6 12 20 30 42 56:|
+|:4 6 9 389 13 13 2 8:||:12 18 3501 5057 13 26 8:|
+
+### Задача 16
+
+От входа получавате две реални числа: координати на точка в равнината.
+Спрямо следното изображение:
+
+[image ./img/rectangles_and_circle.png]
+
+изкарайте дали точката е в защрихованата област или не.
+
+Зачитайте, че всяка сива права отбелязва брой единици разстояние от нулата.
+
+[$examples_bg]
+|:0 0:||:Outside:|
+|:-1 -1:||:Outside:|
+|:-0.5 -0.5:||:Inside:|
+|:0 0.75:||:Inside:|
+|:2 0:||:Outside:|
+|:1.5 0:||:Outside:|
+|:1.5 0.1:||:Inside:|
+|:1 0.5:||:Outside:|
+
+### Задача 17
+
+От входа получавате две естествени числа, `[a]` и `[b]`.
+Трябва да върнете дали `[a]` е [url https://en.wikipedia.org/wiki/Unitary_divisor унитарен делител] на `[b]`.
+
+Това е изпълнено, когато `[a]` е делител на `[b]` и най-големия общ делител на `[a]` и `[b / a]` е 1.
+
+[$examples_bg]
+|:5 60:||:Unitary divisor:|
+|:6 60:||:Not a unitary divisor:|
+|:5 10:||:Unitary divisor:|
+|:4 12:||:Unitary divisor:|
+|:6 12:||:Not a unitary divisor:|
+
+### Задача 18
+
+От входа получавате 10 реални числа.
+Трябва да върнете най-голямата възможна сума, получена чрез събиране на колкото и дълга =[последователна]= редица от елементи.
+
+[$examples_bg]
+|:1 2 3 4 5 6 7 8 9 10:||:55:|
+|:-2 -1 0 1 2 3 4 5 6 7:||:28:|
+|:-2 1 -3 4 -1 2 1 -5 4 -9:||:6:|
+|:-4 13.3 5.5 7 -6.5 10 0 -15 2.1 3:||:29.3:|
diff --git a/src/teaching/upp-2025/week06/tex/rectangle_and_line.tex b/src/teaching/upp-2025/week06/tex/rectangle_and_line.tex
new file mode 100644
index 0000000..bfa66dd
--- /dev/null
+++ b/src/teaching/upp-2025/week06/tex/rectangle_and_line.tex
@@ -0,0 +1,20 @@
+% https://alfurka.github.io/quick-tikz/
+\def \recA {(-4,-1) rectangle ++(6,3)}
+\def \lineA {(4,5) -- (-5,-4)}
+
+\begin{tikzpicture}[background rectangle/.style={fill=white}, show background rectangle]
+ % Axis
+ \draw (-5,0) -- (5,0);
+ \draw (0,-5) -- (0,5);
+ \draw[step=1,gray,very thin] (-4.8,-4.8) grid (4.8,4.8);
+
+ % Main shapes
+ \draw[blue] \recA;
+ \draw[red] \lineA;
+
+ % Intersection
+ \begin{scope}
+ \clip \recA;
+ \draw[pattern=north west lines] \lineA -- (-5,5) -- cycle;
+ \end{scope}
+\end{tikzpicture}
diff --git a/src/teaching/upp-2025/week06/tex/rectangles_and_circle.tex b/src/teaching/upp-2025/week06/tex/rectangles_and_circle.tex
new file mode 100644
index 0000000..121f2d3
--- /dev/null
+++ b/src/teaching/upp-2025/week06/tex/rectangles_and_circle.tex
@@ -0,0 +1,22 @@
+% https://alfurka.github.io/quick-tikz/
+\def \recA {(0,-2.5) rectangle ++(3,3)}
+\def \recB {(-1,0) rectangle ++(3,1)}
+\def \circleA {(-1,-1) circle [radius=2.5]}
+
+\begin{tikzpicture}[background rectangle/.style={fill=white}, show background rectangle]
+ % Axis
+ \draw (-5,0) -- (5,0);
+ \draw (0,-5) -- (0,5);
+ \draw[step=1,gray,very thin] (-4.8,-4.8) grid (4.8,4.8);
+
+ % Main shapes
+ \draw[blue] \recA;
+ \draw[red] \recB;
+ \draw[brown] \circleA;
+
+ % Intersection
+ \begin{scope}
+ \clip \recB;
+ \draw[pattern=north west lines, even odd rule] \recA \circleA;
+ \end{scope}
+\end{tikzpicture}
diff --git a/src/teaching/upp-2025/week06/tex/triangle_and_circle.tex b/src/teaching/upp-2025/week06/tex/triangle_and_circle.tex
new file mode 100644
index 0000000..cf275fb
--- /dev/null
+++ b/src/teaching/upp-2025/week06/tex/triangle_and_circle.tex
@@ -0,0 +1,20 @@
+% https://alfurka.github.io/quick-tikz/
+\def \triangleA {(-3.5,-2) -- (-0.5,3) -- (3,2) -- cycle}
+\def \circleA {(1,-0.5) circle [radius=2]}
+
+\begin{tikzpicture}[background rectangle/.style={fill=white}, show background rectangle]
+ % Axis
+ \draw (-5,0) -- (5,0);
+ \draw (0,-5) -- (0,5);
+ \draw[step=1,gray,very thin] (-4.8,-4.8) grid (4.8,4.8);
+
+ % Main shapes
+ \draw[blue] \triangleA;
+ \draw[red] \circleA;
+
+ % Intersection
+ \begin{scope}
+ \clip \triangleA;
+ \draw[pattern=north east lines, even odd rule] \circleA \triangleA;
+ \end{scope}
+\end{tikzpicture}
diff --git a/src/teaching/upp-2025/week06/tex/two_circles.tex b/src/teaching/upp-2025/week06/tex/two_circles.tex
new file mode 100644
index 0000000..41a822c
--- /dev/null
+++ b/src/teaching/upp-2025/week06/tex/two_circles.tex
@@ -0,0 +1,20 @@
+% https://alfurka.github.io/quick-tikz/
+\def \circleA {(0.5,0) circle [radius=1.5]}
+\def \circleB {(0,-0.5) circle [radius=1.5]}
+
+\begin{tikzpicture}[scale=2,background rectangle/.style={fill=white}, show background rectangle]
+ % Axis
+ \draw (-2.5,0) -- (2.5,0);
+ \draw (0,-2.5) -- (0,2.5);
+ \draw[step=0.5,gray,very thin] (-2.4,-2.4) grid (2.4,2.4);
+
+ % Main shapes
+ \draw[blue] \circleA;
+ \draw[red] \circleB;
+
+ % Intersection
+ \begin{scope}
+ \clip \circleA;
+ \draw[pattern=crosshatch, even odd rule] \circleA \circleB;
+ \end{scope}
+\end{tikzpicture}