diff options
| Commit | b08779c75128475b250625b5f31e62e43b8abdd3 (patch) | |
|---|---|---|
| Author | 2024-05-08 10:11:23 +0300 | |
| Committer | 2024-05-08 10:11:23 +0300 | |
| Files | e1ccd9f967f98d67d075a953df337f4df04de002 /src | |
| syndamia.com-b08779c75128475b250625b5f31e62e43b8abdd3.tar syndamia.com-b08779c75128475b250625b5f31e62e43b8abdd3.tar.gz syndamia.com-b08779c75128475b250625b5f31e62e43b8abdd3.zip | ||
| Parent | 3c54c1adbf08d5b548fd96d1c0524d880c39b3d6 (diff) | |
[te/oop-2023/w9,w10] Added exercise solutions
2 files changed, 22 insertions, 0 deletions
| -rw-r--r-- | src/teaching/oop-2023/week10/index.md | 20 | ||||
| -rw-r--r-- | src/teaching/oop-2023/week9/index.md | 2 |
diff --git a/src/teaching/oop-2023/week10/index.md b/src/teaching/oop-2023/week10/index.md index d73913b..961e247 100644 --- a/src/teaching/oop-2023/week10/index.md +++ b/src/teaching/oop-2023/week10/index.md @@ -8,11 +8,15 @@ GitHub classroom: [classroom.github.com/a/PbkITWhF](https://classroom.github.com ### Задача 1 - Шаблони +&::solution-link [Решение](https://github.com/Syndamia/oop-2023-solutions/blob/main/week10/Exercise1) + Реализирайте шаблонен клас `Array`, който запазва динамично-заделен и оразмеряем масив от елементи с подаден тип. Имплементирайте голяма четворка. ### Задача 2 - Оператори +&::solution-link [Решение](https://github.com/Syndamia/oop-2023-solutions/blob/main/week10/Exercise2) + За предходния шаблонен клас имплементирайте оператори: - [], който връща референция към елемента на подадения индекс @@ -21,6 +25,8 @@ GitHub classroom: [classroom.github.com/a/PbkITWhF](https://classroom.github.com ### Задача 3 - Грешки +&::solution-link [Решение](https://github.com/Syndamia/oop-2023-solutions/blob/main/week10/Exercise3) + Имплементирайте функция, която приема име на текстов файл и изкарва на екрана първия ред от него. Ако файлът не може да бъде отворен, хвърлете грешка - низ. Ако във файлът няма други редове (няма знакът `'\n'`), тогава хвърлете грешка число - размерът на файла. @@ -33,6 +39,8 @@ GitHub classroom: [classroom.github.com/a/PbkITWhF](https://classroom.github.com ### Задача 4 +&::solution-link [Решение](https://github.com/Syndamia/oop-2023-solutions/blob/main/week10/Exercise4) + Реализирайте клас `Time24`, който запазва час и минути (в 24-часов формат) в две отделни целичислени член-данни. Имплементирайте член-функция `Print24`, която изкарва часа на екрана в 24-часов формат. Нека конструкторът му приема две целочислени променливи, една за часа и втора за минутите. @@ -42,6 +50,8 @@ GitHub classroom: [classroom.github.com/a/PbkITWhF](https://classroom.github.com ### Задача 5 +&::solution-link [Решение](https://github.com/Syndamia/oop-2023-solutions/blob/main/week10/Exercise5) + Реализирайте клас `FN`, който запазва факултетен номер като неотрицателно цяло число от 5 цифри. Реализирайте негов наследник `ModernFN`, който запазва и начален (префиксен) низ, състоящ се от цифра, две букви и още две цифри. @@ -50,6 +60,8 @@ GitHub classroom: [classroom.github.com/a/PbkITWhF](https://classroom.github.com ### Задача 6 +&::solution-link [Решение](https://github.com/Syndamia/oop-2023-solutions/blob/main/week10/Exercise6) + Реализирайте клас `Grade`, който запазва оценка (от 2 до 6) като неотрицателна целочислена член-данна. Реализирайте и негов наследник `GradeWithName`, който запазва и името на оценката като низ с произволна дължина. @@ -58,6 +70,8 @@ GitHub classroom: [classroom.github.com/a/PbkITWhF](https://classroom.github.com ### Задача 7 +&::solution-link [Решение](https://github.com/Syndamia/oop-2023-solutions/blob/main/week10/Exercise7) + Реализирайте клас `String`, който запазва низ с произволна дължина. Имплементирайте голяма петица и член-функция `At`, която приема индекс и връща референция към буквата на този индекс (при невалиден индекс хвърляте грешка). @@ -70,6 +84,8 @@ GitHub classroom: [classroom.github.com/a/PbkITWhF](https://classroom.github.com ### Задача 8 +&::solution-link [Решение](https://github.com/Syndamia/oop-2023-solutions/blob/main/week10/Exercise8) + Реализирайте клас `User`, който запава име и парола като два низа с произволна дължина. Реализирайте негов наследник `Moderator`, който запазва и подпис, който също е низ с произволна дължина. Реализирайте наследник `Administrator` на `Moderator`, който запазва и оразмеряващ се масив от цели числа. @@ -82,6 +98,8 @@ GitHub classroom: [classroom.github.com/a/PbkITWhF](https://classroom.github.com ### Задача 9 +&::solution-link [Решение](https://github.com/Syndamia/oop-2023-solutions/blob/main/week10/Exercise9) + Реализирайте клас `CommunicationPacket`, който запазва начален и краен адрес като две неотрицателни цели числа, заедно с трето число за размера на данните. В този клас никога няма данни, затова размера винаги е нула. @@ -92,6 +110,8 @@ GitHub classroom: [classroom.github.com/a/PbkITWhF](https://classroom.github.com ### Задача 10 +&::solution-link [Решение](https://github.com/Syndamia/oop-2023-solutions/blob/main/week10/Exercise10) + Реализирайте клас `String`, който запазва низ с произволна дължина, и имплементира оператори ==, !=, + (който връща нов низ с конкатенацията на двата низа). Реализирайте негов наследник `ModifiableString`, който имплементира оператор[] (връщащ референция към буквата на дадения индекс) и оператор+=. diff --git a/src/teaching/oop-2023/week9/index.md b/src/teaching/oop-2023/week9/index.md index db2b6c3..50cea93 100644 --- a/src/teaching/oop-2023/week9/index.md +++ b/src/teaching/oop-2023/week9/index.md @@ -29,6 +29,8 @@ GitHub classroom: [classroom.github.com/a/wlL1oUg2](https://classroom.github.com ### Задача 3 +&::solution-link [Решение](https://github.com/Syndamia/oop-2023-solutions/blob/main/week09/Exercise3) + Реализирайте клас Train, който съдържа: - модел като низ с максимална дължина от 127 знака |