Structura Alternativă în Pseudocod și C++

I. Teorie

A. Conceptul de decizie în programare

În viața reală, luăm decizii în fiecare zi: „dacă plouă, ia umbrela; altfel, nu lua umbrela”. În programare, structura alternativă face exact acest lucru: permite programului să aleagă ce acțiune să execute în funcție de anumite condiții.

O condiție este o propoziție care poate fi adevărată sau falsă. Structura alternativă folosește această proprietate pentru a decide ce instrucțiuni să ruleze.

Dacă condiția este adevărată → se execută un anumit bloc de instrucțiuni.

Dacă condiția este falsă → programul poate să execute un alt bloc de instrucțiuni sau să nu execute nimic.

Această capacitate de a lua decizii face programele flexibile și adaptabile, permițându-le să reacționeze diferit în funcție de datele de intrare sau de situațiile întâlnite în timpul execuției.


B. Blocurile de instrucțiuni și condițiile

Blocurile de instrucțiuni reprezintă acțiunile concrete pe care programul le va efectua atunci când o condiție este evaluată.

Fiecare condiție este testată și are un rezultat: adevărat sau fals.

Blocurile de instrucțiuni sunt executate doar dacă condiția corespunzătoare este adevărată sau conform regulilor structurii, dacă este falsă.

Condițiile pot fi:

Această organizare permite programului să gestioneze situații complexe, evitând erorile și executarea unor acțiuni neadecvate contextului.

Structura alternativă oferă, astfel, un mod clar și organizat de a controla fluxul execuției, făcând programul inteligent în alegerea pașilor de urmat.


C. Decizii succesive și imbricarea condițiilor

Uneori, o decizie nu depinde doar de o singură condiție, ci de mai multe condiții succesive sau combinate.

Structurile alternative pot fi imbricate, adică un bloc de decizie poate conține alte blocuri de decizie în interior.

Fiecare bloc are propria sa condiție și propriile sale acțiuni.

Evaluarea începe cu condiția exterioară și continuă cu condițiile interioare doar dacă cea exterioară a fost adevărată, permițând luarea unor decizii mai nuanțate.

Această metodă este esențială atunci când dorim ca programul să reacționeze diferit în situații complexe sau când o alegere depinde de mai multe criterii.

Spre exemplu, în viața reală: „dacă ești acasă și sună cineva, verific cine este; dacă este vecinul, salută-l, altfel ignoră.”

Prima condiție controlează dacă verificăm sau nu apelul.

Condiția interioară decide acțiunea concretă pe baza identității persoanei.

Astfel, imbricarea deciziilor oferă precizie și flexibilitate, permițând programului să se comporte corect în contexte multiple și să ia decizii corecte, pas cu pas.

1. Dacă simplu

Se execută un bloc de instrucțiuni doar dacă o condiție este adevărată. Dacă condiția este falsă, programul continuă execuția normală.

Pseudocod:
daca x > 0 atunci
    scrie "Pozitiv"
sfarsit daca

Explicație: Dacă x > 0, se afișează „Pozitiv”. Dacă fals, nu se execută nimic.

2. Dacă… altfel

Se permite alegerea între două blocuri: unul dacă condiția este adevărată și altul dacă condiția este falsă.

Pseudocod:
daca x % 2 = 0 atunci
    scrie "Par"
altfel
    scrie "Impar"
sfarsit daca

Explicație: Dacă x este par, afișează „Par”. Dacă x este impar, afișează „Impar”.

3. Dacă… altfel dacă… altfel

II. Exercitii rezolvate

Exemplul 1: Se citește un număr întreg x. Să se afișeze dacă este pozitiv.

Pseudocod:
întreg x
citește x
daca x > 0 atunci
    scrie "Pozitiv"
sfarsit daca

C++:
int x;
cin >> x;
if (x > 0) {
    cout << "Pozitiv";
}

Exemplul 2: Se citește un număr întreg x. Să se afișeze dacă este par sau impar.

Pseudocod:
întreg x
citește x
daca x % 2 = 0 atunci
    scrie "Par"
altfel
    scrie "Impar"
