Vous êtes sur la page 1sur 3

program fichierenre;

uses crt;
const n=2;
type matiere=record
libelle:string;
coef:byte;
ndv:real;
nex:real;
m:real;
end;
etudiant=record
nume:integer;
nom:string;
prenom:string;
note:array[1..2]of matiere;
moyengen:real;
end;
var
etud:array[1..n] of etudiant;
i,a,j:integer; smpt:real; b1,b2:integer;
smcoef:byte; pt:real;
e:file of etudiant;
s:file of etudiant;
f:file of etudiant;

procedure remplir (var k : file of etudiant);


begin
assign(k,'D:\informatique\etudiantia2');
rewrite(k);
a:=0;
for i:=1 to n do
begin
write ('Numero de l''�tudiant ',i,' : ');
readln(etud[i].nume);
write ('Nom de l''�tudiant',i, ' : ');
readln (etud[i].nom);
write ('Prenom de l''�tudiant ',i,' : ');
readln (etud[i].prenom);
writeln;
smcoef:=0;
smpt:=0;
for j:=1 to 2 do
begin
write ('Libell� de la mati�re ',j,' : ');
readln (etud[i].note[j].libelle);
write('Coefficient de la mati�re ',j,' : ');
readln(etud[i].note[j].coef);
smcoef:=smcoef+etud[i].note[j].coef;
write('Note de devoir en ',etud[i].note[j].libelle,' : ');
readln(etud[i].note[j].ndv);
write('Note d''examen en ',etud[i].note[j].libelle,' : ');
readln(etud[i].note[j].nex);
etud[i].note[j].m:=((etud[i].note[j].ndv*0.3)+
(etud[i].note[j].nex*0.7));
writeln;
writeln('La moyenne en ',etud[i].note[j].libelle,' est:
',etud[i].note[j].m:0:2);
writeln;
pt:=(etud[i].note[j].m * etud[i].note[j].coef);
smpt:=smpt+pt;
end;
etud[i].moyengen:=smpt/smcoef;
writeln('la moyenne g�n�rale de',' ',etud[i].nom, ' ',etud[i].prenom,'
est : ',etud[i].moyengen:0:2);
writeln;
seek(k,a);
write(k,etud[i]);
a:=a+1;
end;
close(k);
end;

procedure affichfich (var l : file of etudiant; h:string);


begin
reset (l);
writeln ('le nombre des �tudiants qui ont une moyenne ',h,' 10 est ', filesize
(l),' dont :');
while not (eof (l)) do
begin
read (l, etud[i]);
writeln (' ',etud[i].nume,' ',etud[i].nom,' ',etud[i].prenom,' avec une
moyenne de ',etud[i].moyengen:0:2);
end;
end;
procedure constitution (var k,p,d:file of etudiant);
var b1, b2: integer;
begin
reset (k);
assign(p,'D:\informatique\moyennesup10');
assign(d,'D:\informatique\moyenneinf10');
rewrite(p);
rewrite(d);
b1:=0 ;b2:=0;

while not(eof(k)) do
begin
read (k, etud[i]);
if (etud[i].moyengen>=10) then
begin
seek(p,b1);
write(p,etud[i]);
b1:=b1+1;
end
else
begin
seek(d,b2);
write(d,etud[i]);
b2:=b2+1;
end;
end;
end;
BEGIN
clrscr;
remplir(e);
constitution (e,s,f);
writeln;
affichfich (s,' >= ');
writeln;
close(e);
close(s);
close(f);
readkey;
END.

Vous aimerez peut-être aussi