Sunteți pe pagina 1din 14

Structura liniara cuprinde

numai instructiuni de citire,


scriere, calcul si atribuire.
Marimile cu care se lucreaza
in solutionarea problemelor
sunt variabilele si constantele.
Variabilele sunt marimi care in
timpul executiei unui program
se modifica iar constantele
raman neschimbate.
Se citesc doua variabile reale a si b. Sa se interschimbe
continutul lor si sa se tipareasca.

real a
real b
citeste a
citeste b
aux = c
a ←c
b←a
c←b
scrie a
scrie b
Structura alternative se definese astfel:
Daca S1 si S2 sunt structuri si E este o conditie
atunci :

Daca E atunci
S1
altfel
S2

Mecanismul de functionare (executare ) este :


Pasul 1: Se evalueaza conditia
Pasul 2: daca aceasta este indeplinita se executa
prima structura (S1)

Daca E atunci

S1

Pasul 3: daca la evaluare E-ul nu indeplineste


conditia se trece la a doua structura (S2)
Sa se scrie un algoritm care citeste numarul natural (nr). Daca
acesta este 0 atunci se vor citi doua numere intregi a si b si se
va tipari suma lor. Contrar se citesc doua numere reale x si y si
se va tipari suma lor.
intreg a, b, S1, nr;
real x, y, S2;
citeste nr;
Daca nr=0 atunci
citeste a, b;
S1←a+b;
scrie S1;
altfel
citeste x, y
S2←x+y
scrie S2
Sa se determine greutatea ideala a unei personae dupa
formula:

G= 50+0,75 (I-150) + (V-20)/4 - pentru barbati


G= (50 + 0,75* (I-150) + (V – 20/4)* 0,9 - pentru femei

I – inaltimea
V- varsta

Analiza problemei:
-date de intrare : nr natural : I , V → tip intreg
sex→ s
-date iesire : greutatea→g → tip real (kg)
Functia programului nostru este de a prelua de la tastatura
valorile inaltimii si varstei, a caracterului care precizeaza
sexul si de a calcula si a afisa valoarea greutatii ideale a
persoanei.
Aceasta este cat_timp expresie
executa
Instructiune;
Modul de executie:
Pasul 1: se evalueaza expresia
Pasul 2: daca valoarea expresiei este
“false” se iese din instructiune.
Cat_timp;
Daca valoarea expresiei este “true” se
executa instructiunea apoi se revine la
pasul 1.

Observatii:
Instructiunea se executa repetat, cat timp caloarea expresisi este “adevarat”.
Pentru ca ciclul sa nu fie infinit este obligatoriu ca instructiunea care se executa
sa modifice cel putin una din variabilele care intervin in expresie astfel incat
aceasta sa poata lua valoarea “false”.
Daca expresia are de la inceput valoarea “false” intructiunea nu se repeat nici
macar odata.
Sa consideram urmatoarea problema:

Se cere sa se cantareasca un sac cu grau (avem suficiente greutati de 1 Kg).

Rezolvarea se reduce la a cantari sacul. Solutia se poate exprima astfel:


Solutia are 2 componente:
o conditie, trascrisa prin “balanta este in dezechilibru”, conditie pe care o
notam cu c;
o actiune transcrisa prin “adaugarea unei noi greutati de 1 Kg in talerul cu
greutati.”, notata cu a, actiune asociata cu EXECUTA;

Folosind notatiile facute, solutia se poate scrie astfel:


CAT TIMP c,
EXECUTA a
Notand greutatea sacului cu g si cu i numarul de greutati puse in balanta,
algoritmul complet va fi:

1) initializarea lui i

2) cat timp i != g

3) efectueaza i=i+1

4) afiseaza valoarea lui i


Sintaxa structurii instructiunii
Pentru contor ← expresia 1 ← expresie 2
Executa
Instructiune
Modul de executie
Pasul 1: se evalueaza expresia 1.
Pasul 2: se atribuie variabilei contor valoarea expresiei 1
Pasul 3: se evalueaza expresia 2
Pasul 4: daca valoarea expresiei contor este mai mare decat valoarea expresiei 2
atunci se iese din instructiune. Iar daca valoarea variabilei contor este mai mica sau
egala cu valoarea expresisi 2 atunci se executa instructiunea si apoi se
incrementeaza valoarea variabilei contor dupa care se revine la pasul 3.
Incrementare inseamna marirea contorului cu 1.
Observatii :
Daca intitial valoarea expresiei 1 este mai mare decat valoarea expresiei 2
instructiunea NU se executa niciodata. In caz contrar , daca instructiunea nu
modifica valorile variabilelor care intervin in expresie 2 instructiunea se executa de
(expresie 2 expresie 1 +1 ) ori.
Daca vrem sa calculam suma primelor n numere naturale:
S=1 + 2 + 3 + … + n
vom repeta instructiunea S=S+i, pentru fiecare i, intre 1 si n.
FOR i = 1, n, 1
S = S + i
Practic, scrierea instructiunii FOR
inlocuieste 3 instructiuni (1, 2 si 4):
1) initializarea lui i cu 1

2) cat timp i <= n

3) efectueaza S=S+i

4) efectueaza i=i+1

5) afiseaza valoarea lui i

Cand scriem structura cat timp i=1, n, 1 inseamna ca i ia valoarea de la 1 la n,


din 1 in 1. Am putea alcatui o structura repetitiva cat timp cu alt pas decat 1
(de exemplu 2, 3, etc.) Daca pasul este un numar negativ, inseamna ca
valoarea lui i va scadea de la valoarea initiala la valoarea finala.
Este o structura conditionata posterior. Are urmatoarea sintaxa:
Fie S o structura si E o conditie atunci
repeta

pana cand E

Principiul de executie este urmatorul:


Pasul 1: se executa S.
Pasul 2: daca E este indeplinita se trece la pasul 1, altfel executarea este
incheiata.
Observatie: S se executa intotdeauna o data, apoi se testeaza daca se mai
executa sau nu.
Aceasta structura poate fi simulata si cu ajutorul structurii cat timp….
Executa astfel:
S
Cat timp not E executa
S
Sa se calculeze suma primelor n numere natural unde n≥1 folosind structura repeta pana cand.
Algoritmul problemei:
Pasul 1: i←1 ; s←0
Pasul 2: s←0+1=1
i←i+1=2
pasul 3: i nu este mai mare decat 3, deci S ia valoarea 1+2=3 , iar i←3
pasul 4: i nu este mai mare decat 3, deci S va lua valoarea 3+3=6, iar i←4
i>n deci se trece la instructiunea urmatoare unde se tipareste 6.

intreg n, i, s ;
citeste n
i←1
s←0
repeta
s←s+i
i←i+1

pana cand i>n


scrie s
http://193.226.6.120/Miclea/Prg/curs/PDF/A03_Algoritmi.pdf-data:28.03.2011
ora:19.55
http://airinei.omad.ro/catinfo/4matoffline/fisa%201%20algo%20gio.pdf-
data:30.03.2011 ora:18.35
http://ro.wikipedia.org/wiki/Limbaj_pseudocod-data:30.03.2011 ora:20.40