From 955f6de5ac3d427a369eae95a37c623396b0412b Mon Sep 17 00:00:00 2001 From: Syndamia Date: Wed, 13 May 2026 09:30:03 +0300 Subject: feat(teaching/oop-2025/w12): Add exercises --- src/teaching/oop-2025/index.du | 9 ++++++++ src/teaching/oop-2025/week12/index.du | 40 +++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 src/teaching/oop-2025/week12/index.du (limited to 'src') 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 букви + +Прозореца трябва да има нужните селектори, мутатори, методи за центриране (хоризонтално, вертикално и двете), реоразмеряване на цял екран и обратно. + +Разглеждаме също прозорци с рамка. +Рамката заема част от всяка страна на прозореца. +Трябва да се съхрняват два размера на рамката: този на горната страна (който в реалния свят би съхранявал името на прозореца, бутони за отваряне/затваряне и так. нат.) и този на останалите страни (който е много тънък и се използва главно за реоразмеряване). + +Прозреца с рамка допълнително трябва да имплементира метод, който връща областта в която се намира съдържанието: размера и координатите на прозореца с извадени размерите на рамките. + +Имаме и формулярен прозорец: прозорец с рамка, който съхранява неограничено количество от динамично-заделени данни по подаден тип. +Реализирайте всички нужни методи и оператори за обработка на тези данни. + +Имаме и диалогов прозорец: прозорец с рамка, който съхранява низово съобщение с неограничен размер. +Реализирайте селектор и мутатор на това съобщение. + +Финално имаме графичен прозорец: прозорец без рамка, който съхранява изображение. +Всеки пиксел в изображението се представя чрез произволна целочислена стойност. +Размерите на изображението са запазени в типа на прозореца. -- cgit v1.3.1-23-gd82d