instrucțiunile if, case

20
Instrucțiunile IF, CASE și FOR

Upload: ionela-cojocaru

Post on 09-Sep-2015

257 views

Category:

Documents


0 download

DESCRIPTION

Instrucțiunile if, CASE

TRANSCRIPT

  • Instruciunile IF, CASE i FOR

  • Instructiunea IFInstruciunea 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 laturilora,bic. 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 instruciuneaif.

  • Sintaxa instruciunii

    ::=ifthen[else].

  • Expresia boolean din componena instruciuniiifse numetecondiie.Execuia instruciuniiif ncepe prin evaluarea condiiei. Dac rezultatul evalurii estetrue, atunci se execut instruciunea situat dup cuvntul cheiethen. Dac condiia are valoareafalse, atunci: fie c se execut instruciunea situat dup ramuraelse(dac exist), fie c se trece la instruciunea situat dup instruciuneaif.

  • De reinut c limbajul Pascal nu consider simbolul ; ca fcnd parte din instruciune, ci l folosete ca delimitator. Prin urmare dac ntr-o instruciuneIf Bthen SIntroducem nainte de S instrucinea cu efect nulIfBthen; SAtunci S nu mai intr n componena instruciunii condiionale, deci este executat indiferent de valoarea lui B.

  • Instructiunea CASEInstruciuneacaseeste 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 structuraifeste instruciuneacase.

  • Sintaxa instruciunii CASE::=ifof[{; }] [;]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 instruciuniicase 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

    Instruciunea FOReste 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 douforme: 1)FOR identificator:=expresie1 TO expresie2 DOinstruciune;(CAZUL CRESCTOR)2)FOR identificator:=expresie1 DOWNTO expresie2 DO instruciune;(CAZUL DESCRESCTOR)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