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:
- Simple, cum ar fi „numărul este pozitiv”.
- Compuse, folosind operatori logici precum „și”, „sau”, „nu”, pentru a combina mai multe teste într-un singur rezultat adevărat/fals.
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
-
Permite verificarea mai multor condiții succesive. Fiecare „Dacă” are propriul
Sfarsit daca. Dacă nicio condiție nu este adevărată, se execută blocul final „Altfel”.Pseudocod: daca nota >= 9 atunci scrie "Excelent" sfarsit daca daca nota >= 7 atunci scrie "Bine" sfarsit daca daca nota >= 5 atunci scrie "Admis" sfarsit daca daca nota < 5 atunci scrie "Respins" sfarsit dacaExplicație: Fiecare bloc este evaluat succesiv, permițând luarea unei decizii precise în funcție de nota elevului, insa pentru elevii care obtine cel putin nota 9 avem mesajele Excelent Bine Admis, pentru elevii care obtin o nota de cel putin 7 si cel mult 8 (cel mult 8 daca vorbim de numere intregi sau foarte aproape de 9, dar nu ating 9 daca vorbim de numere reale, de exemplu 8.95) vom avea mesajele Bine Admin, iar pentru elevii care obtine o nota de cel putin 5 si cel mult 6 (cel mult 6 daca vorbim de numere intregi sau foarte aproape de 7, dar nu ating 7 daca vorbim de numere reale, de exemplu 6.99), iar pentru elevii care obtine o nota din intervalul [5,7) se va afisa doar mesajul Bine deoarece aceste structuri alternative se executa liniar si nu sunt restrictionate.
-
Mai logic ar fi ca aceasta secventa sa se execute astfel cu Imbricarea (Daca in Daca) de mai jos:
daca nota >= 9 atunci scrie "Excelent" altfel daca nota >= 7 atunci scrie "Bine" altfel daca nota >= 5 atunci scrie "Admis" altfel scrie "Respins" sfarsit daca sfarsit daca sfarsit dacaExplicatie:
- Daca nota este cel putin 9 se afiseaza doar Excelent deoarece conditia din daca-ul rosu este adevarata si nu mai executa nicio instructiune de mai jos deoarece acestea sunt conditionate de altfel-ul rosu.
- Daca nota apartine [7,9) se executa daca-ul rosu, conditia va fi falsa, mergem pe atfel-ul rosu si executam daca-ul albastru si, deoarece conditia din daca-ul albastru va fi adevarata voi afisa doar Bine deoarece instructiunile de mai jos sunt conditionate de altfel-ul albastru.
- Daca nota apartine intervalului [5,7) se va afisa doar mesajul Admis deoarece conditia din daca-ul rosu este falsa, mergem pe altfel-ul rosu, conditia din daca-ul albastru este falsa si mergem pe daca-ul verde si, deoarece acesta este adevarat afisam mesajul Bine. Daca mergem ca si pana acum si daca-ul verde este fals vom afisa mesajul Respins.
4. Imbricare (Dacă în Dacă)
Se permite plasarea unui „Dacă” în interiorul altuia. În exemplu, primul „Dacă” este roșu, al doilea albastru, pentru a evidenția structurile diferite.
Pseudocod:
Daca x > 0 atunci
Daca x % 2 = 0 atunci
Scrie "Pozitiv si par"
Altfel
Scrie "Pozitiv si impar"
Sfarsit daca
Altfel
Scrie "Negativ sau zero"
Sfarsit daca
Explicație: Primul „Dacă” (roșu) verifică x > 0, structura exterioară. Al doilea „Dacă” (albastru) verifică dacă x este par sau impar, structura interioară. Culorile evidențiază diferența dintre structuri.
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
-
Se citește un număr întreg. Afișați dacă este multiplu de 5.
Exemplu: Input: 25 → Output: Da
Input: 12 → Output: Nu -
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 -
Se citesc două numere. Afișați cel mai mic dintre ele.
Exemplu: Input: 7 3 → Output: 3
Input: 5 10 → Output: 5 -
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 -
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 -
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 -
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 -
Se citește un număr de 3 cifre abc. Verificați dacă cifrele sunt alternant pare și impare.
Exemplu: Input: 252 → Output: Da -
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 -
Se citește un număr de 3 cifre. Verificați dacă este palindrom.
Exemplu: Input: 121 → Output: Da -
Se citesc două numere întregi a și b. Verificați dacă au semne diferite.
Exemplu: Input: -3 7 → Output: Da -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
Î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 -
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 -
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 dacab) m <- a daca m < b atunci m <- b - m sfarsit dacac) m <- a daca m > b atunci m <- a - b altfel m <- b - a sfarsit dacad) m <- a - b daca a < b atunci m <- -m sfarsit dacae) m <- b - a daca b < a atunci m <- -m sfarsit dacaf) daca a > b atunci m <- a - b altfel daca a < b atunci m <- b - a altfel m <- 0 sfarsit daca sfarsit daca -
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 dacab) 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 dacac) daca a > b atunci max <- a altfel daca b > c atunci max <- b altfel max <- c sfarsit_daca sfarsit dacad) max <- a daca b > max atunci max <- b sfarsit_daca daca c > max atunci max <- c sfarsit_dacae) 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 dacaf) 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 -
Cerință: Pentru ce valori ale variabilei
xsecvența afișează mesajul "NU"?Pseudocod:
daca x > 0 atunci daca x < 3 atunci scrie "DA" altfel scrie "NU" sfarsit_daca sfarsit_dacaVariante de răspuns:
a) x = 0
b) x = 2
c) x = 3
d) x = 5
e) x = -1
f) x = 1
-
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) -
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 dacaVariante 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 dacab) daca a > 0 si x != y atunci g <- 1 altfel daca a > 0 atunci g <- 3 altfel g <- 2 sfarsit daca sfarsit dacac) daca a > 0 si x != y atunci g <- 1 altfel daca a > 0 atunci g <- 2 altfel g <- 3 sfarsit daca sfarsit dacad) daca a > 0 sau x != y atunci g <- 1 altfel daca a > 0 atunci g <- 3 altfel g <- 2 sfarsit daca sfarsit daca -
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 dacaVariante de răspuns:
a) daca x > y si y > z si z > x atunci s <- x + y + z altfel p <- x * y * z sfarsit dacab) daca x > y si y > z atunci s <- x + y + z sfarsit dacac) daca x > y sau y > z atunci s <- x + y + z sfarsit dacad) daca x > y si y > z atunci p <- x * y * z sfarsit daca -
Cerință: Afișați "DA" dacă ambele numere naturale
xșiysunt pare.Variante de răspuns:
a) daca x * y % 2 = 0 atunci scrie "DA" altfel scrie "NU" sfarsit dacab) daca x % 2 != 0 sau y % 2 != 0 atunci scrie "DA" altfel scrie "NU" sfarsit dacac) daca !(x % 2 != 0 sau y % 2 != 0) atunci scrie "DA" altfel scrie "NU" sfarsit dacad) daca x % 2 = 1 si y % 2 = 1 atunci scrie "DA" altfel scrie "NU" sfarsit daca -
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 dacaCe 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 dacaCe 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 dacaCe 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 dacaCe 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 dacaCe 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 dacaCe valoarea are variabila y pentru i=6, j=6, k=0? -
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 dacaAlegeț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 dacaAlegeț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 dacaAlegeț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 dacaAlegeț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 dacaAlegeț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 dacaAlegeți A sau F pentru afirmația: x=5 afișează "NU" -
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 dacaAlegeți A sau F pentru afirmația: a=5, x=3, y=3, g=2b) daca a > 0 si x != y atunci g <- 1 altfel daca a > 0 atunci g <- 2 altfel g <- 3 sfarsit daca sfarsit dacaAlegeți A sau F pentru afirmația: a=-1, x=2, y=2, g=3c) daca a > 0 si x != y atunci g <- 1 altfel daca a > 0 atunci g <- 2 altfel g <- 3 sfarsit daca sfarsit dacaAlegeți A sau F pentru afirmația: a=2, x=1, y=1, g=2d) daca a > 0 si x != y atunci g <- 1 altfel daca a > 0 atunci g <- 2 altfel g <- 3 sfarsit daca sfarsit dacaAlegeți A sau F pentru afirmația: a=3, x=2, y=4, g=1e) daca a > 0 si x != y atunci g <- 1 altfel daca a > 0 atunci g <- 2 altfel g <- 3 sfarsit daca sfarsit dacaAlegeți A sau F pentru afirmația: a=0, x=5, y=5, g=3f) daca a > 0 si x != y atunci g <- 1 altfel daca a > 0 atunci g <- 2 altfel g <- 3 sfarsit daca sfarsit dacaAlegeți A sau F pentru afirmația: a=1, x=2, y=2, g=2 -
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 dacaAlegeț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 dacab) daca x > y si y > z atunci s <- x + y + z altfel p <- x * y * z sfarsit dacac) s <- x + y + z p <- x * y * zd) daca x > z si y > z atunci s <- x + y * z altfel p <- x * y * z sfarsit dacae) daca x >= y si y <= z atunci s <- x + y + z altfel p <- x * y * z sfarsit dacaf) daca x > y atunci s <- x + y + z altfel daca y > z atunci p <- x * y * z altfel s <- 0 sfarsit daca sfarsit daca -
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 dacaCe 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 dacaCe 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 dacaCe 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 dacaCe 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 dacaCe 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 dacaCe valoare are y pentru a=5, b=5, c=2, d=2? -
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 dacaCe 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 dacaCe 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 dacaCe 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 dacaCe 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 dacaCe 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 dacaCe valoare are y pentru a=4, b=4, c=4?