Aide turbo pascal

Fermé
djwalid Messages postés 8 Date d'inscription dimanche 6 avril 2008 Statut Membre Dernière intervention 9 novembre 2008 - 20 oct. 2008 à 23:27
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 21 oct. 2008 à 13:36
Bonjour,
svp je veut savoir l'algorithme de la procédure tri dans les fichier par exemple j'ai un programme qui contient des élèves

chaque élève a un nom une note1 note 2 et moyenne juste je veut savoir comment faire le tri par moyenne et puis savoir le rang de chaque élève et merci voila le programme en marche



program cours;
uses wincrt;


type

str20 = string[20];

eleve =record

nom : str20;
note1,note2,moy :real;

rang: integer;

end;

moyenne = file of eleve;

var

f : moyenne;

e : eleve;


{-----------------------------------------}
procedure ouvrir ( var f : moyenne );
begin

{$i-} reset (f); {$i+}

if ioresult <> 0 then rewrite (f);

end;


{-----------------------------------------}

procedure saisie ( var e : eleve);

begin

with e do

begin


write ('nom : '); readln (nom);

repeat

write ('note 1: ') ; readln (note1)
until
(note1>=0) and (note1 <= 20);

repeat

write ('note 2 :') ; readln (note2)

until

(note2>=0) and (note2 <= 20);

moy := (note1+2*note2)/3;

rang :=0;
end;

end;
{-----------------------------------------}
procedure modifier ( var f: moyenne );

var

x : integer ;

e: eleve ;

begin

repeat

write (' position de lelement a modifier ');

readln (x);

until x in [1.. filesize(f)];


seek (f,x-1);

saisie (e);

write (f,e);

end;

{-----------------------------------------}
procedure supprimer (var f : moyenne);

var

x :integer;
e: eleve;

begin

repeat

write (' position de suppression ');

readln (x);

until x in [1..filesize(f)];

seek (f,x-1);

truncate (f);

end;

{-----------------------------------------}
procedure lecture ( var f : moyenne);
var
e:eleve;
c : char;
begin
seek(f,filesize (f));

repeat

writeln ('....... nouveau enregistrement ..........');

saisie (e);

write (f,e);

writeln (' echap pour quitter');
c := readkey

until (c = chr(27));

end;

{-----------------------------------------}
procedure affiche (var f: moyenne);
var
e: eleve;

begin

reset(f);

while not eof (f) do

begin

read (f,e);

writeln (e.nom :10,e.note1:10:2,e.note2:10:2,e.moy:10:2,e.rang:10);


end;

end;

{-----------------------------------------}

procedure menu ;

var
c : char;

begin


clrscr;

writeln (' --------------- MENU ----------------');
writeln;
writeln (' @ 1 AJOUTER @ ') ;
writeln;
writeln (' @ 2 AFFICHER @ ');
writeln;
writeln (' @ 3 MODIFIER @ ');
writeln;
writeln (' @ 4 SUPPRIMER @ ');
writeln;
writeln (' @ 5 Quitter @ ');
writeln (' --------------------------------------');
repeat


c := readkey;

until c in ['1'..'5'];

case c of

'1' : begin
clrscr;
writeln ('---- 1 Ajouter enregistrement ---- ');
lecture (f);
menu;

end;

'2' :begin

clrscr;

writeln (' ---- 2 Afficher tout --------');

affiche (f);
readkey;
menu;
end;

'3' : begin

clrscr;

writeln (' ------ 3 Modifier ------- ');

modifier (f);

readkey;

menu;

end;

'4':
begin

clrscr;

writeln (' -------- 4 supprimer -----');

supprimer (f);

readkey;

menu;


end;


'5': donewincrt;


end;
end;



{-----------------------------------------}

begin

assign (f,'C:\sinfo\cours.txt');
ouvrir (f);

menu;
end.
A voir également:

2 réponses

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
21 oct. 2008 à 13:36
Commence par aller voir par ici
1
djwalid Messages postés 8 Date d'inscription dimanche 6 avril 2008 Statut Membre Dernière intervention 9 novembre 2008
20 oct. 2008 à 23:36
allllllllllloooooooooooooooo
-1