4
Algorithmique 1ère année Initiation à la programmation - Ada (1/6) Didier Le Botlan INSA [email protected] 1er semestre 2009–2010 http://wwwdgeinew.insa-toulouse.fr/~lebotlan/index.html 1/1 Ce cours Cours en amphi, TPs, TDs. Un polycopié de cours Seul document autorisé en contrôle Vous pouvez l’annoter autant que vous voulez Réfléchissez à ce que vous voulez écrire dessus Note d’APP0 TD (× 1 6 ) Contrôle de TD (× 1 6 ) — dernier TD Contrôle de TP (× 2 3 ) — 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 notes personnelles 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

INSA Toulouse 1A Algorithme ADA Cours 1-1

Embed Size (px)

Citation preview

Algorithmique 1ère annéeInitiation à la programmation - Ada (1/6)

Didier Le Botlan

[email protected]

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