Maths – Algorithmique 1ère année

113
Retour sur les TPs Bloc Séquence Procédures sans argument Appel de procédure avec argument Constantes, conversions Maths – Algorithmique 1ère année Partie Algorithmique - Ada S1E2/4 D. Le Botlan INSA [email protected] 1er semestre 2021–2022 http://wwwperso.insa-toulouse.fr/~lebotlan/ D. Le Botlan Maths – Algorithmique 1ère année

Transcript of Maths – Algorithmique 1ère année

Page 1: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Maths – Algorithmique 1ère annéePartie Algorithmique - Ada S1E2/4

D. Le Botlan

[email protected]

1er semestre 2021–2022

http://wwwperso.insa-toulouse.fr/~lebotlan/

D. Le Botlan Maths – Algorithmique 1ère année

Page 2: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Retour sur le cours précédent

Un programme utilise des acteurs

Les actions offertes par l’acteur Foo sont dans foo.ads

Dans Foo.ads, l’action Avancer est déclarée de cette manière :procedure Avancer ;

Pour utiliser l’action dans mon programme mission1.adb,j’écris

Foo.Avancer ;

Un fichier Ada contient des commentaires Comme ceci

Notion d’identificateur, p. ex. Tourner_A_Gauche

D. Le Botlan Maths – Algorithmique 1ère année

Page 3: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Des questions en suspens?

Rappelez-vous que vous pouvez poser des questions.

D. Le Botlan Maths – Algorithmique 1ère année

Page 4: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Plan

1 Retour sur les TPsL’édition du programmeLa compilationL’exécution

2 Bloc Séquence

3 Procédures sans argument

4 Appel de procédure avec argument

5 Constantes, conversions

D. Le Botlan Maths – Algorithmique 1ère année

Page 5: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

L’édition du programmeLa compilationL’exécution

Plan

1 Retour sur les TPsL’édition du programmeLa compilationL’exécution

2 Bloc Séquence

3 Procédures sans argument

4 Appel de procédure avec argument

5 Constantes, conversions

D. Le Botlan Maths – Algorithmique 1ère année

Page 6: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

L’édition du programmeLa compilationL’exécution

Fabrication du programme

Cette partie n’est pas dans le poly.

mission.adbwith Rover ;procedureMission isbegin

Rover.avancer ;end Mission ;

mission-exe001110100100111001010100111001010111001000011010101111011111001010101010101010101010

COMPILATION

D. Le Botlan Maths – Algorithmique 1ère année

Page 7: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

L’édition du programmeLa compilationL’exécution

Plan

1 Retour sur les TPsL’édition du programmeLa compilationL’exécution

2 Bloc Séquence

3 Procédures sans argument

4 Appel de procédure avec argument

5 Constantes, conversions

D. Le Botlan Maths – Algorithmique 1ère année

Page 8: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

L’édition du programmeLa compilationL’exécution

Fabrication du programme

mission.adbwith Rover ;procedureMission isbegin

Rover.avancer ;end Mission ;

mission-exe001110100100111001010100111001010111001000011010101111011111001010101010101010101010

COMPILATION

D. Le Botlan Maths – Algorithmique 1ère année

Page 9: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

L’édition du programmeLa compilationL’exécution

L’édition du programme

On crée un fichier texte mission.adb avec un éditeur de texte.

Tout éditeur de texte convient (à l’INSA, emacs)

On y tape le programme que l’on veut (aucune vérification n’estfaite à ce moment-là)

On pense à enregistrer le fichier

Le fichier texte est appelé programme source

D. Le Botlan Maths – Algorithmique 1ère année

Page 10: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

L’édition du programmeLa compilationL’exécution

Plan

1 Retour sur les TPsL’édition du programmeLa compilationL’exécution

2 Bloc Séquence

3 Procédures sans argument

4 Appel de procédure avec argument

5 Constantes, conversions

D. Le Botlan Maths – Algorithmique 1ère année

Page 11: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

L’édition du programmeLa compilationL’exécution

Fabrication du programme

mission.adbwith Rover ;procedureMission isbegin

Rover.avancer ;end Mission ;

mission-exe001110100100111001010100111001010111001000011010101111011111001010101010101010101010

COMPILATION

D. Le Botlan Maths – Algorithmique 1ère année

Page 12: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

L’édition du programmeLa compilationL’exécution

La compilation

Un logiciel spécial, appelé compilateur, est chargé detransformer le programme

Le compilateur signalera certaines erreurs : erreurs de syntaxe eterreurs de typage (exemples)

Ce sont des messages d’erreur

Quand tout va bien, il fabrique un programme exécutable (unlogiciel).

Exemples d’erreurs et de messages d’erreur?

D. Le Botlan Maths – Algorithmique 1ère année

Page 13: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

L’édition du programmeLa compilationL’exécution

Plan

1 Retour sur les TPsL’édition du programmeLa compilationL’exécution

2 Bloc Séquence

3 Procédures sans argument

4 Appel de procédure avec argument

5 Constantes, conversions

D. Le Botlan Maths – Algorithmique 1ère année

Page 14: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

L’édition du programmeLa compilationL’exécution

Fabrication du programme

mission.adbwith Rover ;procedureMission isbegin

Rover.avancer ;end Mission ;

mission-exe001110100100111001010100111001010111001000011010101111011111001010101010101010101010

COMPILATION

D. Le Botlan Maths – Algorithmique 1ère année

Page 15: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

L’édition du programmeLa compilationL’exécution

L’exécution

Il ne reste qu’à cliquer sur le programme exécutable

Le programme fera exactement ce qu’on lui a dit de faire dans leprogramme source

Si on lui a dit d’être bête, il sera bête.

D. Le Botlan Maths – Algorithmique 1ère année

Page 16: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

L’édition du programmeLa compilationL’exécution

Fabrication du programme

Des questions sur les TPs?

mission.adbwith Rover ;procedureMission isbegin

Rover.avancer ;end Mission ;

mission-exe001110100100111001010100111001010111001000011010101111011111001010101010101010101010

COMPILATION

D. Le Botlan Maths – Algorithmique 1ère année

Page 17: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

L’édition du programmeLa compilationL’exécution

Interlude

D. Le Botlan Maths – Algorithmique 1ère année

Page 18: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Plan

1 Retour sur les TPsL’édition du programmeLa compilationL’exécution

2 Bloc Séquence

3 Procédures sans argument

4 Appel de procédure avec argument

5 Constantes, conversions

D. Le Botlan Maths – Algorithmique 1ère année

Page 19: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Bloc séquence

B1, B2, .., Bn sont des blocs de code.

