Bonjour,

le but de l'exercice c'est d'éliminer tous les caractères non alphabétiques et puis d'afficher les chaînes non vides à côté de leurs indices.

C'est ce que j'ai fait mais le programme se bloque, se ferme et affiche "General protection fault " (après avoir rempli le tableau).
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
program nbc;
uses wincrt ;
type
tab =array[1..20]of string ;
var
t:tab;
n:integer;  ch:string;
 
 
procedure saisie (var n:integer ; var t:tab);
var i:integer;
begin 
 
writeln('donner n ');
readln(n);
for i :=1 to n do
begin
writeln('donner t [',i,']');
readln(t[i]);
  end;end;
 
 
function eli(var ch: string ):string;
var j:integer;
begin 
j:=1;
repeat
if not(upcase (ch[j]) in ['A'..'Z'])
then  begin                  
delete(ch,j,1);
end;
j:=j+1;
until (j=length(ch));
end;
 
 
 
procedure fin (t:tab; var ch :string);
var i:integer;
begin
for i :=1 to n
do begin
eli(ch);
ch:=eli(ch); writeln( ch) ; end;
if ch<>''
then  begin
writeln (ch,i);
end;
 end;
 
 
 
 begin
 saisie(n,t);
 fin(t,ch);
 end.