sfarsit daca

C++:
int x;
cin >> x;
if (x % 2 == 0) {
    cout << "Par";
} else {
    cout << "Impar";
}

Exemplul 3: Se citesc două numere întregi a și b. Afișați numărul mai mare.

Pseudocod:
întreg a,b
citește a,b
daca a > b atunci
    scrie a
sfarsit daca

daca a <= b atunci
    scrie b
sfarsit daca

C++:
int a,b;
cin >> a >> b;
if (a > b) 
    cout << a; 
if (a <= b) 
    cout << b;

Exemplul 4: Se citește nota unui elev. Dacă nota este mai mare sau egală cu 5, se afișează "Admis", altfel "Respins".

Pseudocod:
natural nota
citește nota
daca nota >= 5 atunci
    scrie "Admis"
altfel
    daca nota < 5 atunci
        scrie "Respins"
    sfarsit daca
sfarsit daca

C++:
int nota;
cin >> nota;
if (nota >= 5) 
    cout << "Admis";
  else 
    if (nota < 5) 
        cout << "Respins";
    

Explicație: Primul „Dacă” (roșu) este structura principală, al doilea „Dacă” (albastru) este structura secundară. Culorile evidențiază diferența dintre cele două structuri.

Exemplul 5: Se citește un număr întreg x. Determinați dacă este pozitiv, negativ sau zero.

Pseudocod:
întreg x
citește x
daca x > 0 atunci
    Scrie "Pozitiv"
altfel 
    daca x < 0 atunci
       scrie "Negativ"
    altfel
      scrie "Zero"
    sfarsit daca
sfarsit daca

C++:
int x;
cin >> x;
if (x > 0) 
    cout << "Pozitiv";
  else if (x < 0) 
    cout << "Negativ";
  else 
    cout << "Zero";

