Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Koordinace integrovaného záchranného systému
2
Použité datové struktury
3
Mapa města Reprezentace jako graf křižovatky jsou uzly, ulice jsou hrany Uzel – rekord seznam sousedů U každého i vzdálenost v BČJ seznam bloků
4
Blok ukazatelé na křižovatky, Každé centrum svou informaci čas na uhašení, čas na zachránění živých, poslední aktualizace (policisté mají něco jiného)
5
Událost V klasickém slova smyslu Co vše je událost Centrum vydá nebo přijme příkaz Jednotka se hodlá přesunout, provádí akci, mluví s centrem.
6
Datová reprezentace kalendáře Kalendář je seznam událostí Globální proměnná čas – integer Seznam Položka obsahuje: Kdy– integer Kdo– pointer na aktéra Co – událost
7
Aktér Akter je abstraktní třída jak nad centrem tak nad jednotkami Kvůli ukazování na jednotlivé Aktéry v kalendáři. Obsahuje virtuální metody ZpracujUdalost a NaplanujUdalost
8
Datová reprezentace centra Vysílačka (integer) – čas, kdy je vysílačka volná Seznam událostí k vyřízení Obsahuje náročnost problému, pointer na místo, kde je problém Seznam jednotek Ukazatele na jednotky Specializovaná mapa města
9
Datová reprezentace komanda Komando je skupina záchranářů, hasičů nebo policistů. Pozice Počet členů Stav Kdy budu volné – integer
10
Jdeme na algoritmizaci Počítač pouze řeší problémy, které by bez něj vůbec neexistovaly.
11
Nejkratší cesta Pokud centrum někomu zadá kam a kudy má jít. Dijkstrův algoritmus
12
Co dělá skupina, když nemá co dělat? Jednotku kompletně řídí centrum. Nastane jen když centrum nemá nahlášený problém (např. na počátku akce). V takovém případě jednotka prohledává dosud neprozkoumanou oblast a centru hlásí výsledky zkoumání.
13
Jak jednotka prohledává? Jednotky se snaží napodobit prohledávání do šířky: Centrum najde nejbližší neprozkoumanou křižovatku (blok) a přidělí ji jednotce k prozkoumání. Po prozkoumání se jednotka naplánuje na vysílání centru.
14
Pascal Kolik jazyků znáš tolikrát jsi počítačem
15
Mapa PUzel = ^ TUzel; TUzel = record; SeznamSousedu : PSeznam1; SeznamBloku : PSeznam2; end; TMapa = PUzel;
16
Blok PBlok = ^ TBlok; TBlok = record SeznamKrizovatek : PSeznam1; PozadovanaHodnota: Integer; {Lisi se dle centra} PosledniAktualizace: Integer; end;
17
Kalendář PPolozka = ^TPolozka TPolozka = record Kdo : TAkter; /CHCIP Kdy : Integer; Co : TUdalost end; PKalendar = PPolozka;
18
Některé procedury pro kalendář Procedure NaplanujUdalost(Udalost:TUdalost, Akter:PAkter; Cas:Integer) Zatridi do seznamu udalost... Kdo:=Akter;Kdy:=Cas;Co:=Udalost... Procedure VykonejUdalosti; begin while TKalendar.kdy= CAS do begin Kdo^.ZpracujUdalost(Udalost); OdeberCeloKalendare; end;
19
Centrum PCentrum = ^TCentrum TCentrum = Object(TAkter) Mapa:TMapa; VolnaVysilacka:Integer; Seznam Jednotek Seznam Problemu; SeznamCekajicichNaHovor ReagujNaUdalost, NajdiNejkratsiCestu end;
20
Procedury pro Centrum Procedure ReagujnaUdalost; case Udalost of PrijemNebezpeci: PrijemKontrola: PrijemKonecUkolu; PrijemNajdiNovouCestu Zadani: end;
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.