Scrigroup - Documente si articole

Username / Parola inexistente      

Home Documente Upload Resurse Alte limbi doc  

 
CATEGORII DOCUMENTE


AccessAdobe photoshopAlgoritmiAutocadBaze de dateC
C sharpCalculatoareCorel drawDot netExcelFox pro
FrontpageHardwareHtmlInternetJavaLinux
MatlabMs dosPascalPhpPower pointRetele calculatoare
SqlTutorialsWebdesignWindowsWordXml

Limbajul pseudocod

calculatoare

+ Font mai mare | - Font mai mic



DOCUMENTE SIMILARE

Trimite pe Messenger
Protocolul UDP
Votul electronic
Utilizarea vederilor dinamice in administrarea bazei de date Oracle9I
Elemente de baza ale retelei Internet
MICROPROGRAMAREA
Problema repartizarii (Assignment)
Auditarea Oracle9I
Sistemele de reglare numerica
Terminarea proceselor
IMPRIMANTA

TERMENI importanti pentru acest document

limbajul pseudocod : : limbaj pseudocod : : instructiunea for pseudocod :

Limbajul pseudocod

Limbajul pseudocod este prin definitie un limbaj alcatuit din cateva instructiuni prestabilite, specifice programarii structurate, folosit pentru reprezentarea algoritmilor.

    Plecand de la o definitie a programului ca fiind:

                                    PROGRAM = ALGORITM + DATE        (Niklaus Wirth)

programul evolueaza spre instructiuni structurate, iar datele spre tipuri prestabilite (constante, variabile, stive, coada, vector, tablou, multime (set), tip complex).

Aceasta definitie indica faptul ca reprezentarea sub forma de pseudocod implica si faptul ca datele sint structurate sub o anumita forma, deci viziunea algoritmica  trebuie imbinata cu una asupra structurilor de date.

    Datele pot fi clasificate dupa unul din criteriile:

1. Tipul datelor – poate fi unul dintre urmatoarele:

            - intreg (integer)

            - real (real)

            - logic (bool)

            - sir de caractere (char)

2. Natura datelor:

            - constante

            - variabile

3. Organizarea datelor:

            - tablouri (array)

            - stive (stack)

            - cozi (queue)

            - ansamble (heap)

    Operatiile cu date depind de natura si organizarea datelor.

    Se aplica o serie de conventii la reprezentarea calculelor prin formule. Una dintre acestea se refera la faptul ca putem plasa numai o singura variabila in partea stanga a semnului „=”. Astfel, computerul realizeaza toate calculele indicate in partea dreapta a semnului „=” si genereaza un unic rezultat. Acesta va fi memorat in locatia de memorie corespunzatoare variabilei inscrisa in partea stanga a semnului „=”.

    Pentru datele numerice (de tip intreg si real) folosim urmatoarele operatii:

·        operatii aritmetice: adunare (+), scadere (-), inmultire (*), si impartire (/).

