Vous êtes sur la page 1sur 22

10/04/2020

UNITE III

La programmation
LOGO

Pr : M.BOUSSOUF

Plan
I. Rappel

II. Calculs Numériques Notion de variable

III. Utilisation des variable dans une primitive

IV. Les procédures paramétrées(1)

V. Les procédures paramétrées(2)

VI. Structure de contrôle

VII. Arrêt programmé dans une procédure

VIII.Calcul numérique

2 2 Pr : M.BOUSSOUF

1
10/04/2020

Rappel

1. Définitions

La programmation est l’ensemble des activités qui permettent l’écriture


des programmes informatiques.

Un langage de programmation est constitué de plusieurs mots qui


permettent de rédiger un programme.

Un programme informatique est un ensemble d’instructions.

Une instruction : Une primitive : est une commande qui permet d’effectuer
une opération donnée.

Logo est un langage de programmation ..

Pr : M.BOUSSOUF

Rappel

1. Définitions

La programmation est l’ensemble des activités qui permettent l’écriture


des programmes informatiques.

Un langage de programmation est constitué de plusieurs mots qui


permettent de rédiger un programme.

Un programme informatique est un ensemble d’instructions.

Une instruction : Une primitive : est une commande qui permet d’effectuer
une opération donnée.

Logo est un langage de programmation ..

Pr : M.BOUSSOUF

2
10/04/2020

Rappel

2. Primitives de base

AVANCE N = AV N = avance N = av N : Commande à la tortue


d’avancer de N pas.

N : représente une distance est donc un nombre.

Exemple : av 100

TOURNEDROITE A = TD A = tournedroite A = td A : Commande à la


tortue d’effectuer une rotation de n degrés à droite.

A : représente un angle est donc un nombre.

Exemple : td 80
Pr : M.BOUSSOUF

Rappel Primitives=Commande arguments fonction

Avance, av N : nombre de pas Commande à la tortue d’avancer de n pas.


Recule, re N : nombre de pas Commande à la tortue de reculer de n pas.
Tournedroite, td N : angle Commande à la tortue d’effectuer une rotation de n degrés à droite
Tournegauche, tg N : angle Commande à la tortue d’effectuer une rotation de n degrés à gauche
Cercle R : nombre Trace un cercle de rayon R autour de la tortue
Montretortue, mt Aucun Rend la tortue visible.
Cachetortue, ct Aucun Rend la tortue invisible pour l’utilisateur.
Videecran, ve Aucun Efface l’écran et réinitialise la tortue à sa position initiale.
Nettoie Aucun Efface la zone de dessin mais la tortue reste au même endroit.
Gomme, go Aucun La tortue efface tous les traits qu’elle rencontre.
Levecrayon, lc Aucun La tortue n’écrit pas lorsqu’elle se déplace.
Baissecryon, bc Aucun La tortue écrit lorsqu’elle se déplace.
Fixe la couleur du crayon.
Fixecouleurcrayon, fcc C : Nom de la couleur
'fcc hasard 256' pour avoir une couleur au hasard.
Fixecouleurfond, fcfg A : entier Fixe la couleur du fond de l’écran.
Fixetaillecrayon, ftc N : nombre Fixe l'épaisseur du trait du crayon en pixel
Remplis Aucun Permet de remplir une forme fermée par une couleur.
Repete n [instructions] N : nombre Permet de répéter n fois les instructions qui se trouve entre les accolades.
Origine Aucun Fixe la position de la tortue au départ (0,0).
Pr : M.BOUSSOUF

3
10/04/2020

Calculs numériques notion de variable

1. Initiation:

Stocker la valeur 5 dans


la variable X
5 5

Variable X Variable X

la valeur 12 a écrasé la
12 valeur 5 12
5
Variable X
Variable X

7 Pr : M.BOUSSOUF

Calculs numériques notion de variable

2. Définition:

Les variables sont utilisées en informatique en général et


en LOGO en particulier pour stocker les données d’une
manière temporaire (texte, nombre) pour pouvoir les utiliser
après.

8 Pr : M.BOUSSOUF

4
10/04/2020

Calculs numériques notion de variable

3. Affectation:

Stocker une valeur dans une variable: c’est affecter une


valeur à une variable, cette opération est appelée
« Affectation » .

Syntaxe:

Donne ’’nom_variable valeur

Exemple :
Donne ’’age 18 stocker 18 dans la variable age
Donne ’’ville Fès stocker Fès dans la variable ville

9 Pr : M.BOUSSOUF

Calculs numériques notion de variable

3. Affectation

Remarque :

L’utilisation des variables dans des


commandes ou des procédures doit
être précédé par deux points ( : )

Exemple :

Donne ’’largeur 20
Donne ’’largeur : largeur+2

10 Pr : M.BOUSSOUF

