11. diel - Zoznamy v Scratchi
V predchádzajúcom cvičení, Riešené úlohy k 5.-8. lekciu Scratche, sme si precvičili získané skúsenosti z predchádzajúcich lekcií.
V dnešnom Scratch tutoriále si predstavíme zoznam. Vyskúšame si, ako do neho pridať jednotlivé položky a ako ich odobrať. Nakoniec vytvoríme aplikáciu s nákupným zoznamom a naučíme mačičiaka, aby z neho zmazal konkrétnu položku.
Zoznam v Scratchi
Predstavme si, že si chceme uložiť nejaké údaje o viacerých
prvkoch. Napríklad chceme v pamäti uchovávať desať čísel,
políčka šachovnice alebo mená päťdesiatich užívateľov. Asi nám dôjde,
že v programovaní bude nejaká lepšia cesta, než začať búšiť premenné
uzivatel1
, uzivatel2
až uzivatel50
.
Nehľadiac na to, že ich môže byť treba 1000! A ako by sa v tom potom
hľadalo? Brrr, takto nie 🙂
Ak potrebujeme uchovávať väčšie množstvo premenných,
tento problém nám rieši zoznam. Môžeme si ho predstaviť
ako množstvo priehradok, kde v každej máme uložený jeden prvok. Priehradky
sú očíslované tzv. indexy, prvá má index
1
:
(Na obrázku je vidieť zoznam ôsmich čísel.)
Práca so zoznamom
V niekoľkých ďalších krokoch si vytvoríme zoznam a naplníme ho vlastnými dátami.
Vytvorenie zoznamu
Aby sme vytvorili zoznam, prejdeme do blokov Premenné a klikneme na tlačidlo Vytvor zoznam:
Zobrazí sa rovnaký dialóg, ako keď vytvárame premennú. Zadáme názov zoznamu a okno potvrdíme:
Tým sa nám odomkli ďalšie možnosti, ktoré si teraz popíšeme 😉
Zobrazenie a skrytie zoznamu
Ak chceme zobraziť všetky prvky v zozname, môžeme to urobiť zaškrtnutím fajky pri názve zoznamu (tak ako pri premennej). V aplikácii potom pre zobrazenie zoznamu použijeme blok ukáž zoznam:
Kde blok skry zoznam náš zoznam skryje:
Naplnenie zoznamu
Na naplnenie zoznamu môžeme použiť dva spôsoby. Zoznam naplníme buď programovo, alebo ručne. Obe možnosti si hneď ukážeme 🙂
Programové naplnenie
Aby sme pridali do zoznamu prvok, použijeme blok pridaj k. Poďme blok nalepiť k štartovému bloku:
Program spustíme a vidíme, že sa nám do zoznamu naozaj pridala nová položka 😉 Ak program spustíme niekoľkokrát, položka sa pridá viackrát:
Samozrejme namiesto věc
môžeme zakaždým zadať
nejaký iný text. V ukážke vyššie sme do zoznamu pridali položky s
číslom 1-3 😉
Ručné naplnenie
Pokiaľ chceme zoznam naplniť ručne, použijeme na to symbol plus. Po kliknutí naň sa pridá ďalšia položka, do ktorej napíšeme jej názov. Kliknutím vedľa prestaneme písať a položka je úspešne pridaná do zoznamu:
Ak chceme pridať ďalšiu položku, stlačíme po dopísaní názvu položky klávesu Enter 😉
Zmazanie položky
Rovnako aj pri mazaní položiek zo zoznamu platí, že ho môžeme vykonať buď programovo, alebo ručne.
Programové zmazanie
Ako sme si už povedali, v zozname sa položky označujú indexy počnúc
1
. Na zmazanie konkrétnej položky slúži blok smaž
z:
Všimnime si, že do tohto bloku môžeme napísať iba čísla. Musíme teda vedieť, na akom indexe sa mrkva nachádza, a až potom ju môžeme takto zmazať 😉
Ručné zmazanie
Pokiaľ chceme položku zo zoznamu zmazať ručne, najskôr na ňu klikneme. Po kliknutí sa vedľa názvu položky objaví krížik, na ktorý klikneme. Tým je položka zmazaná:
Nákupný zoznam
Poďme si ukázať, ako môžeme zmazať položku podľa názvu a nie podľa indexu. Vďaka tomu si nebudeme musieť pamätať, aká položka má aký index 🙂
Začneme klasicky, pridáme si štartový blok ak tomu si vytvoríme zoznam
nakupniSeznam
, do ktorého si pridáme niekoľko položiek:
Za štartový blok nalepíme otázku
Zadejte název položky, kterou chcete smazat:
a za tú nalepíme
blok zmaž z:
Potom vezmeme blok poradie vo a namiesto položky věc
vložíme blok odpoveď. Celý blok potom vložíme do bloku smaž
z namiesto indexu:
Keď program spustíme, zo zoznamu sa naozaj zmaže zadaná položka:
Tým sme si zároveň predstavili ďalší blok na prácu so
zoznamom. Budeme si pamätať, že blok poradí vo vráti index
výskytu položky v zozname. Ak sa položka v zozname nevyskytuje,
vráti blok poradie vo hodnotu 0
😉
Poďme náš program ešte vylepšiť. Pokiaľ položka nebude na zozname,
povie nám mačičák, že tam nie je. Pridáme do programu blok keď tak
inak. Do podmienky potom vložíme operátor rovná sa. Na ľavú
stranu pridáme rovnaký blok poradie vo, ako sme mali v bloku
smaž z. Na pravej strane zadáme hodnotu 0
:
Náš celý mazací blok potom vložíme do vetvy inak a do vetvy
tak vložíme bublina sekúnd s textom
Taková položka na seznamu není.
Celý kód bude vyzerať
takto:
Keď teraz program spustíme, mačičák naozaj kontroluje, či sa položka na zozname nachádza:
Zmazanie všetkých položiek
Bolo by samozrejme otravné musieť pre zoznam s 50 položkami vytvárať 50 blokov smaž z a pri každom meniť index. Preto existuje veľmi elegantné riešenie vo forme bloku zmaž všetko z:
Ako iste uhádnete, blok zaistí zmazanie úplne všetkých položiek zo zoznamu 😉
V nasledujúcej lekcii, Zoznamy v Scratchi - Dokončenie , si popíšeme ďalšie bloky pre prácu so zoznamami a ukážeme si, ako ich využiť na vylepšenie projektu s nákupným zoznamom.
Mal si s čímkoľvek problém? Stiahni si vzorovú aplikáciu nižšie a porovnaj ju so svojím projektom, chybu tak ľahko nájdeš.
Stiahnuť
Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami
Stiahnuté 10x (42.07 kB)
Aplikácia je vrátane zdrojových kódov v jazyku Scratch