Aide turbo pascal
djwalid
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
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.
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:
- Aide turbo pascal
- Turbo pascal - Télécharger - Édition & Programmation
- My pascal - Télécharger - Édition & Programmation
- Dev pascal - Télécharger - Édition & Programmation
- Turbo sim inconvénient - Forum iPhone
- Turbo meeting - Télécharger - Messagerie