5
10/04/2020

Calculs numériques notion de variable

4. Affichage des résultats :

Pour afficher les résultats on utilise la primitive ecris ou ec.

Syntaxe : Exemple :

Ecris :nom_variable Ecris :largeur


Ecris [message à afficher] Ecris [bonjour tout le monde]
Ec ’’un mot Ec ’’logo
Ec opération Ec 4+9

11 Pr : M.BOUSSOUF

Calculs numériques notion de variable

5. Exercice d’application 1:

On choisit Hauteur comme variable :

Quelle est sa valeur au départ?

Quelle sera sa nouvelle valeur, dans les cas suivants:


Hauteur =50
1. Donne ‘’Hauteur 50 ?
Hauteur = 50
2. Donne ‘’ Hauteur :Hauteur ?
Hauteur = 100
3. Donne ‘’Hauteur :Hauteur + :Hauteur ?
Hauteur = 530
4. Donne ‘’Hauteur 5 *:Hauteur + 30 ?

12 Pr : M.BOUSSOUF

6
10/04/2020

Calculs numériques notion de variable

5. Exercice d’application 2 :

Soit un carré dont le côté est la variable :pas.

1. Donner la syntaxe permettant d’affecter à la variable :pas la


valeur 100.

2. Donner la syntaxe à utiliser pour afficher son périmètre, en


utilisant la variable :pas.

3. Donner la syntaxe à utiliser pour afficher sa surface, en utilisant la


variable :pas.

13 Voir la réponse Pr : M.BOUSSOUF

Utilisation d’une variable dans une primitive

1. Initiation:
Quel est le résultat obtenu par l’exécution de la procédure
figure, ci-dessous :

Pour figure

Donne ‘’nombre 3

Donne ‘’pas 3

Donne ‘’angle 3

Repete :nombre [ AV :pas TD :angle ]

Fin

14 Lancez XLOGO Pr : M.BOUSSOUF

7
10/04/2020

Utilisation d’une variable dans une primitive

1. Initiation:

Édite la procédure figure et change le contenu des 3 variables:


donne 6 à nombre, 100 à pas et 60 à angle, puis exécute cette
figure.

Comment s’appelle la figure géométrique obtenue?

Édite de nouveau la procédure figure en affectant aux variables:


nombre, :pas, :angle les nombres adéquats afin d’obtenir un carré.

Quelle est l’utilité de l’utilisation des variables dans une


procédure?

15 Lancez XLOGO Pr : M.BOUSSOUF

Utilisation d’une variable dans une primitive

L’utilisation des variables dans une primitive permet


d’obtenir des dessins différents à partir de la même primitive.

L’utilisation des noms significatifs pour les variables


rendent le programme plus compréhensible et facilite sa
modification.

16 Pr : M.BOUSSOUF

8
10/04/2020

Utilisation d’une variable dans une primitive

2. Exercice d’application :
Complète la procédure suivante, puis édite–la et exécute-la :
Pour carré-emboites
Donne ‘’pas …
Donne ‘’angle …
Donne ‘’nombre…
Repete :nombre[AV :pas TD :angle]
Donne ‘’pas…
Repete :nombre[AV :pas TD :angle]
Donne ‘’pas…
Repete :nombre[AV :pas TD :angle] Carre-emboites

Donne ‘’pas…

17
Fin
Lancez XLOGO Pr : M.BOUSSOUF

Les procédures paramétrées (1)

1. Initiation :
Pour carre
Donne ‘’cote 50
Repete 4 [ AV :cote TD 90]
Donne ‘’cote 100
Repete 4 [ AV :cote TD 90]
Donne ‘’cote 150
Repete 4 [ AV :cote TD 90]
Fin

1. Explique le rôle de chacune des instructions. ?


2. Quel sera le dessin tracé par cette procédure, après son
exécution?
3. Peut-on simplifier cette démarche? Si oui, propose une
démarche?

18 Lancez XLOGO Pr : M.BOUSSOUF

9
10/04/2020

Les procédures paramétrées (1)

2. Définition :

Une procédure paramétrée est une procédure qui contient


des données variables appelés « paramètres ».

19 Pr : M.BOUSSOUF

Les procédures paramétrées (1)

3. Création d’une procédure paramétrée:


Au cours de la création d’une procédure avec un paramètre
celui-ci doit être défini comme une variable.

Syntaxe:
La structure de l’entête d’une procédure paramétrée:

Pour Nom_procédure :Nom_variable

Exemple:
Pour carre :cote
REPETE 4 [ AV :cote TD 90 ]
Fin
20 Pr : M.BOUSSOUF

10
10/04/2020

Les procédures paramétrées (1)

4. Exécution d’une procédure paramétrée:

Pour exécuter une procédure paramétrée, il suffit de


