Forum pour les élèves lycéens
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment : -50%
-50% Baskets Nike Air Huarache Runner
Voir le deal
69.99 €

Erreur dans l'execution

Aller en bas

Erreur dans l'execution Empty Erreur dans l'execution

Message par Invité Lun 8 Oct - 20:38

program application;
uses wincrt;
type
livre = record
aut : string ;
an : integer ;
tit : string ;
dom : string ;
pag : integer ;
end;
livr = file of livre ;
var
f : livr ; l:livre ; n : integer ;
procedure remplir ( var f :livr; l:livre; var n : integer ) ;
var
i: integer ;
begin
repeat
writeln ( ' n = ' ) ;
readln (n) ;
until ( n >= 2 ) and ( n < 50 ) ;
rewrite(f);
for i:= 1 to n do
begin
with l do
begin
writeln ('aut = ' ) ;
readln (aut);
writeln ('an = ') ;
readln (an);
writeln ('tit = ');
readln (tit);
writeln (' dom = ') ;
readln (dom);
writeln ('pag = ');
readln(pag);
end;
write(f,l);
end;
end;
procedure affiche (var f : livr ; l :livre; n :integer ) ;
var
i,a,min:integer;
begin
reset (f) ;
read(f,l);
min:= l.an ;
while not eof do
begin
read(f,l);
a:=l.an;
if min > a then
min := a;
end;
writeln(min);
end;
begin
assign (f,'C:\livres.dat');
remplir (f,l,n) ;
affiche (f,l,n);
end.

Invité
Invité


Revenir en haut Aller en bas

Erreur dans l'execution Empty Re: Erreur dans l'execution

Message par haiethem Lun 8 Oct - 23:19

Salem Mondher.

L'erreur est dans la procédure affiche : (while not eof do)


tu dois faire : while not eof (f) do

haiethem
haiethem

Messages : 485
Points : 27003
Réputation : 3
Date d'inscription : 08/11/2010
Age : 47

http://www.gdiri.info

Revenir en haut Aller en bas

Erreur dans l'execution Empty Re: Erreur dans l'execution

Message par haiethem Lun 8 Oct - 23:22

voici ton programme (avec une petite amélioration) :

procedure remplir ( var f :livr; l:livre; var n : integer ) ;
var
i: integer ;
begin
writeln('REMPLIR');
repeat
writeln ( ' n = ' ) ;
readln (n) ;
until ( n >= 2 ) and ( n < 50 ) ;
rewrite(f);
for i:= 1 to n do
begin
with l do
begin
writeln ('aut = ' ) ;
readln (aut);
writeln ('an = ') ;
readln (an);
writeln ('tit = ');
readln (tit);
writeln (' dom = ') ;
readln (dom);
writeln ('pag = ');
readln(pag);
end;
write(f,l);
end;
close(f);
end;

procedure affiche (var f : livr ) ;
var
min : livre;
a:integer;
begin
writeln('AFFICHE');
reset (f) ;
read(f,l);
min:= l ;
while not eof (f) do
begin
read(f,l);
a:=l.an;
if min.an > l.an then
min := l;
end;
writeln('auteur : ',min.aut,' année : ',min.an, ' *** ');
close(f);
end;
begin
assign (f,'C:\bac2013\livres.dat');
remplir (f,l,n) ;
affiche (f);
end.
haiethem
haiethem

Messages : 485
Points : 27003
Réputation : 3
Date d'inscription : 08/11/2010
Age : 47

http://www.gdiri.info

Revenir en haut Aller en bas

Erreur dans l'execution Empty Re: Erreur dans l'execution

Message par Invité Mar 9 Oct - 12:06

Salem,
Merci Monsieur .
aussi il faut ke jajoute dmodifications dans la procedure affiche
procedure affiche (var f : livr ; l :livre; n :integer ) ;
var
i,a,min:integer; k:string;
begin
reset (f) ;
read(f,l);
min:= l.an ;
while not eof(f) do
begin
read(f,l);
a:=l.an;
if min > a then
min := a; k:= l.aut;
end;
writeln(k);
end;

Invité
Invité


Revenir en haut Aller en bas

Erreur dans l'execution Empty Re: Erreur dans l'execution

Message par haiethem Jeu 11 Oct - 11:55

Noublie pas de fermer f à la fin de la procédure
haiethem
haiethem

Messages : 485
Points : 27003
Réputation : 3
Date d'inscription : 08/11/2010
Age : 47

http://www.gdiri.info

Revenir en haut Aller en bas

Erreur dans l'execution Empty Re: Erreur dans l'execution

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum