Ce vei învăța astăzi?
După această lecție vei putea descrie un algoritm în pseudocod, vei recunoaște blocurile grafice dintr-o organigramă și vei înțelege diferența dintre limbajele de programare.
Pseudocodul - limbajul algoritmilor
Definiție: Pseudocodul este un mod de a scrie algoritmii folosind cuvinte cheie (cuvinte cu rol fix, precum citește, scrie, dacă, cât timp) și un limbaj apropiat de cel natural, dar structurat, astfel încât să poată fi transformat ușor într-un program real.
Este ca o rețetă intermediară: o scriem în cuvinte simple și clare, apoi o traducem în cod Python.
| Cuvânt cheie | Rol | Exemplu |
|---|---|---|
citește |
Citirea datelor de intrare | citește a, b |
scrie |
Afișarea datelor de ieșire | scrie s |
dacă ... atunci ... altfel |
Decizia (alegerea unui drum) | dacă a > b atunci scrie a |
cât timp |
Repetarea cu condiție la început | cât timp n > 0 execută |
pentru |
Repetarea unui număr cunoscut de ori | pentru i = 1, n execută |
repetă ... până când |
Repetarea cu condiție la sfârșit | repetă ... până când n = 0 |
Exemplu: „media a două numere" în pseudocod
citește a, b s = a + b media = s / 2 scrie media
Observă: folosim citește pentru intrare, scrie pentru ieșire, iar calculele le scriem ca egalități simple, exact ca în matematică.
Blocurile grafice (organigramele)
Definiție: Organigrama este reprezentarea grafică a unui algoritm. Fiecare tip de operație are un simbol propriu, iar săgețile arată ordinea în care se execută pașii.
| Simbol | Formă | Rol |
|---|---|---|
| Oval | Rotunjit | START / STOP |
| Paralelogram | Oblong, ca o foaie | Citire / afișare |
| Romb | Diamond | Decizie (DA / NU) |
| Dreptunghi | Cu colțuri drepte | Prelucrare (calcul) |
| Săgeată | Linie cu vârf | Sensul fluxului |
De reținut: la un romb răspunsul este întotdeauna „da" sau „nu". Fiecare simbol are o singură intrare și una sau mai multe ieșiri, dar fluxul trebuie să fie mereu clar.
Limbaje de programare: nivel înalt vs nivel scăzut
Un limbaj de programare este un „limbaj" pe care calculatorul îl înțelege prin intermediul unui program special. Limbajele se împart în două mari categorii:
| Criteriu | Nivel înalt (Python, C++) | Nivel scăzut (asamblare) |
|---|---|---|
| Apropiat de | Limba omului, matematică | Limba calculatorului (procesor) |
| Ușurința în scriere | Ușor de citit și scris | Dificil, multe detalii tehnice |
| Viteza programelor | Mai mică (se traduce ceva în plus) | Mai mare (control direct) |
| Exemplu | print("Salut!") |
Instrucțiuni precum MOV, ADD |
Analogie
Limbajul de nivel înalt este ca o scrisoare în limba română: o înțelegem imediat. Limbajul de nivel scăzut este ca codul Morse: foarte tehnic, dar exprimă aceeași informație.
Compilator vs interpretor
Calculatorul nu înțelege direct Python sau C++. Un compilator (un program care transformă întregul cod sursă într-un fișier executabil, înainte de rulare) sau un interpretor (un program care traduce și execută codul instrucțiune cu instrucțiune) traduce codul nostru în cod mașină (0 și 1), pe care procesorul îl poate executa.
| Criteriu | Compilator | Interpretor |
|---|---|---|
| Mod de lucru | Traduce întregul program odată, apoi rulează | Traduce și rulează instrucțiune cu instrucțiune |
| Exemple | C, C++, Pascal | Python, JavaScript |
| Dacă există o eroare | Nu se creează programul final | Oprește execuția exact la linia greșită |
| Python? | Nu | Da - Python este un limbaj interpretat |
De reținut: Python este un limbaj interpretat, de nivel înalt. Acest lucru îl face foarte prietenos pentru începători.
De la pseudocod la program Python
Orice algoritm scris în pseudocod poate fi transformat pas cu pas într-un program Python. Exemplu: „media a două numere".
Transformarea pas cu pas
# PSEUDOCOD: # PROGRAM PYTHON: # citește a, b a = int(input()) # b = int(input()) # s = a + b s = a + b # media = s / 2 media = s / 2 # scrie media print(media)
Observă: citește devine input(), scrie devine print(), iar atribuirile rămân aceleași. Fiecare cuvânt cheie din pseudocod are corespondentul lui în Python.
a = int(input()) b = int(input()) s = a + b media = s / 2 print(media)
Exercițiu de completare
Completează pseudocodul pentru „suma a două numere" cu cuvintele potrivite:
______ a, b
s = ______ (calculul sumei lui a și b)
______ s
Variabila ______ reține suma celor două numere.
Bancă de cuvinte:
Test de înțelegere
Test rapid - reprezentarea algoritmilor:
1. Care simbol din organigramă reprezintă o decizie?
2. Python este un limbaj de programare...
3. În pseudocod, pentru afișarea unui rezultat folosim cuvântul...
Test de verificare
Test rapid - reprezentarea algoritmilor:
1. Reprezentarea algoritmilor cu figuri geometrice se numește...
2. Un text apropiat de limbajul natural, care descrie pașii algoritmului, se numește...
3. Programul care execută direct liniile codului sursă ale unui limbaj interpretat se numește...
Aprofundare
Pseudocodul - limbajul universal al algoritmilor. Deoarece pseudocodul nu aparține niciunui limbaj de programare, același algoritm scris în pseudocod poate fi implementat în Python, C++, Java sau orice alt limbaj. La bacalaureat și la olimpiadă, algoritmii se cer aproape întotdeauna în pseudocod, tocmai pentru că se verifică logica, nu sintaxa unui limbaj anume.
De ce Python este „de nivel înalt"? Un limbaj de nivel înalt este apropiat de limbajul uman și ascunde detaliile tehnice ale calculatorului. În Python, o singură linie precum n = int(input()) face multă treabă în spate. La nivel scăzut (limbaj de asamblare), aceeași operație ar cere mai multe instrucțiuni care vorbesc direct cu procesorul. Cu cât limbajul este mai înalt, cu atât programarea este mai ușoară, dar și mai puțin „controlată" de programator.
Cazuri particulare ale organigramelor. În organigramă, rombul deciziei are întotdeauna exact două ramuri (da/nu). Există algoritmi cu mai multe decizii înlănțuite - atunci se desenează mai multe romburi legate între ele. De asemenea, buclele se desenează cu săgeți care se întorc înapoi la blocul de testare, iar o buclă greșit desenată poate sugera o repetare infinită.
PbInfo - Salut
Enunț:
Cerință: Să se afișeze pe ecran mesajul Salut!
Date de intrare:
Nu există date de intrare. Programul doar afișează un mesaj.
Date de ieșire:
Programul va afișa mesajul Salut!
Restricții și precizări:
Numerele citite sunt numere naturale, iar rezultatul este un număr întreg sau real.
Exemplu:
Ieșire:
Salut!
Cum gândim soluția:
- Nu avem date de intrare, deci nu folosim
input() - Afișăm mesajul fix cu
print(), în ghilimele
Scrie soluția în Python:
Soluție corectă:
print("Salut!")
Ce învățăm: print() afișează un text scris între ghilimele. Aici nu citim nimic, doar afișăm.
PbInfo - Produsul a două numere
Enunț:
Cerință: Se citesc două numere naturale a și b. Să se afișeze produsul lor.
Date de intrare:
Programul citește de la tastatură numerele a și b.
Date de ieșire:
Programul va afișa produsul celor două numere.
Restricții și precizări:
Numerele citite sunt numere naturale, iar rezultatul este un număr întreg sau real.
Exemplu:
Intrare:
7 5
Ieșire:
35
Cum gândim soluția:
- Citim a și b cu
input(), transformate în întregi cuint() - Calculăm produsul:
p = a * b - Afișăm cu
print()
Scrie soluția în Python:
Soluție corectă:
a = int(input()) b = int(input()) p = a * b print(p)
Ce învățăm: am tradus pseudocodul citește a, b; p = a * b; scrie p în program Python complet.
Exercițiul Practic: Din pseudocod în Python
Sarcini de lucru
Transformă algoritmi în programe Python și recunoaște simbolurile organigramelor
Sarcina 1: Transformă pseudocodul în Python
Cerință: Transformă următorul pseudocod într-un program Python complet și funcțional:
citește n patrat = n * n scrie patrat
Soluție pentru Sarcina 1:
n = int(input()) patrat = n * n print(patrat)
Verifică: pentru n = 5, programul afișează 25. citește a devenit input(), iar scrie a devenit print().
Sarcina 2: Simbolurile organigramei
Cerință: Enumeră simbolurile principale ale unei organigrame și scrie rolul fiecăruia.
Soluție pentru Sarcina 2:
Ovalul - marchează START și STOP Paralelogramul - citește date sau afișează rezultate Rombul - reprezintă o decizie (DA / NU) Dreptunghiul - reprezintă o prelucrare (un calcul) Săgețile - arată sensul de parcurgere a fluxului
Verifică: ai scris toate cele cinci simboluri? La romb nu uita că răspunsul este mereu „da" sau „nu".
Scrie pe caiet - De reținut
Titlul lecției
Ora 5: Reprezentarea algoritmilor
Definiția lecției
Un algoritm poate fi reprezentat în mai multe feluri: în pseudocod, printr-o organigramă sau direct într-un limbaj de programare. Pseudocodul folosește cuvinte cheie apropiate de limbajul natural, precum citește, scrie, dacă, pentru sau cât timp, și poate fi transformat ușor în program Python. Organigrama este reprezentarea grafică a algoritmului, în care fiecare tip de operație are un simbol propriu: ovalul marchează începutul și sfârșitul, paralelogramul citirea și afișarea, rombul decizia, iar dreptunghiul prelucrarea. Limbajele de programare pot fi de nivel înalt, apropiate de om, sau de nivel scăzut, apropiate de procesor. Calculatorul nu înțelege direct codul scris de noi: un interpretor, ca în cazul Python, îl traduce și îl execută instrucțiune cu instrucțiune. De exemplu, algoritmul „media a două numere" poate fi scris în pseudocod, desenat în organigramă și apoi implementat în Python.
Definiții esențiale
- Pseudocodul - reprezentarea algoritmului cu cuvinte cheie apropiate de limbajul natural: citește, scrie, dacă, pentru, cât timp.
- Organigrama - reprezentarea algoritmului cu blocuri grafice: paralelogram (citire/afișare), dreptunghi (prelucrare), romb (decizie).
- Limbaj de nivel înalt - limbaj apropiat de om, care ascunde detaliile calculatorului (Python, C++, Java).
- Limbaj de nivel scăzut - limbaj apropiat de procesor (limbaj de asamblare).
- Interpretor - execută programul linie cu linie; compilator - transformă întregul program în executabil.
Algoritmul cheie - pseudocod
Algoritmul cheie - cod Python
a = int(input()) b = int(input()) s = a + b media = s / 2 print(media)
Greșeli comune de evitat
- Scrierea în pseudocod a unor cuvinte din Python, cum ar fi
printsauinput- în pseudocod folosimscrieșicitește. - Desenarea deciziilor în organigramă fără ambele ramuri (da și nu).
- Confuzia dintre interpretor și compilator: Python este interpretat, nu compilat.
- Transformarea directă a pseudocodului în cod fără a verifica corespondențele.
Sfaturi practice și trucuri
- Pentru orice problemă, scrie algoritmul în pseudocod înainte de a scrie o linie de Python.
- Transformă fiecare cuvânt cheie din pseudocod pe rând: citește → input(), scrie → print().
- Desenează organigrama pentru probleme cu decizii sau bucle - te ajută să vizualizezi fluxul.
- Reține: pseudocodul este independent de limbaj - același algoritm merge în orice limbaj.
Exemplu practic
Înainte de a-ți construi mobilierul dintr-un magazin, urmezi instrucțiunile de asamblare, care îți arată pașii cu desene și săgeți, exact ca o organigramă. La fel, un programator scrie întâi algoritmul în pseudocod, apoi îl desenează schematic și abia la final îl implementează în Python:
a = int(input()) b = int(input()) media = (a + b) / 2 print(media)