·        operatii de decizie (care precizeaza relatia existenta intre doua date) : egalitate (=), mai mic decat (<), mai mare decat (>), inegalitate (< >), mai mic sau egal decat (<=), mai mare sau egal decat (>=).

    Datele numerice sunt alcatuite numai din cifrele de la 0 la 9 (eventual este folosit si punctul zecimal); aceste date nu pot contine caractere speciale sau literele alfabetului. Prin contrast cu ele, datele ne-numerice sunt alcatuite din orice combinatie de caractere numerice, alfabetice, sau speciale. Caracterele alfabetice sunt formate de literele de la A la Z, iar caracterele speciale sunt toate celelalte semne (de ex. $, @, #, %, etc.).

    Pentru datele de tip logic se folosesc urmatoarele operatii:

·        negatia logica ù ;

·        conjunctia logica Ù ;

·        disjunctia logica Ú .

    Pentru datele de tip sir de caractere folosim:

·        concatenarea (+) – reuniunea a doua sau mai multe siruri de caractere (rezultatul acestei operatii fiind tot un sir de caractere);

·        compararea bazata pe ordine lexicografica (rezultatul fiind o data de tip logic).

    Pentru celelalte categorii de date folosim urmatoarele operatii:

·        extragerea unui element x;

·        introducerea unui element x;

·        verificarea daca un asemenea ansamblu de date este sau nu vid.

    Cuvintele prestabilite cu ajutorul carora se construieste algoritmul se numesc cuvinte cheie.

Exemple: do,  if, integer.

    Instructiunile se grupeaza in doua categorii:

·        declaratii: alcatuite dintr-un cuvant cheie (ex.: integer, real,  bool, char, array, stack, queue, heap), urmat de un sir de variabile; astfel se precizeaza ca acele variabile au tipul de data indicat de cuvantul cheie;

·        instructiuni efective.

Exemple:

    integer a, B, c;

    real d(n), E(m,n);

 

    Instructiunile efective sunt urmatoarele:

1.      Instructiunea de atribuire:

Forma de baza:   V ¬ e    

unde V = variabila;   e  = expresie de acelasi tip.

Efect: Se evalueaza expresia e si se atribuie rezultatul obtinut variabilei V.

Forma generala: (V1, V2, …Vn ) ¬ (e1, e2, … en)  sau

                            Vi ¬ ei , i I

2.    Instructiunile READ/ WRITE:

Forma generala: read a1, a2, …an

Efect: Sunt citite n variabile de la intrare si sunt scrise in locatii de memorie.

si

Forma generala: write a1, a2, …an

Efect: Se scriu din memorie pe banda de iesire valorile a n variabile.  

3.    Instructiunea STOP:

Efect: Se incheie un program.

 

4.    Decizia cu o alternativa vida (IF-THEN):

Sintaxa:

            daca <conditie> atunci

                        <secventa>

            stop

Pseudocod:

            if P then                                  sau      if P then

                        S1                                           begin

            endif                                                        S1  

                                                                        end

                                                            endif

Semnificatie:

                                    ADEVARAT

               evalueaza                                                 executa

               <conditie>                                               <secventa>

           

                                    FALS

   

Se evalueaza <conditie>; daca <conditie> este ADEVARATA, se executa instructiunile din <secventa>; altfel, se sare peste aceste instructiuni si se continua algoritmul cu prima instructiune de dupa <secventa>.             

Schema logica:

                                            DA                                       NU

       <conditie>

                       <secventa>

Exemplu: Calculul valorii maxime dintre trei numere date, A, B, C.

    Programul in pseudocod va fi:

            start

            citeste A, B, C

            #  afla X = max (A, B)

            #  afla X = max (X, C)

            scrie X

            stop

Daca se detaliaza cele doua proceduri marcate cu #, obtinem urmatorul algoritm:

            start

            citeste A, B, C

            daca A > B atunci

                        atribuie X ¬ A

            altfel

                        atribuie X ¬ B

            daca C > X atunci

                        atribuie X ¬ C

            scrie X

            stop

Secventa de program din dreptunghiul punctat reprezinta decizie cu o alternativa vida.

5.    Decizie cu doua alternative (IF-THEN-ELSE):

Sintaxa:

            daca <conditie> atunci

                        <secventa 1>

            altfel

                        <secventa 2>

            stop

Pseudocod:

            if P then                                  sau      if P then

                        S1                                           begin

            else                                                         S1

                        S2                                           end

            endif                                        else

                                                                        begin

                                                                            S2

                                                                        end

                                                            endif

Semnificatie:

                  

                        evalueaza    ADEVARAT            executa

                        <conditie>                             <secventa 1>

           

                                             FALS                executa

                                                                       <secventa 2>

Aceasta instructiune defineste o relatie logica pe care ulterior o testeaza. Conditia este construita in mod deliberat sub forma de intrebare, cu numai doua raspunsuri posibile, DA si NU. Aceste doua optiuni definesc ramurile conditionale care permit evaluarea expresiei logice cu ajutorul simbolilor de decizie.

    Se evalueaza <conditie>; daca <conditie> este ADEVARATA, se vor executa instructiunile din <secventa 1>; altfel (<conditie> este FALSA) se vor executa instructiunile din <secventa 2>. Dupa acest pas, se executa urmatoarea instructiune din algoritm (prima instructiune dupa IF-THEN-ELSE).

Schema logica:

                       

                                              DA                                NU

 <conditie>

                       

                      <secventa 1>                                                   < secventa 2>

Exemplu: Reluam aceeasi problema, si anume calculul valorii maxime dintre trei numere A, B, C.

    O alta solutie pentru rezolvarea problemei ar fi:

            start

            citeste A, B, C

            daca A > B atunci

                        atribuie X ¬ A

            altfel

                        atribuie X ¬ B

            daca C > X atunci

                        atribuie X ¬ C

            altfel

                        atribuie X ¬ X

            scrie X

            stop

Secventele de program din dreptunghiurile punctate reprezinta decizie cu doua alternative.

6.    Selectia (CASE):

Sintaxa:

            alege <expresie> dintre:

                        <constanta 1> : <secventa 1>

                        <constanta 2> : <secventa 2>

                       

                        <constanta n> : <secventa n>

                         altfel                : <secventa (n+1) >

            stop

Pseudocod:

            case P1 : S1

                    P2 : S2

                    

                    Pn : Sn

            else  Sn+1

            endcase        

Semnificatie:

    Se evalueaza <expresie> si se executa diferite operatii corespunzator valorilor posibile pentru <expresie>: daca <expresie> = <constanta 1>, se executa instructiunile din <secventa 1>; daca <expresie> = <constanta 2> se executa instructiunile din <secventa 2>, si asa mai departe; daca <expresie> = <constanta n>, se executa instructiunile din <secventa n>, si altfel (cand <expresie> ¹ <constant1>, <constant 2>, …, <constant n>) se executa instructiunile din <secventa (n+1)>. Apoi se executa urmatoarea instructiune din algoritm (prima instructiune dupa CASE).


<constanta 1>             executa

                                                        <secventa 1>                            

              evalueaza                 <constanta 2>                  executa

             <expresie>                                              <secventa 2>

           

                                                           

  

                                                <constanta n>                  executa

                                                                              <secventa n>

 

                                             ¹ <constant 1>,…

                                             ¹ <constant n>        executa

                                                                             <secventa (n+1)>

  

Schema logica:

                                                                                                           

            <expresie>

     <constanta 1>         <constanta n>                                <constanta (n+1)>

                       

                               

                   <secventa 1>            <secventa n>                                  <secventa (n+1)>

Exemplu: Valoarea intreaga oarecare V se adauga la una din valorile (sumele) S0, S1, S2, S3 dupa cum restul impartirii sale la 4 este 0, 1, 2, 3.

    Algoritmul care realizeaza aceste calcule va fi:

alege V – int(V/4)*4 dintre

            0: atribuie S0 ¬ S0 + V

            1: atribuie S1 ¬ S1 + V

            2: atribuie S2 ¬ S2 + V

            3: atribuie S3 ¬ S3 + V

stop

Secventa de program din dreptunghiul punctat reprezinta un exemplu de selectie.

7. Ciclu cu test initial (WHILE-DO, structura repetitiva conditionata anterior):

Sintaxa:

            cat timp <conditie> executa

                        <secventa>

            stop

Pseudocod:

            while P do

                        begin

                            S

                        end

            enddo

Semnificatie:

 

 


                                         DA

                     evalueaza                                             executa

                     <conditie>                                          <secventa>

 

                                      

     NU

Se evalueaza <conditie>; atata timp cat <conditie> este ADEVARATA, se executa instructiunile din <secventa>, si apoi se evalueaza <conditie> din nou; cand <conditie> devine FALSA se iese din bucla; deoarece mai intai se evalueaza <conditie> , si dupa aceea se executa instructiunile, WHILE-DO este cunoscuta sub numele de „ciclare cu test initial”. Daca <conditie> este FALSA la prima evaluare, instructiunile din <secventa> nu se executa nici o data, si se trece direct la prima instructiune de dupa WHILE-DO; prin urmare este posibil sa avem o bucla WHILE-DO vida.

Schema logica:

                                                     DA

                          <conditie>

                         

     NU

   <secventa>

8.      Ciclu cu test final (REPEAT-UNTIL, structura repetitiva conditionata posterior):

Sintaxa:

            repeta

                  <secventa>

            pana cand <conditie>

Pseudocod:

            repeat

                  S

            until P

Semnificatie:


                                                                                       NU

                                                           

                       executa                                                  evalueaza       DA

                      <secventa>                                <conditie>

 

Se executa <secventa> si apoi se evalueaza <conditie>; atata timp cat <conditie> este FALSA, ne intoarcem inapoi si executam <secventa> din nou, dupa care evaluam iarasi <conditie>; atunci cand <conditie> devine ADEVARATA, se iese din bucla si se executa urmatoarea instructiune de dupa REPEAT-UNTIL. Deoarece mai intai se executa <secventa> si apoi se evalueaza <conditie>, REPEAT-UNTIL mai este numita si ciclare cu test final. Se observa ca nu putem avea o bucla REPEAT-UNTIL vida, deoarece <secventa> este executata cel putin o data (cand <conditie> este ADEVARATA la prima evaluare).                                             

Schema logica:


                        <secventa>

          

                          <conditie>    NU

                          DA

9.       Ciclare cu contor (FOR):

Sintaxa:

            pentru <variabila> = <val. initiala>, <val. finala>, <pas> repeta

                        <secventa>

            stop

Pseudocod:

            for v:=vi to vf step vp do

                        begin

                           S

                        end

            endfor

Semnificatie:

    Instructiunea FOR realizeaza o ciclare pana cand este indeplinita o anumita conditie. De aceea este cunoscuta ca un tip de ciclare cu test posterior, conditia fiind verificata la sfarsitul buclei. Partea de dupa FOR a instructiunii defineste ciclul, iar partea de dupa TO defineste conditia de iesire din bucla.

 


          evalueaza                             <VAR> ¬ <vi>      executa

          <vi>, <vf>, <vp>                                                    <secventa>

                                                                  <VAR> ¬ <VAR> + <vp>

         

                                                                                                            NU

VAR> > <vf>

 

 

                                                                                     DA

Avem un contor, <variabila>, cu valori intre o <valoare initiala> si o <valoare finala>. La inceput avem <variabila> = <valoare initiala> si se executa instructiunile continute in <secventa>. Apoi marim valoarea din <variabila> cu <valoare pas> si comparam <variabila> cu <valoare finala>. Daca <variabila> £ <valoare finala>, repetam pasul anterior. Se procedeaza in acest mod pana cand <variabila> > <valoare finala>; in acest moment se iese din bucla.

Schema logica:

<VAR> ¬ <vi>

< secventa >

<VAR> ¬ <VAR> + <vp>

                                                                                                 NU

<VAR> > <vf>

            DA

10. Decizie multipla (IF-THEN-ELSE-…-ELSE):

Sintaxa:

            daca <conditie 1> atunci

                        <secventa 1>

            altfel daca <conditie 2> atunci

                        <secventa 2>

            altfel

            altfel

                        <secventa n>

            stop

Pseudocod:

            if <conditie 1> then

                        S1

            else if <conditie 2> then

                        S2

            else if <conditie 3> then

                        S3

            else

           

            else

                        Sn

            endif

Semnificatie:

                                   

            evalueaza      ADEVARAT         executa

            <conditie 1>                          <secventa 1>

          FALS

                                   

            evalueaza       ADEVARAT     executa

            <conditie 2>                          <secventa 2>

          FALS

           

          FALS

           executa

           <secventa n>

Schema logica:

                                         ADEVARAT

                <conditie 1>                                                 <secventa 1>

            FALS

                                         ADEVARAT

                <conditie 2>                                               <secventa 2>

            FALS

           

            FALS                                                             <secventa n>

Se evalueaza <conditie 1>; daca este ADEVARATA, se executa <secventa 1>; altfel, se evalueaza <conditie 2>; daca este ADEVARATA, se executa <secventa 2>; altfel, se evalueaza <conditie 3> si asa mai departe, pana la <conditie (n-1)>; daca aceasta este ADEVARATA, se executa <secventa (n-1)> si altfel se executa <secventa n>; apoi se executa urmatoarea instructiune din algoritm (prima de dupa IF-THEN-ELSE-…-ELSE).

    Aceasta instructiune este numita decizie multipla deoarece este formata din mai multe instructiuni simple de decizie (IF-THEN-ELSE), legate impreuna intr-o singura structura de decizie; este similara instructiunii CASE, dar ramificatiile se construiesc diferit: la CASE, era vorba de valori diferite pentru o expresie data, in timp ce aici avem diferite conditii de evaluat.

Exemplu:

            citeste X

            daca X > 0 Ù X < 10 atunci

                        atribuie A ¬ A + 1

            ori X > 10 Ù X < 20 atunci

                        atribuie B ¬ B + 1

            ori

           

            altfel

                        scrie „varsta eronata”

            stop

Instructiunile din dreptunghiul punctat reprezinta un exemplu de decizie multipla.

DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 710
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Distribuie URL

Adauga cod HTML in site

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2014. All rights reserved