Bonjour,
j'ai un souci avec ce programme : quand je compile, il ne détecte pas d'erreurs mais quand je l'exécute et je remplis mon tableau 1 dimension il sort avec une fenêtre "exitcode 215". J'ai consulté l'aide mais je n'ai pas compris l'explication de cette erreur, en sachant que les modules que j'ai déclarés (permut,ind_min_1d,tri_sel,lect1d) marchent. Peut-être que l'erreur est dans le dernier module, je ne sais pas où est l'erreur , est-ce que quelqu'un pourrait m'aider à résoudre cette galère ?
Je vous serai très reconnaissant, merci d'avance
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
89
90
91
92
93
94
95
96
97
98
99
program test_zone_debordement;
 
type tab1d=array[1..10000] of longint;
 
var taille:longint;
    T:tab1d;
 
procedure permut(var A,B:longint);
 
(* ------------------------------------------------------ *)
(*      Ce procedure permet de permuter A avec B              *)
(* ------------------------------------------------------ *)
 
var save:longint;
begin
save:=A;
A:=B;
B:=save;
end;
 
 
function ind_min_1d(T:tab1d;b1,b2:longint):longint;
 
(* --------------------------------------------------------------------------------------------- *)
(* Cette fonction donne l'indice de l'élément le plus petit du tableau T entre l'indice b1 et b2 *)
(* --------------------------------------------------------------------------------------------- *)
 
var i,ind,pp:longint;
begin
ind:=b1;
pp:=T[b1];
for i:=b1+1 to b2 do
 if pp>T[i] then
   begin
    pp:=T[i];
    ind:=i;
   end;
ind_min_1d:=ind;
end;
 
procedure tri_sel(var T:tab1d;taille:longint);
 
(* ----------------------------------------------------------------------- *)
(* Cette procedure trie les éléments du tableau T d'une manière croissante *)
(* ----------------------------------------------------------------------- *)
 
var i:longint;
begin
for i:=1 to taille-1 do
permut(T[i],T[ind_min_1d(T,i,taille)]);
end;
 
 
procedure lect1d(var T:tab1d; var taille:longint);
 
(* ------------------------------------------------------------------------------------------ *)
(* Cette procedure permet de lire un tableau à 1 dimension dont les éléments sont des entiers *)
(* ------------------------------------------------------------------------------------------ *)
 
var i:longint;
begin
writeln('Donner la taille du tableau');
readln(taille);
writeln('veuillez saisire les éléments de votre tableau');
for i:=1 to taille do
 begin
  writeln('T[',i,']=');
  read(T[i]);
 end;
end;
 
 
 
 
function zone_debor(T:tab1d;taille:longint):longint;
 
(* ------------------------------------------------------------------------------ *)
(* Cette fonction calcule le nombre de synonymes dans un tableau 1 dimension trié *)
(* ------------------------------------------------------------------------------ *)
 
var i,cpt:longint;
 
begin
cpt:=0;
for i:=2 to taille do
 begin
 while T[i-1]=T[i] do
  cpt:=cpt+1;
 end;
zone_debor:=cpt;
 
end;
 
begin
lect1d(T,taille);
tri_sel(T,taille);
writeln('la taille du débordement est:',zone_debor(T,taille));
readln;
end.