Sunteți pe pagina 1din 20

Instruciunile IF, CASE i

FOR

Instructiunea IF
Instruciunea

if este o instruciune de
ramificare simpl i n funcie de valoarea
unei expresii de tip Boolean, decide fluxul
execuiei.

La ce este utila instructiunea IF?

n unele probleme se simte nevoia unei operaii de


decizie, de pild, ntr-un exemplu ca acela al
determinrii perimetrului unui triunghi cu lungimile
laturilor a,b ic. Calculul perimetrului este simplu, dar
se pune problema: ntotdeauna trei numere reale pot fi
laturilor unui triunghi? Evident c nu; n primul rnd ele
trebuie s fie strict pozitive, n al doilea rnd trebuie ca
fiecare din ele s fie strict mai mic dect suma
celorlalte dou. Acest lucru nu poate fi evideniat cu
simpla instruciune de atribuire. Ea poate fi realizat cu
ajutorul structurii decizionale. Una din aceste structuri
este instruciunea if.

Sintaxa instruciunii

<Instruciune

if>::=if<expresie
boolean> then <Instruciune>[else<Instruci
une>].

Expresia

boolean din componena


instruciunii ifse numete condiie.
Execuia instruciunii if ncepe prin evaluarea
condiiei. Dac rezultatul evalurii este true,
atunci se execut instruciunea situat dup
cuvntul cheie then. Dac condiia are
valoareafalse, atunci: fie c se execut
instruciunea situat dup ramuraelse(dac
exist), fie c se trece la instruciunea situat
dup instruciunea if.

De

reinut c limbajul Pascal nu consider


simbolul ; ca fcnd parte din instruciune, ci l
folosete ca delimitator. Prin urmare dac ntr-o
instruciune
If B then S
Introducem nainte de S instrucinea cu efect nul
If B then; S
Atunci S nu mai intr n componena instruciunii
condiionale, deci este executat indiferent de
valoarea lui B.

Instructiunea CASE
Instruciunea

case este o instruciune de


ramificare multipl i conine o expresie
numit selector i o list de instruciuni.
Fiecare instruciune este prefixat de una
sau mai multe constante de caz.

La ce este utila instructiunea CASE?


n

unele probleme se simte nevoia unei


operaii de decizie. Acest lucru nu poate fi
evideniat cu simpla instruciune de atribuire.
Ea poate fi realizat cu ajutorul structurii
decizionale. Una din aceste structuri pe lng
structura if este instruciunea case.

Sintaxa instruciunii CASE


<Instruciune case>::=if<expresie >of
[ <caz>{; <caz>}] [;] end.

Selectorul

trebuie s fie de tip ordinal. Toate


constantele de caz trebuie s fie unice i
compatibile, din punctual de vedere al
atribuirii, cu tipul selectorului.

Execuia

instruciunii case ncepe prin


evaluarea selectorului. n funcie de valoarea
obinut, se execut instruciunea prefixat
de constanta respectiv.

Principiul de execuie:

Se evalueaz expresia de tip ordinal (integer, char,


Boolean,byte,word,sau definit de utilizator ca subdomeniu sau
enumerare);
Se obine o valoare care reprezint valoarea selectorului
utilizat pentru selecia 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 instruciunea asociat acestei liste;
Dac nu exist nici o instruciune care s conin eticheta v,
atunci dac este prezent cuvntul 'ELSE' se execut
instruciunea care urmeaz dup aceasta,n caz contrar nu se
execut instruciunea CASE i se trece la secvena imediat
urmtoare.
Atenie: Dac secvenele cuprind mai mult de 2
instruciuni,acestea trebuie cuprinse ntre BEGIN i END;

Instruciunea FOR

InstruciuneaFOR

este o instruciune
repetitiv care permite execuia repetat a
unei instruciuni n funcie de valoarea unui
contor.
Nu este o instruciune strict necesar, ea
poate fi simulat cu ajutorul instruciunii
WHILE. Totui, majoritatea programatorilor
prefer s utilizeze instruciunea FOR.

Instruciunea for are dou forme:

1)FORidentificator:=expresie1TOexpresie2
DOinstruciune;(CAZULCRESCTOR)

2)FORidentificator:=expresie1DOWNTO
expresie2DO
instruciune;(CAZULDESCRESCTOR)
unde identificator este o variabil de orice tip ordinal,
iar expresie1 i expresie2 sunt expresii de acelai
tip cu variabila dat.

Principiul de execuie:

Dac valoarea obinut n urma evalurii expresiei1 este egal cu


valoarea obinut n urma evalurii expresiei2, se atribuie variabilei
de ciclare valoarea obinut n urma evalurii expresiei1, se execut
instruciunea abordat i execuia instruciunii FOR este ncheiat;
Dac valoarea obinut n urma evalurii expresiei1 este strict mai
mic dect valoarea obinut n urma evalurii expresiei2, se atribuie
variabilei de ciclare valoarea obinut n urma evalurii expresiei1 i
se trece la pasul urmtor;se execut instruciunea subordonat;
Dac valoarea reinut de variabila de ciclare este strict mai mic
dect valoarea obinut n urma evalurii expresiei2, (evaluare
efectuat la nceput) se adun 1 variabilei de ciclare i se trece la
executarea instruciunii subordonate; dac valoarea reinut de
variabila de ciclare este egal cu valoarea obinut n urma evalurii
expresiei2, execuia instruciunii FOR se ncheie.

Prezentat

de Ionela Cojocaru

2014

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