Dhifallah Fethi Admin
Messages : 74 Date d'inscription : 02/03/2011
| Sujet: Exercice 3 (Enregistrement et fichiers) Dim 27 Mar - 2:04 | |
| Exercice 3 (Enregistrement et fichiers) Ecrivez un programme modulaire nommé ECOLE qui permet la saisie de toutes les fiches des N élèves d’une classe (4<N<30) puis d’afficher : 1- Toutes les fiches (une par une et avec une attente jusqu’à l’appui sur la touche ENTREE) 2- Le nombre de garçons et le nombre de filles dans la classe. 3- Le pourcentage des élèves ayant une moyenne>= 10 par apport au nombre total des élèves. 4- Traduisez ce programme en pascal et l’enregistrez sous le nom application orrection de l'exercice - Code:
-
program ecole;
uses WinCrt; type Eleves =record Num : integer; Code : string[8]; Np : string[30]; Sexe : char; Moy : Real; end; Tab= array [1..30] of Eleves; var t:tab; n, G, F,i :integer;
P:real;
procedure saisie (var t : tab ; var n :integer);
begin repeat write ('Donner N'); read (n); until n in [4..30]; for i := 1 to n do with t [i] do begin write ('Donner Num : '); readln (num); write ('Donner Code'); readln (code); write ('Donner Nom et Prénom : '); readln (np); write ('Donner le sexe : '); repeat read (sexe); until (upcase (Sexe) in ['G','F']); write ('Moyenne ='); repeat readln (moy); until (moy>= 0) and (moy <= 20); end; end;
procedure affiche (t : Tab ; n :integer); begin for i := 1 to N do with t [i] do begin write ('Num=', num); write ('Code=', code); write ('NP=', np) ; write ('Sexe=', moy : 3 :2); end; read; clrscr; end;
procedure nbg_f (t : Tab ; n : integer ; var g, f : integer) ; begin g:= 0; f:= 0; for i := 1 to n do begin if upcase (t [i]. sexe)= 'G' then g:= g+1 else f:= f+1; end; end;
function pourcentage(t :tab ; n : integer) : real; var x:integer; pr: real; begin X:= 0; for i := 1 to n do if t[i].moy>= 10 then x:= x+1;
Pr := (x* 100)/n; pourcentage:= pr ; end;
begin
saisie (t,n); affiche (t,n); nbg_f (t,n,g,f); write ('nombre de garçon : ',G, 'nombre de fille', F) ; writeln(''); P:=pourcentage(t,n); write ('pourcentage= ', p : 3 : 2, '%');
end. | |
|