Instructiunea case
Instrucţiunea CASE este o instrucţiune alternativă multiplă care permite selectarea unei instrucţiuni dintr-o listă de instrucţiuni marcate, în funcţie de valoarea unui selector.
Instrucţiunea case are două forme:
1)CASE expresie de tip ordinal OF
Listă de constante1: instrucţiune1;
Listă de constante2: instrucţiune2;
.......................................................
Listă de constante n: instrucţiune n;
end;
2)CASE expresie de tip ordinal OF
Listă de constante1: instrucţiune1;
Listă de constante2: instrucţiune2;
.......................................................
Listă de constante n: instrucţiune n
ELSE instrucţiune(n+1)
end;
Principiul de executie:
-
se evaluează expresia de tip ordinal (integer, char, Boolean,byte,word,longint, sau definită de utilizator ca subdomeniu sau enumerare);
-
se obţine o valoare v care reprezintă valoarea selectorului utilizată pentru selecţia uneia dintre alternative. Apoi se caută în lista de constante, constanta egală cu valoarea evaluată. Dacă se localizează această constantă într-una dintre liste, se execută instrucţiunea asociată acestei liste;
-
dacă nu există nici o instrucţiune care să conţină eticheta v, atunci dacă este prezent cuvîntul 'ELSE' se execută instrucţiunea care urmează după aceasta,în caz contrar nu se execută instrucţiunea CASE şi se trece la secvenţa imediat următoare.
Atenţie: Dacă secvenţele cuprind mai mult de 2 instrucţiuni,acestea trebuie cuprinse între BEGIN şi END;
Diagrama de sintaxa:

Exemplu Program:
Program ce afiseaza mesajul 'Vocala' sau 'Consoana' in dependenta de litera introdusa de la tastatura.
Program Alfabet; {Alfabet - numele programului}
uses crt; {Directiva ce permite utilizarea bibliotecii CRT, adica pot fi executate astfel de functii, precum: curatarea ecranului dupa executare, adaugarea culorilor, sunetelor in program etc.}
var c: char; {Declaram variabila c de tip char - caracter imprimabil}
begin {Inceputul programului}
clrscr; {Comanda ce va curata automat ecranul dupa executie}
textcolor(5); {Coloreaza textul programului in culoarea cu nr. 5 - magenta}
textbackground(7); {Coloreaza fundalul programului in culoarea cu nr. 7 - lightgray}
write('Introdu o litera a alfabetului roman: '); { Se afiseaza pe ecran fraza: " Introdu o litera a alfabetului roman: "}
readln(c); { Se citeste litera introdusa de la tastatura, trece in rand nou}
case c of
'a',''e','i','o','u':writeln(c,' : Vocala '); {Daca litera introdusa este a,e,i,o sau u, atunci afiseaza pe ecran litera introdusa si fraza " :Vocala ", trece in rand nou}
'b','c','d','f','g','h','j','k','l','m','n','p','q','r','s','t','v','w','x','y','z':writeln(c,' : Consoana '); {Daca litera introdusa este b,c,d,f,g,h,j,k,l,m,n,p,q,r,s,t,v,w,x,y sau z, atunci afiseaza pe ecran litera introdusa si fraza " : Consoana", trece in rand nou}
end;
writeln('Autor: Mirela Burduja'); {Se afiseaza pe ecran fraza: " Autor: Mirela Burduja",trece in rand nou}
readkey; {La apasarea unei taste, trece din ecranul negru in ecranul albastru}
end. {Sfarsitul programului}

Screenshot-uri:

