diff options
| Commit | 955f6de5ac3d427a369eae95a37c623396b0412b (patch) | |
|---|---|---|
| Author | 2026-05-13 09:30:03 +0300 | |
| Committer | 2026-05-13 09:30:03 +0300 | |
| Files | 147aac91613ebc740bc5913ee8227f1d55dec2df /src | |
| syndamia.com-955f6de5ac3d427a369eae95a37c623396b0412b.tar syndamia.com-955f6de5ac3d427a369eae95a37c623396b0412b.tar.gz syndamia.com-955f6de5ac3d427a369eae95a37c623396b0412b.zip | ||
| Parent | 03c1067259a52ac8e99c620cfb40a5d8e02ecb7c (diff) | |
feat(teaching/oop-2025/w12): Add exercises
2 files changed, 49 insertions, 0 deletions
| -rw-r--r-- | src/teaching/oop-2025/index.du | 9 | ||||
| -rw-r--r-- | src/teaching/oop-2025/week12/index.du | 40 |
diff --git a/src/teaching/oop-2025/index.du b/src/teaching/oop-2025/index.du index b64a369..625a8bf 100644 --- a/src/teaching/oop-2025/index.du +++ b/src/teaching/oop-2025/index.du @@ -134,3 +134,12 @@ |: [url ./week11 Задачи] || [url https://github.com/Syndamia/oop-2025-solutions/tree/main/Week11 Решения] + +|: 12 +|: 13.05.2026 +|: Подготовка за контролно + +|: +|: +|: +[url ./week12 Задачи] diff --git a/src/teaching/oop-2025/week12/index.du b/src/teaching/oop-2025/week12/index.du new file mode 100644 index 0000000..4f34d9c --- /dev/null +++ b/src/teaching/oop-2025/week12/index.du @@ -0,0 +1,40 @@ +# Задачи - ООП, Седмица 12, 13.05.2026 + +'define expected-reading 2 min +'define created 13 May 2026 +'define edited 13 May 2026 +[$pagenav] + +## За решаване + +### Задача 1 + +.warn +Първо реализирайте архитектурно решение на задачата! + +Ще разгледаме система за менажиране на прозорци в операционна система. + +За всеки прозорец съхраняваме: +.unordered +- неотрицателни координати на горния ляв ъгъл на прозореца в пиксели. + На координат (0,0) отбелязваме пиксела в горния ляв ъгъл на екрана. +- ширина и височина на прозореца в пиксели +- име на прозореца с максимална дължина от 255 букви + +Прозореца трябва да има нужните селектори, мутатори, методи за центриране (хоризонтално, вертикално и двете), реоразмеряване на цял екран и обратно. + +Разглеждаме също прозорци с рамка. +Рамката заема част от всяка страна на прозореца. +Трябва да се съхрняват два размера на рамката: този на горната страна (който в реалния свят би съхранявал името на прозореца, бутони за отваряне/затваряне и так. нат.) и този на останалите страни (който е много тънък и се използва главно за реоразмеряване). + +Прозреца с рамка допълнително трябва да имплементира метод, който връща областта в която се намира съдържанието: размера и координатите на прозореца с извадени размерите на рамките. + +Имаме и формулярен прозорец: прозорец с рамка, който съхранява неограничено количество от динамично-заделени данни по подаден тип. +Реализирайте всички нужни методи и оператори за обработка на тези данни. + +Имаме и диалогов прозорец: прозорец с рамка, който съхранява низово съобщение с неограничен размер. +Реализирайте селектор и мутатор на това съобщение. + +Финално имаме графичен прозорец: прозорец без рамка, който съхранява изображение. +Всеки пиксел в изображението се представя чрез произволна целочислена стойност. +Размерите на изображението са запазени в типа на прозореца. |