Cela s’écrit aussi : B1 ∈ bloc , etc.

Définition du bloc séquence

La séquence des blocs B1, .., Bn s’écrit

B1 ;B2 ;

...Bn ;

+ Le bloc B1 est exécuté en premier.

+ Le bloc B2 ne sera exécuté que lorsque le bloc B1

sera terminé.

+ Le bloc séquence est terminé lorsque le dernierbloc, Bn, est terminé.

D. Le Botlan Maths – Algorithmique 1ère année

Page 20: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Exemple de bloc séquence

Exemple : séquence d’actions

with Moteur_Hybride ;

procedure Mission1 is

package MH renames Moteur_Hybride ;

beginMH.Demarrage_Electrique ;MH.Demarrage_Thermique ;MH.Laisser_Tourner ;MH. Arreter ;

end Mission1 ;

Combien de blocs séquence dans le programme? (et où ?)Combien de corps de programme ? (et où ?)Combien de temps met le programme à s’exécuter ?Comment améliorer ce programme?

D. Le Botlan Maths – Algorithmique 1ère année

Page 21: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Exemple de bloc séquence

Exemple : séquence d’actions

with Moteur_Hybride ;

procedure Mission1 is

package MH renames Moteur_Hybride ;

beginMH.Demarrage_Electrique ;MH.Demarrage_Thermique ;MH.Laisser_Tourner ;MH. Arreter ;

end Mission1 ;

Combien de blocs séquence dans le programme? (et où?)Combien de corps de programme? (et où ?)Combien de temps met le programme à s’exécuter ?Comment améliorer ce programme ?

D. Le Botlan Maths – Algorithmique 1ère année

Page 22: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Les jugements de typage

Le poly contient une quinzaine de règles de typage :

RÈGLE « Séquence »

Si pour tout 1 6 i 6 n, Bi ∈ bloc,alors leur juxtaposition est un bloc :

B1 ;...Bn ;

∈ bloc

C’est l’écriture formelle de « Un bloc séquence est un bloc ».

+ Ces règles SONT les règles respectées par le compilateur.

+ 95% des erreurs de compilation sont dûes à une règle bafouée.

D. Le Botlan Maths – Algorithmique 1ère année

Page 23: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Les règles de typage

En TD et TP, vous devrez être capable d’appliquer correctementces règles.

Le premier contrôle (semaine du 4 octobre), portera en partie surles règles de typage.

Vous devez vous entraîner régulièrement sur MOODLE.

+ Ça devient très facile avec un entraînement régulier.

+ Vous n’y arriverez pas si vous attendez le week-end précédant lecontrôle (35 questionnaires d’entraînement).

D. Le Botlan Maths – Algorithmique 1ère année

Page 24: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Plan

1 Retour sur les TPsL’édition du programmeLa compilationL’exécution

2 Bloc Séquence

3 Procédures sans argument

4 Appel de procédure avec argument

5 Constantes, conversions

D. Le Botlan Maths – Algorithmique 1ère année

Page 25: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Hello world

Écrire un programme qui affiche “Bonjour”.

with GAda.Text_IO ;

procedure Mission is

package Txt renames Gada.Text_IO ;

beginTxt.Put_Line (Aff => "Bonjour !") ;

end Mission ;

+ Put_Line affiche le texte demandé et passe à la ligne.

D. Le Botlan Maths – Algorithmique 1ère année

Page 26: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Hello world

Écrire un programme qui affiche “Bonjour”.

with GAda.Text_IO ;

procedure Mission is

package Txt renames Gada.Text_IO ;

begin

Txt.Put_Line (Aff => "Bonjour !") ;

end Mission ;

+ Put_Line affiche le texte demandé et passe à la ligne.

D. Le Botlan Maths – Algorithmique 1ère année

Page 27: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Hello world

Écrire un programme qui affiche “Bonjour”.

with GAda.Text_IO ;

procedure Mission is

package Txt renames Gada.Text_IO ;

begin

Txt.Put_Line (Aff => "Bonjour !") ;

end Mission ;

+ Put_Line affiche le texte demandé et passe à la ligne.

D. Le Botlan Maths – Algorithmique 1ère année

Page 28: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Hello world

Écrire un programme qui affiche “Bonjour”.

with GAda.Text_IO ;

procedure Mission ispackage Txt renames Gada.Text_IO ;

begin

Txt.Put_Line (Aff => "Bonjour !") ;

end Mission ;

+ Put_Line affiche le texte demandé et passe à la ligne.

D. Le Botlan Maths – Algorithmique 1ère année

Page 29: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Hello world

Écrire un programme qui affiche “Bonjour”.

with GAda.Text_IO ;

procedure Mission ispackage Txt renames Gada.Text_IO ;

beginTxt.Put_Line (Aff => "Bonjour !") ;

end Mission ;

+ Put_Line affiche le texte demandé et passe à la ligne.

D. Le Botlan Maths – Algorithmique 1ère année

Page 30: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Hello INSAs

Un programme effectue très souvent des tâches répétitives.

Par exemple, nous souhaitons écrire un programme qui afficheplusieurs messages de bienvenue :

Bonjour,Bienvenue a l’INSA de ToulouseBonjour,Bienvenue a l’INSA de RennesBonjour,Bienvenue a l’INSA de Lyon

D. Le Botlan Maths – Algorithmique 1ère année

Page 31: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Hello INSAs

with GAda.Text_IO ;

procedure Mission is

package Txt renames Gada.Text_IO ;

beginTxt.Put_Line (Aff => "Bonjour, ") ;Txt.Put (Aff => "Bienvenue a l’INSA de ") ;

Txt.Put_Line (Aff => "Toulouse") ;Txt.Put_Line (Aff => "Bonjour, ") ;Txt.Put (Aff => "Bienvenue a l’INSA de ") ;

Txt.Put_Line (Aff => "Rennes") ;Txt.Put_Line (Aff => "Bonjour, ") ;Txt.Put (Aff => "Bienvenue a l’INSA de ") ;

Txt.Put_Line (Aff => "Lyon") ;end Mission ;

D. Le Botlan Maths – Algorithmique 1ère année

Page 32: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Hello INSAs

with GAda.Text_IO ;

procedure Mission is

package Txt renames Gada.Text_IO ;

beginTxt.Put_Line (Aff => "Bonjour, ") ;Txt.Put (Aff => "Bienvenue a l’INSA de ") ;

Txt.Put_Line (Aff => "Toulouse") ;Txt.Put_Line (Aff => "Bonjour, ") ;Txt.Put (Aff => "Bienvenue a l’INSA de ") ;

