Teorie Pseudocod

Operații 

Sunt prezente toate operațiile aritmetice uzuale:

•adunarea a douănumere:a+b. Rezultatul este întreg sau real.

•scăderea a două numere:a-b. Rezultatul esteîntreg sau real.

•înmulțirea a două numere:a*b. Rezultatul esteîntreg sau real.

•împărțirea a două numere:a/b. Rezultatul se consideră real. Dacă se dorește determinarea câtuluiîmpărțirii a două numere naturale, se va folosi parteaîntreagă a rezultatuluiîmpărțirii:[a/b].

•restul împărțirii a două numereîntregi:a%b. Se aplicănumai pentru date întregi, iarrezultatul este număr întreg.Notă:Unele variante pseudocod propun operațiileDIVșiMODpentru determinarea câtuluiși restuluiîmpărțirii a două numereîntregi. De asemenea, pot săaparăoperații de ridicare la putere, înformaa^n, sau de extragere a rădăcinii pătrate√x.Operațiile relaționalesunt:

•=– egalitatea

•≠–neegalitatea

•<– mai mic

•≤–mai mic sau egal

•>– mai mare

•≥–mai mare sau egalOperantii sunt de regulănumere, iar rezultatul este valoare de adevăr (adevăratsaufals)

Instrucțiuni

Instrucțiunile sunt componentele algoritmului care au efect, atunci când se execută. Ele modificăvalorileunor variabile, citesc sau afișează date, repetă anumite acțiuni, etc. 

De regulăfiecare instrucțiune se scrie pe o linie, dar existăsituații când, pentru a economisispațiu, douăsau mai multe instrucțiuni simple se scriu pe același rând, separate prin "".Orice algoritm poate fi reprezentat prin intermediul a trei tipuri de structuri:

•structura liniară

•structura alternativă

•structura repetitivă

•structura repetitivăcu număr necunoscut de pași

•structura repetitivăcu număr necunoscut de pașiși test inițial

•structura repetitivăcu număr necunoscut de pașiși test final

•structura repetitivăcu număr cunoscut de paș

Citirea

Pentru citire se folosește instrucțiuneacitește <listăvariabile>, unde<listăvariabile>reprezintăunșir de variabile separate prin caracterul ",". Se preiau valori de la tastaturășise memoreazăîn variabilele din listă.

Exemplu:

citestea , b , c 

Afșarea

Pentru afișarea datelor se folosește instrucțiuneascrie <listăexpresii>, unde<listăexpresii>reprezintăunșir de expresii separate prin caracterul" ". Se evalueazăîn ordine expresiileșise afiseazăpe ecran rezultatele lor.

Exemplu:

scrie'a + b = ', a + b

Atribuirea

Pentru atribuire se folosește instructiunea<variabilă>←<expresie>. Se evaluazăexpresia,iar valoarea obținută se memorează in variabilă.

Exemple:

a←0 

S←a+b

i←i +1 

Structura alternativă

În pseudocod existăinstrucțiuneadaca, cu următoarea sintaxă:


┌ daca <conditie> atunci

│ <istructiuni1>  

│ altfel

│ <instructiuni2>

└■ 

sau

┌ daca <conditie> atunci

│ <instructiuni1>

└■ 

Modul de execuție este următorul: 

•se evaluează<conditie>

•dacă este adevărată, se executa grupul de instrucțiuni<instructiuni1>, apoi se trece la următoareainstrucțiune

•dacă este falsă, se executa grupul de instrucțiuni<instructiuni2>, dacă există secțiuneaaltfel, apoi setrece la următoarea instrucțiune.

Structuri repetive

Structura repetitivăcu număr cunoscut de pași

Instrucțiunea pentru

Sintaxă

┌pentru <variabila> ← <expresie initiala> , <expresie finala> , <pas> executa

│ <instructiuni> 

└■

