You are on page 1of 4

Ce cours

Cours en amphi, TPs, TDs.


Algorithmique 1ère année
Initiation à la programmation - Ada (1/6) Un polycopié de cours
Seul document autorisé en contrôle
Vous pouvez l’annoter autant que vous voulez
Didier Le Botlan Réfléchissez à ce que vous voulez écrire dessus

INSA - Note d’APP0 TD (× 16 )


contact.lebotlan@insa-toulouse.fr
- Contrôle de TD (× 16 ) — dernier TD
1er semestre 2009–2010 - Contrôle de TP (× 23 ) — lundi 9 nov. matin

Les deux premiers TPs font 1H15.


http://wwwdgeinew.insa-toulouse.fr/~lebotlan/index.html

1/1 2/1

L’UV2 Quelques programmes

les logiciels de bureautique (p. ex. la suite libre OpenOffice)


des logiciels de dessin (p. ex. le logiciel libre GIMP)
L’UV2 d’algorithmique au 2nd semestre est la suite de l’UV1. le logiciel de recherche installé chez Google
Gardez bien votre polycopié (largement besoin) + vos notes et le serveur web de Google
personnelles les serveurs web (p. ex. le serveur Web libre Apache)
L’UV2 commencera par un contrôle 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
...

3/1 4/1
Les langages de programmation Notion d’acteur

Il existe de nombreux langages de programmation. L’écrasante


majorité repose sur les mêmes concepts. Un acteur offre un ensemble d’actions.

+ Cobol, Fortran, Pascal, C, C++, C#, C–, Java, Javascript, PHP, Ecran : des actions pour afficher des messages
Ada, etc. Imprimante : des actions pour imprimer des documents

Pas de différence fondamentale entre ces langages, mais certains sont NombresComplexes : des actions pour calculer dans C
mieux conçus que d’autres. GPS : des actions pour localiser sa position
Reseau : des actions pour émettre et recevoir
D’autres langages, différents, reposent sur des fondements théoriques
etc.
solides :
+ Prolog, OCaml, Haskell
Voici un exemple d’acteur
+ Programmation par contraintes

5/1 6/1

Exemple d’acteur La spécification du Rover


Le Mars Explorer Rover
Toutes les actions de l’acteur MarsRover sont listées dans un fichier
Les actions de l’acteur MarsRover sont : nommé MarsRover.ads

Avancer ; Avancer d’1 mètre Le fichier MarsRover.ads


Pivoter_Droite ; Pivoter de 1˚ à droite package MarsRover is
Pivoter_Gauche ; Pivoter de 1˚ à gauche Avance d’1 mètre
procedure Avancer ;
Tourner_Droite ; Pivoter de 90˚ à droite
Pivote de 1 degré à droite
Tourner_Gauche ; Pivoter de 90˚ à gauche procedure Pivoter_Droite ;
Pointer_vers_Base ; Pivote le Rover en direction de sa base Pivote de 90 degrés à droite
procedure Tourner_Droite ;
Ramasser_Echantillon ; La pince ramasse un échantillon de sol
Pivote en direction de la base
Prendre_Photo ; Le rover prend une photo et la communique procedure Pointer_vers_Base ;
à la base ...
... ... end MarsRover ;

À l’INSA, le mot « action » est synonyme de « procédure »


En général, un fichier Ada contient des commentaires

7/1 8/1
Définitions : acteur et commentaires Définition : identificateur

Définition : Identificateur
Définition : Acteur
◦ Un nom d’acteur ou un nom d’action est un identificateur Ada
◦ Un acteur est une entité offrant un ensemble d’actions.
◦ Il ne comprend que des lettres, des chiffres, et _
◦ Le fichier de spécification *.ads liste les actions disponibles
◦ Il ne doit pas commencer par un chiffre

Exemples d’identificateurs valides :


Définition : Commentaires Rover Tourner_A_Gauche Passe_en_Mode_4x4
◦ Un commentaire est ignoré par l’ordinateur.
Exemples d’identificateurs invalides :
◦ Il s’écrit avec deux tirets Comme ceci
Troll Des Bois Jet_d’Encre 7Nains
◦ Les commentaires aident à la compréhension du code

On évitera les accents.

9/1 10 / 1

D’autres types d’actions Un programme pour piloter le Rover

Toutes les actions que nous avons vues sont de la forme Nous utilisons un bloc séquence, c.-à-d. une séquence d’actions

procedure Faire_Qqchose ; Faire_qqchose


with MarsRover ;
Fichier mission1.adb
procedure Mission1 is
Nous verrons plus tard des actions (procédures) qui requièrent un ou
package MR renames MarsRover ;
plusieurs paramètres. Par exemple :
begin
procedure Pivoter (Angle : Integer) ;
Rejoindre le point de prélèvement
MR.Avancer ;
Angle : Integer Pivoter MR.Avancer ;
MR.Tourner_Droite ;
Avancer ; MR.Avancer ;
Pivoter (45) ; MR.Ramasser_Echantillon ;
Avancer ; Retour à la base
Pivoter ( 30) ; MR.Pointer_vers_Base ;
... MR.Avancer ;
MR.Avancer ;

Nous y reviendrons end Mission1 ;

11 / 1 12 / 1
Structure d’un programme exécutable Ada Invocation d’action

La structure générale d’un programme Ada :


Fichier foo.adb
with Acteur1 , Acteur2 ;
with · · · ;
procedure Foo is
package Bar renames Acteuri ; Définition : Invocation d’action
··· ◦ En Ada, la syntaxe pour utiliser une action est le nom de
Déclaration(s) diverses
l’acteur suivi d’un point et du nom de l’action
begin
Corps du programme principal ◦ Exemple : MarsRover.Avancer
···
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 14 / 1

L’acteur Ada.Text_IO À retenir


(à la fin du poly)

Pour le prochain cours, rappelez-vous :


de la différence entre un programme exécutable et un acteur.
En Ada, l’acteur qui agit sur l’écran ne s’appelle pas “Écran”, il
de la structure d’un programme exécutable
s’appelle GAda.Text_IO
une invocation d’action s’écrit Acteur.Nom_d_Action
Il offre un ensemble d’actions : une séquence d’actions s’écrit action1 ;
Put ("message") ; afficher le message action2 ;
...
Put_Line ("message") ; afficher le message et passer à la ligne un identificateur est formé de lettres, de chiffres et de _
New_Line ; passer à la ligne un commentaire Comme cela est ignoré par l’ordinateur

Prendre le poly en sortant !

15 / 1 16 / 1

You might also like