Txt.Put_Line (Aff => "Rennes") ;Txt.Put_Line (Aff => "Bonjour, ") ;Txt.Put (Aff => "Bienvenue a l’INSA de ") ;

Txt.Put_Line (Aff => "Lyon") ;end Mission ;

D. Le Botlan Maths – Algorithmique 1ère année

Page 33: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Hello INSAs

with GAda.Text_IO ;

procedure Mission is

package Txt renames Gada.Text_IO ;

beginAfficher_Bienvenue ;

Txt.Put_Line (Aff => "Toulouse") ;Afficher_Bienvenue ;

Txt.Put_Line (Aff => "Rennes") ;Afficher_Bienvenue ;

Txt.Put_Line (Aff => "Lyon") ;end Mission ;

D. Le Botlan Maths – Algorithmique 1ère année

Page 34: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Hello INSAs

with GAda.Text_IO ;

procedure Mission is

package Txt renames Gada.Text_IO ;

beginAfficher_Bienvenue ;Txt.Put_Line (Aff => "Toulouse") ;Afficher_Bienvenue ;Txt.Put_Line (Aff => "Rennes") ;Afficher_Bienvenue ;Txt.Put_Line (Aff => "Lyon") ;

end Mission ;

D. Le Botlan Maths – Algorithmique 1ère année

Page 35: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Hello INSAs

with GAda.Text_IO ;

procedure Mission is

package Txt renames Gada.Text_IO ;

procedure Afficher_Bienvenue isbegin

Txt.Put_Line (Aff => "Bonjour, ") ;Txt.Put (Aff => "Bienvenue a l’INSA de ") ;

end Afficher_Bienvenue ;

beginAfficher_Bienvenue ;Txt.Put_Line (Aff => "Toulouse") ;Afficher_Bienvenue ;Txt.Put_Line (Aff => "Rennes") ;Afficher_Bienvenue ;Txt.Put_Line (Aff => "Lyon") ;

end Mission ; D. Le Botlan Maths – Algorithmique 1ère année

Page 36: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Hello INSAs

with GAda.Text_IO ;

procedure Mission is

package Txt renames Gada.Text_IO ;

procedure Afficher_Bienvenue is

beginTxt.Put_Line (Aff => "Bonjour, ") ;Txt.Put (Aff => "Bienvenue a l’INSA de ") ;

end Afficher_Bienvenue ;

beginAfficher_Bienvenue ;Txt.Put_Line (Aff => "Toulouse") ;Afficher_Bienvenue ;Txt.Put_Line (Aff => "Rennes") ;Afficher_Bienvenue ;Txt.Put_Line (Aff => "Lyon") ;

end Mission ; D. Le Botlan Maths – Algorithmique 1ère année

Page 37: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Hello INSAs

with GAda.Text_IO ;

procedure Mission is

package Txt renames Gada.Text_IO ;

procedure Afficher_Bienvenue isbegin

Txt.Put_Line (Aff => "Bonjour, ") ;Txt.Put (Aff => "Bienvenue a l’INSA de ") ;

end Afficher_Bienvenue ;begin

Afficher_Bienvenue ;Txt.Put_Line (Aff => "Toulouse") ;Afficher_Bienvenue ;Txt.Put_Line (Aff => "Rennes") ;Afficher_Bienvenue ;Txt.Put_Line (Aff => "Lyon") ;

end Mission ; D. Le Botlan Maths – Algorithmique 1ère année

Page 38: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Hello INSAs

with GAda.Text_IO ;

procedure Mission is

package Txt renames Gada.Text_IO ;

procedure Afficher_Bienvenue isbegin

Txt.Put_Line (Aff => "Bonjour, ") ;Txt.Put (Aff => "Bienvenue a l’INSA de ") ;

end Afficher_Bienvenue ;begin

Afficher_Bienvenue ;Txt.Put_Line (Aff => "Toulouse") ;Afficher_Bienvenue ;Txt.Put_Line (Aff => "Rennes") ;Afficher_Bienvenue ;Txt.Put_Line (Aff => "Lyon") ;

end Mission ; D. Le Botlan Maths – Algorithmique 1ère année

Page 39: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Hello INSAs

with GAda.Text_IO ;

procedure Mission is

package Txt renames Gada.Text_IO ;

procedure Afficher_Bienvenue isbegin

Txt.Put_Line (Aff => "Bonjour, ") ;Txt.Put (Aff => "Bienvenue a l’INSA de ") ;

end Afficher_Bienvenue ;begin

Afficher_Bienvenue ;Txt.Put_Line (Aff => "Toulouse") ;Afficher_Bienvenue ;Txt.Put_Line (Aff => "Rennes") ;Afficher_Bienvenue ;Txt.Put_Line (Aff => "Lyon") ;

end Mission ; D. Le Botlan Maths – Algorithmique 1ère année

Page 40: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Procédures sans argument

Pour DÉFINIR une action (une procédure), il suffit d’inclure leschéma ci-dessous avant le begin du programme.

Définition de procédure sans argument

procedure Bar isDéfinitions éventuelles

beginCorps de la procédure

Bend Bar ;

On doit avoir B ∈ bloc

Pour INVOQUER l’action (la procédure), on écrit Bar ;

D. Le Botlan Maths – Algorithmique 1ère année

Page 41: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Plan

1 Retour sur les TPsL’édition du programmeLa compilationL’exécution

2 Bloc Séquence

3 Procédures sans argument

4 Appel de procédure avec argument

5 Constantes, conversions

D. Le Botlan Maths – Algorithmique 1ère année

Page 42: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Appel de procédure avec argument

L’acteur Simulation contient l’action Rouler_Vers :

procedure Rouler_Vers (Dest : Character) ;

Pour utiliser cette action, il faut lui fournir un argument, donné entreparenthèses :

Simulation.Rouler_Vers ( Dest => e ) ;

ou plus simplement

Simulation.Rouler_Vers (e) ;

On sait que e doit être de type Character, c.-à-d. une règle doitpermettre d’obtenir e ∈ Character

D. Le Botlan Maths – Algorithmique 1ère année

Page 43: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Règles de typage

RÈGLES « Types de base »

-2000 ∈ Integer42 ∈ Integer42 ∈ Natural42 ∈ Positive

42.0 ∈ FloatTrue ∈ Boolean

False ∈ Boolean’A’ ∈ Character’8’ ∈ Character

"Moo" ∈ String"42" ∈ String

D. Le Botlan Maths – Algorithmique 1ère année

Page 44: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Retour sur Rouler_Vers

On peut donc écrire Simulation.Rouler_Vers (’L’) ;

car ’L’ ∈ Character

