în cazul
Structura în cazul
este echivalenta lui switch
în pseudocod. Este o structură alternativă multiplă folosită pentru condiționarea executării unor instrucțiuni pe mai multe cazuri.
Sintaxă
┌─în cazul (<exp>)
│ caz <val_1>:<instr_1>
│ caz <val_2>:<instr_2>
│ ...
│ caz <val_n>:<instr_n>
│ [altfel <instr_altfel>]
└■
- Unde:
<exp>
este expresia pe care o condiționăm;<val_k>
este o valoare al unuia dintre cazuri;<instr_k>
reprezintă instrucțiunile care se vor executa când cazul este favorabil;altfel
este cazul care se va executa când niciun alt caz nu este favorabil (nu este obligatoriu să existe, de aceea este pus între [ ]).
Efect
- se evaluează expresia (
<exp>
); - se compară valoarea expresiei cu valorile cazurilor (
<val_1>
,<val_2>
,<val_k>
etc.); - dacă există o valoare (
<val_k>
) egală cu cea a expresiei se execută instrucțiunile corespunzătoare (<instr_k>
) și se iese din structură; - dacă expresia diferă de toate valorile cazurilor, se execută instrucțiunile de pe ramura
altfel
(dacă există) și se trece mai departe în program.
Implementare
Enunț: Se citesc două numere întregi și un caracter care va reprezenta o operație de executat (+
, -
, *
, /
, sau %
). Să se afișeze rezultatul operației corespunzătoare.
citește a,b,c
┌─în cazul (c)
│ cazul '+': scrie a+b
│ cazul '-': scrie a-b
│ cazul '*': scrie a*b
│ cazul '%': ┌─dacă b!=0
│ │ atunci scrie a%b
│ │ altfel scrie "eroare"
│ └■
│ cazul '/': ┌─dacă b!=0
│ │ atunci scrie a/b
│ │ altfel scrie "eroare"
│ └■
│ altfel scrie "operatie nedefinita"
└■
23 4 +
27
14 0 /
eroare
Vom folosi o structură în cazul
condiționată în funcție de caracterul c
. Pentru fiecare din operații vom afișa rezultatul corespunzător, iar la împărțire și mod vom trata cazurile particulare în care al doilea număr introdus este 0 - vom afișa „eroare” în aceste cazuri.
Dacă se introduce orice alt caracter în afară de cele definite, se va intra pe ramura altfel
și se va afișa mesajul „operatie nedefinita”.