Summary Files Commits Branches @commit @diff @stats
path: root / src / teaching / upp-2025 / week09 / index.du
diff options
context:
space:
mode:
1 files changed, 18 insertions, 18 deletions
-rw-r--r--src/teaching/upp-2025/week09/index.du36
diff --git a/src/teaching/upp-2025/week09/index.du b/src/teaching/upp-2025/week09/index.du
index 55febbf..a737cae 100644
--- a/src/teaching/upp-2025/week09/index.du
+++ b/src/teaching/upp-2025/week09/index.du
@@ -1,14 +1,14 @@
-# Задачи - УПП, Седмица 9, 27.11.2025
+'def title Задачи - УПП, Седмица 9, 27.11.2025
+'def desc Условията на задачите за упражнение.
-'define expected-reading 12 min
-'define created 24 November 2025
-'define edited 26 November 2025
-[$pagenav]
+# {title}
+
+{pagenav 12 min;24 November 2025;26 November 2025}
.important
Реализирайте единствено архитектурни решения!
-GitHub Classroom: [url https://classroom.github.com/a/ZYFDdLi4]
+GitHub Classroom: {url https://classroom.github.com/a/ZYFDdLi4}
## За решаване
@@ -30,41 +30,41 @@ GitHub Classroom: [url https://classroom.github.com/a/ZYFDdLi4]
Всеки хигрометър измерва процента влажност.
В условието не са дадени подробности относно формата на тази стойност, затова ще използваме тип с плаваща запетая, който ще покрие всички реални стойности.
-Ще изведем в глобална константа [`SIZE`] размера на едно измерение на матрицата, и самата матрица ще съдържа влажността в стойности от тип [`double`].
+Ще изведем в глобална константа {` SIZE} размера на едно измерение на матрицата, и самата матрица ще съдържа влажността в стойности от тип {` double}.
-За намиране на средната влажност в града, ще изградим функцията [`average`], която изглежда по следния начин:
+За намиране на средната влажност в града, ще изградим функцията {` average}, която изглежда по следния начин:
-```c++
+```cpp
double average(const double hygrometers[SIZE][SIZE]);
Функцията приема матрицата със стойности на влажност от всеки хигрометър и връща средната стойност.
Реализацията изисква линейно итериране през цялата матрица, като се пази сума на всички елементи.
Върнатата стойност е сумата, разделена на броя хигрометри.
-За намиране на най-влажен и най-сух квадрант ще реализираме функцията [`quadrantHumidity`], чиято декларация е:
+За намиране на най-влажен и най-сух квадрант ще реализираме функцията {` quadrantHumidity}, чиято декларация е:
-```c++
+```cpp
double quadrantHumidity(const double hygrometers[SIZE][SIZE], unsigned startRow, unsigned startCol);
Функцията приема матрицата с влажности и начални индекси по ред и колона на съответния квадрант.
Знаем, че един квадрант ще бъде една четвърт от размера на матрицата (половината височина и ширина), затова не е нужно той да бъде подаден.
-В имплементацията, ще итерираме през матрицата, като започнем от началните редове и колона, и обиколим точно [`SIZE / 2`] реда и колони.
+В имплементацията, ще итерираме през матрицата, като започнем от началните редове и колона, и обиколим точно {` SIZE / 2} реда и колони.
Ще пазим сума на всички елементи и накрая ще разделим на броя елементи, т.е. ще върнем средната стойност на влажност в квадранта.
В заглавната функция ще дефинираме матрицата и ще попълним входните влажности.
-След това ще изкараме стойността, върната от извикване на [`average`].
+След това ще изкараме стойността, върната от извикване на {` average}.
За сух и влажен квадрант, ще създадем две променливи за най-голяма и най-малка стойност.
-След това ще извикваме [`quadrantHumidity`], като ще запазим върната стойност като най-голяма и най-малка спрямо текущите стойности.
+След това ще извикваме {` quadrantHumidity}, като ще запазим върната стойност като най-голяма и най-малка спрямо текущите стойности.
-Началните ред и колона ще подаваме с вложен цикъл, който ще итерира колоните и редовете от най-първите (на индекси 0,0) и ще увеличава всеки индекс с размера на страната на квадрант ([`SIZE / 2`]).
+Началните ред и колона ще подаваме с вложен цикъл, който ще итерира колоните и редовете от най-първите (на индекси 0,0) и ще увеличава всеки индекс с размера на страната на квадрант ({` SIZE / 2}).
След цикъла и всички извиквания ще имаме стойностите в нашите променливи и ще ги изкараме.
### Задача 1
-.solution-link [url https://github.com/Syndamia/upp-2025-solutions/tree/main/Week09/Exercise01.txt Решение]
+.solution-link {url Решение;https://github.com/Syndamia/upp-2025-solutions/tree/main/Week09/Exercise01.txt}
Сграда разполага с два асансьора и 5 етажа.
Инженерите на асансьорите са забелязали, че асансьора се качва по-бързо отколкото слиза.
@@ -74,7 +74,7 @@ double quadrantHumidity(const double hygrometers[SIZE][SIZE], unsigned startRow,
### Задача 2
-.solution-link [url https://github.com/Syndamia/upp-2025-solutions/tree/main/Week09/Exercise02.txt Решение]
+.solution-link {url Решение;https://github.com/Syndamia/upp-2025-solutions/tree/main/Week09/Exercise02.txt}
Автобусна фирма в един град трябва да замени всички свои автобуси.
В града има 6 автобусни линии и всяка линия има между 5 и 17 спирки.
@@ -86,7 +86,7 @@ double quadrantHumidity(const double hygrometers[SIZE][SIZE], unsigned startRow,
### Задача 3
-.solution-link [url https://github.com/Syndamia/upp-2025-solutions/tree/main/Week09/Exercise03.txt Решение]
+.solution-link {url Решение;https://github.com/Syndamia/upp-2025-solutions/tree/main/Week09/Exercise03.txt}
Фабрика купува 5 нови машини, всяка от които изработва по 10000 градивни елемента на час.
Всеки час от 8 часов работен ден, работниците във фабриката отбелязват в счетоводни таблици дали всеки един елемент е дефектен или не.