ou de manière équivalente Simulation.Rouler_Vers (Dest => ’L’) ;

Éviter la confusion avec la déclarationprocedure Rouler_Vers (Dest : Character) ;

(Pour invoquer Rouler_Vers, on écrit pas procedure, on écrit pas Character)

D. Le Botlan Maths – Algorithmique 1ère année

Page 45: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz

Quizz(typique contrôle)

1 ∈

Integer

1.0 ∈

Float

"1" ∈

String

’1’ ∈

Character

S.Rouler_Vers (Dest => ’L’) ∈

bloc

S.Rouler_Vers (Dest => 1) ∈

D. Le Botlan Maths – Algorithmique 1ère année

Page 46: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz

Quizz(typique contrôle)

1 ∈ Integer

1.0 ∈

Float

"1" ∈

String

’1’ ∈

Character

S.Rouler_Vers (Dest => ’L’) ∈

bloc

S.Rouler_Vers (Dest => 1) ∈

D. Le Botlan Maths – Algorithmique 1ère année

Page 47: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz

Quizz(typique contrôle)

1 ∈ Integer

1.0 ∈

Float

"1" ∈

String

’1’ ∈

Character

S.Rouler_Vers (Dest => ’L’) ∈

bloc

S.Rouler_Vers (Dest => 1) ∈

D. Le Botlan Maths – Algorithmique 1ère année

Page 48: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz

Quizz(typique contrôle)

1 ∈ Integer

1.0 ∈ Float

"1" ∈

String

’1’ ∈

Character

S.Rouler_Vers (Dest => ’L’) ∈

bloc

S.Rouler_Vers (Dest => 1) ∈

D. Le Botlan Maths – Algorithmique 1ère année

Page 49: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz

Quizz(typique contrôle)

1 ∈ Integer

1.0 ∈ Float

"1" ∈

String

’1’ ∈

Character

S.Rouler_Vers (Dest => ’L’) ∈

bloc

S.Rouler_Vers (Dest => 1) ∈

D. Le Botlan Maths – Algorithmique 1ère année

Page 50: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz

Quizz(typique contrôle)

1 ∈ Integer

1.0 ∈ Float

"1" ∈ String

’1’ ∈

Character

S.Rouler_Vers (Dest => ’L’) ∈

bloc

S.Rouler_Vers (Dest => 1) ∈

D. Le Botlan Maths – Algorithmique 1ère année

Page 51: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz

Quizz(typique contrôle)

1 ∈ Integer

1.0 ∈ Float

"1" ∈ String

’1’ ∈

Character

S.Rouler_Vers (Dest => ’L’) ∈

bloc

S.Rouler_Vers (Dest => 1) ∈

D. Le Botlan Maths – Algorithmique 1ère année

Page 52: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz

Quizz(typique contrôle)

1 ∈ Integer

1.0 ∈ Float

"1" ∈ String

’1’ ∈ Character

S.Rouler_Vers (Dest => ’L’) ∈

bloc

S.Rouler_Vers (Dest => 1) ∈

D. Le Botlan Maths – Algorithmique 1ère année

Page 53: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz

Quizz(typique contrôle)

1 ∈ Integer

1.0 ∈ Float

"1" ∈ String

’1’ ∈ Character

S.Rouler_Vers (Dest => ’L’) ∈

bloc

S.Rouler_Vers (Dest => 1) ∈

D. Le Botlan Maths – Algorithmique 1ère année

Page 54: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz

Quizz(typique contrôle)

1 ∈ Integer

1.0 ∈ Float

"1" ∈ String

’1’ ∈ Character

S.Rouler_Vers (Dest => ’L’) ∈ bloc

S.Rouler_Vers (Dest => 1) ∈

D. Le Botlan Maths – Algorithmique 1ère année

Page 55: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz

Quizz(typique contrôle)

1 ∈ Integer

1.0 ∈ Float

"1" ∈ String

’1’ ∈ Character

S.Rouler_Vers (Dest => ’L’) ∈ bloc

S.Rouler_Vers (Dest => 1) ∈

D. Le Botlan Maths – Algorithmique 1ère année

Page 56: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz

Quizz(typique contrôle)

1 ∈ Integer

1.0 ∈ Float

"1" ∈ String

’1’ ∈ Character

S.Rouler_Vers (Dest => ’L’) ∈ bloc

S.Rouler_Vers (Dest => 1) ∈

D. Le Botlan Maths – Algorithmique 1ère année

Page 57: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

D. Le Botlan Maths – Algorithmique 1ère année

Page 58: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 2

Quizz 2150 + 300 ∈

Integer

150 + 3.5 ∈

200 < 900 ∈

Boolean

900 < 200 ∈

Boolean

900.0 < 200.0 ∈

Boolean

900.0 < 200 ∈

D. Le Botlan Maths – Algorithmique 1ère année

Page 59: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 2

Quizz 2150 + 300 ∈ Integer

150 + 3.5 ∈

200 < 900 ∈

Boolean

900 < 200 ∈

Boolean

900.0 < 200.0 ∈

Boolean

900.0 < 200 ∈

D. Le Botlan Maths – Algorithmique 1ère année

Page 60: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 2

Quizz 2150 + 300 ∈ Integer

150 + 3.5 ∈

200 < 900 ∈

Boolean

900 < 200 ∈

Boolean

900.0 < 200.0 ∈

Boolean

900.0 < 200 ∈

D. Le Botlan Maths – Algorithmique 1ère année

Page 61: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 2

Quizz 2150 + 300 ∈ Integer

150 + 3.5 ∈

200 < 900 ∈

Boolean

900 < 200 ∈

Boolean

900.0 < 200.0 ∈

Boolean

900.0 < 200 ∈

D. Le Botlan Maths – Algorithmique 1ère année

Page 62: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 2

Quizz 2150 + 300 ∈ Integer

150 + 3.5 ∈

200 < 900 ∈

Boolean

900 < 200 ∈

Boolean

900.0 < 200.0 ∈

Boolean

900.0 < 200 ∈

D. Le Botlan Maths – Algorithmique 1ère année

Page 63: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 2

Quizz 2150 + 300 ∈ Integer

150 + 3.5 ∈

200 < 900 ∈ Boolean

900 < 200 ∈

Boolean

900.0 < 200.0 ∈

Boolean

900.0 < 200 ∈

D. Le Botlan Maths – Algorithmique 1ère année

Page 64: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 2

Quizz 2150 + 300 ∈ Integer

150 + 3.5 ∈

200 < 900 ∈ Boolean

900 < 200 ∈

Boolean

900.0 < 200.0 ∈

Boolean

