Bonsoir,
Voilà, j'ai un autre exercice qui permet de calculer le nombre de mots dans un fichier texte. J'ai essayé avec ce code mais j'ai un résultat d'exécution incorrect : 4361 mots dans le fichier. Je ne trouve pas mon erreur de programmation, voilà mon code.
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
program NBRMOT;
uses wincrt;
var
t:text;
ph:string;
 
 
procedure creation (var t:text);
begin
assign(t,'D:\TPPAS\source.txt');
rewrite(t);
end;
 
procedure saisie_PH(p:string);
begin
repeat
writeln('Saisir une phrase');
readln(p);
until (p[1] in ['A'..'Z'])and (p[length(p)]='.');
end;
 
Procedure saisie (var t:text);
var
n,i:integer;
begin
repeat
writeln('Donner le nombre de phrase à saisir');
readln(n);
until (n>0);
for i:=1 to n do
begin
saisie_PH(ph);
append(t);
writeln(t,ph);
end;
end;
 
Function MOT (p:string):integer;
var
i,nb:integer;
 
begin
nb:=1;
for i:=1 to length(p) do
if p[i]=' 'then
nb:=nb+1;
end;
 
Function NBMOT (var t:text):integer;
var
nbm:integer;
begin
reset(t);nbm:=0;
while not(eof(t)) do
begin
readln(t,ph);
nbm:=Mot(ph);
end;
NBMOT:=nbm;
end;
 
BEGIN
creation(t);
saisie(t);
writeln(NBMOT(t));
END.