Structura repetitivă condiționată posterior

Clasa a VI-a – Informatică și TIC

Amintește-ți!

Într-un algoritm, unele instrucțiuni trebuie repetate. Uneori știm exact de câte ori se repetă, iar alteori nu știm de la început numărul de pași necesari.

Structura repetitivă condiționată posterior se folosește atunci când repetarea depinde de o condiție, dar condiția este verificată după executarea instrucțiunilor.

1. Ce este structura repetitivă condiționată posterior?

Structura repetitivă condiționată posterior este o structură repetitivă cu număr necunoscut de pași, în care instrucțiunile se execută mai întâi, iar condiția se verifică la final.

Execută instrucțiunile → Verifică o condiție → Repetă sau oprește algoritmul

Diferența importantă față de structura condiționată anterior este că aici corpul repetării se execută cel puțin o dată.

Reține!

La structura repetitivă condiționată posterior, nu este posibil ca instrucțiunile din interior să nu se execute deloc. Ele se execută prima dată, apoi se verifică dacă repetarea continuă sau se oprește.

2. Forma generală

Forma generală a structurii este:

Repetă
    instrucțiuni
Până când condiție

Instrucțiunile se repetă până când condiția devine adevărată. Când condiția este adevărată, algoritmul se oprește.

3. Cum funcționează pas cu pas?

  1. Se execută instrucțiunile din corpul structurii repetitive.
  2. Se verifică valoarea condiției.
  3. Dacă această condiție nu este îndeplinită, instrucțiunile se repetă.
  4. Dacă această condiție este îndeplinită, repetarea se oprește.
  5. Algoritmul continuă cu instrucțiunea următoare.

4. Exemplu din viața reală

Imaginează-ți că ai de învățat o poezie. O citești cel puțin o dată, apoi verifici dacă ai reținut-o. Dacă nu ai reținut-o, o citești din nou.

Repetă
    Citește poezia
    Încearcă să o spui fără ajutor
Până când știi poezia

Prima citire se face obligatoriu. Abia după aceea verifici dacă ai învățat poezia.

5. Comparație cu structura condiționată anterior

Structura repetitivă Când se verifică starea? Se execută cel puțin o dată? Formă simplificată
Condiționată anterior La început Nu întotdeauna Cât timp condiție execută
Condiționată posterior La final Da Repetă ... până când condiție

6. Exemplu: afișarea numerelor de la 1 la 10

Problemă

Să se afișeze numerele de la 1 la 10, folosind structura repetitivă condiționată posterior.

Algoritm în pseudocod

i ← 1

Repetă
    Scrie i
    i ← i + 1
Până când i > 10

Explicație

Variabila i pornește de la valoarea 1. Se afișează valoarea ei, apoi se mărește cu 1. Repetarea se oprește când i devine mai mare decât 10.

Se vor afișa:

1 2 3 4 5 6 7 8 9 10

7. Există acest bloc în Scratch?

În Scratch nu există un bloc special pentru structura:

Repetă
    instrucțiuni
Până când condiție

Totuși, această structură poate fi simulată. Pentru simulare, instrucțiunile care trebuie executate cel puțin o dată se pun înaintea blocului repetă până când, apoi se repetă și în interiorul lui.

Ideea de simulare în Scratch

Structura teoretică:

Repetă
    instrucțiuni
Până când condiție

Simulare în Scratch, descrisă textual:

instrucțiuni

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

Astfel, instrucțiunile se execută o dată înainte de verificarea condiției, apoi se repetă până când condiția devine adevărată.

8. Exemplu în Scratch: ghicește numărul

Problemă

Simona alege un număr secret, iar Andrei trebuie să îl ghicească. Programul trebuie să ceară un răspuns cel puțin o dată și să continue până când răspunsul este corect.

Algoritm în cuvinte

  1. Se stabilește numărul secret.
  2. Utilizatorul este întrebat care este numărul.
  3. Dacă răspunsul este greșit, programul întreabă din nou.
  4. Când răspunsul este corect, programul afișează un mesaj de felicitare.

Algoritm Scratch, descris textual

când se dă click pe stegulețul verde
setează secret la 27

î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. Mai încearcă!" pentru 2 secunde
    întreabă "Ghicește numărul:" și așteaptă
    setează raspuns_utilizator la răspuns

spune "Bravo! Ai ghicit numărul!"

Prima întrebare este pusă înainte de blocul repetă până când, deoarece structura condiționată posterior trebuie să execute instrucțiunile cel puțin o dată.

9. Exemplu: câte cifre are un număr

Problemă

Se citește un număr natural n. Să se afișeze câte cifre are numărul.

Algoritm în pseudocod

Citește n
nr ← 0

Repetă
    nr ← nr + 1
    n ← [n / 10]