900.0 < 200 ∈

D. Le Botlan Maths – Algorithmique 1ère année

Page 65: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 2

Quizz 2150 + 300 ∈ Integer

150 + 3.5 ∈

200 < 900 ∈ Boolean

900 < 200 ∈ Boolean

900.0 < 200.0 ∈

Boolean

900.0 < 200 ∈

D. Le Botlan Maths – Algorithmique 1ère année

Page 66: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 2

Quizz 2150 + 300 ∈ Integer

150 + 3.5 ∈

200 < 900 ∈ Boolean

900 < 200 ∈ Boolean

900.0 < 200.0 ∈

Boolean

900.0 < 200 ∈

D. Le Botlan Maths – Algorithmique 1ère année

Page 67: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 2

Quizz 2150 + 300 ∈ Integer

150 + 3.5 ∈

200 < 900 ∈ Boolean

900 < 200 ∈ Boolean

900.0 < 200.0 ∈ Boolean

900.0 < 200 ∈

D. Le Botlan Maths – Algorithmique 1ère année

Page 68: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 2

Quizz 2150 + 300 ∈ Integer

150 + 3.5 ∈

200 < 900 ∈ Boolean

900 < 200 ∈ Boolean

900.0 < 200.0 ∈ Boolean

900.0 < 200 ∈

D. Le Botlan Maths – Algorithmique 1ère année

Page 69: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 2

Quizz 2150 + 300 ∈ Integer

150 + 3.5 ∈

200 < 900 ∈ Boolean

900 < 200 ∈ Boolean

900.0 < 200.0 ∈ Boolean

900.0 < 200 ∈

D. Le Botlan Maths – Algorithmique 1ère année

Page 70: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Bilan quizz

En TD et TP, vous devrez appliquer ces règles de manièresystématique.

+ Entraînez-vous sur MOODLE.

D. Le Botlan Maths – Algorithmique 1ère année

Page 71: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Plan

1 Retour sur les TPsL’édition du programmeLa compilationL’exécution

2 Bloc Séquence

3 Procédures sans argument

4 Appel de procédure avec argument

5 Constantes, conversions

D. Le Botlan Maths – Algorithmique 1ère année

Page 72: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Les constantes

La plupart des programmes effectuent des calculs.

Pour faciliter la lecture du programme, on s’interdira d’utiliser desvaleurs numériques dans le programme :

Perimetre := 2.0 * 3.14159 * 100.0 ;

À la place, on utilisera des constantes :Pi : constant Float := 3.1415927 ;Rayon : constant Float := 100.0 ; En mètres

(avant le begin)

Perimetre := 2.0 * Pi * Rayon ; (dans le programme)

D. Le Botlan Maths – Algorithmique 1ère année

Page 73: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Les constantes

La plupart des programmes effectuent des calculs.

Pour faciliter la lecture du programme, on s’interdira d’utiliser desvaleurs numériques dans le programme :

Perimetre := 2.0 * 3.14159 * 100.0 ;

À la place, on utilisera des constantes :Pi : constant Float := 3.1415927 ;Rayon : constant Float := 100.0 ; En mètres

(avant le begin)

Perimetre := 2.0 * Pi * Rayon ; (dans le programme)

D. Le Botlan Maths – Algorithmique 1ère année

Page 74: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Définition d’une constante

Définition d’une constante

Foo : constant son_type := sa_valeur ;

D. Le Botlan Maths – Algorithmique 1ère année

Page 75: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Exemples de définitions de constantes

Ces définitions de constantes sont placées avant le begin du pro-grammePi : constant Float := 3.141592 ;Vitesse_Lumiere : constant Float := 3.0E8 ;Vitesse_Rotation_Max : constant Float := 8200.0 ;

Nombre_Eleves : constant Integer := 5_000 ;Promo_INSA : constant Integer := 2016 ;

Nom_Appareil : constant String := "Airbus A380" ;

Est_En_Mode_Simulation : constant Boolean := False ;

D. Le Botlan Maths – Algorithmique 1ère année

Page 76: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Conversion

Parfois il est nécessaire de convertir un entier vers un réel, ouinversement.

Réel vers entier (Float vers Integer), par arrondi :Integer(valeur_réelle)

Entier vers réel (Integer vers Float), par injection :Float(valeur_entière)

Ainsi, Integer(12.5) vaut 13 et Float(132) vaut 132.0.

(Noter que l’opérateur de conversion n’est pas vraiment utile avec des valeursnumériques)

D. Le Botlan Maths – Algorithmique 1ère année

Page 77: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 3

Donner le TYPE et la VALEUR des expressions suivantes :

50.0 ∈ Float valant 50.0

-2_000 ∈

Integer valant -2000

1 / 2 ∈

Integer valant 0

5 / 2 ∈

Integer valant 2

32 mod 5 ∈

Integer valant 2

5 * 10.0 ∈

5.0 * 10.0 ∈

Float valant 50.0

10 + Integer(Outil.Mesure) ∈

Integer (valeur variable)

D. Le Botlan Maths – Algorithmique 1ère année

Page 78: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 3

Donner le TYPE et la VALEUR des expressions suivantes :

50.0 ∈ Float valant 50.0

-2_000 ∈ Integer valant -2000

1 / 2 ∈

Integer valant 0

5 / 2 ∈

Integer valant 2

32 mod 5 ∈

Integer valant 2

5 * 10.0 ∈

5.0 * 10.0 ∈

Float valant 50.0

10 + Integer(Outil.Mesure) ∈

Integer (valeur variable)

D. Le Botlan Maths – Algorithmique 1ère année

Page 79: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 3

Donner le TYPE et la VALEUR des expressions suivantes :

50.0 ∈ Float valant 50.0

-2_000 ∈ Integer valant -2000

1 / 2 ∈ Integer valant 0

5 / 2 ∈

Integer valant 2

32 mod 5 ∈

Integer valant 2

5 * 10.0 ∈

5.0 * 10.0 ∈

Float valant 50.0

10 + Integer(Outil.Mesure) ∈

Integer (valeur variable)

D. Le Botlan Maths – Algorithmique 1ère année

Page 80: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 3

Donner le TYPE et la VALEUR des expressions suivantes :

50.0 ∈ Float valant 50.0

-2_000 ∈ Integer valant -2000

1 / 2 ∈ Integer valant 0

5 / 2 ∈ Integer valant 2

32 mod 5 ∈

Integer valant 2

5 * 10.0 ∈

5.0 * 10.0 ∈

Float valant 50.0

10 + Integer(Outil.Mesure) ∈

Integer (valeur variable)

D. Le Botlan Maths – Algorithmique 1ère année

