Școala Româno-Britanică
Modulul 1 Clasa a IX-a | Python

Ora 5: Reprezentarea algoritmilor

Ce vei învăța astăzi: Pseudocod, blocuri grafice, limbaje de programare

Rezultat practic: Distingi pseudocodul, organigrama și limbajele de programare și traduci un algoritm simplu în Python (Competența 2.3).

Competența 2.3 Săptămâna 3

Înainte de a începe

De ce contează? Pseudocodul și organigrama sunt limbaje universale: nu depind de Python sau C++, așa că poți proiecta un algoritm o dată și apoi să-l traduci în orice limbaj de programare.

Ce știi deja?

În lecția anterioară („Etapele elaborării unui program”) ai proiectat algoritmul înainte de cod. Cum ai descrie în cuvinte pașii algoritmului pentru media a două numere, fără să folosești Python?

Ideea-cheie: Pseudocodul reprezintă algoritmul cu cuvinte cheie (citește, scrie, dacă, pentru), iar organigrama îl reprezintă cu blocuri grafice.
SINTEZĂ TEORETICĂ ȘI EXEMPLE GHIDATE

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.

Cuvintele cheie folosite în pseudocod
Simbolurile principale ale unei organigrame
Limbaje de nivel înalt și de nivel scăzut
Compilator vs interpretor
Transformarea pseudocodului în program Python

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

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.

Ovalul - marcarea începutului (START) și a sfârșitului (STOP) algoritmului
Paralelogramul - citirea datelor sau afișarea rezultatelor
Rombul - o decizie; de aici pleacă două săgeți: DA și NU
Dreptunghiul - o prelucrare (un calcul, o atribuire)
Săgețile - sensul de parcurgere a fluxului (ordinea în care sunt parcurse etapele algoritmului)
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 → Python
# 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.

Algoritmul MediaDouaNumere: citește a, b s = a + b media = s / 2 scrie media
Program Python complet (rulabil)
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:
citește s a+b scrie

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...

Ai grijă la: Să confunzi blocurile organigramei: citirea și afișarea se pun în paralelogram, prelucrarea în dreptunghi, iar decizia în romb.

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ă.

APLICARE ȘI REZOLVARE DE PROBLEME

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:
  1. Nu avem date de intrare, deci nu folosim input()
  2. 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:
  1. Citim a și b cu input(), transformate în întregi cu int()
  2. Calculăm produsul: p = a * b
  3. 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ȚII PRACTICE

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 MediaDouaNumere: citește a, b s = a + b media = s / 2 scrie media

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 print sau input - în pseudocod folosim scrie și citeș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)