Summary Files Commits Branches @commit @diff @stats
path: root / src
diff options
context:
space:
mode:
Commitfb74bde10319de026d106522184ad69cc7232056 (patch)
Author
 Syndamia <kamen@syndamia.com>
2024-06-06 08:17:42 +0300
Committer
 Syndamia <kamen@syndamia.com>
2024-06-06 08:17:42 +0300
Filesbe1bbd91a385db9e08a5e85690a5df1357ab1862 /src
syndamia.com-fb74bde10319de026d106522184ad69cc7232056.tar
syndamia.com-fb74bde10319de026d106522184ad69cc7232056.tar.gz
syndamia.com-fb74bde10319de026d106522184ad69cc7232056.zip
Parent5c1d0370cc8c222216b2fc6d2f3c612317865dea (diff)
[te/oop-2023/w16] Added exercise
2 files changed, 31 insertions, 0 deletions
-rw-r--r--src/teaching/oop-2023/index.md1
-rw-r--r--src/teaching/oop-2023/week16/index.md30
diff --git a/src/teaching/oop-2023/index.md b/src/teaching/oop-2023/index.md
index e71f689..63acb0f 100644
--- a/src/teaching/oop-2023/index.md
+++ b/src/teaching/oop-2023/index.md
@@ -29,3 +29,4 @@
|13|16.05.2024|[Задачи](./week13/) \|\| [Решения](https://github.com/Syndamia/oop-2023-solutions/tree/main/week13) \|\| [GitHub classroom](https://classroom.github.com/a/GvV1wrC1)|
|14|23.05.2024|[Задачи](./week14/) <!-- \|\| [Решения](https://github.com/Syndamia/oop-2023-solutions/tree/main/week12) --> \|\| [GitHub classroom](https://classroom.github.com/a/K0XomKEP)|
|15|30.05.2024|[Задачи](./week15/) <!-- \|\| [Решения](https://github.com/Syndamia/oop-2023-solutions/tree/main/week12) --> \|\| [GitHub classroom](https://classroom.github.com/a/z2QadyEE) **Това упражнение е от 11:15 до 13:15**|
+|16|06.06.2024|[Задачи](./week16/) <!-- \|\| [Решения](https://github.com/Syndamia/oop-2023-solutions/tree/main/week12) --> \|\| [GitHub classroom](https://classroom.github.com/a/BWjw2dUC)|
diff --git a/src/teaching/oop-2023/week16/index.md b/src/teaching/oop-2023/week16/index.md
new file mode 100644
index 0000000..f95271d
--- /dev/null
+++ b/src/teaching/oop-2023/week16/index.md
@@ -0,0 +1,30 @@
+# Задачи - ООП, Седмица 16, 06.06.2024
+
+GitHub classroom: [classroom.github.com/a/BWjw2dUC](https://classroom.github.com/a/BWjw2dUC)
+
+## Задача
+
+Първо си разпишете структурата, след това пишете код.
+НЕ е нужно да реализирайте пълно решение, това е по-блико до архитектурното контролно, не е нужно да конкретизирате всички член-функции.
+
+В добре реализираните операционни системи, комуникация със свързани устройства се свежда до работа с файлове: ако искаш да кажеш устройството да прави нещо, ти пишеш във файла, ако устройството иска да ти каже на тебе нещо, четеш от файла.
+Разбира се, отдолу няма истински файлове които се запазват в харддиск (примерно), просто ОС превежда всички тези операции върху файлове със съответни действия към устройството.
+
+Реализирайте подобна система.
+Първо трябва ни обща схема за файлове, за всеки файл имаме `Read` и `Write` методи, и пазим името на файла.
+
+За всяко устройство само по себе си знаем, че трябва да използваме определен драйвър (по име) и че то има малко информация за себе си: марка като низ и модел като цяло число.
+По-конкретно разглежаме два основни типа устройства: индексируемо и поточно (streamable).
+
+Първия тип са устройства като харддиск, където можем да си изберем индекс в който да запазваме или четем данни.
+Втория тип са устройства като клавиатура или тонколони, можем или да прочетем или пишем по един байт, и този байт "изчезва" (клавиатурата изпраща байт като е натиснат бутон, тонколоните изкарват звук според байт, но никъде тази информация не се запазва дълготрайно).
+Имплементирйате съответните оператори.
+
+Допълнително имаме поточно-индексируеми устройства, това са примерно фенси дигитални камери, които позволяват да се свържат като нормални уеб камери (тоест серийни устройства, изпращат данни за сегашния кадър) и могат да пазят снимки (тоест индексируеми устройства).
+
+Последно, с популярността на интернетът е добавен мрежов интерфейс, за който трябва да реализираме член-функции за изпращане и приемане на пакет с данни.
+Един пакет съдържа начален и краен адрес като цели неотрицателни числа, име на протокола (низ с 4 знака) и данни (масив от байтове).
+
+Имаме и конкретен тип поточно устройство: мрежов адаптер.
+Разбира се, той е и мрежов интерфейс, като идеята е, че по файловия интерфейс се предават статистични и информативни данни, но не и пакети.
+