Prednáška 2 | Základy algoritmizácie a programovania (2021/2022)
Preber si túto prednášku so svojou AI
Skopíruj pripravený podklad a vlož ho do ChatGPT, Claude alebo inej AI — bude ťa učiť alebo skúšať len z tejto prednášky.
Zhrnutie prednášky
Prednáška sa venuje vlastnostiam algoritmov na príklade robota SuperKarel, ktorý má oproti základnému Karlovi k dispozícii viac senzorov (napr. Front is Blocked, Wall on Left/Right, negácie senzorov pre svetové strany a značky). Na príklade prechádzania bludiskom sa demonštruje algoritmus držania sa pravej steny pomocou cyklu WHILE a viacnásobného vetvenia IF-ELSE IF-ELSE, ktorým sa robot vždy najskôr snaží odbočiť doprava, potom rovno, doľava alebo sa otočí o 180 stupňov. Ukazuje sa, že takýto algoritmus je úplný, keďže robot dokáže prejsť do všetkých kútov sveta bez ohľadu na umiestnenie hľadanej značky. Následne sa kód zjednodušuje vyčlenením opakujúceho sa bloku na otáčanie do samostatnej funkcie Turn, čím sa zlepší prehľadnosť a čitateľnosť hlavnej funkcie main. Spomína sa aj použitie makra na definovanie konštanty (napr. rýchlosti) na jednom mieste v kóde a nutnosť použiť správny hlavičkový súbor a Makefile pre SuperKarla pri preklade.
- - SuperKarel má rozšírené senzory: Front is Blocked, Wall on Left/Right, negácie Beepers Present a svetových strán
- - Pri preklade treba použiť správny hlavičkový súbor a upraviť Makefile na LSuperKarel
- - Algoritmus prechádzania bludiskom je založený na držaní sa pravej steny pomocou cyklu WHILE s podmienkou No Beepers Present
- - Rozhodovanie o smere otočenia rieši viacnásobné vetvenie IF - ELSE IF - ELSE (doprava, rovno, doľava, otočka o 180°)
- - Takýto algoritmus je úplný – robot dokáže preskúmať všetky časti sveta nezávisle od pozície značky
- - Makro slúži na definovanie konštanty (napr. rýchlosti) na jednom mieste, aby sa dala ľahko meniť
- - Opakujúci sa blok kódu na otočenie sa vyčlenil do samostatnej funkcie Turn pre zjednodušenie a lepšiu čitateľnosť programu
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky