label Cursuri autorenew 2025-09-29, 16:57
Un algoritm este o secventa finita de pasi, aranjata intr-o ordine logica specifica care, atunci cand este executata, produce o solutie corecta pentru o problema precizata. Algoritmii pot fi descrisi in orice limbaj, pornind de la limbajul natural pina la limbajul de asamblare al unui calculator specific. Un limbaj al carui scop unic este cel de a descrie algoritmi se numeste limbaj algoritmic. Limbajele de programare sunt exemple de limbaje algoritmice.

In aceasta sectiune descriem limbajul algoritmic utilizat in aceasta carte. Limbajul nostru este tipizat, In sensul ca datele sunt organizate in tipuri de date. Un tip de date consta dintr-o multime de entitati de tip data (valori), numita si domeniul tipului, si o multime de operatii peste aceste entitati. Convenim sa grupam tipurile de date in trei categorii:
- tipuri de date elementare, in care valorile sunt entitati de informatie indivizibile;
- tipuri de date structurate de nivel jos, in care valorile sunt structuri relativ simple obtinute prin asamblarea de valori elementare sau valori structurate iar operatiile sunt date la nivel de componenta;
- tipuri de date structurate de nivel inalt, in care valorile sunt structuri mai complexe iar operatiile sunt implementate de algoritmi proiectati de catre utilizatori.



Primele doua categorii sunt dependente de limbaj si de aceea descrierile lor sunt incluse in aceata sectiune. Tipurile de nivel inalt pot fi descrise intr-o maniera independenta de limbaj si descrierile lor sunt incluse in capitolul 3. Un tip de date descris intr-o maniera indepenedenta de reprezentarea valorilor si implementarea operatiilor se numeste tip de date abstract.

Pasii unui algoritm si ordinea logica a acestora sunt descrise cu ajutorul instructiunilor. O secventa de instructiuni care actioneaza asupra unor structuri de date precizate se numeste program. In sectiunea 2.2 vom vedea care sunt conditiile pe care trebuie sa le indeplineasca un program pentru a descrie un algoritm.

Modelarea memoriei
Memoria este reprezentata ca o structura liniara de celule, fiecare celula avand asociata o adresa si putand memora (stoca) o data de un anumit tip (fig. 2.1). Accesul la memorie este realizat cu ajutorul variabilelor. O variabila este caracterizata de:
- un nume cu ajutorul careia variabila este referita,
- o adresa care desemneaza o locatie de memorie si
- un tip de date care descrie natura valorilor memorate in locatia de memorie asociata variabilei.