Sunteți pe pagina 1din 2

Lecția 7.

Structura alternativă

Structura alternativă urmărește execuția unei instrucțiuni doar dacă valoarea de adevăr a
acesteia este 1 (adevărată). Această structură se mai numește și structură de decizie.
Vom vorbi acum despre un exemplu practic: dacă mă descurc bine la matematică, atunci
merg la mate-info, altfel mă fac medic. Observăm că în această structură alternativă, avem un
„daca” condițional. Îmi pun întrebarea: mă descurc bine la matematică? Dacă răspunsul este
da, atunci merg la mate-info. Dar dacă răspunsul este nu, atunci mă fac medic.
Cam așa stau lucrurile și în informatică. De multe ori, trebuie să verificăm dacă un anumit
număr sau șir de numere respectă anumite proprietăți. De exemplu, ne propunem să verificăm
dacă un număr citit de la tastatură este par sau impar. Un număr este par, dacă restul împărțirii
lui la 2 este 0 și impar altfel. Algoritmul de rezolvare a acestei probleme este descris mai jos:
intreg a;
citește a;
daca a%2==0 atunci
| scrie „Numar par”;
| altfel
| scrie „Numar impar”;
|_
stop.
Dacă ne vom uita cu atenție pe algoritm, vom observa că există două elemente ale structurii
alternative și anume: daca (...) și altfel (...), prima se execută dacă a este număr
par, iar cealaltă dacă a este număr impar. Nu este obligatoriu să mai specificăm pe ramura de
altfel, dacă a este impar. Este suficient atât. De exemplu, dacă ni s-a spus că moneda a
căzut cu stema în sus, nu are rost să mai întrebăm dacă cealaltă față a monedei este în jos.
Structura alternativă are următorul aspect general:
daca expresie atunci
instructiune;
altfel
instructiune;
Ramura daca se execută doar dacă expresie este nenulă (adică diferită de zero și adevărată),
în caz contrar se execută ramura altfel.
Exerciții și probleme
1. Fie x un număr real. Scrieți un program în pseudocod, care să calculeze valoarea
funcției:
𝑓(𝑥) = max{|2𝑥 − 1|, 9 − 𝑥 2 }
2. Care este efectul următoarei secvențe de instrucțiuni?
intreg a, b, c, x;
a←3; b←5; c←7;
daca a-b/2<0 atunci
| x←1;
| altfel
| daca a+b-c/2<b
| | x←2;
| | altfel
| | daca a%b+c>b
| | | x←3;
| | |
| | | altfel x←4;
| | |_
| |_
|_
scrie x;
stop.

3. Ce valoare inițială ar putea avea variabila x astfel încât la sfârșitul execuției


următoarei secvențe de instrucțiuni, variabila y să aibă valoarea 2?
if(x>3)
if(x<7)
if(x%2==0)
y=1;
else
y=2;
else
y=3;
else
y=4;
4. Fie a și b două numere întregi. Scrieți un program care să verifice dacă a și b sunt
numere consecutive.
5. Fie ecuația cu coeficienți reali 𝑎𝑥 2 + 𝑏𝑥 + 𝑐 = 0, (𝑎 ≠ 0). Scrieți un program care,
fără a calcula rădăcinile ecuației, să determine natura și semnul acestora.
6. Fie x un număr natural de trei cifre. Scrieți un program care să elimine una dintre
cifrele numărului, astfel încât numărul de două cifre rămas să fie maxim.
7. Scrieți un program care să citească 3 caractere și să determine câte caractere distincte
s-au citit.
8. Fie a și b două unghiuri, ale căror măsuri sunt exprimate în grade, minute și secunde.
Să se scrie un program care să calculeze și să afișeze măsura celor două unghiuri.
9. Se citesc de la tastatură a, b și c , trei numere reale pozitive. Scrieți un program care să
verifice dacă numerele citite pot constitui laturile unui triunghi dreptunghic, iar în caz
afirmativ, calculați și afișați aria triunghiului.
10. Fie x și y două numere reale, citite de la tastatură. Scrieți un program care calculează și
afișează valoarea funcției:
𝑥+𝑦
, 𝑥, 𝑦 > 0
5𝑥𝑦
𝑓(𝑥, 𝑦) = min(𝑥, 𝑦), 𝑥 = 0 sau 𝑦 = 0
1 1 1 1
( + ) ( + + 𝑥 2 + 𝑦 2 ) , 𝑎𝑙𝑡𝑓𝑒𝑙
{ 𝑥 𝑦 𝑥 𝑦

S-ar putea să vă placă și