Differences

This shows you the differences between two versions of the page.

Link to this comparison view

courses:b4b33rph:cviceni:program_po_tydnech:tyden_10 [2018/07/17 13:25] (current)
Line 1: Line 1:
 +====== Spam III ======
 +  * Dotazy a odpovědi
 +  * Kontrola DÚ z minulého týdne
 +  * Tutoriál: Dědičnost
 +  * Programovací úloha
 +  * Individuální konzultace
 +
 +
 +
 +
 +
 +===== Dědičnost v OOP =====
 +  * Bude se týkat tříd ''​TrainingCorpus''​ a jednotlivých spam filtrů.
 +
 +==== Interaktivní programovací úloha a příklad k diskusi ====
 +++++ Teplé nápoje |
 +Máme malé automatizované bistro. Prodáváme v něm tureckou kávu a čaj. Recept na kávu:
 +  - Uvař vodu
 +  - Dej do šálku dávku mleté kávy
 +  - Zalij kávu vodou
 +  - Přidej mléko, cukr, atd., pokud si to zákazník přeje.
 +Recept na čaj:
 +  - Uvař vodu
 +  - Dej do šálku sáček čaje
 +  - Zalij čaj vodou
 +  - Přidej citron, cukr, atd., pokud si to zákazník přeje.
 +
 +Dotazy k diskusi:
 +  * Jaké entity zde vystupují? Co mají společného?​
 +  * Jaké jsou mezi nimi vztahy? (IS-A)
 +
 +Vytvořte software pro automatické vyřizování objednávek tak, aby následující kód<​code python>
 +  objednavka = [TureckaKava('​mléko a cukr'​), ​
 +                Caj('​citrón'​), ​
 +                TureckaKava('​mléko'​)]
 +  for napoj in objednavka:
 +    napoj.priprav()
 +    print()
 +</​code>​ měl následující výstup:
 +<​code>​
 +Vařím vodu.
 +Dávám do šálku lžičku mleté kávy.
 +Nalévám vodu do šálku.
 +Přidávám mléko a cukr.
 +
 +Vařím vodu.
 +Dávám do šálku sáček čaje.
 +Nalévám vodu do šálku.
 +Přidávám citrón.
 +
 +Vařím vodu.
 +Dávám do šálku lžičku mleté kávy.
 +Nalévám vodu do šálku.
 +Přidávám mléko.
 +</​code>​
 +
 +> {{page>​..:​..:​internal:​cviceni:​inheritance#​Napoje&​editbtn}}
 +++++
 +
 +++++ Dopravní prostředky |
 +
 +Mějme strategickou počítačovou hru typu Civilizace, Transport Tycoon nebo SimCity. Ve hře se vyskytují různé typy dopravních prostředků:​
 +  * Co mají společného?​
 +  * Jaké jsou mezi nimi vztahy? (Is-a)
 +Předpokládejme,​ že chceme namodelovat schopnost těchto prostředků pohybovat se s tím, že bychom chtěli nějak zohlednit, že ne každé místo může být pro každý dopravní prostředek dosažitelné. Zkusme vytvořit systém, který např. po inicializaci 3 prostředků a po požadavku na přesun do Prahy
 +
 +<code python>
 +vehicles = [
 +    WaterVehicle(id='​Titanic',​ current_location='​Liverpool'​),​
 +    GroundVehicle(id='​Humvee',​ current_location='​Baghdad'​),​
 +    AirVehicle(id='​Air Force One', current_location='​Washington'​)
 +    ]
 +
 +for vehicle in vehicles:
 +    vehicle.move_to('​Prague'​)
 +    print(vehicle)
 +</​code>​
 +
 +vypíše např. toto:
 +
 +<​code>​
 +Titanic: No route available. Current location: Liverpool
 +Humvee: Travelled via ('​Baghdad',​ 'gas station',​ '​Prague'​). Current location: Prague
 +Air Force One: Travelled via ('​Washington',​ '​Prague'​). Current location: Prague
 +</​code>​
 +
 +> {{page>​..:​..:​internal:​cviceni:​inheritance#​dopravni_prostredky&​editbtn}}
 +++++
 +
 +===== Hádanka =====
 +> {{page>​courses:​b4b33rph:​internal:​puzzles#​cviceni_10}}
 +
 +===== Programování =====
 +Dotáhněte úlohu spam filter do stavu, kdy vám fungují jednoduché filtry a jste schopni spočítat jejich kvalitu (tedy až do kroku 4). Pokud vám něco není jasné, **ptejte se cvičícího!**
 +
 +====== Domácí úkol ======
 +<WRAP round important>​
 +V příštích dnech je termín **odevzdání 1. části úlohy Spam filtr!** Postupujte podle [[..:​spam:​specifikace#​sp-eval|specifikací]]. Termín najdete v odevzdávacím systému.
 +</​WRAP>​
 +
 +===== Programování =====
 +
 +  * [[..:​spam:​krok5|Krok 5 - třída TrainingCorpus]],​ pokud ji ve svém filtru budete využívat.
 +  * [[..:​spam:​krok6|Krok 6 - vlastní filtr]]: začněte na něm pracovat.
 +
  
courses/b4b33rph/cviceni/program_po_tydnech/tyden_10.txt · Last modified: 2018/07/17 13:25 (external edit)