Bonjour
Je dois réaliser un programme qui additionne 2 polynômes. J'ai créé des procédures qui ordonnent un polynôme mais j'ai une erreur lors de l'exécution du programme pour l'addition.
Je sais que cela signifie qu'il y a un problème avec les maillons mais je ne le trouve pas.
Pouvez-vous m'aider ?
Voici mon programme
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 procedure addition (po1, po2:polynome; s:polynome); var p1, p2, som, ms, mp: polynome; begin p1 := po1; p2 := po2; som := nil; while (p1<>nil) or (p2<>nil) do begin while (som^.lien<>nil)do begin mp:=som; som:=som^.lien; end; if (p1^.puis = p2^.puis) then begin if (p1^.coef + p2^.coef <> 0) then begin ms := som; new (som); som^.coef := p1^.coef + p2^.coef; som^.puis := p1^.puis; som^.lien := ms; ms^.lien := som; p1 := p1^.lien; p2 := p2^.lien; end else begin p1 := p1^.lien; p2 := p2^.lien; end; end else begin if (p1^.puis < p2^.puis) then begin ms := som; new (som); som^.coef := p2^.coef; som^.puis := p2^.puis; som^.lien := ms; ms^.lien := som; p2 := p2^.lien; end else begin ms := som; new (som); som^.coef := p1^.coef; som^.puis := p1^.puis; som^.lien := ms; ms^.lien := som; p1 := p1^.lien; end; end; end; end;
Partager