Skip to content

Latest commit

 

History

History

06.sources

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

Технически задачи

За динамична памет

За всички задачи се убедете неформално, че всяка заделена памет я почиствате когато и където трябва.

  1. Дефинирайте коректно конструктор за копиране и оператор равно за класовете DynamicArray и Matrix

  2. Дефинриайте правилно методите Matrix::addRow() и Matrix::addColumn() в класа Matrix

За header и source файлове

  1. По аналогия с Person.h/Person.cpp изнесете в City.cpp функционалността (дефинициите на методите) на структурата City.

    • Уверете се, че се компилира и изпълнява правилно!
    • Кодът от миналото упражнение се помещава тук
  2. Отново базирайки се на примера от миналото упражнение, изнесете цялата нетривиална функционалност (i.e. методи с повече от 1-2 реда) от класовете DynamicArray и Matrix в .cpp файлове.

    • Уверете се, че се компилира и изпълнява правилно!

Други

В следващите задачи е възможно да срещнете отново проблема с циклични зависимости. Най-добре се убедете, че можете да решите задачите от предната секция.

  1. Дефинирайте структура Policeman, която представя имунизиран полицай, който търси болни хора в града. Ето ви някои идеи:

    • Направете списък от полицаи във всеки град
    • На всеки 'ход' полицаят наблюдава около себе си дали някой ще кихне
      • (да речем, здравите не кихат, а болен човек киха с 1% вероятност на всеки ход)
      • Ако кихне, го арестува веднага и го премахва от града.
    • Дайте възможност на всеки полицай да си почива: дефинирайте Policeman::goToSleep() и Policeman::awake()
    • За реализацията на предишното: дефинирайте Policeman::update(), който извиквайте за всички полицаи на всеки update() в City
    • Направете така, че всеки полицай да може да получава 'заповеди' какво да прави с всеки кихнал: дефинирайте Policeman::instruct(/* тип */). Измислете какво ще бъде "заповед" и направете пример в конструктора на City, където дайте заповеди на няколко полицаи.
    • Измислете нещо и вие!
  2. Дефинирайте структура/клас Hospital, която поддържа списък от пациентите си.

    • Сложете във всеки град по една болница и наредете на полицията да прибира всеки кихнал
    • Болницата трябва да поддържа състоянието на всеки пациент (да кажем, в % излекуваност)
    • Връщайте вкъщи оздравелите хора
    • Намалете ефективността на оздравяването с нарастване на броя пациенти
    • Сложете ограничение на броя хора, които могат да влязат в болницата и отказвайте да приемете повече от някакъв фиксиран брой хора.
      • Къде ще зададете това ограничение?
      • Какво ще прави полицай с болен човек, ако няма места в болницата?
  3. Споделете и реализирайте свои идеи! Измислете връзки между обектите и демонстрирайте.