Salut Tout le monde
et bien voila un exercice que j'ai passé une demie journée a le faire
Je veux savoir si vous avez quelques suggestions,conseils ou même de remarques ...
J'éspere que le programme marche correctement et qu'il n'y a pas des exceptions ...
Bon voila l'ennoncé de l'exercice
Saisir le degré du polynome n appartient [2..10] Calculer et afficher le polynome Ainsi que sa derivé par rapport à a .
EX : (a+b) puissance 2 sera egal à: a puissance 2 + 2ab + b puissance 2
et les derivé de a sont : 2a et 2
Voila ce que j'ai pu faire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
program exercice ;
uses wincrt ;
type
    mat=array[0..10,1..11] of integer ;
 
var
   m : mat ;
   n : integer ;
 
procedure saisie (var n : integer  );
 begin
  repeat
   writeln('Saisir le degré du polynome :');
   readln(n);
  until n in [2..10] ; 
 end;
 
procedure remplir (var m : mat ; n : integer );
var
l,c : integer ;
 
begin
 m[0,1]:=1 ;
 m[1,1]:=1 ;
 m[1,2]:=1 ;
  for l:= 2 to n do
    begin
     m[l,1]:=1 ;
     m[l,l+1]:=1 ;
      for c:= 2 to l do
       begin
        m[l,c]:=m[l-1,c-1]+m[l-1,c] ;
       end; 
    end;
  end;
 
procedure affiche (m : mat ; n : integer ) ;
var
x,y,l,c : integer ;
begin
 x:=n ;
 y:=0 ;
 writeln('le polynome est :');
 
 for c:= 1 to n+1 do
  begin
   write(m[n,c]) ;
    if x <> 0 then
     write('a',x);
      if y <> 0 then
       write('b',y);
        if c <> n+1 then
         begin
          write('+');
          x:=x-1 ;
          y:=y+1 ;
         end;
  end; 
end;
 
procedure deriver  (m : mat ; n : integer ) ;
var
x,y,l,c : integer ;
 
begin
 x:=n ;
 y:=0 ;
 writeln;
 write('les derivés de a sont :');
 for c:= 1 to n+1 do
  begin
    if x <> 0 then
     begin
     writeln ;
     write(m[n,c]*x,'*a*',(x-1));
     end;
      if c <> n+1 then
       begin
        x:=x-1 ;
       end;
  end; 
end;
begin
saisie(n);
remplir(m,n);
affiche(m,n);
deriver (m,n);
end.