За всички задачи се убедете неформално, че всяка заделена памет я почиствате когато и където трябва.
-
Дефинирайте коректно конструктор за копиране и оператор равно за класовете DynamicArray и Matrix
- Използвайте наготово кода им от 4тата седмица.
-
Дефинриайте правилно методите
Matrix::addRow()
иMatrix::addColumn()
в класа Matrix
-
По аналогия с Person.h/Person.cpp изнесете в City.cpp функционалността (дефинициите на методите) на структурата City.
- Уверете се, че се компилира и изпълнява правилно!
- Кодът от миналото упражнение се помещава тук
-
Отново базирайки се на примера от миналото упражнение, изнесете цялата нетривиална функционалност (i.e. методи с повече от 1-2 реда) от класовете DynamicArray и Matrix в .cpp файлове.
- Уверете се, че се компилира и изпълнява правилно!
В следващите задачи е възможно да срещнете отново проблема с циклични зависимости. Най-добре се убедете, че можете да решите задачите от предната секция.
-
Дефинирайте структура Policeman, която представя имунизиран полицай, който търси болни хора в града. Ето ви някои идеи:
- Направете списък от полицаи във всеки град
- На всеки 'ход' полицаят наблюдава около себе си дали някой ще кихне
- (да речем, здравите не кихат, а болен човек киха с 1% вероятност на всеки ход)
- Ако кихне, го арестува веднага и го премахва от града.
- Дайте възможност на всеки полицай да си почива: дефинирайте
Policeman::goToSleep()
иPoliceman::awake()
- За реализацията на предишното: дефинирайте
Policeman::update(),
който извиквайте за всички полицаи на всеки update() в City - Направете така, че всеки полицай да може да получава 'заповеди' какво да прави с всеки кихнал: дефинирайте
Policeman::instruct(/* тип */)
. Измислете какво ще бъде "заповед" и направете пример в конструктора на City, където дайте заповеди на няколко полицаи. - Измислете нещо и вие!
-
Дефинирайте структура/клас Hospital, която поддържа списък от пациентите си.
- Сложете във всеки град по една болница и наредете на полицията да прибира всеки кихнал
- Болницата трябва да поддържа състоянието на всеки пациент (да кажем, в % излекуваност)
- Връщайте вкъщи оздравелите хора
- Намалете ефективността на оздравяването с нарастване на броя пациенти
- Сложете ограничение на броя хора, които могат да влязат в болницата и отказвайте да приемете повече от някакъв фиксиран брой хора.
- Къде ще зададете това ограничение?
- Какво ще прави полицай с болен човек, ако няма места в болницата?
-
Споделете и реализирайте свои идеи! Измислете връзки между обектите и демонстрирайте.