Page 81: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 3

Donner le TYPE et la VALEUR des expressions suivantes :

50.0 ∈ Float valant 50.0

-2_000 ∈ Integer valant -2000

1 / 2 ∈ Integer valant 0

5 / 2 ∈ Integer valant 2

32 mod 5 ∈ Integer valant 2

5 * 10.0 ∈

5.0 * 10.0 ∈

Float valant 50.0

10 + Integer(Outil.Mesure) ∈

Integer (valeur variable)

D. Le Botlan Maths – Algorithmique 1ère année

Page 82: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 3

Donner le TYPE et la VALEUR des expressions suivantes :

50.0 ∈ Float valant 50.0

-2_000 ∈ Integer valant -2000

1 / 2 ∈ Integer valant 0

5 / 2 ∈ Integer valant 2

32 mod 5 ∈ Integer valant 2

5 * 10.0 ∈

5.0 * 10.0 ∈

Float valant 50.0

10 + Integer(Outil.Mesure) ∈

Integer (valeur variable)

D. Le Botlan Maths – Algorithmique 1ère année

Page 83: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 3

Donner le TYPE et la VALEUR des expressions suivantes :

50.0 ∈ Float valant 50.0

-2_000 ∈ Integer valant -2000

1 / 2 ∈ Integer valant 0

5 / 2 ∈ Integer valant 2

32 mod 5 ∈ Integer valant 2

5 * 10.0 ∈

5.0 * 10.0 ∈ Float valant 50.0

10 + Integer(Outil.Mesure) ∈

Integer (valeur variable)

D. Le Botlan Maths – Algorithmique 1ère année

Page 84: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 3

Donner le TYPE et la VALEUR des expressions suivantes :

50.0 ∈ Float valant 50.0

-2_000 ∈ Integer valant -2000

1 / 2 ∈ Integer valant 0

5 / 2 ∈ Integer valant 2

32 mod 5 ∈ Integer valant 2

5 * 10.0 ∈

5.0 * 10.0 ∈ Float valant 50.0

10 + Integer(Outil.Mesure) ∈ Integer (valeur variable)

D. Le Botlan Maths – Algorithmique 1ère année

Page 85: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 4

On suppose que X vaut 125 et Y vaut 18.5True and False ∈

Boolean valant False

X > 130 ∈

Boolean valant False

(X > 200) or (X < 150) ∈

Boolean valant True

not (Y * 2.0 > 30.0) ∈

Boolean valant False

(Y * 2) < 30 ∈

(Y * 2.0) < 30.0 ∈

Boolean valant False

2X > 100 ∈

(2 * X) > 100 ∈

Boolean valant True

X2 > 100 ∈

(X*X) > Integer(Y * Y) ∈

Boolean valant True

(Y < 20.0) and (X < 130) ∈

Boolean valant True

D. Le Botlan Maths – Algorithmique 1ère année

Page 86: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 4

On suppose que X vaut 125 et Y vaut 18.5True and False ∈ Boolean valant False

X > 130 ∈

Boolean valant False

(X > 200) or (X < 150) ∈

Boolean valant True

not (Y * 2.0 > 30.0) ∈

Boolean valant False

(Y * 2) < 30 ∈

(Y * 2.0) < 30.0 ∈

Boolean valant False

2X > 100 ∈

(2 * X) > 100 ∈

Boolean valant True

X2 > 100 ∈

(X*X) > Integer(Y * Y) ∈

Boolean valant True

(Y < 20.0) and (X < 130) ∈

Boolean valant True

D. Le Botlan Maths – Algorithmique 1ère année

Page 87: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 4

On suppose que X vaut 125 et Y vaut 18.5True and False ∈ Boolean valant False

X > 130 ∈

Boolean valant False

(X > 200) or (X < 150) ∈

Boolean valant True

not (Y * 2.0 > 30.0) ∈

Boolean valant False

(Y * 2) < 30 ∈

(Y * 2.0) < 30.0 ∈

Boolean valant False

2X > 100 ∈

(2 * X) > 100 ∈

Boolean valant True

X2 > 100 ∈

(X*X) > Integer(Y * Y) ∈

Boolean valant True

(Y < 20.0) and (X < 130) ∈

Boolean valant True

D. Le Botlan Maths – Algorithmique 1ère année

Page 88: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 4

On suppose que X vaut 125 et Y vaut 18.5True and False ∈ Boolean valant False

X > 130 ∈ Boolean valant False

(X > 200) or (X < 150) ∈

Boolean valant True

not (Y * 2.0 > 30.0) ∈

Boolean valant False

(Y * 2) < 30 ∈

(Y * 2.0) < 30.0 ∈

Boolean valant False

2X > 100 ∈

(2 * X) > 100 ∈

Boolean valant True

X2 > 100 ∈

(X*X) > Integer(Y * Y) ∈

Boolean valant True

(Y < 20.0) and (X < 130) ∈

Boolean valant True

D. Le Botlan Maths – Algorithmique 1ère année

Page 89: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 4

On suppose que X vaut 125 et Y vaut 18.5True and False ∈ Boolean valant False

X > 130 ∈ Boolean valant False

(X > 200) or (X < 150) ∈

Boolean valant True

not (Y * 2.0 > 30.0) ∈

Boolean valant False

(Y * 2) < 30 ∈

(Y * 2.0) < 30.0 ∈

Boolean valant False

2X > 100 ∈

(2 * X) > 100 ∈

Boolean valant True

X2 > 100 ∈

(X*X) > Integer(Y * Y) ∈

Boolean valant True

(Y < 20.0) and (X < 130) ∈

Boolean valant True

D. Le Botlan Maths – Algorithmique 1ère année

Page 90: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 4

On suppose que X vaut 125 et Y vaut 18.5True and False ∈ Boolean valant False

X > 130 ∈ Boolean valant False

(X > 200) or (X < 150) ∈ Boolean valant True

not (Y * 2.0 > 30.0) ∈

Boolean valant False

(Y * 2) < 30 ∈

(Y * 2.0) < 30.0 ∈

Boolean valant False

2X > 100 ∈

(2 * X) > 100 ∈

Boolean valant True

X2 > 100 ∈

(X*X) > Integer(Y * Y) ∈

Boolean valant True

(Y < 20.0) and (X < 130) ∈

Boolean valant True

D. Le Botlan Maths – Algorithmique 1ère année

Page 91: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 4

On suppose que X vaut 125 et Y vaut 18.5True and False ∈ Boolean valant False

X > 130 ∈ Boolean valant False

(X > 200) or (X < 150) ∈ Boolean valant True