Unde expresie initiala, expresie finala și pas sunt expresii cu rezultat întreg, iar paspoate fi 1 sau -1 și poate lipsi, caz în care se consideră că este 1. variabila primește pe rând valori crescătoare (dacă pas = 1) sau descrescătoare (dacă pas =-1) începând de la expresie initiala până la expresie finala, și pentru fiecare valoare se execută secvența instructiuni. Dacă pas = 1 și <expresie initiala> <expresie finala>, secvența instructiuni nu se va executa deloc. La fel se întâmplă când <pas>=-1 și expresie initiala <expresie finala>. În caz contrar numărul de pași este expresie initială- expresie finala+1, dacă<pas>=1, respectiv expresie finală- expresie initiala+1, dacă pas=-1

Structura repetitivăcu număr necunoscut de pasiși test inițial

•Instrucțiunea CÂT TIMP ... EXECUTĂ

Sintaxă 

┌ cat timp <conditie> executa

│ <instructiuni>

└■

Mod de execuție

•se evalueză condiția

•dacă este adevărată se executa instrucțiunile și se revine la pasul 1

•dacă este falsă se trece la următoarea instrucțiune din algoritm 

Important: Dacă condiția este de la început falsă, instrucțiunile nu se vor executa deloc!

 •Instrucțiunea EXECUTA...CAT TIMP

Sintaxă 

┌ executa

│ <instructiuni>

└cat timp <conditie> 

Mod de execuție

•se executa instrucțiunile

•se evaluezăcondiția

•dacă este adevărată se revine la pasul 1

•dacă este falsă se trece la următoarea instrucțiune din algoritm 

Important: Chiar dacăcondiția este de la început falsă, instrucțiunile s-au executat deja odată!

•Instrucțiunea REPETA ... PANA CAND 

Sintaxă

┌ repeta

│ <instructiuni>

└pana cand <conditie>

Mod de execuție

•se executa instrucțiunile

•se evalueză condiția

•dacă este falsă se revine la pasul 1

•dacă este adevărată se trece la următoarea instrucțiune din algoritm

Important: Chiar dacăcondiția este de la început adevărată, instrucțiunile s-au executat deja odată!

Similaritatea dintre structurile repetitive

Multe probleme si exerciții propun un algoritm și cer o altă versiune echivalentă a acestuia, dar care să utilizeze o altă structură repetitivă. Două algoritme sunt considerate echivalente dacă, pentru orice set de date de intrare (conform cerintelor problemei), acestea produc aceleași rezultate.

În această secțiune, vor fi prezentate câteva reguli pentru a transforma structurile repetitive din algoritmii pseudocod.

-PENTRU → CÂTTIMP

┌ pentru i←a,b executa

│<instructiuni>

└■

i ← a

 ┌ cattimp i ≤ b executa 

 │ <instructiuni>

 │ i ← i + 1

└■

 -PENTRU → EXECUTĂ … CÂTTIMP

┌ pentru i←a,b executa

│ <instructiuni>

└■

i ← a

┌ daca i ≤ b atunci  

 │ ┌ executa

 │ │ <instructiuni>

 │ │ i ← i + 1

│ └cattimp i ≤ b

└■

-PENTRU → REPETĂ … PÂNÂCÂND

┌ pentru i←a,b executa 

│ <instructiuni>

└■

i ← a

┌ daca i ≤ b atunci 

│┌ repeta

││<instructiuni>

││ i ← i + 1 

│└ panacand i > b

└■

-CÂTTIMP → EXECUTĂ … CÂTTIMP

┌ cattimp <conditie> executa

│ <instructiuni>

└■  

┌ daca <conditie> atunci

│┌ executa  

││   <instructiuni>

│└ cattimp <conditie>

└■ 

CÂTTIMP → REPETĂ … PÂNÂCÂND 

┌ cattimp <conditie> executa

│ <instructiuni>

└■ 

┌ daca <conditie> atunci 

│┌ repeta 

││ <instructiuni>

│└ panacand NOT <conditie>

└■ 

-REPETĂ … PÂNĂCÂND → CÂTTIMP    

┌ repeta

│ <instructiuni>

└ panacand <conditie>

<instructiuni>

┌ cattimp NOT <conditie> executa

│ <instructiuni>

└■    

Creați un site gratuit! Acest site a fost realizat cu Webnode. Creați-vă propriul site gratuit chiar azi! Începeți