KULTUROSFERA

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:

note1927310lungime: 3adaugă 10 la noteșterge elementul 1 din noteelementul 2 din notelungimea lui note

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

când se dă clic pe steagul verdesetează suma la0setează i la1repetă delungimea lui noteorimodifică suma cuelementul i din notemodifică i cu1spunesuma / lungimea lui note

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ă

  1. Creează lista prietenii cu 4 nume. Scrie pe caiet ce afișează „elementul 3 din prietenii" și ce valoare are „lungimea lui prietenii" după ce ștergi elementul 1.
  2. 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.
  3. Adaugă în lista note o 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.
  4. Provocare: construiește un program care găsește cea mai mare notă din listă. Indiciu: pornește cu o variabilă maxim setată la 0 și, în parcurgere, dacă elementul curent e mai mare decât maxim, pune-l în maxim.

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

Activitate

Se încarcă activitatea…

Activitate

Se încarcă activitatea…

Activitate

Se încarcă activitatea…