Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

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, uzivatel2uzivatel50. 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:

Štruktúra zoznamu - Scratch

(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:

Tlačidlo vytvor zoznam - Scratch

Zobrazí sa rovnaký dialóg, ako keď vytvárame premennú. Zadáme názov zoznamu a okno potvrdíme:

Dialóg na vytvorenie zoznamu - Scratch

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:

Blok ukáž zoznam - Scratch

Kde blok skry zoznam náš zoznam skryje:

Blok skry zoznam - Scratch

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:

Pridanie položky do zoznamu - Scratch

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:

Zoznam s niekoľkými položkami - Scratch

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:

Ručné pridanie do zoznamu - Scratch

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:

Blok na zmazanie položiek - Scratch

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á:

Ručné zmazanie zo zoznamu - Scratch

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:

Nákupný zoznam - Scratch

Za štartový blok nalepíme otázku Zadejte název položky, kterou chcete smazat: a za tú nalepíme blok zmaž z:

Mazanie 1. položky zoznamu - Scratch

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:

Mazanie zadanej položky zoznamu - Scratch

Keď program spustíme, zo zoznamu sa naozaj zmaže zadaná položka:

Mačičák maže položku zo zoznamu - Scratch

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:

Podmienka pre mazanie zoznamu - Scratch

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:

Mazanie zoznamu s overením existencie položky - Scratch

Keď teraz program spustíme, mačičák naozaj kontroluje, či sa položka na zozname nachádza:

Mačičák maže položku zo zoznamu a kontroluje ho - Scratch

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:

Blok zmaž všetko z - Scratch

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é 7x (42.07 kB)
Aplikácia je vrátane zdrojových kódov v jazyku Scratch

 

Predchádzajúci článok
Riešené úlohy k 5.-8. lekciu Scratche
Všetky články v sekcii
Scratch
Preskočiť článok
(neodporúčame)
Zoznamy v Scratchi - Dokončenie
Článok pre vás napísal PDoctor
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Aktivity