Algoritmi și gândire computațională
Elevii înțeleg conceptul de algoritm și rezolvarea pas cu pas a problemelor.
Ce este un algoritm
Un algoritm este o succesiune ordonată de pași care rezolvă o problemă. Suna complicat? Deja folosești algoritmi zilnic: rețeta de clătite, instrucțiunile de asamblare a unui joc LEGO, drumul de acasă la școală descris unui coleg — toate sunt algoritmi.
Ca să fie un algoritm adevărat, succesiunea de pași trebuie să aibă trei proprietăți:
- claritate: fiecare pas e precis, fără loc de interpretare; „adaugă puțină făină” nu e clar — „adaugă 200 g de făină” este;
- finitudine: algoritmul se termină după un număr limitat de pași; o rețetă care nu se sfârșește niciodată nu gătește nimic;
- generalitate: algoritmul rezolvă toate problemele de același tip, nu doar un caz; algoritmul de adunare funcționează pentru orice două numere, nu doar pentru 2+3.
Un algoritm lucrează cu date de intrare (ce primește: numerele de adunat, ingredientele) și produce date de ieșire (rezultatul: suma, clătitele).
De ce contează ordinea pașilor? Încearcă să inversezi doi pași la clătite: mai întâi prăjești, apoi amesteci aluatul — dezastru! Calculatorul execută pașii exact în ordinea dată, fără să gândească în locul tău. El face ce i-ai spus, nu ce ai vrut să spui — de aici pornesc toate „erorile” programelor.
Pseudocod și schemă logică
Ca să notăm algoritmii clar, folosim două limbaje speciale:
Pseudocodul descrie pașii în cuvinte simple, apropiate de limba română, dar precise:
- citește a — primește o valoare din exterior și o pune în a;
- scrie a — afișează valoarea lui a;
- a ← 5 — atribuire: a primește valoarea 5 (săgeata se citește „primește”);
- dacă… atunci… altfel — decizie;
- cât timp… execută — repetare.
Atribuirea merită o clipă de atenție, pentru că ascunde o idee nouă: a ← a + 1 înseamnă „noul a devine vechiul a plus 1”. Nu e o ecuație matematică (matematic ar fi imposibil!) — e o înlocuire: valoarea veche din cutiuța a se aruncă, iar în loc intră valoarea nouă. O variabilă este exact asta: o cutiuță cu nume, în care păstrezi o valoare care se poate schimba.
Schema logică desenează algoritmul cu figuri geometrice legate prin săgeți:
- ovalul — Start și Stop, începutul și sfârșitul;
- paralelogramul — citire și scriere (intrări/ieșiri);
- dreptunghiul — calcule și atribuiri;
- rombul — decizia, cu întrebarea înăuntru și două ieșiri: Da și Nu.
Figurile se cer la test cu forma și rolul lor exact — rombul pentru decizie este cea mai întrebată dintre toate.
Structura secvențială
Structura secvențială este cea mai simplă organizare a unui algoritm: pașii se execută unul după altul, în ordine, fiecare exact o dată — fără ocolișuri, fără repetări. Ca o listă de sarcini bifată de sus în jos.
Exemplu: algoritmul care calculează suma a două numere.
- citește a
- citește b
- s ← a + b
- scrie s
Patru pași, executați în ordine: citim cele două numere, calculăm suma în variabila s, afișăm rezultatul. Pentru intrarea 3 și 5, ieșirea este 8; pentru 10 și 20, ieșirea este 30 — același algoritm, orice numere (generalitatea în acțiune!).
Cea mai importantă deprindere la acest nivel este urmărirea execuției: iei o foaie, notezi variabilele și scrii valoarea fiecăreia după fiecare pas, jucând rolul calculatorului. De exemplu:
- a ← 4 (a este 4)
- b ← a + 1 (b este 5)
- a ← b + 2 (a devine 7 — vechiul 4 s-a pierdut!)
- scrie a (se afișează 7)
Observă capcana: după pasul al treilea, a nu mai este 4. Fiecare atribuire șterge valoarea veche a variabilei. Cine uită asta răspunde greșit la aproape orice exercițiu de urmărire — este greșeala numărul unu la algoritmi.
Structura alternativă: dacă — altfel
Viața e plină de decizii: dacă plouă, iau umbrela, altfel iau șapca. Algoritmii decid la fel, cu structura alternativă:
- dacă condiție atunci pașii pentru cazul adevărat altfel pașii pentru cazul fals.
Exemplu — algoritmul care spune dacă un elev a promovat:
- citește nota
- dacă nota ≥ 5 atunci scrie „promovat”
- altfel scrie „nepromovat”
Condiția este o întrebare cu răspuns Da sau Nu (adevărat sau fals): nota ≥ 5? numărul este par? a > b? În schema logică, condiția stă în romb, cu o săgeată pentru Da și una pentru Nu.
Lucruri de reținut ca să nu cazi în capcane:
- se execută exact una dintre cele două ramuri — niciodată ambele, niciodată niciuna;
- ramura altfel poate lipsi: dacă plouă, iau umbrela — iar dacă nu plouă, pur și simplu nu fac nimic în plus;
- granițele condiției contează enorm: nota ≥ 5 include nota 5 (promovat), dar nota > 5 NU o include — un singur semn schimbă soarta elevului cu nota 5! La test, diferența dintre > și ≥ este capcana preferată;
- după terminarea structurii alternative, algoritmul continuă cu pașii de după ea, indiferent ce ramură s-a executat.
Structura repetitivă: cât timp și pentru
Când același pas trebuie făcut de multe ori, nu îl scriem de multe ori — folosim structura repetitivă (bucla), care spune: repetă acești pași.
Cât timp (while) — repetă pașii atâta timp cât condiția este adevărată:
- cât timp mai sunt farfurii murdare, execută: spală o farfurie.
Condiția se verifică înainte de fiecare repetare. Dacă e falsă de la bun început (chiuveta e goală), pașii nu se execută deloc, nici măcar o dată. Iar dacă condiția nu devine niciodată falsă, bucla nu se mai oprește — ai creat o buclă infinită, iar algoritmul își pierde proprietatea de finitudine. De aceea, în interiorul buclei trebuie să existe ceva care apropie condiția de fals (numărul farfuriilor scade).
Pentru (for) — repetă pașii de un număr cunoscut de ori, cu un contor care numără trecerile:
- pentru i de la 1 la 10 execută: scrie i — afișează numerele de la 1 la 10.
Cum alegi între ele? Întreabă-te: știu de câte ori repet?
- știu numărul de repetări (fă 20 de sărituri) → pentru;
- nu îl știu, dar am o condiție de continuare (sari până obosești) → cât timp.
Urmărirea execuției unei bucle se face pas cu pas, notând valoarea contorului la fiecare trecere — numărul de repetări cerut la test se află numărând atent, nu ghicind: pentru i de la 3 la 7 sunt 5 repetări (3, 4, 5, 6, 7), nu 4!
De reținut
- algoritm
- o succesiune ordonată și finită de pași clari care rezolvă toate problemele de un anumit tip
- claritate
- proprietatea algoritmului de a avea pași preciși, care nu lasă loc de interpretare
- finitudine
- proprietatea algoritmului de a se termina după un număr limitat de pași
- generalitate
- proprietatea algoritmului de a rezolva toate problemele de același tip, nu doar un caz particular
- variabilă
- o cutiuță cu nume în care se păstrează o valoare ce se poate schimba pe parcursul algoritmului
- atribuire (←)
- operația prin care o variabilă primește o valoare nouă, iar valoarea veche se pierde; a ← a + 1 înseamnă noul a devine vechiul a plus 1
- structura secvențială
- organizarea în care pașii se execută unul după altul, în ordine, fiecare exact o dată
- structura alternativă
- structura dacă–atunci–altfel, în care se execută exact una dintre cele două ramuri, în funcție de o condiție
- structura repetitivă
- structura care execută aceiași pași de mai multe ori: cât timp (condiție de continuare) sau pentru (număr cunoscut de repetări, cu contor)
- schemă logică
- reprezentarea grafică a algoritmului: oval pentru Start/Stop, paralelogram pentru citire/scriere, dreptunghi pentru calcule, romb pentru decizie
Greșeli frecvente
Greșit: Atribuirea a ← a + 1 citită ca o ecuație imposibilă
Corect: Atribuirea este o înlocuire, nu o ecuație: valoarea veche a variabilei se aruncă, iar noua valoare este vechea valoare plus 1
Greșit: Uitarea faptului că atribuirea șterge valoarea veche a variabilei
Corect: După a ← b + 2, vechea valoare a lui a nu mai există; la urmărirea execuției se notează valoarea fiecărei variabile după fiecare pas
Greșit: Confuzia între > și ≥ în condiții
Corect: Condiția nota ≥ 5 include nota 5; condiția nota > 5 o exclude — un singur semn schimbă rezultatul pentru valoarea de graniță
Greșit: Credința că bucla cât timp se execută măcar o dată
Corect: La cât timp, condiția se verifică ÎNAINTE de prima execuție; dacă este falsă de la început, pașii nu se execută deloc
Greșit: Numărarea greșită a repetărilor: pentru i de la 3 la 7 ar avea 4 repetări
Corect: Se numără ambele capete: 3, 4, 5, 6, 7 — adică 5 repetări (7 - 3 + 1)
Test — 6 întrebări ca la examen
1. Proprietatea algoritmului de a se termina după un număr limitat de pași se numește:
- claritate
- finitudine
- generalitate
- rapiditate
Vezi răspunsul
finitudine. Finitudinea garantează că algoritmul se oprește. Rapiditatea sună plauzibil, dar nu este o proprietate obligatorie a algoritmilor — un algoritm lent rămâne algoritm, unul care nu se termină niciodată nu.
2. În schema logică, decizia (întrebarea cu răspuns Da/Nu) se scrie într-un:
- dreptunghi
- oval
- romb
- paralelogram
Vezi răspunsul
romb. Rombul conține condiția și are două ieșiri: Da și Nu. Dreptunghiul e distractorul frecvent, dar el găzduiește calculele și atribuirile; ovalul e doar pentru Start/Stop, iar paralelogramul pentru citire/scriere.
3. Variabila a are valoarea 4. După atribuirea a ← a + 3, valoarea lui a este:
- 4
- 3
- 7
- 43
Vezi răspunsul
7. Atribuirea înlocuiește valoarea veche cu cea nouă: noul a = vechiul a (4) + 3 = 7. Răspunsul 4 e al celor care cred că a nu se poate schimba, iar 43 al celor care lipesc cifrele în loc să adune — ambele arată neînțelegerea atribuirii.
4. Se citește nota 5. Ce afișează algoritmul: dacă nota > 5 atunci scrie „promovat” altfel scrie „nepromovat”?
- promovat
- nepromovat
- nimic
- ambele mesaje
Vezi răspunsul
nepromovat. Condiția este nota STRICT mai mare decât 5, iar 5 > 5 este fals — se execută ramura altfel. Capcana este semnul: cu ≥ în loc de >, răspunsul ar fi fost promovat; un singur semn schimbă tot rezultatul.
5. Vrei să scrii un algoritm care face exact 20 de sărituri. Ce structură repetitivă se potrivește cel mai bine?
- structura pentru, cu contor de la 1 la 20
- structura cât timp, pentru că e mai generală
- structura secvențială cu 20 de pași scriși pe rând
- structura alternativă
Vezi răspunsul
structura pentru, cu contor de la 1 la 20. Numărul de repetări este cunoscut dinainte (20), exact situația pentru structura pentru cu contor. Varianta cu 20 de pași scriși pe rând ar funcționa, dar rostul buclelor este tocmai să nu scrii același pas de 20 de ori.
6. Câte valori afișează algoritmul: pentru i de la 4 la 9 execută scrie i?
- 5
- 6
- 9
- 4
Vezi răspunsul
6. Se afișează 4, 5, 6, 7, 8, 9 — adică 6 valori (9 - 4 + 1). Răspunsul 5, cel mai ales dintre cele greșite, vine din scăderea simplă 9 - 4, care uită să numere și primul capăt al intervalului.
Deschide varianta interactivă — cu AI care îți explică