citește x,yAlgoritmul și structurile de bază în pseudocod
Ce este un algoritm, cum citești notația din lucrare (săgeata, partea întreagă, restul, barele) și cele trei structuri de bază: liniară, alternativă, repetitivă, cu diferența dintre test inițial și test final.
- 20 min
- La BAC: Subiectul al II-lea, 1
- Verificat pe bareme

ții minte doar fișa asta și ești acoperit
Fișa de aur
- 01
Algoritm = pași finiți și clari, de la date de intrare la rezultat, valabili pentru orice date din domeniu.
- 02
Atribuirea x←x+1 înseamnă: calculez dreapta cu valoarea veche, apoi o pun în x.
Truc: Se citește de la dreapta la stânga.
- 03
Două operații speciale: [a/b] este câtul, a%b este restul. Lucrarea le explică în enunț.
- 04
Trei structuri: liniară, alternativă, repetitivă.
- 05
cât timp verifică înainte și se poate executa de zero ori. repetă...până când se execută cel puțin o dată și se oprește când condiția devine adevărată.
Truc: cât timp continuă pe adevărat; până când se oprește pe adevărat.
- 06
pentru i←a,b se ocupă singur de i: nu-l mări tu în corp.
Pe scurt
Culorile din lecție:termenidee-cheie
- Un algoritm este o succesiune finită și clară de pași, de la date de intrare la rezultat.
- Variabilele păstrează valori, expresiile le calculează, atribuirea (
←) le schimbă. - Orice algoritm se construiește din trei structuri: liniară, alternativă, repetitivă.
- Lucrarea descrie algoritmii în pseudocod, cu o notație fixă. După această lecție o citești fără efort.
Ce este un algoritm
Când îi explici cuiva cum să ajungă la tine acasă, îi dai pași. Dacă pașii sunt bine dați, oricine ajunge, de oriunde pornește din zona stabilită, și ajunge într-un timp finit. Asta e ideea de algoritm.
Formal, un algoritm este o succesiune de operații care transformă datele de intrare în date de ieșire (rezultatul). Programa cere și caracteristicile lui, dar nu le enumeră. În materialele de curs apar de obicei acestea:
CaracteristicaPe scurt
| Caracteristica | Pe scurt |
|---|---|
| Generalitate | funcționează pentru orice date din domeniul stabilit, nu pentru un singur caz |
| Finitudine | se termină după un număr finit de pași |
| Claritate | fiecare pas are un singur înțeles |
Date, variabile, atribuire
O variabilă e o cutie cu nume. La un moment dat, are o singură valoare. Atribuirea pune în cutie o valoare nouă, iar cea veche dispare.
s←0
s←s+5
s←s+2
După prima linie s este 0, după a doua 5, după a treia 7. Linia s←s+5 se citește așa: iau valoarea actuală a lui s, adun 5, pun rezultatul în s.
Interschimbarea e un exemplu bun de ce contează ordinea. Vrei să schimbi valorile lui x și y:
aux←x
x←y
y←aux
Dacă ai scrie direct x←y; y←x, ambele ar ajunge la valoarea lui y.
Notația din lucrare
Lucrările au aceeași notație, iar enunțul II.1 explică de obicei simbolurile speciale.
scrie n←x←x+1a%ba la b nenul17%5 este 2[c]c[17/5] este 3=, ≠, ≤, ≥x%2=0și, saui>n sau nr≠0│, colțuri ┌ └, pătrat ■| Notație | Ce înseamnă | Exemplu |
|---|---|---|
citește x,y | primește valori de la intrare | |
scrie n | afișează valoarea | |
← | atribuire | x←x+1 |
a%b | restul împărțirii numărului natural a la b nenul | 17%5 este 2 |
[c] | partea întreagă a numărului real c | [17/5] este 3 |
=, ≠, ≤, ≥ | comparații | x%2=0 |
și, sau | operatori logici în condiții | i>n sau nr≠0 |
bare │, colțuri ┌ └, pătrat ■ | ce conține o structură și unde se termină |
Pereche des întâlnită: n%10 este ultima cifră a lui n, iar [n/10] e numărul fără ultima cifră. La fel, x%2=0 înseamnă „x este par”.
Cele trei structuri de bază
Structura liniară înseamnă pași unul după altul, în ordinea scrierii.
Structura alternativă alege una dintre două ramuri, după o condiție:
┌dacă x%2=0 atunci
│ y←y*y
│altfel
│ x←x-1
└■
Ramura altfel poate lipsi: atunci, dacă nu e adevărată condiția, nu se întâmplă nimic.
Structura repetitivă repetă un corp de instrucțiuni. Are trei forme:
cât timp C executăC devine falsărepetă ... până când CC devine adevăratăpentru i←a,b executăa și bi trece de ba>b| Forma | Când se verifică | Când se oprește | De câte ori minimum |
|---|---|---|---|
cât timp C execută | înainte de corp | când C devine falsă | 0 |
repetă ... până când C | după corp | când C devine adevărată | 1 |
pentru i←a,b execută | numărul de pași e fixat de a și b | după ce i trece de b | 0, dacă a>b |
Diferența dintre primele două se vede pe un exemplu mic. Pornește cu x←0:
┌cât timp x>0 execută
│ x←x-1
└■
Corpul nu se execută niciodată. Dar aici se execută o dată, iar x devine -1:
┌repetă
│ x←x-1
└până când x≤0
Exact această diferență e punctată în barem la II.1 d, în lecția despre algoritmi echivalenți.
De câte ori se execută corpul pentru i←3,1?
Care structură repetitivă execută corpul cel puțin o dată?
Structuri una în alta
Algoritmii din lucrare au de obicei o structură în alta. Numărul de bare din față îți spune cât de adâncă e o linie. Iată un fragment din rezerva 2026, var. 5, II.1:
┌pentru i←m,n execută
│ x←i
│┌repetă
││┌dacă x%10=k atunci
│││ nr←nr+1
││└■
││ x←[x/10]
│└până când x=0
└■
Citit în cuvinte: pentru fiecare număr de la m la n, iau pe rând cifrele lui și număr de câte ori apare cifra k. Pentru datele din enunț (120, 126 și k=2), baremul dă răspunsul 8: fiecare dintre cele 7 numere de la 120 la 126 are cifra 2 la zeci, iar 122 o mai are o dată la unități.
Când vezi un algoritm nou, încearcă să-l spui într-o propoziție, ca aici. Te ajută mult la cerința b).
Cât este [17/5] și cât este 17%5?
Ce se cere la BAC
- II.1 a: urmărești algoritmul (lecția următoare).
- II.1 b: găsești date pentru un rezultat dat.
- II.1 c: îl traduci în C/C++ (modulul despre limbaj).
- II.1 d: îl rescrii cu altă structură repetitivă (lecția despre algoritmi echivalenți).
Greșeli care costă puncte
[n/10]luat drept cifră: e numărul fără ultima cifră; cifra en%10.- Ramură atașată greșit: nu urmărești barele și execuți o linie în afara structurii ei.
- Corp executat în plus sau în minus, pentru că nu ai observat dacă testul e la început sau la sfârșit.
- Condiția de la
până cândcitită ca lacât timp.
Termeni-cheie
- Algoritm
- Succesiune finită și clară de pași care transformă datele de intrare în rezultat, pentru orice date din domeniul stabilit.
- Variabilă
- O locație cu nume, care memorează o valoare ce se poate schimba în timpul executării.
- Atribuire
- Operația prin care variabila primește valoarea unei expresii: x←x+1. Valoarea veche se pierde.
- Structură liniară
- Pași executați unul după altul, în ordinea scrierii.
- Structură alternativă
- Alegerea între două ramuri după o condiție: dacă...atunci...altfel.
- Structură repetitivă cu test inițial
- cât timp...execută: condiția se verifică înainte de pas; corpul se poate executa de zero ori.
- Structură repetitivă cu test final
- repetă...până când: corpul se execută întâi; deci cel puțin o dată.
- Structură repetitivă cu număr cunoscut de pași
- pentru i←a,b execută: contorul i ia pe rând valorile de la a la b.
- Partea întreagă [c]
- Cel mai mare număr întreg mai mic sau egal cu c; pentru numere naturale, [a/b] este câtul împărțirii.
- Restul a%b
- Restul împărțirii numărului natural a la numărul natural nenul b.