insa toulouse 1a algorithme ada cours 1-1
TRANSCRIPT
Algorithmique 1ère annéeInitiation à la programmation - Ada (1/6)
Didier Le Botlan
1er semestre 2009–2010
http://wwwdgeinew.insa-toulouse.fr/~lebotlan/index.html
1 / 1
Ce cours
Cours en amphi, TPs, TDs.
Un polycopié de coursSeul document autorisé en contrôleVous pouvez l’annoter autant que vous voulezRéfléchissez à ce que vous voulez écrire dessus
- Note d’APP0 TD (×16 )
- Contrôle de TD (×16 ) — dernier TD
- Contrôle de TP (×23 ) — lundi 9 nov. matin
Les deux premiers TPs font 1H15.
2 / 1
L’UV2
L’UV2 d’algorithmique au 2nd semestre est la suite de l’UV1.Gardez bien votre polycopié (largement besoin) + vos notespersonnelles
L’UV2 commencera par un contrôle
3 / 1
Quelques programmes
les logiciels de bureautique (p. ex. la suite libre OpenOffice)
des logiciels de dessin (p. ex. le logiciel libre GIMP)
le logiciel de recherche installé chez Google
et le serveur web de Google
les serveurs web (p. ex. le serveur Web libre Apache)
le logiciel de réservation de billets de train des bornes SNCF
le logiciel dans la borne de lecture de carte de cantine
le logiciel qui fait fonctionner votre téléphone portable
. . .
4 / 1
Les langages de programmation
Il existe de nombreux langages de programmation. L’écrasantemajorité repose sur les mêmes concepts.
+ Cobol, Fortran, Pascal, C, C++, C#, C–, Java, Javascript, PHP,Ada, etc.
Pas de différence fondamentale entre ces langages, mais certains sontmieux conçus que d’autres.
D’autres langages, différents, reposent sur des fondements théoriquessolides :
+ Prolog, OCaml, Haskell
+ Programmation par contraintes
5 / 1
Notion d’acteur
Un acteur offre un ensemble d’actions.
Ecran : des actions pour afficher des messages
Imprimante : des actions pour imprimer des documents
NombresComplexes : des actions pour calculer dans C
GPS : des actions pour localiser sa position
Reseau : des actions pour émettre et recevoir
etc.
Voici un exemple d’acteur
6 / 1
Exemple d’acteurLe Mars Explorer Rover
Les actions de l’acteur MarsRover sont :
Avancer ; Avancer d’1 mètre
Pivoter_Droite ; Pivoter de 1˚ à droitePivoter_Gauche ; Pivoter de 1˚ à gauche
Tourner_Droite ; Pivoter de 90˚ à droiteTourner_Gauche ; Pivoter de 90˚ à gauche
Pointer_vers_Base ; Pivote le Rover en direction de sa base
Ramasser_Echantillon ; La pince ramasse un échantillon de sol
Prendre_Photo ; Le rover prend une photo et la communiqueà la base
. . . . . .
À l’INSA, le mot « action » est synonyme de « procédure »
7 / 1
La spécification du Rover
Toutes les actions de l’acteur MarsRover sont listées dans un fichiernommé MarsRover.ads
Le fichier MarsRover.ads
package MarsRover isAvance d’1 mètre
procedure Avancer ;Pivote de 1 degré à droite
procedure Pivoter_Droite ;Pivote de 90 degrés à droite
procedure Tourner_Droite ;Pivote en direction de la base
procedure Pointer_vers_Base ;. . .
end MarsRover ;
En général, un fichier Ada contient des commentaires
8 / 1
Définitions : acteur et commentaires
Définition : Acteur◦ Un acteur est une entité offrant un ensemble d’actions.
◦ Le fichier de spécification *.ads liste les actions disponibles
Définition : Commentaires◦ Un commentaire est ignoré par l’ordinateur.
◦ Il s’écrit avec deux tirets Comme ceci◦ Les commentaires aident à la compréhension du code
9 / 1
Définition : identificateur
Définition : Identificateur◦ Un nom d’acteur ou un nom d’action est un identificateur Ada
◦ Il ne comprend que des lettres, des chiffres, et _
◦ Il ne doit pas commencer par un chiffre
Exemples d’identificateurs valides :Rover Tourner_A_Gauche Passe_en_Mode_4x4
Exemples d’identificateurs invalides :Troll Des Bois Jet_d’Encre 7Nains
On évitera les accents.
10 / 1
D’autres types d’actions
Toutes les actions que nous avons vues sont de la forme
procedure Faire_Qqchose ; Faire_qqchose
Nous verrons plus tard des actions (procédures) qui requièrent un ouplusieurs paramètres. Par exemple :procedure Pivoter (Angle : Integer) ;
PivoterAngle : Integer
Avancer ;Pivoter (45) ;Avancer ;Pivoter ( 30) ;. . .
Nous y reviendrons
11 / 1
Un programme pour piloter le Rover
Nous utilisons un bloc séquence, c.-à-d. une séquence d’actions
with MarsRover ;
procedure Mission1 ispackage MR renames MarsRover ;
beginRejoindre le point de prélèvement
MR.Avancer ;MR.Avancer ;MR.Tourner_Droite ;MR.Avancer ;MR.Ramasser_Echantillon ;
Retour à la baseMR.Pointer_vers_Base ;MR.Avancer ;MR.Avancer ;
end Mission1 ;
Fichier mission1.adb
12 / 1
Structure d’un programme exécutable Ada
La structure générale d’un programme Ada :Fichier foo.adb
with Acteur1 , Acteur2 ;with · · · ;
procedure Foo is
package Bar renames Acteuri ;· · ·
Déclaration(s) diversesbegin
Corps du programme principal· · ·
end Foo ;
with, procedure, is, begin, end, package, . . . sont des mots-clefs.
+ Ils sont réservés
+ Ils ne peuvent pas servir d’identificateur
13 / 1
Invocation d’action
Définition : Invocation d’action◦ En Ada, la syntaxe pour utiliser une action est le nom de
l’acteur suivi d’un point et du nom de l’action◦ Exemple : MarsRover.Avancer
14 / 1
L’acteur Ada.Text_IO(à la fin du poly)
En Ada, l’acteur qui agit sur l’écran ne s’appelle pas “Écran”, ils’appelle GAda.Text_IO
Il offre un ensemble d’actions :
Put ("message") ; afficher le message
Put_Line ("message") ; afficher le message et passer à la ligne
New_Line ; passer à la ligne
15 / 1
À retenir
Pour le prochain cours, rappelez-vous :
de la différence entre un programme exécutable et un acteur.
de la structure d’un programme exécutable
une invocation d’action s’écrit Acteur.Nom_d_Action
une séquence d’actions s’écrit action1 ;action2 ;. . .
un identificateur est formé de lettres, de chiffres et de _
un commentaire Comme cela est ignoré par l’ordinateur
Prendre le poly en sortant !
16 / 1