On souhaite gérer l'affichage de l'arrivée d'une course
cycliste sur un panneau spécialisé. Les coureurs sont représentés
par leur numéro de dossard. Seuls les 12 premiers coureurs
apparaissent sur ce panneau.
Question 1
Enonçé
Construire un programme qui enregistre l'arrivée d'une course
cycliste par lecture au clavier du numéro de dossard de chacun des
12 premiers coureurs pour la diffusion aux media et
l'affichage.
L'affichage du panneau sera réalisé selon le modèle
suivant :
PLACE DOSSARD
1
163
2
42
3
14
etc...
La première colonne est alignée sur la colonne 5, la seconde
sur la colonne 12.
Note : la diffusion aux media fera l'objet d'une évolution future
du programme.
Travail demandé
Solution
Algorithme
-- niveau 1
-- On suppose que les numéros de
dossard sont lus selon l'ordre d'arrivée des coureurs
début
Lecture et mémorisation
des numéros de dossards;
Affichage des numéros
de dossards;
fin;
-- niveau 2.1
-- Lecture et mémorisation des numéros
de dossards;
début
repeter 12 fois
afficher la chaine "Tapez
le numéro de dossard du coureur arrivé";
afficher sa place d'arrivée;
lire et mémoriser
le numéro de dossard;
fin repéter;
fin;
-- niveau 2.2
-- Affichage des numéros de dossards;
début
Afficher la première
ligne ("PLACE DOSSARD");
Passer à la ligne;
repeter 12 fois
placer
le curseur sur la colonne 5;
afficher
la place d'arrivée du coureur (sur 2 caractères);
placer
le curseur sur la colonne 12;
afficher
son numéro de dossard (sur 2 caractères);
passer
à la ligne;
fin repéter;
fin;
code Ada
with Ada.Text_io;
with Ada.Integer_Text_io;
procedure arrivee is
type Course is array(1..12)
of
Natural;
tableau:Course;
begin
-- Lecture des numéros de dossards;
for i in tableau'range
loop
Ada.Text_io.put("Tapez le numero du coureur arrivé ");
Ada.Integer_Text_io.put(i,width=>2);
Ada.Text_io.put("ème : ");
Ada.Integer_Text_io.get(tableau(i));
end loop;
--
-- Affichage du nouveau tableau d'arrivee
--
Ada.Text_io.put(" PLACE
");
Ada.Text_io.put("
DOSSARD ");
Ada.Text_io.new_line;
for i in tableau'first..11
loop
Ada.Text_io.set_col(5);
Ada.Integer_Text_io.put(i,width=>2);
Ada.Text_io.set_col(12);
Ada.Integer_Text_io.put(tableau(i),width=>2);
Ada.Text_io.new_line;
end loop;
end arrivee;