l’appeler par son nom suivi de la valeur à donner à son
paramètre.

Exemple:

 Carre 50

 Carre 120

21 Pr : M.BOUSSOUF

Les procédures paramétrées (1)

5. Exercice d’application :

Transformer la procédure suivante à une procédure


paramétrée:

Pour Triangle
REPETE 3 [ AV 100 TD 120 ]
Fin

22 Voir la réponse Pr : M.BOUSSOUF

11
10/04/2020

Les procédures paramétrées (2)

1. Initiation :

Écrivez une procédure qui a pour but de tracer un rectangle


avec :
 Largeur : 100
 Longueur : 200

Solution :

Pour rectangle
REPETE 2[AV 100 TD 90 AV 200 TD 90]
Fin

23 Pr : M.BOUSSOUF

Les procédures paramétrées (2)

Réécrivez la procédure précédente en utilisant une


procédure paramétrée à deux variables (largeur, longueur).

Solution :

Pour rectangle :largeur :longueur

REPETE 2[AV :largeur TD 90 AV :longueur TD 90]

Fin

24 Pr : M.BOUSSOUF

12
10/04/2020

Les procédures paramétrées (2)

Il est possible de définir une procédure LOGO à plusieurs paramètres


.

Syntaxe :
Pour Nom_procédure :Paramètre1 :paramètre2

Remarque :
Les valeurs utilisées lors de l’exécution de la
procédure sont associées aux noms des
paramètres, alors il faut respecter l’ordre
d’inscription des paramètres existants dans
l’entête de la procédure.
Le choix du nombre de paramètres dépend du
problème à résoudre.

25 Pr : M.BOUSSOUF

Les procédures paramétrées (2)

2. Exercice d’application :

Pour carre :taille :cote


ve
Ftc :taille
Repete 4 [AV :cote TD 90]
Fin

1. Combien possède la procédure carre de paramètres?


2. Quel sera le dessin tracé, après l’exécution de cette
procédure?
3. Saisis cette procédure dans l’éditeur XLOGO?
4. Donne des valeurs aux paramètres et exécute-la?

26 Lancez XLOGO Pr : M.BOUSSOUF

13
10/04/2020

Structure de contrôle

1. Initiation :

Pour polygone :cote :angle


AV :cote TD :angle
Polygone :cote :angle
Fin

1. Analyse cette procédure et essaie de prévoir ce que va se


passer lors de son exécution.
2. Exécute la procédure polygone 100 90.
3. Quel est le résultat obtenu?
4. Comment résoudre ce problème?

27 Lancez XLOGO Pr : M.BOUSSOUF

Structure de contrôle

Remarque :

Il est possible d’utiliser le nom d’une


procédure dans le corps de cette même
procédure. C’est une procédure qui fait
l’appelle à elle-même.

28 Pr : M.BOUSSOUF

14
10/04/2020

Structure de contrôle

Remarque :

L’exécution de cette procédure ne


s‘arrête jamais. Mais on peut
l’arrêter depuis l’extérieur à l’aide
du bouton .

29 Pr : M.BOUSSOUF

Structure de contrôle

2. Exercice d’application :
Saisis la procédure suivante dans l’éditeur XLOGO :
Pour polygone :cote :angle
AV :cote
TD :angle
polygone (:cote + 1) :angle
Fin
1. Exécute la commande polygone 1 90 et n’oublie pas d’arrêter son
déroulement avec le bouton Stop.
2. Exécute de nouveau les commandes polygone 1 60, polygone 1
80, polygone 1 144.
3. Quelle est la différence entre les procédures avant et après la
modification opérée?
4. Peux-tu arrêter le dessin réalisé après un nombres de fois connu à
l’avance?
30 Lancez XLOGO Pr : M.BOUSSOUF

15
10/04/2020

Arrêt programmé dans une procédure

1. Initiation :
Exécuter la procédure suivante:

Pour compteur
Ecris :nombre
Compteur :nombre-1
Fin

Le bouton stop n’est pas suffisant pour arrêter l’exécution de


cette procédure et avoir en même temps le résultat désiré(par
exemple: avoir seulement les nombres positifs).

31 Pr : M.BOUSSOUF

Arrêt programmé dans une procédure

Solution :

On peut programmer l’arrêt de l’exécution d’une procédure


à l’intérieur de celle-ci sans faire appel au bouton stop :

Pour compteur :nombre


si :nombre<0 [stop]
ecris :nombre
compteur :nombre-1
Fin

32 Pr : M.BOUSSOUF

16
10/04/2020

Arrêt programmé dans une procédure

La primitive si est utilisée dans le système LOGO pour


exécuter des tests. c'est une instruction conditionnelle.
Si la condition est vrai, elle fait l’appelle à la primitive stop qui est
chargée d’arrêter l’exécution de la procédure, sinon elle continu
l’exécution et passe à la ligne suivante.

