Structura repetitivă condiționată anterior în Scratch

Clasa a VI-a – Informatică și TIC

Amintește-ți!

Î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.

Verifică o condiție → Execută instrucțiunile → Revine la condiție → Se oprește când condiția de oprire este îndeplinită

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:

repetă până când condiție

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

  1. Personajul pornește dintr-un punct al scenei.
  2. Se repetă deplasarea înainte.
  3. 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

  1. Deschide aplicația Scratch sau site-ul scratch.mit.edu.
  2. Alege un personaj potrivit pentru problema dată.
  3. Alege un decor adecvat.
  4. Creează variabilele necesare, de exemplu N, i, x sau nr.
  5. Adaugă blocul de pornire: când se dă click pe stegulețul verde.
  6. Adaugă blocurile de citire: întreabă ... și așteaptă.
  7. Adaugă blocul repetă până când.
  8. Pune în interiorul blocului comenzile care se repetă.
  9. Verifică dacă variabila din condiție se modifică în interiorul repetării.
  10. Testează proiectul și corectează eventualele greșeli.

11. Greșeli frecvente

  • Se confundă cât timp cu repetă 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

  1. Realizează în Scratch un algoritm care afișează numerele de la 1 la 10.
  2. Realizează în Scratch un algoritm care afișează numerele de la N la 1.
  3. Realizează în Scratch un algoritm care afișează doar numerele pare mai mici sau egale cu N.
  4. 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.
  5. Realizează în Scratch un joc în care personajul se mișcă până atinge un obiect.
  6. 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.

Concluzie: Blocul 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ă.
Structura repetitivă condiționată anterior

🧃 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 clicked
  • set numar to 1
  • repeat until <numar > 5>
  • say numar for 1 second
  • change numar by 1
Script Scratch cu repeat until numărare

💡 Mini-test: Ce ai învățat?

1. Ce face blocul repeat until?

Repetă până adormi
Repetă până se îndeplinește o condiție
Nu face nimic

2. Ce face pisica în exemplul de mai sus?

Sare peste numere
Spune numerele de la 1 la 5
Se oprește la 3