Erreur d'exécution "runtime error 105"
salut vous tous,
Voila je rencontre un petit problème en pascal .
j'ai fait aussi la compilation de ce programme et ça aboutit à 0 erreurs mais le le problème qu'il y a une erreur d'exécution
"runtime error 105" et que je n'ai pas pu savoir la cause. Elle peut être dû l'appel de la fonction nb_occ dans la procédure remplir, je ne sais pas puisque je suis un ultradébutant en turbo pascal.
voici le programme que j'ai fait :
Code:
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
| program unique;
uses wincrt;
type
x=array [1..50] of string;
y=array [1..50] of integer;
var
t1;
t2:y;
i,n:integer;
procedure saisir(var n:integer;var t1);
var
i:integer;
begin
repeat
writeln('donner n ');
readln(n);
until n in [3..50];
for i := 1 to n do
begin
repeat
writeln('donner t1[',i, ']');
readln(t1[i]);
until length(t1[i]) in [1..30];
end;
{for i:=1 to n do
writeln(t1[i]); }
end;
function nb_occ (c:char;b:string):integer;
var
i,nbc:integer;
begin
nbc:=0;
for i:= 1 to length(b) do
begin
if b[i] =c then
nbc:=nbc+1;
end;
nb_occ:=nbc;
end;
procedure remplir(n:integer;t1;var t2:y);
var
occ,i,j,nb:integer;
ch:string;
begin
writeln('***************************');
nb:=0;
for i := 1 to n do
begin
ch:= t1[i];
for j := 1 to n do
begin
if nb_occ(ch[j],ch) =1 then
nb:= nb +1;
end;
t2[i]:= nb;
end;
end;
begin{pp}
saisir(n,t1);
remplir(n,t1,t2);
for i:= 1 to n do
writeln (t2[i]);
end. |
God bless you