Vous êtes sur la page 1sur 3

Program exo4;

Type
enseignant = Record
nom,prenom : string[30];
email : string[20];
End;
classe = Record
filiere : string[50];
niveau : string[60];
End;
date = Record
jour : 0..6;
hdebut : integer;
hfin : integer;
End;
cours = Record
types : string[30];
matiere : string[40];
enseignant : enseignant;
classe : classe;
salle : string[50];
date : date;
End;

tab = array[1..100] Of cours;

Procedure ajout(var t:tab;n:integer);


Var
i : integer;
Begin
For i:=1 To n Do
With t[i] Do
Begin
writeln('donner le type du cours et la matiere');
readln(types);
readln(matiere);
With enseignant Do
Begin
writeln('donner le prenom du prof : ');
readln(prenom);
writeln('donner le nom du prof: ');
readln(nom);
writeln('donner son email');
readln(email);
End;
With classe Do
Begin
writeln('donner la filiere: ');
readln(filiere);
writeln('donner le niveau: ');
readln(niveau);
End;
writeln('donner la salle: ');
readln(salle);
With date Do
Begin
writeln('jour: ');
readln(jour);
writeln('heure de debut: ');
readln(hdebut);
writeln('heure de fin: ');
readln(hfin);
End;
End;
End;

Procedure afficher_cours(t:tab;n:integer);
var
i:integer;
begin
for i:=1 to n do
begin
writeln('||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||' );
For i:=1 To n Do
With t[i] Do
Begin
writeln('type: ');
writeln(types);
writeln('matiere: ');
writeln(matiere);
With enseignant Do
Begin
writeln('enseignant: ');
writeln(prenom,' ',nom);
End;
With classe Do
writeln('classe: ', niveau,' ',filiere);
writeln('salle: ',salle);
With date Do
Begin
writeln('jour: ',jour);
writeln('heure: ',hdebut,' ',hfin);
End;
writeln( '-------------------------------------------------------------------------------------------' );
End;
end;
end;

Function rechercher(t:tab;n:integer;x:String) : integer;


Var
i : integer;
Begin
for i:=1 to n do
if t[i].matiere=x then
begin
rechercher:=i;
end
else
rechercher:=-1;
end;
procedure afficheRechercher(t:tab;n:integer;x:string);
var
i:integer;
begin
i := rechercher(t,n,x);
if i <> -1 then
begin
writeln('||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||');
writeln('type : ',t[i].types);
writeln('matiere : ',t[i].matiere);
writeln('enseignant : ',t[i].enseignant.prenom,' ',t[i].enseignant.nom);
writeln('email : ',t[i].enseignant.email);
writeln('classe : ',t[i].classe.filiere,' ',t[i].classe.niveau);
writeln('salle : ',t[i].salle);
writeln('jour : ',t[i].date.jour);
writeln('heure debut : ',t[i].date.hdebut);
writeln('heure fin : ',t[i].date.hfin);
writeln('--------------------------------------------------------------');
end
else
writeln('objet non trouver');
end;

Procedure modifier(var t:tab;n:integer;x:String);


Var
i : integer;
Begin
i := rechercher(t,n,x);
if i <> -1 then
begin
writeln('donner le nouveau type du cours');
readln(t[i].types);
writeln('donner la nouvelle matiere');
readln(t[i].matiere);
writeln('donner le nouveau prenom du prof');
readln(t[i].enseignant.prenom);
writeln('donner le nouveau nom du prof');
readln(t[i].enseignant.nom);
writeln('donner le nouvel email');
readln(t[i].enseignant.email);
writeln('donner la nouvelle filiere');
readln(t[i].classe.filiere);
writeln('donner le nouveau niveau');
readln(t[i].classe.niveau);
writeln('donner la nouvelle salle');
readln(t[i].salle);
writeln('donner le nouveau jour');
readln(t[i].date.jour);
writeln('donner la nouvelle heure de debut');
readln(t[i].date.hdebut);
writeln('donner la nouvelle heure de fin');
readln(t[i].date.hfin);
end
else
writeln ('cours non trouve');
End;
Procedure supprimer(var t:tab; var n: integer; x:String);
var
i,j: Integer;
begin
i:= rechercher(t,n,x);
if i <> -1 then
begin
for j := i to n-1 do
t[j] := t[j+1];
n := n-1;
writeln('cours ', x, ' a ete supprime avec succes');
end
else
writeln ('cours non trouve');
end;
var
t:tab;
n,i:integer;
x,y,z:string;
begin
writeln('donner le nombre de cours');
readln(n);
ajout(t,n);
afficher_cours(t,n);
writeln('donner la matiere a rechercher');
readln(x);
afficheRechercher(t,n,x);
writeln('donner la matiere a modifier');
readln(y);
modifier(t,n,y);
writeln('donner la matiere a supprimer');
readln(z);
supprimer(t,n,x);
afficher_cours(t,n);
end.

Vous aimerez peut-être aussi