Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
programmation:python:controle1 [22/05/2017 03:51] sky99 |
programmation:python:controle1 [26/11/2018 13:29] (Version actuelle) sky99 créée |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Exercice 1 ====== | + | ====== Contrôle 1 - fonctions ====== |
- | <code python> | + | Ce contrôle est individuel. Vous avez le droit de chercher des informations sur internet, |
+ | mais pas de communiquer entre vous. Vous devez créer un fichier NOM_PRENOM.py, | ||
+ | en remplaçant **NOM** et **PRÉNOM** par votre nom et votre prénom. | ||
- | #la fonction lire_distance() retourne la distance en cm devant le robot | + | Dans ce fichier, vous écrirez toutes les fonctions, chaque fonction ayant le nom de la question du devoir (par exemple, la fonction qui répond à la première question s'appellera question1() ). |
- | d1=lire_distance() | + | |
- | avancer() #le robot se met à avancer en continu | + | |
- | time.sleep(5) #on continue ce qu'on faisait pendant 5s. | + | |
- | stop() #arrête les moteurs du robot | + | |
- | d2=lire_distance() | + | |
- | d3=d1-d2 | + | |
- | x=d/5 | + | |
- | print("d3=",d3) | + | |
- | print("x=",x) | + | |
- | </code> | + | Chaque fonction commencera par un affichage indiquant la question, par exemple pour la question 1, au début de la fonction vous affichez la chaîne "question1". |
- | q1 - à quoi correspond la grandeur D3? (pas la valeur, mais ce que ça signifie) | + | |
- | . | + | Certaines fonctions nécessiteront des paramètres, d'autres non. Certaines fonctions devront retourner une valeur, d'autres non. |
- | . | + | |
- | . | + | |
+ | Enfin, vous créerez une fonction main, appelée uniquement si le script est exécuté (comme vu dans toutes les séances de TP), et qui appellera chaque fonction de votre programme. | ||
- | q2 - à quoi correspond la grandeur x? (pas la valeur, mais ce que ça signifie) | + | ===== Question1 ===== |
+ | Écrivez une fonction qui affiche la chaîne suivante : "ceci est une fonction", | ||
+ | puis à la ligne une seconde chaîne : "cette fonction est simple". | ||
+ | ===== Question2 ===== | ||
+ | Écrivez une fonction qui prend deux nombres en paramètres, et affiche la somme de ces deux nombres. | ||
+ | L'affichage devra être explicite, par exemple, //question2(5,4)// devra afficher : | ||
+ | <code>5 + 4 = 9</code> | ||
+ | ===== Question3 ===== | ||
+ | Écrivez une fonction qui prend deux nombres en paramètres, et indiquera si le premier est plus grand, égal, ou plus petit que le second. Exemple : //question3(10,5)// affichera : | ||
+ | <code>10 est plus grand que 5</code> | ||
- | q3 - décrire ce que fait le robot en pratique. | + | ===== Question4 ===== |
+ | Écrivez une fonction qui prend deux nombres en paramètres, et affichera la liste des nombres compris | ||
+ | entre le premier (inclus) et le second (inclus). | ||
+ | Exemple : //question4(6,12)// affichera : | ||
+ | <code>6, 7, 8, 9, 10, 11, 12</code> | ||
- | ====== Exercice 2 ====== | + | ===== Question5 ===== |
- | <code python> | + | Ecrivez une fonction qui demande à l'utilisateur de saisir son nom, puis le saluera en affichant "bonjour NOM". Exemple : //question5()// affichera : |
- | + | <code> | |
- | d=lire_distance() | + | Veuillez saisir votre nom : |
- | while(d>5): | + | Linus Torvalds |
- | avancer() | + | Bonjour, Linus Torvalds |
- | time.sleep(0.5) | + | |
- | d=lire_distance() | + | |
- | + | ||
- | print("d=",d)#affichage de la distance d | + | |
</code> | </code> | ||
+ | La fonction retournera le nom. | ||
- | q1 : le robot pourra il afficher la distance d, ou est-ce impossible? justifiez. | + | ===== Question6 ===== |
+ | Écrivez une fonction qui demande à l'utilisateur de saisir son âge, puis affichera s'il est majeur ou mineur. On ne s'occupera pas de la gestion des erreurs dans cette version. | ||
+ | La fonction retournera l'age. | ||
+ | ===== Question7 ===== | ||
+ | Écrivez une fonction qui demande à l'utilisateur de saisir son âge, en s'assurant qu'il saisisse un age supérieur à 0. Tant que l'utilisateur ne saisit pas un age strictement supérieur à zero, la fonction lui redemandera une saisie. | ||
+ | La fonction retournera l'age. | ||
+ | ===== Question8 ===== | ||
+ | Écrivez une fonction qui demande à l'utilisateur de saisir son âge, en s'assurant qu'il saisisse un age supérieur à 0. Tant que l'utilisateur ne saisit pas un age strictement supérieur à zéro, la fonction lui redemandera une saisie. En plus, cette fois ci, la fonction gérera les erreurs de saisie, avec Try/Except comme nous l'avons vu pour éviter que l'utilisateur ne saisisse un age qui ne soit pas un nombre. | ||
+ | La fonction retournera l'age. | ||
- | q2 : si le robot parvient à afficher quelque chose, indiquer l'intervalle possible des valeurs. | + | ===== Question9 ===== |
+ | Écrivez une fonction qui demande à l'utilisateur son genre (femme/homme/autre). La saisie devra se faire par un nombre : 1 pour femme, 2 pour homme, 3 pour autre. La fonction redemandera à l'utilisateur une saisie tant qu'il n'aura pas saisi une valeur correcte (1, 2 ou 3). | ||
+ | La fonction retournera la valeur saisie. | ||
- | + | ===== Question10 ===== | |
- | + | Écrivez une fonction qui utilise la fonction question5, la fonction question8 (ou 7 si vous n'avez pas réussi la 8, ou 6 si vous n'avez réussi ni la 8 ni la 7), et la fonction question9. | |
- | + | Cette fonction demandera à l'utilisateur son nom (en utilisant la fonction question 5), son age (fonction question8 ou question7 ou question6), et son genre (fonction question9). | |
- | ====== Exercice 3 ====== | + | La fonction affichera alors un compte rendu du de ce type : |
- | <code python> | + | <code> |
- | while(1): | + | Lady Ada Byron |
- | if(detection_contact_gauche()==True): | + | Femme |
- | print("impact gauche") | + | Majeure (42 ans) |
- | allumer_led(0,rouge) | + | |
- | tourner_gauche() | + | |
- | time.sleep(0.5) | + | |
- | elif(detection_contact_doite()==True): | + | |
- | print("impact droite") | + | |
- | allumer_led(1,rouge) | + | |
- | tourner_droite() | + | |
- | time.sleep(0.5) | + | |
- | else: | + | |
- | print("chemin dégagé") | + | |
- | allumer_led(0,vert) | + | |
- | allumer_led(1,vert) | + | |
- | avancer() | + | |
- | time.sleep(0.5) | + | |
- | print("fin du programme") | + | |
- | stop() | + | |
</code> | </code> | ||
- | q1 - à quel moment le robot affichera "fin du programme?" justifiez votre réponse. | ||
- | |||
- | |||
- | |||
- | q2 - que fait ce programme? expliquez le principe général de cet algorithme. | ||
- | |||
- | |||
- | |||
- | q3 - peut on avoir une LED allumée en vert et l'autre en rouge? justifiez. |