INSA Toulouse 1A Algorithme ADA Cours 1-4
-
Upload
purplera1n -
Category
Documents
-
view
86 -
download
4
Transcript of INSA Toulouse 1A Algorithme ADA Cours 1-4
Algorithmique 1ère annéeInitiation à la programmation - Ada (5/6)
Didier Le Botlan
1er semestre 2009–2010
http://wwwdgeinew.insa-toulouse.fr/~lebotlan/index.html
1 / 12
Une métaphore
On peut se représenter une variable comme une ardoise avec un nom(une étiquette).
42NOM : Foo
En réalité, il s’agit d’un emplacement dans la mémoire de l’ordinateur.
2 / 12
Mode d’emploi
À chaque fois qu’une variable est déclarée, l’ordinateur récupère uneardoise libre dans son tas d’ardoises.
(Il alloue un espace mémoire pour la variable).
L’ardoise récupérée peut contenir n’importe quoi.
nb_mots : integer ; Une variable entièretaux_imposition : float ; Une variable réelle
Pour cette raison, il est conseillé d’initialiser les variables.(Après le begin)
nb_mots := 0 ;taux_imposition := 0.0 ;
3 / 12
Mode d’emploi
Une fois la variable déclarée, on peut l’utiliser :
Destination : Character ; Avant le begin
...Destination := ’L’ ;Avion_Sol .Rouler_Vers (Destination ) ;
L’avion roule vers le point ’L’.L’avion roule vers le point ’L’.L’argument est du bon type :` Destination ∈ Character
L’argument est du bon type :` Destination ∈ Character’L’Destination
4 / 12
Affectation (à retenir)
Pour modifier une variable Foo on écritFoo := nouvelle valeur ;1 La nouvelle valeur est évaluée en premier2 Le résultat est mis dans Foo
Exemple
Foo : integer ; avant le begin...Foo := 7 ;Foo := Foo * 2 ;Foo := Foo * Foo ;
Foo× 2=14
Foo× 2=14
Foo× Foo=
196
Foo× Foo=
196
196Foo
5 / 12
Quizz
Donner la valeur des variables :
A B
A, B : Integer ; ? ?. . .B := 200 ; ? 200A := B ; 200 200B := 800 ; 200 800 A ne change pas de valeurB := B +1 ; 200 801
A := B ; 801 801B := A ; 801 801 Ce n’est pas un échange
6 / 12
Portée
Une variable “n’existe” que dans son sous-programme.
with Simulation , Tour ;procedure Mission1 is
package S renames Simulation ;
procedure Rouler_KA isDebut_Piste : Character := ’A’ ;
beginTour.Attendre_Autorisation_Roulage ;S.Rouler_Vers (’L’) ;S.Rouler_Vers (’M’) ;S.Rouler_Vers (’E’) ;S.Rouler_Vers (Debut_Piste) ;
end Rouler_KA ;
begin
Rouler_Ka ;
end Mission1 ;
7 / 12
Les constantes String
On s’interdira d’utiliser des variables de type String.
Par contre, on peut définir des constantes.(le compilateur a besoin de connaître la taille de la chaîne)
Nom_Client : String ;
Nom_Client : constant String := "Austin ’Danger’ Powers" ;
8 / 12
Procédures avec argument(s)
with GAda.Text_IO ;
procedure Mission2 is
package Txt renames GAda.Text_IO ;
Cette procédure affiche un message de bienvenue paramétré
procedure Afficher_Bienvenue (Nom_INSA : String ) Isbegin
Txt .Put_Line ("Bonjour, ") ;Txt .Put_Line ("bienvenue a l’INSA de " & Nom_INSA) ;
end Afficher_Bienvenue ;
beginAfficher_Bienvenue ("Toulouse") ;Afficher_Bienvenue ("Rennes") ;Afficher_Bienvenue ("Lyon") ;
end Mission2 ;
9 / 12
Appel de procédure avec argument(s)
Afficher_BienvenueNom_INSA : String
RÈGLE ` « Appel de procédure »
Un appel de procédure est un bloc :Si ` e ∈ String alors ` Afficher_Bienvenue (e) ∈ bloc
Pour ajouter un message supplémentaire, puis-je écrire :
Afficher_Bienvenue ("Toulouse") & " et bonne journee"
10 / 12
Structure d’un programme AdaPage 4 du poly, rappel du premier cours
with Avion_Sol , Tour ;
procedure Mission2 is
function Delta_Cap (X, Y : Float ) return Float isResultat : Float ;
begin. . .
end Delta_Cap ;
procedure Tester_Roulage isbegin
Tour.Demande_Autorisation_Roulage ;Avion_Sol .Rouler_Vers (’L’) ;
end Tester_Roulage ;
begin
Tester_Roulage ;
end Mission2 ;
Import d’acteurs
Déclarations
Corps duprogramme
11 / 12
Exécution d’un programme
9Resultat
X = 99
9"9"
2Resultat
X = -52
2"2"
with GAda.Text_IO ;procedure Mission is
function Dernier_Chiffre (X : Integer ) return Integer isResultat : Integer ;
begini f X >= 0 then Resultat := X mod 10 ;else Resultat := (-X) mod 10 ;end i f ;return Resultat ;
end Dernier_Chiffre ;
procedure Tester_Dernier_Chiffre isbegin
GAda.Text_IO.Put_Line ( Integer’Image( Dernier_Chiffre( 99 ) ) ) ;
GAda.Text_IO.Put_Line ( Integer’Image( Dernier_Chiffre( -52 ) ) ) ;GAda.Text_IO.Put_Line ( Integer ’ Image(Dernier_Chiffre(200) ) ) ;
end Tester_Dernier_Chiffre ;
begin
est le PC (Pointeur de Code)
Tester_Dernier_Chiffre ;end Mission ;
Il affiche 9 à l’écran.Il affiche 9 à l’écran.
Il affiche 2 à l’écran.Il affiche 2 à l’écran.Il affiche 0 à l’écran.Il affiche 0 à l’écran.