Listy & přepínače

15. hodina PVA


Matěj Cajthaml — SSPŠ

©

Opakování

K čemu slouží klíčové slovo out?
Jak získáme velikost zubatého pole?
Jak program zjišťuje zda se má při vyvolání výjimky ukončit?
Do kdy se volá cyklus for?
Jaké znáte předpřipravené výjimky?

Vyřešme problém pomocí pole:

  • představte si, že děláme program pro nákupní seznam
  • na nakupní seznam se nám přidávají položky
  • položky přidávají různě po sobě členové domácnosti
  • položky ukládáme jako řádky textu

V jakém datovém typu budeme ukládat položky?

Co když se rodina dohodne, že koupí maximálně n položek, ale nakonec bude potřeba více položek?

Řešení 1

Omezíme počet a nic na více nekoupíme.

Řešení 2

Budeme zvětšovat počet — pole.

Práce

Zvětšování pole

Vytvoříme program, který bude umět zvětší pole o jedna dle potřeb programu či uživatele.

Vidíte v tomto postupu nějaký problém?

Listy

Listy

  • způsob uložení dat programu
  • velmi podobné poli
  • list je nafukovací pole
  • list se zvětšuje dle potřeb programu
  • používají se indexy, prvky lze mazat

Přidávání do listu

  • vnitřně má list omezenou velikost
  • když přidáváme prvek a není v listu místo, místo se vytvoří
  • list se zvětšuje dle speciálního výrazu a je velmi rychlé

Vytvoření listu

Přidání hodnoty

Čtení jedné hodnoty

Vložení hodnoty

Odstranění hodnot

Získání velikosti listu

Kontrola zda list obsahuje hodnotu

Převedení na pole

Vyčištění listu

Index prvku

Seřazení

Jaké vidíte výhody listů?

Kde byste použili pole a kde listy?

Práce

Nákupní seznam

Zkusíme vypracovat program pro nákupní seznam, se kterým jsme pracovali na začátku hodiny.

Přepínače

Přepínače

  • řídící struktura — stejně jako cyklus, podmínky, ...
  • chytřejší podmínka
  • hodí se na menší počet podmínky
  • podobné hodnoty
  • klíčová slova: switch, case, break, default

Ukázka

Spojení možností

Bez použití default

Děkuji za pozornost!

  • matej.cajthaml@ssps.cz
  • https://ssps.cajthaml.eu/