Completez programul: liste
Săptămâna trecută, în „Citesc datele, deduc modificarea", ai urmărit pe hârtie o variabilă care creștea cu 2 la fiecare repetare. O variabilă, o valoare — simplu. Dar încearcă să ții notele la informatică ale întregii clase în variabile: nota1, nota2, nota3... până la nota28. Douăzeci și opt de variabile și un script kilometric. Trebuie să existe ceva mai bun — și există. La finalul lecției vei ști să creezi o listă în Scratch, să o parcurgi cu o repetare și să completezi un program care prelucrează valorile din ea.
O cutie cu sertare numerotate
Gândește-te la catalogul clasei: un singur obiect, dar înăuntru fiecare elev are numărul lui de ordine. Diriginta nu ține 28 de carnete separate — ține un catalog și caută după poziție. Exact asta face lista.
În Scratch creezi o listă din categoria Variabile, butonul „Creează o listă". Îi dai un nume — să zicem note — și primești un set nou de blocuri, plus un panou pe scenă în care vezi conținutul ei în timp real:
Patru operații acoperă aproape tot ce vei face vreodată cu o listă:
- adaugă ... la note — pune o valoare nouă la sfârșitul listei;
- șterge elementul ... din note — scoate elementul de la poziția dată, iar cele de după el urcă o poziție;
- elementul ... din note — îți dă valoarea de la o anumită poziție (pentru lista din figură, „elementul 2 din note" este 7);
- lungimea lui note — câte elemente are lista acum.
Parcurgerea: vizitezi fiecare sertar, pe rând
Ca să prelucrezi toate elementele — să le aduni, să le afișezi, să cauți ceva — le vizitezi pe rând, de la primul la ultimul. Rețeta are trei ingrediente: o variabilă i care ține poziția curentă, o repetare de „lungimea listei" ori și, în interior, un bloc care face ceva cu „elementul i" urmat de „modifică i cu 1".
Uite parcurgerea în acțiune, într-un program care calculează media notelor din listă:
Fă-i tabelul de urmărire pentru lista din figura de sus, cu 9, 7 și 10. Coloane: i și suma. Start: i este 1, suma 0. Prima repetare adună elementul 1 — suma devine 9, i devine 2. A doua adună elementul 2 — suma 16, i devine 3. A treia adună elementul 3 — suma 26. Media: 26 împărțit la 3, adică 8,66. Personajul o spune, catalogul confirmă.
Completează programul
În sala de informatică deschide proiectul „Catalogul clasei" pregătit de profesor (sau construiește-l singur după figura de mai sus, fără ultimele două blocuri din repetare). Programul are lista note gata umplută, evenimentul de start și repetarea — dar interiorul repetării e gol și lipsește afișarea mediei. Sarcina ta: completează-l ca să spună media, apoi verific-o cu un calcul pe hârtie pentru 3 note alese de tine.
Aceeași situație ca săptămâna trecută, alt verb: atunci modificai o valoare într-un program întreg, acum completezi blocurile care lipsesc dintr-un program început. În ambele cazuri, câștigă cine citește întâi datele.
Exersează
- Creează lista
prieteniicu 4 nume. Scrie pe caiet ce afișează „elementul 3 din prietenii" și ce valoare are „lungimea lui prietenii" după ce ștergi elementul 1. - Completează programul „Catalogul clasei" astfel încât, pe lângă medie, să numere câte note sunt 10. Îți trebuie o variabilă nouă și un bloc „dacă ... atunci" în interiorul parcurgerii.
- Adaugă în lista
noteo notă nouă cu „adaugă ... la note" și rulează din nou programul mediei. S-a actualizat media fără nicio altă modificare? Explică de ce blocul „lungimea lui note" face programul să reziste la schimbare. - Provocare: construiește un program care găsește cea mai mare notă din listă. Indiciu: pornește cu o variabilă
maximsetată la 0 și, în parcurgere, dacă elementul curent e mai mare decâtmaxim, pune-l înmaxim.
Data viitoare răspundem la o întrebare care pare banală și nu e deloc: programul tău cu liste „merge" — dar ce înseamnă, exact, că merge?
Verifică-te
Se încarcă activitatea…
Se încarcă activitatea…
Se încarcă activitatea…