III. Exerciții propuse

  1. Se citește un număr întreg. Afișați dacă este multiplu de 5.
    Exemplu: Input: 25 → Output: Da
    Input: 12 → Output: Nu
  2. Se citește vârsta unei persoane. Afișați "Minor" dacă are sub 18 ani, altfel "Major".
    Exemplu: Input: 16 → Output: Minor
    Input: 20 → Output: Major
  3. Se citesc două numere. Afișați cel mai mic dintre ele.
    Exemplu: Input: 7 3 → Output: 3
    Input: 5 10 → Output: 5
  4. Se citește o temperatură. Afișați "Frig" dacă este sub 0, "Cald" dacă este peste 25, altfel "Normal".
    Exemplu: Input: -5 → Output: Frig
    Input: 30 → Output: Cald
    Input: 15 → Output: Normal
  5. Se citește un număr. Afișați dacă este divizibil cu 2 și 3.
    Exemplu: Input: 12 → Output: Da
    Input: 8 → Output: Nu
  6. Se citește un număr natural de 3 cifre abc. Determinați dacă ultima cifră este mai mare decât prima și cifra din mijloc.
    Exemplu: Input: 357 → Output: Da
  7. Se citește un număr natural de 4 cifre. Verificați dacă suma primelor două cifre este egală cu suma ultimelor două cifre.
    Exemplu: Input: 3527 → Output: Nu
  8. Se citește un număr de 3 cifre abc. Verificați dacă cifrele sunt alternant pare și impare.
    Exemplu: Input: 252 → Output: Da
  9. Se citesc trei numere întregi a, b, c. Determinați cea mai mare diferență posibilă dintre oricare două cifre.
    Exemplu: Input: 3 7 2 → Output: 5
  10. Se citește un număr de 3 cifre. Verificați dacă este palindrom.
    Exemplu: Input: 121 → Output: Da
  11. Se citesc două numere întregi a și b. Verificați dacă au semne diferite.
    Exemplu: Input: -3 7 → Output: Da
  12. Se citește un număr de 3 cifre. Verificați dacă cifra din mijloc este mai mare decât media aritmetică a primei și ultimei cifre.
    Exemplu: Input: 352 → Output: Da
  13. Se citește un număr întreg x. Verificați dacă este în intervalul [10, 99] sau în intervalul [-99, -10].
    Exemplu: Input: 45 → Output: Număr de două cifre
  14. Se citește un număr de 5 cifre. Verificați dacă suma primelor două cifre este egală cu suma ultimelor două (bilet norocos).
    Exemplu: Input: 12933 → Output: Nu
  15. Se citesc două numere întregi a și b. Afișați numărul care este mai aproape de zero.
    Exemplu: Input: -3 2 → Output: 2
  16. Se citește un număr de 4 cifre abcd. Determinați dacă diferența dintre a doua și prima cifră este egală cu diferența dintre a treia și a doua cifră sau diferența dintre a patra și a treia.
    Exemplu: Input: 1357 → Output: Da
  17. Se citește un număr de 5 cifre abcde. Verificați dacă primele două cifre formează oglinda ultimelor două cifre și cifra din mijloc este impară.
    Exemplu: Input: 12321 → Output: Da
  18. Se citește un număr de 4 cifre abcd. Verificați dacă suma primelor două cifre minus suma ultimelor două este egală cu diferența dintre prima și ultima cifră.
    Exemplu: Input: 3527 → Output: Nu
  19. Se citește un număr de 5 cifre. Verificați dacă cifrele sunt par-impar-par-impar-par și dacă cifra din mijloc este mai mare decât media primelor două cifre.
    Exemplu: Input: 25692 → Output: Da
  20. Se citește un număr de 3 cifre abc. Verificați dacă produsul primelor două cifre este mai mare decât suma ultimei cifre și a primei cifre.
    Exemplu: Input: 243 → Output: Da
  21. Se citește un număr de 7 cifre. Verificați dacă devine palindrom dacă schimbăm exact două cifre alăturate.
    Exemplu: Input: 2135321 → Output: Da
  22. Se citește un număr de 3 cifre abc. Verificați dacă b este media aritmetică între a și c și a este mai mic decât c.
    Exemplu: Input: 357 → Output: Da
  23. Se citește un număr de 3 cifre. Verificați dacă suma primei și ultimei cifre este egală cu cifra din mijloc sau cu dublul acesteia.
    Exemplu: Input: 242 → Output: Da
  24. Se citește un număr de 4 cifre abcd. Verificați dacă numărul format din primele două cifre este divizibil cu 3 și numărul format din ultimele două cifre este divizibil cu 4 sau 5.
    Exemplu: Input: 1236 → Output: Da
  25. Se citesc trei numere întregi a, b, c. Determinați care este cel mai aproape de zero și este negativ. Dacă niciunul nu este negativ, afișați „Nu există”.
    Exemplu: Input: -3 2 -5 → Output: -3
  26. Se citesc de la tastatură 5 numere naturale și apoi două numere naturale x și y. Să se afișeze dacă cele mai multe dintre cele 5 numere sunt multipli de x sau de y. Dacă numărul multipliilor de x este egal cu numărul multipliilor de y, se va afișa egali.
    Exemplu: Input: 10 12 15 8 25 5 3 → Output: mai multi multipli de 5
  27. Se citesc de la tastatură 5 numere naturale distincte. Să se afișeze suma celor mai mici 3 dintre ele.
    Exemplu: Input: 10 4 7 2 8 → Output: 13
  28. Într-o clasă, x% dintre elevi sunt pasionați de avioane, iar y% sunt pasionați de prăjituri. Să se afișeze câți elevi sunt cu siguranță pasionați și de avioane, și de prăjituri.
    Exemplu: Input: 70 60 → Output: 30
  29. Cu cifrele de la 1 la 9 construim un triunghi astfel:
    1
    2 3
    4 5 6
    7 8 9 1
    2 3 4 5 6
    7 8 9 1 2 3
    4 5 6 7 8 9 1
    2 3 4 5 6 7 8 9
    ...
        
    Cerința:
    Dându-se L și C două numere naturale, să se determine a C-a cifră care se află pe linia L din acest triunghi, considerând că liniile se numerotează de la 1.

    Date de intrare:
    Programul citește de la tastatură numerele L și C.

    Date de ieșire:
    Programul va afișa pe ecran a C-a cifră care se află pe linia L.

    Restricții și precizări:
    1 ≤ C ≤ L ≤ 30.000

    Exemplu:
    Input: 4 2 → Output: 8

    Sursa: Concurs de selecție clasa a IX-a – Centrul de Excelență în Informatică Vaslui, 2024
  30. Cerință: Știind că variabilele a și b rețin două numere reale, indicați care secvență atribuie variabilei m diferența absolută dintre ele.

    Variante de răspuns:

    a)
    daca a >= b atunci
        m <- a - b
    altfel
        m <- b - a
    sfarsit daca
          
    b)
    m <- a
    daca m < b atunci
        m <- b - m
    sfarsit daca
          
    c)
    m <- a
    daca m > b atunci
        m <- a - b
    altfel
        m <- b - a
    sfarsit daca
          
    d)
    m <- a - b
    daca a < b atunci
        m <- -m
    sfarsit daca
          
    e)
    m <- b - a
    daca b < a atunci
        m <- -m
    sfarsit daca
          
    f)
    daca a > b atunci
        m <- a - b
    altfel 
        daca a < b atunci
          m <- b - a
        altfel
          m <- 0
        sfarsit daca
    sfarsit daca
          
  31. Cerință: Determinați secvența care atribuie variabilei max maximul dintre 3 numere întregi a, b, c.

    Variante de răspuns:

    a)
    daca a > b si a > c atunci
        max <- a
    altfel 
        daca b > a si b > c atunci
             max <- b
        altfel
             max <- c
        sfarsit daca
    sfarsit daca
          
    b)
    daca a > b > c atunci
        max <- a
    altfel 
        daca b > a > c atunci
            max <- b
        altfel 
            daca c > a > b atunci
               max <- c
            sfarsit_daca
        sfarsit daca
    sfarsit daca 
          
    c)
    daca a > b atunci
        max <- a
    altfel 
        daca b > c atunci
            max <- b
        altfel
            max <- c
        sfarsit_daca
    sfarsit daca
          
    d)
    max <- a
    daca b > max atunci
        max <- b
    sfarsit_daca
    daca c > max atunci
        max <- c
    sfarsit_daca
          
    e)
    daca a >= b si a >= c atunci
        max <- a
    altfel 
        daca b >= a si b >= c atunci
            max <- b
        altfel
            max <- c
        sfarsit_daca
    sfarsit daca
          
    f)
    daca a > b atunci
        daca a > c atunci
            max <- a
        altfel
            max <- c
        sfarsit_daca
    altfel
        daca b > c atunci
            max <- b
        altfel
            max <- c
        sfarsit_daca
    sfarsit_daca
          
  32. Cerință: Pentru ce valori ale variabilei x secvența afișează mesajul "NU"?

    Pseudocod:

    daca x > 0 atunci
        daca x < 3 atunci
            scrie "DA"
        altfel
            scrie "NU"
        sfarsit_daca
    sfarsit_daca
          

    Variante de răspuns:

    a) x = 0
    b) x = 2
    c) x = 3
    d) x = 5
    e) x = -1
    f) x = 1
  33. Cerință: Afișați pe ecran două cifre în funcție de valorile lui a și b.

    Alegeți A sau F pentru fiecare variantă, în funcție de validitatea afirmației.

    a)
    daca a > b atunci
        scrie "1"
    altfel
        scrie "0"
    sfarsit daca
    
    daca a < b atunci
        scrie "2"
    altfel
        scrie "0"
    sfarsit daca
    (Pentru acest pseudocod, pentru a = b se afișează 2 cifre)
          
    b)
    daca a > b atunci
        scrie "1"
    altfel
        scrie "0"
    sfarsit daca
    
    daca a < b atunci
        scrie "2"
    sfarsit daca
    (Pentru acest pseudocod, pentru a = b se afișează 1 cifră)
          
    c)
    daca a < b atunci
        scrie "2"
    altfel 
        daca a > b atunci
           scrie "1"
        sfarsit daca
    sfarsit daca
    (Pentru acest pseudocod, pentru a = b se afișează 0 cifre)
          
    d)
    scrie "2"
    (Pentru acest pseudocod, pentru orice valori, se afișează 2)
          
    e)
    daca a = b atunci
        scrie "0"
    altfel 
        daca a > b atunci
           scrie "1"
        altfel
           scrie "2"
        sfarsit daca
    sfarsit daca
    (Pentru a = b se afișează 0)
          
    f)
    daca a >= b atunci
        scrie "1"
    altfel 
        daca a <= b atunci
           scrie "2"
        sfarsit daca
    sfarsit daca
    (Pentru a = b se afișează 1)
          
  34. Cerință: Indicați care dintre variantele de pseudocod sunt echivalente cu secvența inițială:

    daca a > 0 atunci
        daca x != y atunci
            g <- 1
        altfel
            g <- 2
        sfarsit daca
    altfel
        g <- 3
    sfarsit daca
          

    Variante de răspuns:

    a)
    daca a > 0 si x != y atunci
        g <- 1
    altfel
       daca a > 0 atunci
          g <- 3
       altfel
          g <- 2
       sfarsit daca
    sfarsit daca
          
    b)
    daca a > 0 si x != y atunci
        g <- 1
    altfel
       daca a > 0 atunci
          g <- 3
       altfel
          g <- 2
       sfarsit daca
    sfarsit daca
          
    c)
    daca a > 0 si x != y atunci
        g <- 1
    altfel  
       daca a > 0 atunci
          g <- 2
       altfel
          g <- 3
       sfarsit daca
    sfarsit daca
          
    d)
    daca a > 0 sau x != y atunci
        g <- 1
    altfel 
        daca a > 0 atunci
            g <- 3
        altfel
            g <- 2
        sfarsit daca
    sfarsit daca
          
  35. Cerință: Rescrieți următoarea secvență într-un singur daca:

    daca x > y atunci
        daca y > z atunci
            daca z > x atunci
                s <- x + y + z
            altfel
                p <- x * y * z
            sfarsit daca
        sfarsit daca  
    sfarsit daca
          

    Variante de răspuns:

    a)
    daca x > y si y > z si z > x atunci
        s <- x + y + z
    altfel
        p <- x * y * z
    sfarsit daca
          
    b)
    daca x > y si y > z atunci
        s <- x + y + z
    sfarsit daca
          
    c)
    daca x > y sau y > z atunci
        s <- x + y + z
    sfarsit daca
    d)
    daca x > y si y > z atunci
        p <- x * y * z
    sfarsit daca
  36. Cerință: Afișați "DA" dacă ambele numere naturale x și y sunt pare.

    Variante de răspuns:

    a)
    daca x * y % 2 = 0 atunci
        scrie "DA"
    altfel
        scrie "NU"
    sfarsit daca
          
    b)
    daca x % 2 != 0 sau y % 2 != 0 atunci
        scrie "DA"
    altfel
        scrie "NU"
    sfarsit daca
          
    c)
    daca !(x % 2 != 0 sau y % 2 != 0) atunci
        scrie "DA"
    altfel
        scrie "NU"
    sfarsit daca
          
    d)
    daca x % 2 = 1 si y % 2 = 1 atunci
        scrie "DA"
    altfel
        scrie "NU"
    sfarsit daca
          
  37. Cerință: Determinați valoarea variabilei y după executarea secvenței pentru diferite valori ale lui i, j și k.
    a)
    daca k > 0 atunci
        daca i != j atunci
            y <- 0
        altfel
            y <- 2
        sfarsit daca
    altfel
        y <- 1
    sfarsit daca
          
    Ce valoarea are variabila y pentru i=5, j=5, k=10?
    b)
    daca k > 0 atunci
        daca i != j atunci
            y <- 0
        altfel
            y <- 2
        sfarsit daca
    altfel
        y <- 1
    sfarsit daca
          
    Ce valoarea are variabila y pentru i=3, j=3, k=0?
    c)
    daca k > 0 atunci
        daca i != j atunci
            y <- 0
        altfel
            y <- 2
        sfarsit daca
    altfel
        y <- 1
    sfarsit daca
          
    Ce valoarea are variabila y pentru i=2, j=3, k=5?
    d)
    daca k > 0 atunci
        daca i != j atunci
            y <- 0
        altfel
            y <- 2
        sfarsit daca
    altfel
        y <- 1
    sfarsit daca
          
    Ce valoarea are variabila y pentru i=4, j=4, k=1?
    e)
    daca k > 0 atunci
        daca i != j atunci
            y <- 0
        altfel
            y <- 2
        sfarsit daca
    altfel
        y <- 1
    sfarsit daca
          
    Ce valoarea are variabila y pentru i=1, j=2, k=0?
    f)
    daca k > 0 atunci
        daca i != j atunci
            y <- 0
        altfel
            y <- 2
        sfarsit daca
    altfel
        y <- 1
    sfarsit daca
          
    Ce valoarea are variabila y pentru i=6, j=6, k=0?
  38. Cerință: Afișați mesajul corespunzător în funcție de valoarea variabilei x.
    a)
    daca x > 0 atunci
        daca x < 3 atunci
            scrie "DA"
        altfel
            scrie "NU"
        sfarsit daca
    altfel
        scrie "NU"
    sfarsit daca
          
    Alegeți A sau F pentru afirmația: x=2 afișează "DA"
    b)
    daca x > 0 atunci
        daca x < 3 atunci
            scrie "DA"
        altfel
            scrie "NU"
        sfarsit daca
    altfel
        scrie "NU"
    sfarsit daca
          
    Alegeți A sau F pentru afirmația: x=3 afișează "NU"
    c)
    daca x > 0 atunci
        daca x < 3 atunci
            scrie "DA"
        altfel
            scrie "NU"
        sfarsit daca
    altfel
        scrie "NU"
    sfarsit daca
          
    Alegeți A sau F pentru afirmația: x=-1 afișează "NU"
    d)
    daca x > 0 atunci
        daca x < 3 atunci
            scrie "DA"
        altfel
            scrie "NU"
        sfarsit daca
    altfel
        scrie "NU"
    sfarsit daca
          
    Alegeți A sau F pentru afirmația: x=0 afișează "NU"
    e)
    daca x > 0 atunci
        daca x < 3 atunci
            scrie "DA"
        altfel
            scrie "NU"
        sfarsit daca
    altfel
        scrie "NU"
    sfarsit daca
          
    Alegeți A sau F pentru afirmația: x=1 afișează "DA"
    f)
    daca x > 0 atunci
        daca x < 3 atunci
            scrie "DA"
        altfel
            scrie "NU"
        sfarsit daca
    altfel
        scrie "NU"
    sfarsit daca
          
    Alegeți A sau F pentru afirmația: x=5 afișează "NU"
  39. Cerință: Determinați valoarea lui g în funcție de variabilele a, x și y.
    a)
    daca a > 0 si x != y atunci
        g <- 1
    altfel 
        daca a > 0 atunci
           g <- 2
        altfel
           g <- 3
        sfarsit daca
    sfarsit daca
          
    Alegeți A sau F pentru afirmația: a=5, x=3, y=3, g=2
    b)
    daca a > 0 si x != y atunci
        g <- 1
    altfel 
        daca a > 0 atunci
           g <- 2
        altfel
           g <- 3
        sfarsit daca
    sfarsit daca
          
    Alegeți A sau F pentru afirmația: a=-1, x=2, y=2, g=3
    c)
    daca a > 0 si x != y atunci
        g <- 1
    altfel 
        daca a > 0 atunci
           g <- 2
        altfel
           g <- 3
        sfarsit daca
    sfarsit daca
          
    Alegeți A sau F pentru afirmația: a=2, x=1, y=1, g=2
    d)
    daca a > 0 si x != y atunci
        g <- 1
    altfel 
        daca a > 0 atunci
          g <- 2
        altfel
          g <- 3
        sfarsit daca
    sfarsit daca
          
    Alegeți A sau F pentru afirmația: a=3, x=2, y=4, g=1
    e)
    daca a > 0 si x != y atunci
        g <- 1
    altfel 
        daca a > 0 atunci 
          g <- 2
        altfel
          g <- 3
       sfarsit daca 
    sfarsit daca
          
    Alegeți A sau F pentru afirmația: a=0, x=5, y=5, g=3
    f)
    daca a > 0 si x != y atunci
        g <- 1
    altfel 
        daca a > 0 atunci
          g <- 2
        altfel
          g <- 3
        sfarsit daca
    sfarsit daca
          
    Alegeți A sau F pentru afirmația: a=1, x=2, y=2, g=2
  40. Cerință: Scrieți o secvență echivalentă cu următoarea pentru atribuirea valorilor lui s și p:
    daca x > y si y > z atunci
        s <- x + y + z
    altfel
        p <- x * y * z
    sfarsit daca
      
    Alegeți varianta care este echivalentă.
    a)
    daca x > y atunci
        daca y > z atunci
            s <- x + y + z
        altfel
            p <- x * y * z
        sfarsit daca
    altfel
        p <- x * y * z
    sfarsit daca
          
    b)
    daca x > y si y > z atunci
        s <- x + y + z
    altfel
        p <- x * y * z
    sfarsit daca
          
    c)
    s <- x + y + z
    p <- x * y * z
          
    d)
    daca x > z si y > z atunci
        s <- x + y * z
    altfel
        p <- x * y * z
    sfarsit daca
          
    e)
    daca x >= y si y <= z atunci
        s <- x + y + z
    altfel
        p <- x * y * z
    sfarsit daca
          
    f)
    daca x > y atunci
        s <- x + y + z
    altfel 
        daca y > z atunci
           p <- x * y * z
        altfel
           s <- 0
        sfarsit daca
    sfarsit daca
    
          
  41. Cerință: Determinați valoarea variabilei y după executarea secvenței pentru diferite valori ale variabilelor a, b, c și d.
    a)
    daca a > b atunci
        daca c < d atunci
            daca b + c > a atunci
                y <- 1
            altfel
                y <- 2
            sfarsit daca
        altfel
            y <- 3
        sfarsit daca
    altfel
        y <- 4
    sfarsit daca
          
    Ce valoare are y pentru a=5, b=3, c=2, d=4?
    b)
    daca a > b atunci
        daca c < d atunci
            daca b + c > a atunci
                y <- 1
            altfel
                y <- 2
            sfarsit daca
        altfel
            y <- 3
        sfarsit daca
    altfel
        y <- 4
    sfarsit daca
          
    Ce valoare are y pentru a=6, b=2, c=5, d=3?
    c)
    daca a > b atunci
        daca c < d atunci
            daca b + c > a atunci
                y <- 1
            altfel
                y <- 2
            sfarsit daca
        altfel
            y <- 3
        sfarsit daca
    altfel
        y <- 4
    sfarsit daca
          
    Ce valoare are y pentru a=4, b=5, c=1, d=6?
    d)
    daca a > b atunci
        daca c < d atunci
            daca b + c > a atunci
                y <- 1
            altfel
                y <- 2
            sfarsit daca
        altfel
            y <- 3
        sfarsit daca
    altfel
        y <- 4
    sfarsit daca
          
    Ce valoare are y pentru a=7, b=3, c=6, d=8?
    e)
    daca a > b atunci
        daca c < d atunci
            daca b + c > a atunci
                y <- 1
            altfel
                y <- 2
            sfarsit daca
        altfel
            y <- 3
        sfarsit daca
    altfel
        y <- 4
    sfarsit daca
          
    Ce valoare are y pentru a=2, b=3, c=5, d=7?
    f)
    daca a > b atunci
        daca c < d atunci
            daca b + c > a atunci
                y <- 1
            altfel
                y <- 2
            sfarsit daca
        altfel
            y <- 3
        sfarsit daca
    altfel
        y <- 4
    sfarsit daca
          
    Ce valoare are y pentru a=5, b=5, c=2, d=2?
  42. Cerință: Determinați valoarea variabilei y după executarea secvenței pentru diferite valori ale variabilelor a, b și c.
    a)
    daca a > b atunci
        daca b < c atunci
            y <- 1
        altfel 
           daca a + c > b atunci
              y <- 2
           altfel 
              daca a - b < c atunci
                 y <- 3
              sfarsit daca
           sfarsit daca
        sfarsit daca
    altfel 
        daca a = c atunci
            daca b > c atunci
                y <- 4
            altfel 
               daca b < a atunci
                  y <- 5
               sfarsit daca
            sfarsit daca
        altfel
           daca c > a atunci
               y <- 6
           altfel
               y <- 7
           sfarsit daca
        sfarsit daca
    sfarsit daca
    
    Ce valoare are y pentru a=5, b=3, c=4?
    b)
    daca a > b atunci
        daca b < c atunci
            y <- 1
        altfel 
            daca a + c > b atunci
                y <- 2
            altfel 
                daca a - b < c atunci
                    y <- 3
                sfarsit daca
            sfarsit daca
        sfarsit daca
    altfel 
        daca a = c atunci
            daca b > c atunci
                y <- 4
            altfel 
                daca b < a atunci
                    y <- 5
                sfarsit daca
            sfarsit daca
        altfel
            daca c > a atunci
                y <- 6
            altfel
                y <- 7
            sfarsit daca
        sfarsit daca
    sfarsit daca
    
    Ce valoare are y pentru a=2, b=3, c=2?
    c)
    daca a > b atunci
        daca b < c atunci
            y <- 1
        altfel 
            daca a + c > b atunci
                y <- 2
            altfel 
                daca a - b < c atunci
                    y <- 3
                sfarsit daca
            sfarsit daca
        sfarsit daca
    altfel 
        daca a = c atunci
            daca b > c atunci
                y <- 4
            altfel 
                daca b < a atunci
                    y <- 5
                sfarsit daca
            sfarsit daca
        altfel
            daca c > a atunci
                y <- 6
            altfel
                y <- 7
            sfarsit daca
        sfarsit daca
    sfarsit daca
    
    Ce valoare are y pentru a=3, b=5, c=4?
    d)
    daca a > b atunci
        daca b < c atunci
            y <- 1
        altfel 
            daca a + c > b atunci
                y <- 2
            altfel 
                daca a - b < c atunci
                    y <- 3
                sfarsit daca
            sfarsit daca
        sfarsit daca
    altfel 
        daca a = c atunci
            daca b > c atunci
                y <- 4
            altfel 
                daca b < a atunci
                    y <- 5
                sfarsit daca
            sfarsit daca
        altfel
            daca c > a atunci
                y <- 6
            altfel
                y <- 7
            sfarsit daca
        sfarsit daca
    sfarsit daca
    
    Ce valoare are y pentru a=6, b=6, c=5?
    e)
    daca a > b atunci
        daca b < c atunci
            y <- 1
        altfel 
            daca a + c > b atunci
                y <- 2
            altfel 
                daca a - b < c atunci
                    y <- 3
                sfarsit daca
            sfarsit daca
        sfarsit daca
    altfel 
        daca a = c atunci
            daca b > c atunci
                y <- 4
            altfel 
                daca b < a atunci
                    y <- 5
                sfarsit daca
            sfarsit daca
        altfel
            daca c > a atunci
                y <- 6
            altfel
                y <- 7
            sfarsit daca
        sfarsit daca
    sfarsit daca
    
    Ce valoare are y pentru a=1, b=2, c=3?
    f)
    daca a > b atunci
        daca b < c atunci
            y <- 1
        altfel 
            daca a + c > b atunci
                y <- 2
            altfel 
                daca a - b < c atunci
                    y <- 3
                sfarsit daca
            sfarsit daca
        sfarsit daca
    altfel 
        daca a = c atunci
            daca b > c atunci
                y <- 4
            altfel 
                daca b < a atunci
                    y <- 5
                sfarsit daca
            sfarsit daca
        altfel
            daca c > a atunci
                y <- 6
            altfel
                y <- 7
            sfarsit daca
        sfarsit daca
    sfarsit daca
    
    Ce valoare are y pentru a=4, b=4, c=4?

Reclame Google AdSense

Flux de știri