Sari la conținut
EduCamp

Tematică științifică · 1.3

Structurile fundamentale

Structura secvențială, structura alternativă cu formele ei și structura repetitivă cu cele trei variante, în pseudocod și în C++, cu procesul de control, criteriul de alegere a variantei și compunerea structurilor prin succesiune și imbricare.

Structurile fundamentale sunt structura secvențială, structura alternativă și structura repetitivă. Teorema lui Böhm și Jacopini arată că ele sunt suficiente: orice algoritm se poate exprima într-o formă structurată folosind numai aceste trei structuri.

Fiecare structură are un singur punct de intrare și un singur punct de ieșire. După încheierea ei, execuția continuă cu prima instrucțiune aflată după structură.

Fiecare structură este dată mai jos în pseudocod, apoi în C++ și în Python. În C++, corpul unei structuri se delimitează cu acolade; în Python, prin indentare.

Structura secvențială

Fiecare pas predă controlul pasului următor, fără nicio decizie și fără revenire la un pas anterior. Structura secvențială se mai numește structură liniară și cuprinde operațiile de citire, de scriere și de atribuire.

P₁
P₂
…
Pₙ

Exemplu. Interschimbarea valorilor a două variabile se face cu ajutorul unei a treia variabile, numită variabilă de manevră.

Algoritm

aux ← a
a ← b
b ← aux

C++

aux = a;
a = b;
b = aux;

Python

aux = a
a = b
b = aux

Structura alternativă

Ea se mai numește structură decizională.

Forma completă. Pe fiecare ramură se execută o prelucrare:

dacă condiție atunci
    P₁
altfel
    P₂
sfdacă

C++

if (a > b)
    cout << a;
else
    cout << b;

Python

if a > b:
    print(a)
else:
    print(b)

Cuvântul altfel se scoate din pseudocod.

dacă n < 0 atunci
    n ← -n
sfdacă

Când algoritmul cere ca acțiunea să se execute pe ramura falsă, condiția se neagă.

Structuri alternative imbricate

O structură alternativă poate fi cuprinsă în interiorul alteia. Când imbricarea se face pe ramura altfel, se obține alegerea între mai multe prelucrări:

C++

if (nota < 5)
    cout << "insuficient";
else if (nota < 7)
    cout << "suficient";
else if (nota < 9)
    cout << "bine";
else
    cout << "foarte bine";

Python

if nota < 5:
    print("insuficient")
elif nota < 7:
    print("suficient")
elif nota < 9:
    print("bine")
else:
    print("foarte bine")

În Python, imbricarea pe ramura altfel se scrie cu cuvântul elif, care ține locul perechii else if.

Structura alternativă generalizată

Selectorul ia valori dintr-o mulțime ordonată de elemente de același tip cu el. Fiecărei valori îi corespunde un caz, iar cazului îi corespunde o acțiune. Când selectorul nu are valoarea niciunui caz, se execută acțiunea de pe ramura altfel.

Algoritm

în cazul că cifra
    cazul 0:
        scrie "zero"
    cazul 1:
        scrie "unu"
    altfel
        scrie "altceva"
sfârșit_în_cazul

C++

switch (cifra) {
    case 0:
        cout << "zero";
        break;
    case 1:
        cout << "unu";
        break;
    default:
        cout << "altceva";
}

Python

match cifra:
    case 0:
        print("zero")
    case 1:
        print("unu")
    case _:
        print("altceva")

Instrucțiunea match există în Python începând cu versiunea 3.10. Spre deosebire de switch din C++, execuția nu trece de la un caz la următorul, deci nu este nevoie de break. Aceeași selectare se poate scrie și cu if … elif … else.

Structura alternativă generalizată cu n cazuri este echivalentă cu n structuri alternative simple imbricate, în care condiția fiecăreia compară selectorul cu valoarea cazului. Ea nu este a patra structură fundamentală, ci o formă a structurii alternative.

Structura repetitivă

Structura repetitivă se mai numește structură iterativă.

Procesul de control

Repetarea este condusă de un proces de control, ale cărui acțiuni sunt date în tabelul următor.

AcțiuneaCe face
inițializareastabilește starea de dinaintea primei parcurgeri a corpului ciclului
testareacompară starea curentă cu starea care încheie repetarea
modificareaschimbă starea curentă către starea finală; la structurile cu test inițial și cu test final face parte din corpul ciclului, iar la structura cu număr cunoscut de repetări este scrisă în antet

La structurile cu test inițial și cu test final, corpul ciclului trebuie să modifice cel puțin una dintre variabilele care apar în condiție, astfel încât testarea să încheie repetarea la un moment dat.

De exemplu, dacă repetarea se încheie la valoarea 20, iar variabila pornește de la 0 și crește din 3 în 3, ea ia valorile 0, 3, 6, 9, 12, 15, 18, 21 și nu atinge niciodată valoarea 20. Un ciclu infinit presupune executarea unui număr infinit de pași, ceea ce contrazice definiția algoritmului.

Materialul acesta se citește pe educamp.ro și nu se tipărește.

Ce cuprinde subcapitolul

  1. Structura secvențială
  2. Structura alternativă
  3. Structura repetitivă
  4. Compunerea structurilor

Continuă lectura ca și cursant

Cel puțin un subcapitol din fiecare capitol este disponibil gratuit și integral. Pentru a citi toate celelalte subcapitole ale disciplinei, te înscrii la cursul de pregătire.

Te înscrii, alegi în cont când începe cursul și plătești prima lună prin transfer bancar. Pentru a vedea mai întâi cum este prezentată materia, poți reveni la primul subcapitol al capitolului.

Acces la suportul de curs

25 RON / lună, fără ședințe

Ce cuprinde:

  • Acces la toate lecțiile disponibile
  • Suport de curs pentru tematica științifică și metodică
  • Exemple, explicații și exerciții
  • Acces la materialele noi adăugate pe platformă
  • Posibilitatea de a adresa întrebări

Poți alege și variante cu ședințe online, în grup sau individuale. Le vezi pe pagina cursului.

Ai întrebări sau o problemă? Scrie-mi pe WhatsApp, la 0745 874 576.

Înscrie-te Alte varianteCum plătești Login

Surse (5)
  • Blaga, A., Botezan, C.-M., Pătrașcu, D., Tătaru, D. I., „Informatică și TIC. Manual pentru clasa a VI-a”, Editura CD Press, București
  • Cosman, C. D., Coriteac, M. E., „Informatică și TIC. Manual pentru clasa a VI-a”, Editura Sigma, București
  • Miloșescu, M., „Informatică. Manual pentru clasa a IX-a, profilul real, intensiv”, Editura Didactică și Pedagogică, București, 2005
  • Niță, A., Popescu, C., Chirilă, D. N., Niță, M., „Informatică și TIC. Manual pentru clasa a V-a”, Editura Corint Logistic, București, 2022
  • „Tutorialul de Python”, documentația oficială a limbajului Python, https://docs.python.org/ro/3/tutorial/index.html
Actualizat: 20 octombrie 2026