bancuri, glume, imagini, video, fun, bancuri online, bancuri tari, imagini haioase, videoclipuri haioase, distractie online Pe HaiSaRadem.ro vei gasi bancuri, glume, imagini, video, fun, bancuri online, bancuri tari, imagini haioase, videoclipuri haioase, distractie online. Nu ne crede pe cuvant, intra pe HaiSaRadem.ro ca sa te convingi.
POLINOAME CU COEFICIENŢI REALI.
OPERAŢII CU POLINOAME.
O expresie de forma f = a0 + a1X1 + a2X2 + … + anXn se numeşte polinom cu coeficienţi reali. Datorită proprietăţii de comutativitate a adunării, expresia mai poate fi scrisă:
f = anXn + an-1Xn-1 +…+a2X2 + a1X1 + a0.

- an , an-1 , …a2 , a1 , a0 sunt numere reale date, numite coeficienţi ai polinomului
- gradul lui f, notat grad f, este cel mai mare număr natural n astfel încât an≠0
- an se numeşte coeficientul dominant al polinomului f
- a0 se numeşte termenul liber al polinomului f
- X este variabila polinomului
<< Back
Valoarea unui polinom cu coeficienţi reali într-un punct

Fie f = a0 + a1X1 + a2X2 + … + arXr + … + anXn un polinom de grad n şi q un număr real arbitrar.
Atunci numărul
f(q) = a0 + a1q1 + a2q2 + … + arqr + … + anqn
se numeşte valoarea polinomului f în q.

Adunarea a două polinoame cu coeficienţi reali

Fie f = a0 + a1X1 + a2X2 + … + arXr + … + anXn un polinom de grad n şi
g = b0 + b1X1 + b2X2 + … + brXr … + bmXm un polinom de grad m.
Atunci
f + g = (a0+b0) + (a1+b1)X1 + (a2+b2)X2 + …+ (ar+br)Xr + …
f + g =
grad(f + g) ≤ max(grad f, grad g)
dacă m≠n atunci grad(f + g) = max(n, m)
dacă m=n, atunci grad(f + g) = cel mai mare număr natural k astfel încât ak + bk ≠ 0

Înmulţirea a două polinoame cu coeficienţi reali

Fie f = a0 + a1X1 + a2X2 + … + arXr + … + anXn un polinom de grad n şi
g = b0 + b1X1 + b2X2 + … + brXr … + bmXm un polinom de grad m.
Atunci
f ∙ g = a0∙b0 + (a0b1+a1b0)X1 + (a0b2+a1b1+a2b0)X2 + …+ (a0br+a1br-1+a2br-2+…+arb0)Xr + …
- termenul r al produsului f ∙ g este , i = 0,1,…,n şi j = 0,1,…,m
grad (f∙g) = grad(f) + grad(g) = n+m

Împărţirea a două polinoame cu coeficienţi reali

Fie f = a0 + a1X1 + a2X2 + … + arXr + … + anXn un polinom de grad n şi
g = b0 + b1X1 + b2X2 + … + brXr … + bmXm un polinom de grad m , g ≠ 0
Atunci există două polinoame c şi r astfel încât f = g ∙ c + r, unde grad r < grad g. În plus polinoamele c şi r sunt unice satisfăcând această proprietate.
În expresia f = g ∙ c + r
f se numeşte deîmpărţit
g se numeşte împărţitor
c se numeşte cât
r se numeşte rest

Implementarea operaţiilor cu polinoame folosind limbajul Turbo Pascal

- Pentru declararea unui polinom se foloseşte tipul de date tablou (vector) care reţine coeficienţii polinomului şi o variabilă (număr natural) care reţine gradul polinomului.
- Introducerea datelor unui polinom presupune citirea de la tastatură a gradului polinomului şi a coeficienţilor acestuia, începând de la coeficientul dominant până la termenul liber.
- Implementarea operaţiilor cu polinoame (valoarea unui polinom într-un punct, adunarea, înmulţirea şi împărţirea a două polinoame) presupune de fapt prelucararea coeficineţilor, variabila polinomului X apare doar la afişarea unui polinom la monitor.

{ delararea tipurilor de date}
type polinom=array[0..100] of real;
var opt,n,m:byte;
a,b:polinom;

