1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
| program ccpolynome;
uses crt;
type polynome=^monome;
monome=record
puiss:integer;
fac:integer;
suiv,prec:polynome;
end;
var nbe1,nbe2:integer;
p1,p2,p3:polynome;
{procedure pour la creation du polynome}
procedure creation(var tete:polynome;nbe:integer);
var i:integer;
l:polynome;
begin
for i:=1 to nbe do begin
new(l);
write('Le facteur du ',i, 'eme element svp est: ');
read(l^.fac);
write('La puissance du ',i,'eme element svp est: ');
read(l^.puiss);
l^.suiv:=tete;
tete^.prec:=l;
tete:=l;
end;
end;
{procedure pour afficher le polynome cree}
procedure affichage (tete:polynome);
var q:polynome;
begin
q:=tete;
while q^.suiv<>nil do q:=q^.suiv;
writeln;
write('le polynome= ');
while (q<>nil) do begin
write(' + ',q^.fac,'x^',q^.puiss);
q:=q^.prec;
end;
end;
{fonction puissance}
function puissance(n:integer;p:integer):integer;
var s,cpt:integer;
begin
cpt:=0;s:=1;
while (cpt<p) do begin
s:=s*n;
cpt:=cpt+1;
end;
puissance:=s;
end;
{fonction SOMME2}
function add2(var p1:polynome;var p2:polynome):polynome;
var q1,q2,q3,y,p3:polynome;
e,exc:integer;
exist:boolean;
begin
q3:=p1;
while(q3^.suiv<>nil)do q3:=q3^.suiv;
q3^.suiv:=p2;
p2^.prec:=q3;
q1:=p1;
q2:=q1^.suiv;
exist:=false;
e:=0;
exc:=0;
while((q1<>nil)and(q2^.suiv<>nil))do begin
new(y);
y^.puiss:=q1^.puiss;
while(q2<>nil)do begin
if(q2^.puiss=y^.puiss)then begin
exist:=true;
e:=(q2^.fac)+e;
if exist=true then exc:=exc+1;
end;
q2:=q2^.suiv;
end;
if (exc>0)then y^.fac:=(q1^.fac)+e
else y^.fac:=q1^.fac;
e:=0;exc:=0;exist:=false;
p3^.prec:=y;
y^.suiv:=p3;
p3:=y;
q1:=q1^.suiv;
q2:=q1^.suiv;
end;
p3:=add2(p1,p2);
end;
begin
clrscr;
write('le nombre d`elemets du 1er polynome est: ');
read(nbe1);
creation(p1,nbe1);
affichage(p1);
writeln;
write('le nombre d`elemets du 2eme polynome est: ');
read(nbe2);
creation(p2,nbe2);
affichage(p2);
writeln;
p3:=add1(p1,p2);
writeln('le resultat de laddition de polynomes est= ');
affichage(p3);
readln;
readln
end. |
Partager