Structura repetitivă cu contor

Clasa a VI-a – Informatică și TIC

Amintește-ți!

Într-un algoritm, unele comenzi trebuie repetate. Dacă trebuie să spunem unui personaj să scrie același mesaj de mai multe ori, nu este eficient să scriem aceeași comandă de fiecare dată.

De exemplu, în loc să scriem de 30 de ori comanda „scrie litera a”, este mai simplu să spunem: scrie litera a de 30 de ori.

1. Ce este structura repetitivă cu contor?

Structura repetitivă cu contor este o structură care permite repetarea unei instrucțiuni sau a unui grup de instrucțiuni de un număr cunoscut de ori.

Știm de câte ori se repetă → folosim structură repetitivă cu contor

Această structură se folosește atunci când numărul de repetări este stabilit de la început: de 5 ori, de 10 ori, de 100 de ori sau de n ori.

Reține!

Structura repetitivă cu contor se mai numește și structură repetitivă cu număr cunoscut de pași, deoarece știm câți pași trebuie executați.

2. Ce este contorul?

Contorul este o variabilă care numără de câte ori s-a executat repetarea. De obicei, contorul se notează cu i, dar poate avea și alt nume.

Contorul are:

  • o valoare inițială, de unde începe numărarea;
  • o valoare finală, unde se oprește numărarea;
  • un pas, adică valoarea cu care crește sau scade la fiecare repetare.

3. Forma în pseudocod

Forma generală a structurii repetitive cu contor este:

Pentru contor ← valoare_initiala, valoare_finala, pas execută
    instrucțiuni
Sfârșit pentru

Dacă pasul este 1, acesta poate lipsi:

Pentru contor ← valoare_initiala, valoare_finala execută
    instrucțiuni
Sfârșit pentru

Pe înțeles simplu

Instrucțiunea Pentru i ← 1, 10 execută înseamnă: repetă instrucțiunile pentru valorile lui i de la 1 până la 10.

4. Cum funcționează pas cu pas?

Pas Ce se întâmplă?
Pasul 1 Contorul primește valoarea inițială.
Pasul 2 Se verifică dacă valoarea contorului permite continuarea repetării.
Pasul 3 Dacă repetarea continuă, se execută instrucțiunile din interior.
Pasul 4 Contorul se modifică prin adăugarea pasului.
Pasul 5 Se revine la verificare. Când condiția nu mai este îndeplinită, repetarea se oprește.

5. Structura repetitivă cu contor în Scratch

În Scratch, atunci când vrem să repetăm o comandă de un număr cunoscut de ori, folosim blocul:

repetă 10

Acest bloc se găsește în grupa Control și execută instrucțiunile din interior de numărul de ori indicat.

De exemplu, dacă în bloc scriem 10, comenzile din interior se execută de 10 ori.

6. Exemplu simplu: personajul spune „Ciao!” de 5 ori

Varianta fără structură repetitivă

spune "Ciao!"
spune "Ciao!"
spune "Ciao!"
spune "Ciao!"
spune "Ciao!"

Această variantă este lungă și devine greu de folosit dacă trebuie să repetăm comanda de 50 sau 100 de ori.

Varianta corectă, cu structură repetitivă

repetă 5
    spune "Ciao!"

Comanda este mai scurtă, mai clară și mai ușor de modificat.

7. Exemplu în pseudocod

Algoritmul care afișează mesajul Ciao! de 5 ori poate fi scris astfel:

Algoritmul Pico este:
Pentru i ← 1, 5 execută
    Scrie "Ciao!"
Sfârșit pentru
Sfârșit algoritm

Variabila i are rolul de a număra pașii. Ea ia pe rând valorile: 1, 2, 3, 4, 5.

8. Exemplu: pinguinul merge și salută

Problemă

Un personaj trebuie să meargă 10 pași și să spună Ciao!. Aceste două acțiuni trebuie repetate de 10 ori.

Algoritm Scratch, descris textual

când se dă click pe stegulețul verde

repetă 10
    mergi 10 pași
    spune "Ciao!" pentru 1 secunde

Algoritm în pseudocod

Algoritmul Pinguin este:
Pentru i ← 1, 10 execută
    Mergi 10 pași
    Scrie "Ciao!"
Sfârșit pentru
Sfârșit algoritm

Dacă personajul merge de 10 ori câte 10 pași, atunci va merge în total:

10 × 10 = 100 de pași

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

Problemă

Să se afișeze numerele de la 1 la 10.

Algoritm în pseudocod

Pentru i ← 1, 10 execută
    Scrie i
Sfârșit pentru

Se vor afișa:

1 2 3 4 5 6 7 8 9 10

10. Exemplu: afișarea numerelor din 2 în 2

Dacă vrem ca variabila i să crească din 2 în 2, folosim pasul 2.

