Invatare Atomica

Ce este un algoritm?

Progres lectie:
0%
🎯

Obiectivul lectiei

Vei intelege conceptul fundamental care sta la baza oricarui program de calculator si vei invata sa gandesti ca un programator.

Dupa aceasta lectie vei putea:

  • Sa definesti conceptul de algoritm si sa enumeri cele 4 proprietati ale sale
  • Sa reprezinti un algoritm simplu in pseudocod (CITESTE, calcul, SCRIE)
  • Sa identifici datele de intrare, prelucrarea si datele de iesire dintr-un algoritm
  • Sa distingi intre reprezentarea in limbaj natural, pseudocod si limbaj de programare
  • Sa rezolvi exercitii de tip BAC privind urmarirea executiei unui algoritm

Incearca singur!

Provocare:

Imagineaza-ti ca trebuie sa-i explici unui prieten cum sa faca un sandvis cu branza. Scrie pasii exacti, in ordine.

💡 Ai nevoie de un indiciu?

Gandeste-te la fiecare actiune mica: unde este painea? Unde este branza? In ce ordine le asezi? Ce faci la final?

Acesti pasi clari, in ordine, reprezinta exact un algoritm!

1

1. Ce este un algoritm?

Un algoritm este o succesiune finita de pasi, clar definiti si in ordine, care rezolva o problema sau indeplineste o sarcina.
Exemplu din viata reala:

Reteta de prajitura este un algoritm: are ingrediente (date de intrare), pasi clari (prelucrare), si rezultat (prajitura - date de iesire).

2

2. Proprietatile unui algoritm

  • Finit - are un numar limitat de pasi
  • Determinat - fiecare pas e clar definit, fara ambiguitate
  • General - rezolva o clasa de probleme, nu doar un caz particular
  • Corect - produce rezultatul asteptat
3

3. Reprezentarea algoritmilor

Putem reprezenta un algoritm in mai multe moduri:
1. Limbaj natural

Descriem pasii in cuvinte simple.

2. Pseudocod

Limbaj intermediar intre natural si cod.

4

4. Exemplu: Algoritm pentru suma a doua numere

// Algoritm: Suma a doua numere
CITESTE a, b
suma <- a + b
SCRIE suma
Explicatie:
  • CITESTE = primim datele de intrare
  • suma <- a + b = calculam (prelucrare)
  • SCRIE = afisam rezultatul

Acelasi algoritm, scris intr-un limbaj de programare real. Aici fixam a = 7 si b = 5 ca sa putem vedea rezultatul, in loc sa le citim de la tastatura:

# Algoritm: Suma a doua numere
a = 7
b = 5
suma = a + b
print("a =", a)
print("b =", b)
print("Suma =", suma)
Output real (rulat cu python):
a = 7
b = 5
Suma = 12
5

5. Acelasi algoritm in C++ EXCLUSIV INTENSIV

⚡ Sectiune doar pentru intensiv informatica

La profilul intensiv vei scrie acelasi algoritm in C++. Diferentele fata de Python: tipul fiecarei variabile se declara explicit (int), iar fiecare instructiune se termina cu ;.

#include <iostream>
using namespace std;
int main() {
    int a = 7;
    int b = 5;
    int suma = a + b;
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;
    cout << "Suma = " << suma << endl;
    return 0;
}
Output real (compilat g++ -std=c++17, apoi rulat):
a = 7
b = 5
Suma = 12

Acelasi algoritm (Citire/fixare → Prelucrare → Afisare) da exact acelasi rezultat in ambele limbaje — doar forma de scriere difera.

6

6. Pentru Bac

La Bacalaureat vei intalni exercitii de tip:
  • Identificarea datelor de intrare si iesire
  • Scrierea algoritmului in pseudocod
  • Urmarirea executiei pas cu pas

Exercitii practice

Exercitiul 1 (Nivel minim) - Scrie un algoritm

Scrie algoritmul in pseudocod pentru a calcula perimetrul unui dreptunghi, stiind lungimea si latimea.

Vezi rezolvarea

Urmam structura CITESTE - prelucrare - SCRIE folosita in lectie.

  1. CITESTE L, l (citim lungimea si latimea dreptunghiului)
  2. P <- 2 * (L + l) (prelucrare: calculam perimetrul)
  3. SCRIE P (afisam rezultatul)

Exemplu de verificare: pentru L = 7 si l = 3, obtinem P = 2 * (7 + 3) = 20.

Exercitiul 2 (Nivel standard) - Identifica proprietatile

Care proprietate a algoritmului este incalcata: "Pasul 1: Ia un numar. Pasul 2: Repeta pasul 1 la infinit."

Vezi rezolvarea

Proprietatea incalcata este Finit (un algoritm trebuie sa aiba un numar limitat de pasi).

Pasul 2 spune "Repeta pasul 1 la infinit", ceea ce inseamna ca algoritmul nu se opreste niciodata si nu ajunge la un rezultat final - contrazice direct cerinta de a avea un numar finit de pasi.

Celelalte proprietati nu sunt cauza problemei: pasul in sine e clar (determinat), dar lipsa unei conditii de oprire face executia infinita.

Exercitiul 3 (Nivel performanta) - Proiect practic

Gandeste-te la o activitate zilnica (de ex: prepararea cafelei) si scrie algoritmul cu cel putin 5 pasi.

Vezi rezolvarea

Nu iti dau algoritmul gata scris - alege singur activitatea (de ex. prepararea cafelei, spalatul pe dinti, drumul spre scoala) si scrie-l urmand structura din lectie.

  1. Identifica datele de intrare (ce ai nevoie inainte sa incepi).
  2. Scrie minim 5 pasi, numerotati, in ordinea corecta de executie.
  3. Fiecare pas trebuie sa fie o singura actiune clara, fara ambiguitate (proprietatea Determinat).
  4. Capcana frecventa: pasi prea vagi ("fa cafeaua") nu sunt determinati - sparge-i in actiuni concrete (pune apa, pune cafea, fierbe, toarna).

Criterii de nota maxima: minim 5 pasi numerotati, date de intrare identificate explicit, rezultatul final (iesirea) numit clar, fiecare pas verificabil.

Ce ai invatat astazi

  • Definitia unui algoritm
  • Cele 4 proprietati (finit, determinat, general, corect)
  • Cum sa reprezinti un algoritm in pseudocod
  • Structura: Citire → Prelucrare → Afisare

Vrei mai mult?

Provocare: Scrie in pseudocod (CITESTE - prelucrare - SCRIE) un algoritm care gaseste numarul mai mare dintre doua numere citite. Aici nu mai poti scrie doar pasi in linie dreapta ca la suma - trebuie sa alegi intre doua variante, in functie de o comparatie. Verifica-l cu perechile (7, 3) si (2, 9).

De gandit: O reteta de bucatarie spune adesea "adauga sare dupa gust". De ce un calculator nu poate executa un pas ca acesta, desi un om il intelege perfect? Ce proprietate a algoritmului incalca formularea "dupa gust"?

Dincolo de lectie: Algoritmii de gasire a celui mai scurt drum stau la baza aplicatiilor de navigare GPS: transforma date de intrare (harta, start, destinatie) in date de iesire (ruta), pas cu pas. Fara pasul de decizie exersat mai sus, niciun program nu ar putea alege intre doua drumuri posibile - de aceea in modulele urmatoare vei invata structurile de decizie (daca...atunci).

Urmatoarea lectie

Continua cu lectia urmatoare pentru a aprofunda cunostintele.

Continua →