în cazul

Schema logica instructiunea in 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

  1. se evaluează expresia (<exp>);
  2. se compară valoarea expresiei cu valorile cazurilor (<val_1>, <val_2>, <val_k> etc.);
  3. dacă există o valoare (<val_k>) egală cu cea a expresiei se execută instrucțiunile corespunzătoare (<instr_k>) și se iese din structură;
  4. 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”.