not (Y * 2.0 > 30.0) ∈

Boolean valant False

(Y * 2) < 30 ∈

(Y * 2.0) < 30.0 ∈

Boolean valant False

2X > 100 ∈

(2 * X) > 100 ∈

Boolean valant True

X2 > 100 ∈

(X*X) > Integer(Y * Y) ∈

Boolean valant True

(Y < 20.0) and (X < 130) ∈

Boolean valant True

D. Le Botlan Maths – Algorithmique 1ère année

Page 92: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 4

On suppose que X vaut 125 et Y vaut 18.5True and False ∈ Boolean valant False

X > 130 ∈ Boolean valant False

(X > 200) or (X < 150) ∈ Boolean valant True

not (Y * 2.0 > 30.0) ∈ Boolean valant False

(Y * 2) < 30 ∈

(Y * 2.0) < 30.0 ∈

Boolean valant False

2X > 100 ∈

(2 * X) > 100 ∈

Boolean valant True

X2 > 100 ∈

(X*X) > Integer(Y * Y) ∈

Boolean valant True

(Y < 20.0) and (X < 130) ∈

Boolean valant True

D. Le Botlan Maths – Algorithmique 1ère année

Page 93: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 4

On suppose que X vaut 125 et Y vaut 18.5True and False ∈ Boolean valant False

X > 130 ∈ Boolean valant False

(X > 200) or (X < 150) ∈ Boolean valant True

not (Y * 2.0 > 30.0) ∈ Boolean valant False

(Y * 2) < 30 ∈

(Y * 2.0) < 30.0 ∈

Boolean valant False

2X > 100 ∈

(2 * X) > 100 ∈

Boolean valant True

X2 > 100 ∈

(X*X) > Integer(Y * Y) ∈

Boolean valant True

(Y < 20.0) and (X < 130) ∈

Boolean valant True

D. Le Botlan Maths – Algorithmique 1ère année

Page 94: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 4

On suppose que X vaut 125 et Y vaut 18.5True and False ∈ Boolean valant False

X > 130 ∈ Boolean valant False

(X > 200) or (X < 150) ∈ Boolean valant True

not (Y * 2.0 > 30.0) ∈ Boolean valant False

(Y * 2) < 30 ∈

(Y * 2.0) < 30.0 ∈

Boolean valant False

2X > 100 ∈

(2 * X) > 100 ∈

Boolean valant True

X2 > 100 ∈

(X*X) > Integer(Y * Y) ∈

Boolean valant True

(Y < 20.0) and (X < 130) ∈

Boolean valant True

D. Le Botlan Maths – Algorithmique 1ère année

Page 95: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 4

On suppose que X vaut 125 et Y vaut 18.5True and False ∈ Boolean valant False

X > 130 ∈ Boolean valant False

(X > 200) or (X < 150) ∈ Boolean valant True

not (Y * 2.0 > 30.0) ∈ Boolean valant False

(Y * 2) < 30 ∈

(Y * 2.0) < 30.0 ∈

Boolean valant False

2X > 100 ∈

(2 * X) > 100 ∈

Boolean valant True

X2 > 100 ∈

(X*X) > Integer(Y * Y) ∈

Boolean valant True

(Y < 20.0) and (X < 130) ∈

Boolean valant True

D. Le Botlan Maths – Algorithmique 1ère année

Page 96: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 4

On suppose que X vaut 125 et Y vaut 18.5True and False ∈ Boolean valant False

X > 130 ∈ Boolean valant False

(X > 200) or (X < 150) ∈ Boolean valant True

not (Y * 2.0 > 30.0) ∈ Boolean valant False

(Y * 2) < 30 ∈

(Y * 2.0) < 30.0 ∈ Boolean valant False

2X > 100 ∈

(2 * X) > 100 ∈

Boolean valant True

X2 > 100 ∈

(X*X) > Integer(Y * Y) ∈

Boolean valant True

(Y < 20.0) and (X < 130) ∈

Boolean valant True

D. Le Botlan Maths – Algorithmique 1ère année

Page 97: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 4

On suppose que X vaut 125 et Y vaut 18.5True and False ∈ Boolean valant False

X > 130 ∈ Boolean valant False

(X > 200) or (X < 150) ∈ Boolean valant True

not (Y * 2.0 > 30.0) ∈ Boolean valant False

(Y * 2) < 30 ∈

(Y * 2.0) < 30.0 ∈ Boolean valant False

2X > 100 ∈

(2 * X) > 100 ∈

Boolean valant True

X2 > 100 ∈

(X*X) > Integer(Y * Y) ∈

Boolean valant True

(Y < 20.0) and (X < 130) ∈

Boolean valant True

D. Le Botlan Maths – Algorithmique 1ère année

Page 98: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 4

On suppose que X vaut 125 et Y vaut 18.5True and False ∈ Boolean valant False

X > 130 ∈ Boolean valant False

(X > 200) or (X < 150) ∈ Boolean valant True

not (Y * 2.0 > 30.0) ∈ Boolean valant False

(Y * 2) < 30 ∈

(Y * 2.0) < 30.0 ∈ Boolean valant False

2X > 100 ∈

(2 * X) > 100 ∈

Boolean valant True

X2 > 100 ∈

(X*X) > Integer(Y * Y) ∈

Boolean valant True

(Y < 20.0) and (X < 130) ∈

Boolean valant True

D. Le Botlan Maths – Algorithmique 1ère année

Page 99: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 4

On suppose que X vaut 125 et Y vaut 18.5True and False ∈ Boolean valant False

X > 130 ∈ Boolean valant False

(X > 200) or (X < 150) ∈ Boolean valant True

not (Y * 2.0 > 30.0) ∈ Boolean valant False

(Y * 2) < 30 ∈

(Y * 2.0) < 30.0 ∈ Boolean valant False

2X > 100 ∈

(2 * X) > 100 ∈

Boolean valant True

X2 > 100 ∈

(X*X) > Integer(Y * Y) ∈

Boolean valant True

(Y < 20.0) and (X < 130) ∈

Boolean valant True

D. Le Botlan Maths – Algorithmique 1ère année

Page 100: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 4

On suppose que X vaut 125 et Y vaut 18.5True and False ∈ Boolean valant False

X > 130 ∈ Boolean valant False

(X > 200) or (X < 150) ∈ Boolean valant True

not (Y * 2.0 > 30.0) ∈ Boolean valant False

(Y * 2) < 30 ∈

(Y * 2.0) < 30.0 ∈ Boolean valant False

2X > 100 ∈

(2 * X) > 100 ∈ Boolean valant True

X2 > 100 ∈

