Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program tp;
- uses crt;
- type liste=^elt;
- elt=record
- coff:real;
- exp:integer;
- suiv:liste;
- end;
- var tete1,tete2:liste;
- n,x,m:integer;
- r:real;
- choix:string[4];
- procedure creerPolynome(var tete:liste; n:integer);
- var p,q:liste;
- i,x:integer;
- begin
- q:=tete;
- for i:=1 to n do
- begin
- new(p);
- writeln('expo');
- readln(p^.exp);
- write('Entrer le coefficiant:');
- readln(p^.coff);
- p^.suiv:=nil;
- if (tete=nil) then
- begin
- tete:=p;
- q:=p;
- end
- else
- begin
- q^.suiv:=p;
- q:=p;
- end;
- end;
- end;
- function taillePolynome(tete:liste):integer;
- var cpt:integer;
- begin
- cpt:=0;
- while (tete^.suiv<>nil) do
- begin
- cpt:=cpt+1;
- tete:=tete^.suiv;
- end;
- taillePolynome:=cpt+1;
- end;
- procedure afficherPolynome(tete:liste);
- begin
- write('P(x)= ');
- while(tete<>nil) do
- begin
- if (tete^.coff <>0) then
- begin
- if (tete^.exp<>0) and (tete^.exp<>1) then write(tete^.coff:3:3, 'x^', tete^.exp,' + ')
- else if (tete^.exp=1) then write(tete^.coff:3:3, 'x + ')
- else write(tete^.coff:3:3);
- end;
- tete:=tete^.suiv;
- end;
- writeln;
- end;
- function puiss(x:integer; tete:liste):integer;
- var p,i,a:integer;
- begin
- a:=tete^.exp;
- p:=1;
- for i:=1 to a do
- p:=p*x;
- puiss:=p;
- end;
- function calculerImage(tete:liste; x:integer):real;
- var i,taille:integer; resultat:real;
- begin
- resultat:=0;
- taille:=n;
- for i:=1 to taille do
- begin
- resultat := resultat + tete^.coff*puiss(x,tete);
- tete:=tete^.suiv;
- n:= n-1;
- end;
- calculerImage:=resultat;
- end;
- function addition(tete1:liste; tete2:liste):liste;
- var p,q,a,s,t,tete:liste;
- tr:boolean;
- begin
- p:=tete1;
- q:=tete2;
- tete:=nil;
- t:=tete;
- s:=tete;
- tr:=false;
- while(q^.suiv<>nil) do
- begin
- if (p^.exp=q^.exp) then begin
- new(a);
- a^.exp:=p^.exp;
- a^.coff:=p^.coff+q^.coff;
- if (tete=nil) then tete:=a
- else s^.suiv:=tete;
- s:=a;
- tr:=true;
- end
- else begin
- new(a);
- a^.exp:=q^.exp;
- a^.coff:=q^.coff;
- if (tete=nil) then tete:=a
- else s^.suiv:=tete;
- s:=a;
- end;
- q:=q^.suiv;
- end;
- if (tr=false) then begin
- new(a);
- a^.exp:=p^.exp;
- a^.coff:=p^.coff;
- s^.suiv:=a;
- s:=a;
- end;
- p:=p^.suiv;
- tr:=false;
- while (p<>nil) do
- begin
- while(t<>nil) do
- begin
- if (p^.exp=t^.exp) then begin
- new(a);
- a^.exp:=p^.exp;
- a^.coff:=p^.coff+t^.coff;
- if (tete=nil) then tete:=a
- else s^.suiv:=tete;
- s:=a;
- tr:=true;
- end;
- t:=t^.suiv;
- end;
- if (tr=false) then begin
- new(a);
- a^.exp:=p^.exp;
- a^.coff:=p^.coff;
- s^.suiv:=a;
- s:=a;
- end;
- p:=p^.suiv;
- end;
- addition:=tete;
- end;
- function multip(tete1:liste;tete2:liste):liste;
- var p,q,a,s,tete:liste;
- begin
- p:=tete1;
- q:=tete2;
- tete:=nil;
- s:=tete;
- while (p<>nil) do
- begin
- while (q<>nil) do
- begin
- new(a);
- a^.coff:=p^.coff*q^.coff;
- a^.exp:=p^.exp+q^.exp;
- if (tete=nil) then begin
- tete:=a;
- s:=a;
- end
- else begin
- s^.suiv:=a;
- s:=a;
- end;
- q:=q^.suiv;
- end;
- q:=tete2;
- p:=p^.suiv;
- end;
- multip:=tete;
- end;
- begin
- clrscr;
- writeln('entrer le degre de Polynome1');
- readln(n);
- creerPolynome(tete1,n);
- afficherPolynome(tete1);
- writeln('entrer la valeur');
- writeln('entrer le degre de Polynome2');
- readln(m);
- creerPolynome(tete2,m);
- afficherPolynome(tete2);
- write('la somme est');
- addition(tete1,tete2);
- afficherPolynome(addition(tete1,tete2));
- readln;
- end.
Add Comment
Please, Sign In to add comment