Sunteți pe pagina 1din 3

1.

Etapelederezolvareauneiproblemepecalculator

a) Formularea problemei
Presupune stabilirea scopului urmrit, respectiv precizarea datelor disponibile i a rezultatelor
dorite.
b) Precizarea modelului matematic
Presupune stabilirea relaiilor matematice cu ajutorul crora se modeleaz i se rezolv
problema.
c) Adoptarea metodelor numerice
Presupune alegerea unor metode numerice care s rezolve numeric relaiile matematice
stabilite anterior.
d) Stabilirea algoritmului
Presupune stabilirea succesiunii logice a operaiilor, modulizarea problemei, legturile ntre
module, precizarea interfeelor, rezolvarea situaiilor limit, etc.
e) Elaborarea programului de calcul
Presupune transpunerea ntr-un limbaj de programare a algoritmului prin scrierea
instruciunilor de programare.
f) Testarea programului
Presupune executarea programului pe exemple test alese astfel nct s parcurg programul pe
toate ramurile sale, s verifice toate situaiile limit i s poat permite compararea
rezultatelor.
g) Exploatarea i ntreinerea programului
Presupune execuia programului n situaii reale i adaptarea lui (dac este necesar) la noile
cerine ale utilizatorului.

2. Structurideprograme.Programarestructurat

Un program structurat se compune din urmtoarele elemente de baz: Secvena; Structura


alternative; Structura repetitive;
Secvena este o succesiune de instruciuni care se execut succesiv, una dup alta, n ordinea
scrierii lor.
Structura alternativ este de mai multe tipuri:

Structura multialternativ, figura 1.1. La aceast structur direcionarea execuiei


pe o ramur sau alta dintre mai multe ramuri se face n funcie de valoarea unei
variabile de test numeric.
figura 1.1 este: dac i -> este egal cu i1 execut S1; este egal cu i2 execut S2; este egal cu
iN execut Sn;
Structura bialternativ, figura 1.2 direcioneaz execuia pe una dintre dou ci n
funcie de rezultatul afirmativ sau negativ (adevrat sau fals) al unui test logic.
Structura repetitiv, este o structur care repet o secven de instruciuni de un numr de ori
determinat de valoarea unui test logic efectuat pe parcursul repetiiei.
Structura repetitiv condiionat anterior , figura 1.4. La aceast structur,
testarea condiiei de repetare se face naintea execuiei secvenei de repetat.
Pseudocodul: Cat timp conditia C este adevarta executa S
Structura repetitiv condiionat posterior, figura 1.5. La aceast structur testul
condiiei de continuare a repetiiei se face dup executarea secvenei S. Executa S
cat timp C este Adv.
3. Dezvoltatiunalgoritmpentruevaluareaunuipolinom;aderivateiacestuiasiaintegraleidefinite.
{P(x) = a0 + a1x + a2x2 + ... + an-1xn-1 + an xn}
T T
P(x) = {A} {X} unde {A} ={a0,a1,a2 ...an-1, an} cu A(i) = ai, i=0...n
T 2 n-1 n
{X} = {1,x,x ...x x } cu X(i) = xi, i=0...n

Algoritm VALOAREA unui polinom: DATE: n, {A}, x0


REZULTATE: P = valoarea polinomului in x0, P = A(n)
pentru i = n-1 la 0 calculeaza P = A(i) + P x0
Algoritm DERIVATA unui polinom: DATE: n, {A}, x0
REZULTATE: DP = valoarea derivatei in x0, DP = n A(n)
pentru i = n-1 la 1 calculeaza DP = i A(i) + DP x0
Algoritm INTEGRALA unui polinom: DATE: n, {A}, a. b
REZULTATE: IP = valoarea integralei definite, IP1 = A(n)/(n+1) ; IP2 = IP1
pentru i = n la 1 calculeaza IP1 = A(i-1)/ i + IP1a ; IP2 = A(i-1)/ i + IP2b
IP = IP2b IP1a

4. Dezvoltatiunalgoritmpentruordonareacrescatoareaunuisirdenumere

Algoritm ORDONAREA CRESC. a unui sir: DATE: n dim sirului: t(i), i=0n - sirul de
ordonat
REZULTATE: t(i) sirul ordonat crescator
pentru i = 0 la n-1 pentru j = i+1 la n dac t(i) > t(j) atunci a = t(i) ; t(i) = t(j) ; t(j) = a

5. Dezvoltatiunalgoritmpentruordonareadescrescatoareaunuisirdenumere.

Algoritm ORDONAREA CRESC. a unui sir: DATE: n dim sirului: t(i), i=0n - sirul de
ordonat
REZULTATE: t(i) sirul ordonat crescator
pentru i = 0 la n-1 pentru j = i+1 la n dac t(i) < t(j) atunci a = t(i) ; t(i) = t(j) ; t(j) = a

6. Dezvoltatiunalgoritmpentruinmultireaadoivectori{{X}n*{Y}Tn;{X}Tn*{Y}n}

{X}n*{Y}Tn=[A]n,n curelatiaa(i,j)=x(i)*y(j),i=1n;j=1n
{X}Tn*{Y}n=C curelatiaC=ni=1: x (i ) y (i )
7. Dezvoltatiunalgoritmpentruadunareaadouamatrici

[C]n,m = [A]n,m + [B]n,m cu relaia: c(i,j) = a(i,j) + b(i,j) i = 1 ... n; j = 1 ... m

8. Dezvoltatiunalgoritmpentruinmultireaadouamatrici

Algoritm PROD. MATRICE: DATE: n,m,p, [A], [B]


REZULTATE: [C] = [A] * [B]
pentru i = 1 la n pentru j = 1 la p c(i,j) = 0 pentru k = 1 la m calculeaz c(i,j) = c(i,j) +
a(i,k) b(k,j)

9. DezvoltatiunalgoritmpentrurezolvareaunuisystemdeecuatiiprinmetodatriangularizariialuiGauss

Algoritm METODA GAUSS:


DATE: n dimensiunea problemei ; z zero numeric (o valoare mica sub care orice numr se
consider a fi nul) ; a(i,j) matricea sistemului, i =1..n j =1..n ; b{i} vectorul term. liberi i =1..n
REZOLVARE:codcodderezolvareasistemului
cod=0rezolvarecorect;cod=1sistemincompatibil
b{i}soluiasistemuluidepozitatpentrueconomiedememorienvectorultermenilorliberi
citeteDATE(n,A,B)
cod=0
z=0.0000001
pentrui=1lan1{identificareaelementuluidiagonalmaxim}
p=abs(a(i,i))
l=i
pentruj=i+1landacp<abs(a(j,i)atuncil=j;p=abs(a(j,i))
{verificareelementdiagonalnul}dacp<zatuncicod=1;stop
{permutarelinii} dacl>iatunci pentruj=1lan p=a(l,j);a(l,j)=a(i,j);a(i,j)=
p;
p=b(j);b(l)=b(j);b(j)=p
{triangularizare}pentruj=i+1lan p=a(j,i)/a(i,i)
pentruk=ilana(j,k)=a(j,k)+p*a(i,k);b(j)=b(j)+p*b(i)
{verificareelementdiagonala(n,n)nul}dacabs(a(n,n)<zatunci cod=1;stop
{substituiainvers} b(n)=b(n)/a(n,.n) pentrui=n1la1 p=0;
pentruj=i+1lan p=p+b(j)*a(i,j);b(i)=(b(i)p)/a(i,i)

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