Syntaxe :

Si condition [primitive(s)ou procédure(s) à exécuter]

Dans notre exemple:


Si :nombre<0 [stop]

33 Pr : M.BOUSSOUF

Arrêt programmé dans une procédure

Après un test, on peut combiner les primitives si et stop pour


faire le choix entre deux chemin.

Exemple :
Pour test :nombre
si :nombre < 0 [ecris ‘’Négatif stop]
ecris ‘’positif
Fin

34 Pr : M.BOUSSOUF

17
10/04/2020

Arrêt programmé dans une procédure

2. Exercice d’application :

Édite et sauvegarde la procédure suivante :


Pour test :nombre
si :nombre <0 [ecris ’’Négatif]
ecris ’’Positif
Fin

1. Exécute la procédure test 55 et test -55 ?


2. Que constates-tu ?
3. Qu’est ce qui manque pour avoir un résultat non
contradictoire ?
4. Réécrivez la procédure en insérant la primitive Stop au bon
endroit?
35 Lancez XLOGO Pr : M.BOUSSOUF

Calcul numérique

1. Initiation :

Exécute les commandes suivantes:

Ecris 10*10+55*21 1255


80
Ecris -10*2+100
-5.5
Ecris 4.5-10
40
Ecris 120/3

36 Pr : M.BOUSSOUF

18
10/04/2020

Calcul numérique

Comme tous les langage de programmation, LOGO dispose des


opérateurs de base pour faire des calculs:
 Addition: +
 Soustraction: -
 Multiplication: *
 Division: /

La sortie des données numériques traitées est précédée par la


primitive Ecris.

Exemple :
 Ecris 5*25-3
 Ecris 25/4
37 Pr : M.BOUSSOUF

Calcul numérique

A partir des opérateurs mathématiques, on peut créer d’autres


grâce à des procédures simples ou paramétrées.

Exemples :

 Le calcul du carré d’un nombre :


Pour Carré :nombre
Ecris :nombre* :nombre
Fin

 Le calcul de la moyenne de deux notes :


Pour Moyenne :note1 :note2
Ecris :(note1+ :note2)/ 2
38 Fin Pr : M.BOUSSOUF

19
10/04/2020

Calcul numérique

2. Exercice d’application :

Créer une procédure paramétrée qui permet de calculer le


cube d’un nombre.

39 Voir la réponse Pr : M.BOUSSOUF

Devoir de fin d’unité

Exercice n°1 :
Cocher la case ou les cases qui correspondent aux bons
réponses :

 L’affectation d’une variable veut dire :

 Stocker une donnée dans une variable

 Échanger une donnée et une variable

 Mettre une donnée dans une variable

 Vider une variable

40 Pr : M.BOUSSOUF

20
10/04/2020

Devoir de fin d’unité

Exercice n°2 :
Cocher la case qui correspond au bon réponse :

Pour surface

Donne ‘’Rayon 15

Donne ’’Résultat :Rayon * :Rayon * 3.14

Ecris :Résultat

Fin

La commande surface affiche :

 706.5  706

 706.1  706.2
41 Pr : M.BOUSSOUF

Devoir de fin d’unité

Exercice n°3 :
Réponds par vrai ou faux :

Une procédure peut contenir plusieurs procédure déjà


définies

Une procédure est un programme

L’instruction :bénéfice= :bénéfice+300 est une affectation

Le paramètre d’une procédure est une variable

L’instruction ecris dernier « jouer affiche Z

L’écriture pour avance :pas n’est pas permise.

42 Pr : M.BOUSSOUF

21
10/04/2020

Devoir de fin d’unité


Exercice n°4 :
La tour ci-contre à dessiner est formée de carrées superposés de
plus en plus petits. Pour le dessin d’un carré quelconque, on utilise la
procédure suivante :
Pour carré :cote
Repete 4 [ AV :cote TD 90 ]
Fin
Édite et sauvegarde la procédure tour :
Pour tour :cote
Si :cote < 40 [stop]
Carré :cote
Av :cote
Tour :cote-20
Fin

43 Lancez XLOGO Pr : M.BOUSSOUF

Devoir de fin d’unité

Suite d’exercice n°4 :


1. Exécute la commande :tour 100

2. Exécute la commande : tour 120

3. Que se passe-t-il si tu remplaces l’instruction tour :cote-20 par


tour :cote+20?

4. Qu’est ce qu’il faut changer pour que ça marche (penser au


teste d’arrêt )?

5. Que se passe-t-il si tu remplaces l’instruction :

tour :cote-20 par tour :cote*20 ?

44 Lancez XLOGO Pr : M.BOUSSOUF

22

Vous aimerez peut-être aussi