Lectia 11

Structura alternativa

Structura alternativă apare în practică în două variante şi anume:

  • Structura alternativă: în acest caz se va executa doar unul din două blocuri de instrucţiuni în funcţie de valoarea de adevăr a unei expresii logice

  • Structura alternativă multiplă: în această situaţie se va executa un bloc de instrucţiuni din mai multe variante posibile.

Structura alternativă

Auzim în viata de zi cu zi afirmaţii de genul:

DACĂ am promovat la toate materiile ATUNCI

ma voi duce in tabara,

ALTFEL

stau sa invat.

SFÂRŞIT DACĂ

Se remarcă aici trei cuvinte ce au un rol deosebit: DACĂ, ATUNCI, ALTFEL. Propozitia are trei componente şi anume:

  • o conditie, transcrisă prin “am promovat la toate materiile”, conditie pe care o vom nota cu C;

  • o acţiune transcrisă prin mesajul “mă voi duce în tabără”, notata cu B1, acţiune asociata cu cuvântul ATUNCI, adică se execută dacă şi numai dacă “am promovat la toate materiile”;

  • o acţiune transcrisă prin mesajul “stau să învăţ”, notată cu B2, acţiune asociată cu cuvântul ALTFEL, adică se execută dacă şi numai dacă NUam promovat la toate materiile

Structura alternativă este implementată în limbajul C++ de instrucţiunea IF. În continuare vom prezenta modul de reprezentare a acestei structuri în limbaj pseudocod, în schemă logică şi în limbajul de programare C++. Modul de execuţie este identic pentru oricare din cele trei reprezentări. Sintetizănd cu notaţiile de mai sus structura alternativă se poate reprezenta astfel:

Pot exista şi cazuri particulare de utilizare a acestei structuri, atunci cand unul dintre cele doua blocuri de instrucţiuni lipseste.

Cazul 1. Daca lipseste B2 atunci structura se reprezinta astfel:

Cazul 2. Daca lipseste B1 atunci structura se reprezinta astfel:

Pot exista şi situaţii în care structurile alternative sunt incluse unele in altele. In acest caz spunem ca instrucţiunilie if sunt imbricate. Exista o regula de asociere a cuvântului else de if:

„În situatia instructiunilor if imbricate, si atunci cand pentru gruparea instrucţiunilor nu se folosesc acolade cuvantul else se asociază primului cuvant if aflat la stanga lui.(asemanator cu asocierea inchiderii corecte a grupurilor de paranteze din matematica).”

În exemplul următor este sugerat cum sunt imbricate 3 instructiuni if. Pentru a le putea identifica uăor ele sunt scrise cu culoari diferite (negru, albastru si portocaliu).

Dacă în aceasta schemă grupăm instrucţiunile cu acolade se poate schimba fundamental structura programului: