Structura repetitivă condiționată anterior în Scratch
Clasa a VI-a – Informatică și TIC
În Scratch, un personaj poate executa mai multe comenzi: se poate mișca, poate spune mesaje, poate întreba utilizatorul ceva, poate schimba decorul sau poate modifica valoarea unei variabile.
Uneori, nu știm de la început de câte ori trebuie repetată o comandă. De exemplu, un personaj trebuie să meargă până atinge marginea scenei sau trebuie să întrebe utilizatorul până primește un răspuns corect.
1. Ce este structura repetitivă condiționată anterior?
Structura repetitivă condiționată anterior este o structură care repetă una sau mai multe instrucțiuni în funcție de o condiție verificată înaintea repetării.
Această structură se folosește atunci când numărul de repetări nu este cunoscut dinainte. Programul continuă să repete comenzile până când apare o anumită situație.
Reține!
Când folosim o structură repetitivă condiționată anterior, trebuie să avem grijă ca în interiorul repetării să existe o comandă care poate schimba situația. Altfel, programul poate intra într-o buclă infinită.
2. Forma în pseudocod
În pseudocod, structura este scrisă de obicei astfel:
Cât timp condiție execută
instrucțiuni
Sfârșit cât timp
Se verifică mai întâi condiția. Dacă este adevărată, se execută instrucțiunile. Apoi se revine la verificarea condiției. Când condiția devine falsă, repetarea se oprește.
3. Cum apare în Scratch?
În Scratch, folosim blocul:
Blocul „repetă până când” execută instrucțiunile din interior până când condiția devine adevărată. Când condiția este adevărată, repetarea se oprește.
Atenție!
În pseudocod spunem adesea: Cât timp condiția este adevărată, execută...
În Scratch spunem: Repetă până când condiția devine adevărată.
De aceea, condiția din Scratch este de multe ori opusă față de condiția din pseudocod.
4. Comparație: „cât timp” și „repetă până când”
| Formă | Ideea principală | Exemplu |
|---|---|---|
| Cât timp | Execută instrucțiunile cât timp o condiție este adevărată. | Cât timp personajul nu atinge marginea, mergi înainte. |
| Repetă până când | Execută instrucțiunile până când o condiție devine adevărată. | Repetă până când personajul atinge marginea. |
5. Exemplu simplu: personajul merge până atinge marginea
Dorim ca personajul să înainteze până când atinge marginea scenei.
Descriere în cuvinte
- Personajul pornește dintr-un punct al scenei.
- Se repetă deplasarea înainte.
- Repetarea se oprește când personajul atinge marginea.
Algoritm în Scratch, descris textual
când se dă click pe stegulețul verde
mergi la x: -180 y: 0
repetă până când atingi marginea
mergi 10 pași
spune "Am ajuns la margine!"
Personajul face pași înainte, iar Scratch verifică după fiecare deplasare dacă personajul a atins marginea.
6. Exemplu: afișarea numerelor de la 1 la N
Problemă
Se citește un număr N. Să se afișeze numerele de la 1 la N.
Ideea de rezolvare
Folosim o variabilă i, care pornește de la 1. Afișăm valoarea lui i,
apoi creștem variabila cu 1. Repetăm până când i devine mai mare decât N.
Algoritm în pseudocod
Citește N
i ← 1
Cât timp i ≤ N execută
Scrie i
i ← i + 1
Sfârșit cât timp
Algoritm în Scratch, descris textual
când se dă click pe stegulețul verde
întreabă "Dă valoarea lui N:" și așteaptă
setează N la răspuns
setează i la 1
repetă până când i > N
spune i pentru 1 secunde
modifică i cu 1
Observație importantă
În pseudocod condiția este i ≤ N, adică repetăm cât timp i este mai mic sau egal cu N.
În Scratch, la blocul repetă până când, folosim condiția de oprire:
i > N.
7. Exemplu: numărarea valorilor pozitive
Problemă
Luca spune pe rând numere. Jocul se oprește când Luca spune 0 sau un număr negativ.
Să se afișeze câte numere pozitive a spus Luca.
Algoritm în pseudocod
nr ← 0
Citește x
Cât timp x > 0 execută
nr ← nr + 1
Citește x
Sfârșit cât timp
Scrie nr
Algoritm în Scratch, descris textual
când se dă click pe stegulețul verde
setează nr la 0
întreabă "Spune un număr:" și așteaptă
setează x la răspuns
repetă până când x ≤ 0
modifică nr cu 1
întreabă "Spune alt număr:" și așteaptă
setează x la răspuns
spune unește "Ai spus numere pozitive: " cu nr
Repetarea continuă doar cât timp utilizatorul introduce numere pozitive. Când introduce 0 sau un număr negativ, algoritmul se oprește și afișează rezultatul.
8. Exemplu: ghicește numărul
Problemă
Calculatorul are un număr secret. Utilizatorul trebuie să ghicească numărul. Programul întreabă utilizatorul până când răspunsul este corect.
Algoritm în Scratch, descris textual
când se dă click pe stegulețul verde
setează secret la 7
întreabă "Ghicește numărul:" și așteaptă
setează raspuns_utilizator la răspuns
repetă până când raspuns_utilizator = secret
spune "Nu ai ghicit. Încearcă din nou!" pentru 2 secunde
întreabă "Ghicește numărul:" și așteaptă
setează raspuns_utilizator la răspuns
spune "Bravo! Ai ghicit numărul!"
9. De ce poate apărea bucla infinită?
O buclă infinită apare atunci când repetarea nu se mai oprește niciodată.
Exemplu greșit:
setează i la 1
repetă până când i > 10
spune i
Acest algoritm este greșit deoarece variabila i nu se modifică în interiorul repetării.
Ea rămâne mereu 1, deci condiția i > 10 nu devine niciodată adevărată.
Varianta corectă:
setează i la 1
repetă până când i > 10
spune i
modifică i cu 1
10. Pașii pentru realizarea în Scratch
- Deschide aplicația Scratch sau site-ul
scratch.mit.edu. - Alege un personaj potrivit pentru problema dată.
- Alege un decor adecvat.
- Creează variabilele necesare, de exemplu
N,i,xsaunr. - Adaugă blocul de pornire:
când se dă click pe stegulețul verde. - Adaugă blocurile de citire:
întreabă ... și așteaptă. - Adaugă blocul
repetă până când. - Pune în interiorul blocului comenzile care se repetă.
- Verifică dacă variabila din condiție se modifică în interiorul repetării.
- Testează proiectul și corectează eventualele greșeli.
11. Greșeli frecvente
- Se confundă
cât timpcurepetă până când. - Se pune în Scratch aceeași condiție ca în pseudocod, deși uneori trebuie folosită condiția opusă.
- Nu se modifică variabila din condiție, iar programul intră în buclă infinită.
- Se uită citirea unei noi valori în interiorul repetării.
- Se pune afișarea rezultatului în interiorul repetării, deși trebuie afișat doar la final.
- Se alege greșit semnul relațional:
<,>,≤,≥,=.
12. Exerciții
- Realizează în Scratch un algoritm care afișează numerele de la 1 la 10.
- Realizează în Scratch un algoritm care afișează numerele de la
Nla 1. - Realizează în Scratch un algoritm care afișează doar numerele pare mai mici sau egale cu
N. - Realizează în Scratch un algoritm care citește numere până când se introduce 0 și afișează câte numere au fost citite.
- Realizează în Scratch un joc în care personajul se mișcă până atinge un obiect.
- Realizează în Scratch un algoritm care cere o parolă până când utilizatorul introduce parola corectă.
Pe scurt
Structura repetitivă condiționată anterior se folosește când nu știm dinainte câți pași sunt necesari.
În Scratch, aceasta se realizează cu blocul repetă până când.
Pentru ca algoritmul să fie corect, condiția de oprire trebuie formulată atent, iar variabilele folosite în condiție trebuie modificate în interiorul repetării.
repetă până când este foarte important în Scratch,
deoarece permite realizarea algoritmilor în care numărul de repetări nu este cunoscut de la început.
Programul continuă să execute comenzile până când condiția de oprire devine adevărată.
🧃 Lecția: Structura repetitivă condiționată anterior în Scratch
📗 Ce înseamnă asta?
Este o structură care repetă o acțiune până când se îndeplinește o condiție. Gândește-te la: „număr până când ajung la 5” 🔢
În Scratch, asta se face cu blocul repeat until.
🔢 Exemplu practic – Numără până la 5
Pisica noastră pornește de la 1 și spune fiecare număr până ajunge la 5.
when green flag clickedset numar to 1repeat until <numar > 5>say numar for 1 secondchange numar by 1