în cazul
Structura în cazul este o formă specială de selecție multiplă, care compară valoarea unei expresii cu mai multe posibile cazuri (situații).
Pentru fiecare valoare posibilă se specifică un set de instrucțiuni ce va fi executat dacă expresia are acea valoare. Dacă niciuna dintre valorile precizate nu corespunde, se poate folosi o ramură opțională altfel, care se execută doar în acest caz.
Reprezentare grafică
Cazul de bază, reprezentat de ramura altfel poate lipsi din structură.
Sintaxă
În pseudocod, sintaxa instrucțiunii în cazul este următoarea:
┌─ în cazul <expresie>
│ caz <valoare1>: <instrucțiuni>
│ caz <valoare2>: <instrucțiuni>
│ ...
│ caz <valoareN>: <instrucțiuni>
│ [altfel <instrucțiuni>]
└■
De unde interpretăm:
<expresie>este expresia pe care o condiționăm;<valoareK>este o valoare posibilă pentru expresie;<instrucțiuni>: un set de comenzi executate când un caz este favorabil;altfeleste cazul de bază, executat când niciun alt caz nu este caz favorabil.
Implementare
Enunț: Se citesc două numere întregi și un caracter care va reprezenta o operație de executat (+, -, *, %, /). 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 "operație nedefinită"
└■
23 4 +
27
14 0 /
eroare
În rezolvarea problemei, folosim structura în cazul condiționată de caracterul c. La fiecare operație se afișează rezultatul corespunzător.
Pentru cazurile de împărțire și modulo tratăm cazurile în care operația nu ar fi validă. Ramura altfel afișează un mesaj sugestiv pentru cazul în care caracterul citit nu este o operație suportată.