{citirea de la tastatura a datelor unui polinom}
procedure citire(var a:polinom;var n:byte);
var i:byte;
begin
write('introduceti gradul polinoului: ');
readln(n);
repeat
write('coeficientul lui X^',n,'=');
readln(a[n]);
until a[n]<>0;
for i:=n-1 downto 0 do begin
write('coeficientul lui X^',i,'=');
readln(a[i]);
end;
end;

{afisarea la monitor a unui polinom}
procedure afisare(a:polinom;n:byte);
var i:byte;
begin
if n=0 then if frac(a[0])=0 then write(a[0]:0:0)
else write(a[0]:0:2)
else
for i:=n downto 0 do begin
if (a[i]>0)and(i<>n) then write('+')
else if a[i]<0 then write('-');
if frac(a[i])<>0 then write(abs(a[i]):0:2)
else if (a[i]<>0) and (abs(a[i])<>1) then write(abs(a[i]):0:0);
if (i<>0)and(a[i]<>0) then write('X^',i);
if (i=0) and (abs(a[0])=1) then write(1);
end;
end;

{calculul valorii unui polinom intr-un punct}
procedure valoare;
var i:byte;
S,P,q:real;
begin
citire(a,n);
write('introduceti punctul in care se va calcula valoarea polinomului : ');
readln(q);
write('Valoarea polinomului ');
afisare(a,n);
writeln(' in punctul ',q:0:2,' este ');
S:=a[0];P:=1;
for i:=1 to n do begin
P:=P*q;
S:=S+P*a[i];
end;
writeln('f(',q:0:2,')=',S:0:2);
end;

{operatia de adunare a doua polinoame}
procedure adunare;
var i,gs:byte;
s:polinom;
begin
citire(a,n);
citire(b,m);
writeln('Polinomul obtinut prin adunarea celor doua polinoame este:');
write('(');
afisare(a,n);write(')+(');afisare(b,m);write(')=');
if n>m then gs:=n
else if m>n then gs:=m
else begin
gs:=n;
while a[gs]+b[gs]=0 do dec(gs);
end;
for i:=0 to gs do s[i]:=a[i]+b[i];
afisare(s,gs);writeln;
end;

{operatia de inmultire a doua polinoame}
procedure inmultire;
var i,j,r,gp:byte;
p:polinom;
begin
citire(a,n);
citire(b,m);
writeln('Polinomul obtinut prin inmultirea celor doua polinoame este:');
write('(');
afisare(a,n);write(')*(');afisare(b,m);write(')=');
gp:=n+m;
for r:=0 to gp do begin
p[r]:=0;
for i:=0 to n do
for j:=0 to m do
if i+j=r then p[r]:=p[r]+a[i]*b[j];
end;
afisare(p,gp);writeln;
end;

{operatia de impartire a doua polinoame}
procedure impartire;
var gc,gr,i,j:byte;
c,r:polinom;
begin
citire(a,n);citire(b,m);
write('(');
afisare(a,n);write(')/(');afisare(b,m);writeln(')');
if n<m then begin
gc:=0;
gr:=n
end
else begin
r:=a;
gc:=n-m;
for i:=gc downto 0 do begin
c[i]:=r[i+m]/b[m];
for j:=i+m-1 downto 0 do
r[j]:=r[j]-c[i]*b[j-i];
end;end;
gr:=0;
while r[gr]=0 do dec(gr);
writeln('Catul obtinut prin impartirea celor doua polinoame este:');
afisare(c,gc);writeln;
writeln('Restul obtinut prin impartirea celor doua polinoame este:');
afisare(r,gr);writeln;
end;

{programul principal}
begin
writeln('Introduceti optiunea 0 pentru a iesi din program');
writeln('Introduceti optiunea 1 pentru calculul valorii unui polinom intr-un punct');
writeln('Introduceti optiunea 2 pentru operatia de adunare a doua polinoame');
writeln('Introduceti optiunea 3 pentru operatia de inmultire a doua polinoame');
writeln('Introduceti optiunea 4 pentru operatia de impartire a doua polinoame');
readln(opt);
repeat
case opt of
1:valoare;
2:adunare;
3:inmultire;
4:impartire;
0:exit;
else writeln('ati introdus o optiune gresita');
end;
write('optiune=');readln(opt);
until opt=0;

readln;
end.

<< Back

Prof. Vasilica Tomulescu, Prof. Dumitru Tomulescu, Colegiul Naţional „Ecaterina Teodoroiu” Târgu-Jiu