📘 Lecție de C++ pentru clasa a 9-a și BAC, cu explicații video de la profesor. Mai jos ai rezumatul. În lecția completă găsești probleme cu simulator, în care vezi pas cu pas cum se schimbă variabilele, compilator C++ în browser, exerciții propuse cu indicii și rezolvare, și pe Alex, asistentul care îți dă indicii, îți explică algoritmul și îți corectează codul.
Orice buclă for se poate rescrie ca while, mutând inițializarea înainte de buclă și pasul la finalul corpului. În C++ e posibil și invers, cu for (; condiție; ), dar transformarea e naturală doar când există un contor.
// varianta for
for (int i = 1; i <= n; i++) {
s += i;
}
// varianta while echivalenta
int i = 1;
while (i <= n) {
s += i;
i++;
}
1. De ce apare acest tip de transformare la BAC? Testează dacă elevul înțelege logica structurilor repetitive, nu doar sintaxa lor.
2. Se poate transforma orice for într-un while? Da, întotdeauna. În C++ și orice while se poate scrie ca for (; condiție; ), dar e natural doar când există un contor.
3. Ce diferă între while și do-while la echivalență? do-while execută corpul cel puțin o dată, deci echivalența cu for/while cere o verificare suplimentară înainte.
4. Ce risc apare la o transformare greșită? Poate rezulta o buclă care se execută de un număr greșit de ori, sau deloc.
5. Contează ordinea pasului față de corpul buclei? Da — la while, pasul trebuie pus la finalul corpului, altfel condiția nu se mai actualizează corect.
→ Vezi și varianta Pseudocod: Echivalența Structurilor Repetitive