program exercice_1;
const { Question a
}
nb_numero = 100;
type
gardien = record
nom: string[20];
prenom: string[20];
age: integer; {
On peu aussi mettre 0..150 }
end;
studio = gardien;
membre = record
prenom: string[20];
age: integer;
end;
appartement = record
n: string[20];
p: array[1..10] of membre;
end;
immeuble = record
g: gardien;
stud: array[1..20] of studio;
appart: array[1..20] of appartement;
end;
rue = array[1..nb_numero] of immeuble;
var
r: rue;
i: integer;
procedure efface (var i: immeuble); {
Question c }
var j, k: integer;
begin
for j := 1 to 20 do
i.stud[j].nom := '';
for j := 1 to 20 do
begin
i.appart[j].n := '';
for k := 1 to 10 do
i.appart[j].p[k].prenom := '';
end;
end; { Fin de 'efface'
}
function recensement (r: rue): integer;
{ Question d }
var c, i, j, k: integer;
begin
c := 0; { la
variable c est un compteur }
for i := 1 to nb_numero do
begin
for j := 1 to 20 do {
Les studios }
if r[i].stud[j].nom
<> '' then
c := c + 1;
for j := 1 to 20 do {
Les appartements }
for k := 1 to 10 do
if r[i].appart[j].p[k].prenom <>
'' then
c := c + 1;
end;
c := c + 100; { il
ne faut pas oublier les gardiens des immeubles
}
recensement := c;
end; { Fin de
'recensement' }
begin { Corps du
programme }
{ Question b }
with r[12].stud[5] do
begin
nom := 'Dupont';
prenom := 'Paul';
age := 20;
end;
with r[5].appart[10] do
begin
n := 'Dubois';
p[1].prenom := 'Claude';
p[2].prenom := 'Dominique';
p[1].age := 39;
p[2].age := 40;
for i := 3 to 10 do {
Il n'y a pas d'occupant }
p[i].prenom := '';
end;
{ ©2001 All
Rights Reserved to http://www.Software-DS.com
}
end.