Mise en oeuvre
Exemple de programme
Hello "USER"
Enoncé de la solution
Permettre à l'utilisateur de saisir son prénom pour afficher un message "hello USER" où USER est une variable laquelle prendra la valeur prénom.
Nommer le programme
Pour nommer le programme, j'exprime de manière concise l'action du programmme : "hello_user".
Unités de compilation
Ici, il n'est pas nécessaire de sinder le programme en plusieurs unité de compilation ; le fichier principal est nommé "hello_user.adb".
Certain(s) compilateur(s) accepte(nt) l'extention ".ada".
Documentation
Les programmes avancés nécessitent une formulation claire de ce que fait le programme, comment il le fait et un énoncé des préconditions à rassembler avant la mise en oeuvre du programme.
Ici nous indiquerons simplement ce que fait le programme dans l'entête du ficher source "hello_user.adb".
Nous utiliserons la syntaxe dédiée aux commentaires pour le langage Ada :
Tout le texte précédé de deux signes moins '-' est un commentaire (sauf s'il font partie d'une chaîne de caractère).
Composition du programme
Pour saisir et afficher du texte avec Ada, la bibliothèque Ada.Text_Io fournit les procédures Get_Line et Put_Line lequelles suffierons ici pour réaliser le programme.
Nous utiliserons la clause "with" pour exprimer la dépendance de l'unité principale du paquetage Ada.Text_Io.
Puis nous énonçons l'unité principale avec le mot "procedure" suivit du nom du programme et nous rajoutons le mot "is".
Nous pouvons alors énoncer la partie déclarative de notre programme avant de placer le mot "begin" pour débuter l'éllaboration du corp du programme.
Texte source du programme
-- hello_user est une saisie du prénom de l'utilisateur USER pour afficher "hello USER".
--
with Ada.Text_Io;
procedure Hello_User is
User : String (1..32);
-- Prénom de l'utilisateur.
Last : Natural := 0;
-- Position du dernier caractère du prénom.
begin
Ada.Text_Io.Get_Line(User, Last);
-- Saisie du prénom.
Ada.Text_Io.Put_Line("Hello" & ' ' & User(User'First..Last));
-- Affichage du message.
end Hello_User;
|