Structura Repetitivă 6
1. Obiectivele lecției:
- Să înțeleagă conceptul de structură repetitivă.
- Să identifice și să utilizeze tipurile de bucle: while, do-while și for.
- Să implementeze algoritmi care folosesc structuri repetitive în C++.
- Să rezolve probleme care implică repetarea unor instrucțiuni.
2. Conținutul lecției:
Ce este structura repetitivă?
- Definiție: Structura repetitivă permite executarea unui bloc de cod de mai multe ori, cât timp o anumită condiție este adevărată.
- Scop: Automatează repetarea unor operații, economisind timp și resurse.
Tipuri de structuri repetitive:
- Buclele cu testare înainte (while):
- Condiția este verificată înainte de a executa blocul de cod.
- Exemplu:
while (condiție) {
// Cod executat cât timp condiția este adevărată
}
- Buclele cu testare după (do-while):
- Codul este executat cel puțin o dată, apoi condiția este verificată.
- Exemplu:
do {
// Cod executat cel puțin o dată
} while (condiție);
- Buclele determinate (for):
- Se folosește când numărul de repetări este cunoscut.
- Exemplu:
for (inițializare; condiție; actualizare) {
// Cod executat
}
3. Exemple practice:
Exemplu 1: Afișarea primelor 10 numere naturale (buclele for, while, do-while)
Cu for:
#include <iostream>
using namespace std;
int main() {
for (int i = 1; i <= 10; i++) {
cout << i << ” „;
}
cout << endl;
return 0;
}
Cu while:
#include <iostream>
using namespace std;
int main() {
int i = 1;
while (i <= 10) {
cout << i << ” „;
i++;
}
cout << endl;
return 0;
}
Cu do-while:
#include <iostream>
using namespace std;
int main() {
int i = 1;
do {
cout << i << ” „;
i++;
} while (i <= 10);
cout << endl;
return 0;
}
Exemplu 2: Calcularea sumei primelor n numere naturale
Problema: Citește un număr n de la utilizator și calculează suma numerelor de la 1 la n.
Cod în C++:
#include <iostream>
using namespace std;
int main() {
int n, suma = 0;
cout << „Introdu un numar: „;
cin >> n;
for (int i = 1; i <= n; i++) {
suma += i;
}
cout << „Suma primelor ” << n << ” numere naturale este: ” << suma << endl;
return 0;
}
Exemplu 3: Determinarea produsului numerelor impare de la 1 la n
Problema: Citește un număr n și calculează produsul numerelor impare de la 1 la n.
Cod în C++:
#include <iostream>
using namespace std;
int main() {
int n, produs = 1;
cout << „Introdu un numar: „;
cin >> n;
for (int i = 1; i <= n; i += 2) {
produs *= i;
}
cout << „Produsul numerelor impare de la 1 la ” << n << ” este: ” << produs << endl;
return 0;
}
Exemplu 4: Generarea unei serii Fibonacci
Problema: Afișează primele n numere Fibonacci.
Cod în C++:
#include <iostream>
using namespace std;
int main() {
int n, t1 = 0, t2 = 1, urmator;
cout << „Introdu numarul de termeni Fibonacci: „;
cin >> n;
cout << „Seria Fibonacci: ” << t1 << ” ” << t2 << ” „;
for (int i = 3; i <= n; i++) {
urmator = t1 + t2;
cout << urmator << ” „;
t1 = t2;
t2 = urmator;
}
cout << endl;
return 0;
}
4. Activități practice pentru elevi:
- Scrieți un program care calculează factorialul unui număr.
- Realizați un program care citește un număr și verifică dacă este prim.
- Scrieți un program care afișează toate numerele divizibile cu 3 de la 1 la 100.
5. Scheme logice:
- Buclele while:
- Start -> Condiție? -> (DA -> Execută cod -> Reia) / (NU -> Stop).
- Buclele do-while:
- Start -> Execută cod -> Condiție? -> (DA -> Reia) / (NU -> Stop).
- Buclele for:
- Start -> Inițializare -> Condiție? -> (DA -> Execută cod -> Actualizare -> Reia) / (NU -> Stop).
6. Concluzie:
- Structurile repetitive permit automatizarea și eficientizarea proceselor care necesită repetarea unor operații.
- Alegerea tipului de buclă depinde de situație:
- while pentru bucle cu condiție pre-verificată.
- do-while pentru bucle cu cel puțin o iterație garantată.
- for pentru bucle determinate.