Posted by : aymen
Thursday, 26 September 2013
Exercice 1:
Ecrire un programme permettant de saisir n personnes avec n compris entre 3 et 12
et d'afficher les noms des personnes contentant 6 caractéres dans leurs noms et dont la date de naissance reste encore plus deux mois a partie d'une date saisir par le clavier (j/m/a).
Sachant qu'une personne est caractérisée par non et prénom et date de naissance (j/m/a).
.
.
.
.
program ex1;
uses wincrt;
type
date=record
j,m,a:integer
end;
ereg=record
n,p:string;
dn:date
end;
tab=array[1..5]of ereg;
var
t:tab;
n:integer;
t1,a:date;
procedure saisir (var t:tab ; var n:integer;var t1:date);
var
i:integer;
begin
repeat
write('saisir n ') ;readln(n) ;
until (n>=3) and (n<=12);
for i:=1 to n do
begin
writeln('la personne ',i);
with t[i] do
begin
write ('saisir n ');readln(n);
write ('saisir p ');readln(p);
with dn do
begin
write ('saisir jour ');readln(j);
write ('saisir mois ');readln(m);
write ('saisir anne ');readln(a);
end;
end;
end;
with t1 do
begin
write ('saisir jour');readln(j);
write ('saisir mois');readln(m);
write ('saisir anne');readln(a);
end;
end;
procedure affiche (t:tab;n:integer; t1 : date );
var
i,nb1,nb2:integer ;
begin
for i := 1 to n do
begin
nb1:=t[i].dn.a * 12+t[i].dn.m ;
nb2:=t1.a*12+t1.m;
if ( nb1-nb2>=2 ) and ( length(t[i].n)>=6 ) then
write (t[i].n);
end;
end;
begin
saisir(t,n,t1);
affiche(t,n,t1);
end.