cât timpx=0Cele 6 puncte de la II.1 d: cum înlocuiești o structură repetitivă cu alta, fără să schimbi ce face algoritmul. Regulile pentru pentru, cât timp și repetă, cazul care nu intră în buclă și cum punctează baremul fiecare aspect.

ții minte doar fișa asta și ești acoperit
II.1 d are 6 p: structura cerută 2 p, aspectele specifice 3 p, algoritm complet și corectitudine globală 1 p.
Truc: Primele 2 p vin chiar dacă algoritmul nu iese echivalent.
Din cât timp în test final: pui un dacă în față, cu aceeași condiție, și scrii până când cu condiția negată.
Din pentru în cât timp: inițializezi contorul înainte, testezi i≤n și îl mărești la capătul corpului.
Din repetă în pentru: scoți inițializarea și actualizarea contorului. Scrii doar pentru p←1,n.
Negarea: contrariul lui i>n sau nr≠0 este i≤n și nr=0.
Truc: Sau devine și, iar fiecare condiție se schimbă în contrariul ei.
Culorile din lecție:termenidee-cheie
Gândește-te la un vânzător. Regula „cât timp e cineva la coadă, servește următorul client” se uită înainte: dacă nu e nimeni, nu face nimic. Regula „servește următorul client, apoi uită-te dacă mai e cineva” se uită după: merge bine, dar nu și când coada e goală de la început. Soluția e să te uiți o dată înainte de a începe. Acesta este testul dacă din fața lui repetă.
Oficial, programa cere „abstractizarea rezolvării prin construirea unor algoritmi echivalenți”. În lucrare, cerința spune: scrieți în pseudocod un algoritm echivalent cu cel dat, înlocuind o structură cu alta.
Din cât timp în test final. Forma dată:
┌cât timp C execută
│ corp
└■
Devine:
┌dacă C atunci
│┌repetă
││ corp
│└până când not C
└■
Din pentru în cât timp. Forma dată:
┌pentru i←a,b execută
│ corp
└■
Devine:
i←a
┌cât timp i≤b execută
│ corp
│ i←i+1
└■
Din repetă în pentru, când numărul de pași e fix. Forma dată:
p←1
┌repetă
│ corp
│ p←p+1
└până când p>n
Devine:
┌pentru p←1,n execută
│ corp
└■
Ultima funcționează aici doar pentru că n e nenul, cum spune enunțul. Pentru n=0, repetă ar executa corpul o dată, iar pentru niciodată.
Care e contrariul lui x≥10 sau y≥10?
Ce pui în locul lui repetă...până când p>n, cu p pornind de la 1, dacă enunțul spune că n e nenul?
Cerința: înlocuiește prima structură cât timp...execută cu o structură repetitivă cu test final. Prima e cea exterioară, cu condiția x>0. Cea interioară rămâne cum e.
citește x,y (numere naturale)
n←1
┌dacă x>0 atunci
│┌repetă
││ ok←1
││┌cât timp ok=1 execută
│││┌dacă x%2=0 atunci
││││ y←y*y; x←[x/2]
│││altfel
││││ x←x-1; ok←0
│││└■
││└■
││ n←n*y
│└până când x=0
└■
scrie n
Fără dacă, pentru x=0 s-ar executa corpul o dată, deci n ar deveni y, în loc să rămână 1.
utilizare a unei structuri repetitive de tipul cerut, înlocuind-o pe cea indicată — 2p (chiar dacă algoritmul nu e echivalent; orice formă de structură repetitivă explicită)
aspecte specifice: tratare a cazului x=0, expresie condițională finală de repetare/oprire — 3p (numai 2p dacă doar unul dintre aspecte e conform cerinței)
algoritm complet, corectitudine globală — 1p
Acceptă orice formă: repetă...până când, repetă...cât timp, execută...cât timp. Dacă alegi o formă cu „cât timp”, condiția nu se neagă: execută ... cât timp x>0.
De ce trebuie un dacă la trecerea de la cât timp la repetă?
Algoritmul are în interior:
│ x←1
│┌cât timp x*x<i execută
││ x←x+1
│└■
Cerința: înlocuiește cât timp cu o structură repetitivă cu test final. Baremul cere „echivalență a algoritmului pentru cazul inițial x*x≥i” și expresia logică pentru test final. Sunt două drumuri bune.
Cu un dacă, ca până acum:
│ x←1
│┌dacă x*x<i atunci
││┌repetă
│││ x←x+1
││└până când x*x≥i
│└■
Sau pornești cu o unitate mai jos, ca prima creștere să aducă x la 1. Așa, corpul executat o dată nu strică nimic, pentru că i≥1:
│ x←0
│┌repetă
││ x←x+1
│└până când x*x≥i
Algoritmul este cel de la lecția despre urmărire, cu repetă...până când p>n. Cerința: înlocuiește structura repetitivă cu pentru...execută.
citește n (număr natural nenul)
s←0; x←0
┌pentru p←1,n execută
│ citește y (număr natural nenul)
│┌dacă y>x atunci
││ s←s+y; x←y
││altfel
││┌dacă x=y atunci s←s-y
││└■
│└■
└■
scrie s
Barem: structură de tipul cerut 2 p; câte 1 p pentru expresia inițială, expresia finală și actualizarea doar automată a contorului; algoritm complet și corectitudine globală 1 p.
Fragmentul dat:
nr←0
┌pentru i←m,n execută
│ x←i
│ ...
└■
Devine:
nr←0
i←m
┌cât timp i≤n execută
│ x←i
│ ...
│ i←i+1
└■
Barem: câte 1 p pentru inițializarea contorului, expresia de continuare și actualizarea contorului. În lucrare scrii tot corpul, în locul celor trei puncte; aici e prescurtat. Aceeași transformare apare la iulie 2024 var. 3, unde i se cere la fel, cu un repetă în interior, care rămâne neschimbat.
cât timpx=0cât timpn%d=0repetăpentrupentrucât timpcât timpcât timpx*x≥ipentrucât timp| Lucrare | Se înlocuiește | Cu | Ce punctează în plus baremul |
|---|---|---|---|
| Model 2027 | prima cât timp | test final | cazul x=0 |
| Sesiunea specială 2026 var. 4 | a doua cât timp | test final | cazul inițial n%d=0 |
| Iunie 2026 var. 3 | repetă | pentru | doar actualizare automată |
| Rezervă 2026 var. 5 | pentru | cât timp | inițializare, continuare, actualizare |
| August 2026 var. 1 | a doua cât timp | test final | expresia logică finală |
| Iunie 2025 var. 1 | cât timp | test final | cazul inițial x*x≥i |
| Iulie 2024 var. 3 | pentru | cât timp | inițializare, continuare, actualizare |
până când.p←p+1 în corpul lui pentru sau uiți i←i+1 în cât timp, ceea ce dă buclă infinită.