Sunteți pe pagina 1din 3

TD Ada : présentation du langage

D. Massé, F. Singho, L. Nana


Université de Bretagne O identale
Lab-STICC UMR CNRS 6285
9 janvier 2018

Exer i e 1
E rire un programme Ada qui lit un nom puis a he le message "bonjour" suivi du nom.
Exer i e 2
E rire un programme Ada qui lit un entier N , puis, a he la somme des entiers allant de 1 à
N .
Exer i e 3
Soient les dé larations suivantes :
type nint1 is new integer range 1..10;
type nint2 is new integer range 1..10;
subtype sint is integer range 1..10;

et soient les dé larations/initialisations suivantes :


ni1 : nint1;
ni2 : nint2;
si : sint;
i : integer;

...

ni1:=5;
ni2:=5;
si:=5;

Les instru tions suivantes sont elles orre tes :


1. i :=2+si;
2. i :=10+ni1;
3. ni1 :=ni1+ni2;

1
Exer i e 4
E rire un programme Ada qui :
1. Dénit un type tableau d'entiers de taille maximale N où N est une onstante.
2. Contient une fon tion (dont le nom est f unc_somme) qui prend en entrée un tableau du
type pré édent et retourne la somme de ses éléments.
3. Contient une pro édure proc_somme dont le omportement est similaire à la fon tion
f unc_somme i-dessus.
4. Contient une pro édure prin ipale qui :
 Dénit un tableau du type pré édent et l'initialise.
 Invoque la fon tion f unc_somme, puis la pro édure proc_somme.
 A he les deux résultats produits par les invo ations de f unc_somme et proc_somme.
Exer i e 5
Soit la spé i ation de paquetage suivante :
pa kage ve tors is
max_size : onstant integer := 100;
type ve tor is array (1..max_size) of integer;

fun tion sum (arg : in ve tor) return integer;


pro edure put(arg : in ve tor);
pro edure add (arg1, arg2 : in ve tor ; res : out ve tor);
end ve tors;
1. Proposer le orps du paquetage vectors en implantant :
 la fon tion sum qui al ule la somme de tous les éléments d'un ve teur.
 la pro edure put qui a he un ve teur à l'é ran.
 la pro edure add qui ajoute deux à deux les éléments des ve teurs arg1 et arg2, puis,
retourne le résultat par le paramètre res.
2. E rire une pro édure prin ipale permettant de tester e paquetage.
Exer i e 6
E rire un programme Ada onstitué d'une pro édure dé larée dans un pa kage. Cette pro édure
utilise un type énuméré ontenant les valeurs RED, GREEN, BLUE, YELLOW, ORANGE et
TURQUOISE (dans et ordre).
 La pro édure a he les diérents éléments du type énuméré de RED jusqu'à une onstante
dé larée dans le pa kage.
 Modier la pro édure an d'a her les valeurs du type énuméré de RED jusqu'à une valeur
saisie par l'utilisateur.
Exer i e 7
1. Dénir un arti le personne qui mémorise les nom, prénom et âge d'une personne.
2. E rire une pro édure af f iche qui prend en entrée un arti le et l'a he à l'é ran.
3. E rire un programme prin ipal qui dé lare un arti le personne, permet de saisir les infor-
mations d'une personne, puis, invoque la pro édure af f iche.

2
Exer i e 8
Soit la spé i ation Ada du pa kage listes :
generi
type element is private;
with pro edure put(e : in element);

pa kage listes is

type element_ptr is a ess element;

type ellule is private;


type lien is a ess ellule;

pro edure ajouter(l : in out lien;


e : in element_ptr);

pro edure affi her(l : in lien);

private

type ellule is re ord


suivant : lien;
info : element_ptr;
end re ord;

end listes;

Travail à faire :

1. E rire un programme qui utilise le pa kage listes. Le programme maintient une liste hainée
de record personne. Le programme est onstitué d'une bou le prin ipale omprennant les
instru tions suivantes :
 La saisie d'une personne ainsi que le sto kage des informations dans un record.
 L'insertion du record dans la liste de personne.
 L'a hage de la liste.
2. E rire l'implantation du pa kage listes.
3. Ajouter les pro édures suivantes :
pro edure supprimer(l : in out lien;
e : in element_ptr);
pro edure dupliquer(sour e : in lien;
destination : in out lien);

S-ar putea să vă placă și