(X*X) > Integer(Y * Y) ∈

Boolean valant True

(Y < 20.0) and (X < 130) ∈

Boolean valant True

D. Le Botlan Maths – Algorithmique 1ère année

Page 101: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 4

On suppose que X vaut 125 et Y vaut 18.5True and False ∈ Boolean valant False

X > 130 ∈ Boolean valant False

(X > 200) or (X < 150) ∈ Boolean valant True

not (Y * 2.0 > 30.0) ∈ Boolean valant False

(Y * 2) < 30 ∈

(Y * 2.0) < 30.0 ∈ Boolean valant False

2X > 100 ∈

(2 * X) > 100 ∈ Boolean valant True

X2 > 100 ∈

(X*X) > Integer(Y * Y) ∈

Boolean valant True

(Y < 20.0) and (X < 130) ∈

Boolean valant True

D. Le Botlan Maths – Algorithmique 1ère année

Page 102: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 4

On suppose que X vaut 125 et Y vaut 18.5True and False ∈ Boolean valant False

X > 130 ∈ Boolean valant False

(X > 200) or (X < 150) ∈ Boolean valant True

not (Y * 2.0 > 30.0) ∈ Boolean valant False

(Y * 2) < 30 ∈

(Y * 2.0) < 30.0 ∈ Boolean valant False

2X > 100 ∈

(2 * X) > 100 ∈ Boolean valant True

X2 > 100 ∈

(X*X) > Integer(Y * Y) ∈

Boolean valant True

(Y < 20.0) and (X < 130) ∈

Boolean valant True

D. Le Botlan Maths – Algorithmique 1ère année

Page 103: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 4

On suppose que X vaut 125 et Y vaut 18.5True and False ∈ Boolean valant False

X > 130 ∈ Boolean valant False

(X > 200) or (X < 150) ∈ Boolean valant True

not (Y * 2.0 > 30.0) ∈ Boolean valant False

(Y * 2) < 30 ∈

(Y * 2.0) < 30.0 ∈ Boolean valant False

2X > 100 ∈

(2 * X) > 100 ∈ Boolean valant True

X2 > 100 ∈

(X*X) > Integer(Y * Y) ∈

Boolean valant True

(Y < 20.0) and (X < 130) ∈

Boolean valant True

D. Le Botlan Maths – Algorithmique 1ère année

Page 104: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 4

On suppose que X vaut 125 et Y vaut 18.5True and False ∈ Boolean valant False

X > 130 ∈ Boolean valant False

(X > 200) or (X < 150) ∈ Boolean valant True

not (Y * 2.0 > 30.0) ∈ Boolean valant False

(Y * 2) < 30 ∈

(Y * 2.0) < 30.0 ∈ Boolean valant False

2X > 100 ∈

(2 * X) > 100 ∈ Boolean valant True

X2 > 100 ∈

(X*X) > Integer(Y * Y) ∈ Boolean valant True

(Y < 20.0) and (X < 130) ∈

Boolean valant True

D. Le Botlan Maths – Algorithmique 1ère année

Page 105: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 4

On suppose que X vaut 125 et Y vaut 18.5True and False ∈ Boolean valant False

X > 130 ∈ Boolean valant False

(X > 200) or (X < 150) ∈ Boolean valant True

not (Y * 2.0 > 30.0) ∈ Boolean valant False

(Y * 2) < 30 ∈

(Y * 2.0) < 30.0 ∈ Boolean valant False

2X > 100 ∈

(2 * X) > 100 ∈ Boolean valant True

X2 > 100 ∈

(X*X) > Integer(Y * Y) ∈ Boolean valant True

(Y < 20.0) and (X < 130) ∈

Boolean valant True

D. Le Botlan Maths – Algorithmique 1ère année

Page 106: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

Quizz 4

On suppose que X vaut 125 et Y vaut 18.5True and False ∈ Boolean valant False

X > 130 ∈ Boolean valant False

(X > 200) or (X < 150) ∈ Boolean valant True

not (Y * 2.0 > 30.0) ∈ Boolean valant False

(Y * 2) < 30 ∈

(Y * 2.0) < 30.0 ∈ Boolean valant False

2X > 100 ∈

(2 * X) > 100 ∈ Boolean valant True

X2 > 100 ∈

(X*X) > Integer(Y * Y) ∈ Boolean valant True

(Y < 20.0) and (X < 130) ∈ Boolean valant True

D. Le Botlan Maths – Algorithmique 1ère année

Page 107: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

À retenir

Un programme source, un programme exécutable

L’éditeur de texte, le compilateur.

Le bloc séquence

Définir une procédure sans argument

Appeler une procédure avec argument

Les jugements de typage

Les constantes

D. Le Botlan Maths – Algorithmique 1ère année

Page 108: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

À retenir

Un programme source, un programme exécutable

L’éditeur de texte, le compilateur.

Le bloc séquence

Définir une procédure sans argument

Appeler une procédure avec argument

Les jugements de typage

Les constantes

D. Le Botlan Maths – Algorithmique 1ère année

Page 109: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

À retenir

Un programme source, un programme exécutable

L’éditeur de texte, le compilateur.

Le bloc séquence

Définir une procédure sans argument

Appeler une procédure avec argument

Les jugements de typage

Les constantes

D. Le Botlan Maths – Algorithmique 1ère année

Page 110: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

À retenir

Un programme source, un programme exécutable

L’éditeur de texte, le compilateur.

Le bloc séquence

Définir une procédure sans argument

Appeler une procédure avec argument

Les jugements de typage

Les constantes

D. Le Botlan Maths – Algorithmique 1ère année

Page 111: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

À retenir

Un programme source, un programme exécutable

L’éditeur de texte, le compilateur.

Le bloc séquence

Définir une procédure sans argument

Appeler une procédure avec argument

Les jugements de typage

Les constantes

D. Le Botlan Maths – Algorithmique 1ère année

Page 112: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

À retenir

Un programme source, un programme exécutable

L’éditeur de texte, le compilateur.

Le bloc séquence

Définir une procédure sans argument

Appeler une procédure avec argument

Les jugements de typage

Les constantes

D. Le Botlan Maths – Algorithmique 1ère année

Page 113: Maths – Algorithmique 1ère année

Retour sur les TPsBloc Séquence

Procédures sans argumentAppel de procédure avec argument

Constantes, conversions

À retenir

Un programme source, un programme exécutable

L’éditeur de texte, le compilateur.

Le bloc séquence

Définir une procédure sans argument

Appeler une procédure avec argument

Les jugements de typage

Les constantes

D. Le Botlan Maths – Algorithmique 1ère année