Pentru i ← 10, 20, 2 execută
    Scrie i
Sfârșit pentru

Se vor afișa:

10 12 14 16 18 20

Contorul i ia valorile de la 10 până la 20, crescând cu 2 la fiecare pas.

11. Exemplu: numărătoare inversă

Structura repetitivă cu contor poate fi folosită și pentru numărare descrescătoare.

Pentru i ← 10, 1, -1 execută
    Scrie i
Sfârșit pentru

Se vor afișa:

10 9 8 7 6 5 4 3 2 1

În acest caz, pasul este negativ, deci contorul scade cu 1 la fiecare repetare.

12. Când folosim structura repetitivă cu contor?

Situație Folosim structură cu contor? Motiv
Afișăm numerele de la 1 la 10. Da Știm că sunt 10 repetări.
Personajul merge 20 de pași de 5 ori. Da Știm că acțiunea se repetă de 5 ori.
Cerem parola până când este corectă. Nu Nu știm de câte ori va greși utilizatorul.
Mergem până atingem marginea scenei. Nu Nu știm exact câți pași sunt necesari.

13. Exemplu practic în Scratch: desenarea unui pătrat

Problemă

Să realizăm în Scratch un algoritm prin care personajul desenează un pătrat.

Un pătrat are 4 laturi. Pentru fiecare latură, personajul merge înainte și apoi se rotește cu 90 de grade. Aceeași secvență se repetă de 4 ori.

Algoritm Scratch, descris textual

când se dă click pe stegulețul verde
șterge tot
stilou jos

repetă 4
    mergi 100 pași
    rotește 90 grade

stilou sus

Blocul repetă 4 este potrivit deoarece știm că pătratul are exact 4 laturi.

14. Exemplu practic: desenarea unui triunghi echilateral

Un triunghi echilateral are 3 laturi egale. Pentru a-l desena, repetăm de 3 ori deplasarea și rotirea.

când se dă click pe stegulețul verde
șterge tot
stilou jos

repetă 3
    mergi 120 pași
    rotește 120 grade

stilou sus

Folosim repetă 3, deoarece triunghiul are 3 laturi.

15. Exemplu: suma numerelor de la 1 la N

Problemă

Se citește un număr natural N. Să se calculeze suma numerelor de la 1 la N.

Algoritm în pseudocod

Citește N
suma ← 0

Pentru i ← 1, N execută
    suma ← suma + i
Sfârșit pentru

Scrie suma

Algoritm 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ă suma la 0
setează i la 1

repetă N
    modifică suma cu i
    modifică i cu 1

spune unește "Suma este: " cu suma

16. Exemplu: tabla înmulțirii

Problemă

Se citește un număr n. Să se afișeze tabla înmulțirii pentru acel număr, de la 1 la 10.

Algoritm în pseudocod

Citește n

Pentru i ← 1, 10 execută
    Scrie n, " x ", i, " = ", n * i
Sfârșit pentru

Exemplu pentru n = 7

7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
...
7 x 10 = 70

17. Greșeli frecvente

  • Se folosește structura cu contor atunci când nu știm numărul de repetări.
  • Se uită că blocul repetă din Scratch execută instrucțiunile exact de numărul indicat.
  • Se alege greșit numărul de repetări: de exemplu repetă 3 pentru desenarea unui pătrat.
  • Se uită modificarea variabilei i atunci când simulăm contorul în Scratch.
  • Se confundă contorul cu rezultatul problemei.
  • Se pune afișarea rezultatului în interiorul repetării, deși uneori trebuie afișat doar la final.

18. Exerciții

  1. Realizează în Scratch un program în care personajul spune Salut! de 10 ori.
  2. Realizează în Scratch un program în care personajul merge 20 de pași de 5 ori.
  3. Scrie în pseudocod un algoritm care afișează numerele de la 1 la 20.
  4. Scrie în pseudocod un algoritm care afișează numerele pare de la 2 la 20.
  5. Realizează în Scratch un program care desenează un pătrat.
  6. Realizează în Scratch un program care desenează un triunghi echilateral.
  7. Scrie un algoritm care calculează suma numerelor de la 1 la N.
  8. Scrie un algoritm care afișează tabla înmulțirii pentru un număr citit.

Pe scurt

Structura repetitivă cu contor se folosește atunci când știm exact de câte ori trebuie repetate instrucțiunile.

În pseudocod, folosim forma Pentru contor ← valoare_initiala, valoare_finala, pas execută, iar în Scratch folosim blocul repetă ... din grupa Control.

Concluzie: Structura repetitivă cu contor ne ajută să scriem algoritmi mai scurți, mai clari și mai ușor de modificat. Ea este potrivită pentru situațiile în care știm dinainte numărul de repetări: desenarea formelor geometrice, afișarea numerelor, repetarea unui mesaj sau calcularea unor sume.