Până când n = 0

Scrie nr

Explicație

La fiecare pas, eliminăm ultima cifră a numărului prin împărțire întreagă la 10. Variabila nr numără câte cifre au fost eliminate.

Pentru n = 7013, pașii sunt:

Pas Valoarea lui n Valoarea lui nr
Inițial 7013 0
Pasul 1 701 1
Pasul 2 70 2
Pasul 3 7 3
Pasul 4 0 4

La final se afișează:

4

10. Simulare în Scratch: câte cifre are un număr

În Scratch, algoritmul poate fi descris astfel:

când se dă click pe stegulețul verde
întreabă "Dă un număr natural:" și așteaptă
setează n la răspuns
setează nr la 0

modifică nr cu 1
setează n la partea întreagă din n / 10

repetă până când n = 0
    modifică nr cu 1
    setează n la partea întreagă din n / 10

spune unește "Numărul de cifre este: " cu nr

Primele două instrucțiuni de prelucrare se execută înaintea blocului repetă până când, pentru a imita structura repetitivă condiționată posterior.

11. Exemplu: citire până la introducerea valorii 0

Problemă

Se citesc numere până când se introduce valoarea 0. Să se afișeze câte numere au fost introduse înainte de 0.

Algoritm în pseudocod

nr ← 0

Repetă
    Citește x
    Dacă x ≠ 0 atunci
        nr ← nr + 1
Până când x = 0

Scrie nr

Valoarea 0 are rol de semnal de oprire. Algoritmul citește cel puțin o valoare, apoi verifică dacă trebuie să se oprească.

12. Bucla infinită

O buclă infinită apare atunci când repetarea nu se mai oprește niciodată. Acest lucru se întâmplă dacă instrucțiunile din interior nu modifică variabilele din condiție.

Exemplu greșit:

i ← 1

Repetă
    Scrie i
Până când i > 10

Algoritmul este greșit deoarece i rămâne mereu 1. Condiția i > 10 nu devine niciodată adevărată.

Varianta corectă:

i ← 1

Repetă
    Scrie i
    i ← i + 1
Până când i > 10

13. Greșeli frecvente

  • Se uită că instrucțiunile se execută cel puțin o dată.
  • Se confundă structura condiționată posterior cu structura condiționată anterior.
  • Se formulează greșit condiția de oprire.
  • Nu se modifică variabila din condiție, iar algoritmul intră în buclă infinită.
  • Se încearcă folosirea directă a unui bloc Scratch care nu există pentru această structură.
  • La simularea în Scratch, se uită copierea primei execuții înainte de blocul repetă până când.

14. Exerciții

  1. Scrie un algoritm care citește o parolă până când utilizatorul introduce parola corectă.
  2. Scrie un algoritm care afișează numerele de la 1 la N, folosind structura repetitivă condiționată posterior.
  3. Scrie un algoritm care afișează câte cifre are un număr natural n.
  4. Scrie un algoritm care citește numere până când se introduce 0 și afișează suma numerelor citite.
  5. Realizează în Scratch o simulare pentru jocul „Ghicește numărul”.
  6. Realizează în Scratch un algoritm care cere numele utilizatorului până când acesta introduce un text nenul.

Pe scurt

Structura repetitivă condiționată posterior execută mai întâi instrucțiunile și verifică apoi condiția. De aceea, instrucțiunile se execută cel puțin o dată.

În Scratch nu există un bloc dedicat pentru această structură, dar o putem simula executând o dată instrucțiunile înainte de blocul repetă până când, apoi repetându-le în interiorul blocului.

Concluzie: Structura repetitivă condiționată posterior este utilă atunci când o acțiune trebuie realizată cel puțin o dată, iar oprirea depinde de o condiție verificată la final. În Scratch, această structură se construiește prin simulare, folosind blocul repetă până când.
Test - Structura Repetitivă Condiționată Posterior în Scratch

Test - Structura Repetitivă Condiționată Posterior în Scratch

Partea I: Alegere Multipla

1. Care este caracteristica principală a unei structuri repetitiv condiționate posterior?

Verifică condiția înainte de a executa instrucțiunile
Execută instrucțiunile cel puțin o dată, apoi verifică condiția
Rulează codul exact de 10 ori
Nu se folosește în Scratch

2. Ce bloc folosește Scratch pentru structura repetitivă condiționată posterior?

„Execută până când [condiție]”
„Dacă atunci”
„Cât timp [condiție] execută”
„Sunet”

Partea II: Adevărat sau Fals

3. Structura repetitivă condiționată posterior asigură executarea codului cel puțin o dată. (A/F)

Adevărat
Fals

4. În Scratch, o buclă „Execută până când” poate să nu ruleze niciodată. (A/F)

Adevărat
Fals