20 - Exos Outils & Fonctions
Attention, le soin est noté et les codes markdown identiques seront sanctionnés à moins de noter clairement que vous avez travaillé avec un autre élève de la classe.
1 - Création de Fonctions
01° Créer une fonction qui attend un paramètre a
de type int
et qui renvoie le triple de a.
02° Créer une fonction qui attend un paramètre a de type int
et qui renvoie True
si la valeur est strictement supérieure à 12. Sinon, False
.
03° Créer une fonction qui attend deux paramètres a et b de
type int
. Elle renvoie True
si les deux paramètres sont
strictement supérieures à 10. False
sinon.
2 - Identification des paramètres
Nous allons analyser dans cette partie un ensemble de fonctions permettant de dessiner des carrés colorés dans le module Turtle.
Le programme en lui-même, hors partie importation et partie déclaration ressemble à ceci :
59
60
61 |
|
04° Comparer l'appel de la fonction carre avec le prototype de la fonction qu'on peut voir ligne 34.
Donner alors le type (str, int...) et le contenu des différents paramètres lors de cet appel.
- contour ?
- interne ?
- epaisseur
- x ?
- y ?
- largeur ?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61 |
|
05° Lignes 47 : réécrire sur votre copie cet appel en notant clairement le contenu des arguments contour et epaisseur.
Faux exemple :
47 |
|
06° Quel est le type de la réponse de la fonction stylo ?
- Un stylo, un vrai avec un capuchon et tout et tout
- La référence d'un objet Turtle, référence qui permettra d'utliser ce "crayon"
- Un string nommé Turtle
- None, c'est une "procédure" Python
On voit ensuite ligne 48 qu'on stocke la référence de notre nouvel objet Turtle dans une variable qu'on nommme feutre.
07° Comment se nomme le paramètre de la fonction deplacer qui va recevoir la référence de l'objet Turtle feutre qu'on lui envoie ?
08° Aurait-on pu écrire le code ci-dessous (dans lequel la fonction deplacer utilise également une variable nommée feutre) ou cela aurait-il posé des problèmes ?
Pensez à répondre en parlant de l'espace des noms des deux fonctions. Cela devrait simplifier votre rédaction :o)
20
21
22
23
24
25
26
27
28
29
30
31
32 |
|
09° Est-ce l'identifiant-mémoire qui permet d'agir sur le bon "crayon" ou est-ce le nom de la variable ?
10° Mettre la fonction assemblage en mémoire en plus des fonctions précédentes. Lancer un appel à cet appel dans la console de façon à créer un assemblage commençant à 50 pixels sur l'axe horizontal.
Ecrire l'appel sur votre copie.
1
2
3
4 |
|
11° Que valent les variables de boucle ligne puis colonne
- Lors du premier appel à carre ?
- Lors du deuxième appel à carre ?
- Lors du troisième appel à carre ?
12° Créer la fonction chateau qui permet de tracer un chateau en fournissant les coordonnées. Cette fonction devra bien entendu utiliser la fonction carre de façon à ne pas écrire un code qui est déjà écrite. Votre chateau devra comporter au moins 6 carrés. A vous de voir comment le représenter. Ce n'est de toutes manières pas un concours artistique.
Un peu d'interactivité maintenant.
Pour l'instant, nous sommes en programmation impérative : les instructions s'enchaînent les unes derrière les autres et on peut suivre le cheminement du programme.
Mais, on peut faire de la programmation événementielle : il s'agit de placer notre programme dans un certain état puis de surveiller les actions de l'utilisateur de façon à modifier l'état du programme en fonction des actions de l'utilisateur.
Exemple :
27
28
29
30
31
32 |
|
Ligne 27 à 29 : déclaration et mise en mémoire d'une fonction. On zappe pour l'instant.
Ligne 30 : on crée un objet ecran qui nous permettra d'agir sur la fenêtre graphique dans laquelle apparaissent les dessins.
Ligne 31 : on agit sur la fenêtre graphique pour dimensionner l'écran.
Ligne 32 : on utilise la méthode onclick sur l'écran. On donne en argument la fonction qu'il faudra activer lorsqu'on détecte un clic de la souris sur notre écran : ici, cela va lancer automatiquement la fonction dessin_au_click.
13° Lancer et tester le programme suivant, avec quelques clics sur l'écran.
Le propre des fonctions événementielles est de recevoir des informations sur l'événement qui les ont déclenchées.
Que semblent contenir automatiquement les paramètres x et y de la fonction événementielle dessin_au_click ?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 |
|
Si vous voulez le moyen de gérer le clavier, vous trouverez votre bonheur dans la documentation Python du module Turtle.
La partie suivante vous montre quelques utilisations possibles.
3 - QCM
14° Lancer et tester le programme suivant. Il faut appuyer sur les flèches Haut et Bas pour déclencher un événement.
Quelques questions de type QCM sur le code ci-dessous.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78 |
|
15° Le lancement de la surveillance de la flèche du Haut se trouve
- Ligne 74
- Ligne 76
- Ligne 48
- Ligne 21
16° Lorsqu'on appuie sur la flèche du Haut, on active d'abord
- la fonction couleur
- la fonction stylo
- la fonction carre
- la fonction dessiner_carre
17° Ligne 26. La variable de boucle etape va prendre successivement les valeurs
- 0-1-2-3-4
- 1-2-3-4
- 0-1-2-3
- 1-2-3
18° Ligne 59. Nous avons mis deux signes = car
- on veut vérifier deux fois que les valeurs soient vraiment égales
- on veut comparer les expressions de chaque côté de ==
- c'est un piège : il ne faut mettre qu'un seul égal
- on compare à 2. Si on avait comparé à trois, nous aurions noté
choix === 3
Activité publiée le 15 09 2020
Dernière modification : 15 09 2020
Auteur : ows. h.