• Aucun résultat trouvé

— Exécuter un programme.

N/A
N/A
Protected

Academic year: 2022

Partager "— Exécuter un programme."

Copied!
3
0
0

Texte intégral

(1)

Introduction à la Programmation 1 – Travaux Pratiques

Séance 1b: L’apprenti-(sorcier|programmeur)

Université Paris-Diderot

Objectifs:

— Exécuter un programme.

— Apprendre à lire des programmes.

— Identifier les mécanismes de la programmation

impérative.

— Comprendre ce que fait un programme.

— Modifier un programme existant.

Rappel : Tous les fichiers que vous sauvegarderez ou créerez pour ce TP devront être mis dans le répertoire TP1b sous-répertoire du répertoire IP1-Python que vous avez créé au TP précédent.

Avant d’apprendre à écrire des programmes, nous allons commencer par en étudier quelques-uns déjà écrits.

Pour chacun des programmes, vous allez successivement : les lire, imaginer ce qu’ils font, les exécuter et enfin, les modifier légèrement. En étudiant ces programmes, vous allez découvrir la plupart des mécanismes de programmation impérative étudiés ce semestre : les affectations, les instructions conditionnelles, les boucles, les fonctions et les procédures. Ces travaux pratiques ne sont qu’une première expérimentation : nous reviendrons en détails sur chacun des mécanismes au fur et à mesure du semestre. Il est donc tout à fait normal que vous n’en compreniez pas encore tous les détails.

Exercice 1 (Hello World !, ?)

Le fichier helloworld.py contient le code source d’un programme qui est traditionnellement le premier programme que l’on écrit lorsque l’on apprend un nouveau langage de programmation

1

.

1. Lisez le code source du programme, que fait-il selon vous ? Vérifiez votre hypothèse en exécutant la commande suivante dans un terminal :

1

p y t h o n 3 h e l l o w o r l d . py

2. Quelles sont les parties du code source qui correspondent à des commentaires ? Quelles sont les parties du code source qui correspondent à du code Python ? De combien d’instructions est composé ce programme ? Quel est le rôle de l’instruction print ?

3. Remplacez l’expression « "Hello World!" » par « "Hello" + " " + "World!" » puis exécutez le programme, est-ce que le comportement du programme a changé ? Que fait l’opérateur + selon vous ? 4. Rajoutez les deux lignes suivantes tout au début du programme :

1

p r i n t ( " W h a t is y o u r n a m e ? ")

2

n a m e = i n p u t ()

1. D’où vient cette tradition ? La réponse ici :http://blog.hackerrank.com/the-history-of-hello-world/

1

(2)

et modifiez l’expression « "Hello" + " " + "World!"” » en « "Hello" + " " + name + "!" ».

Que fait cette nouvelle version du programme selon vous ? Que fait la fonction input ? À quoi sert la variable name ? L’instruction « name = input () » affiche-t-elle quelque chose sur le terminal ? Si non, quel est l’effet de cette instruction ? Vérifiez vos hypothèses en exécutant de nouveau le programme.

Écrivez des commentaires avant chacune des lignes que nous venons de rajouter pour la paraphraser avec vos mots.

5. Modifiez le programme pour qu’il demande le nom et le prénom de l’utilisateur puis affiche :

1

H e l l o p r e n o m nom !

6. Modifiez maintenant votre dernière instruction en la remplaçant par deux instructions comme suit :

1

p r i n t ( . . . )

devient :

1

m y f i l e = o p e n (" h e l l o y o u . txt " , m o d e = " w ")

2

p r i n t (... , f i l e = m y f i l e )

Quel est maintenant l’effet de l’instruction print ?

Exercice 2 (Le devin, ??)

Le fichier devin.py contient le code source d’un programme qui devine un nombre entre 0 et 100 choisi par l’utilisateur en lui posant des questions.

1. Lisez attentivement le code source du programme (son code Python mais surtout ses commentaires).

Une fois que vous l’avez lu, exécutez-le plusieurs fois grâce à la commande :

1

p y t h o n 3 d e v i n . py

en essayant de saisir des séquences de réponses sollicitant toutes les instructions du programme.

2. Quelles valeurs successives prennent les variables min_number, max_number et candidate si le nombre à chercher est 73 ? Pour vérifier votre réponse, insérez au bon endroit dans le code source, les instruc- tions suivantes qui affichent la valeur de ces trois variables :

1

p r i n t ( " min = " + str ( m i n _ n u m b e r ) )

2

p r i n t ( " c a n d i d a t e = " + str ( c a n d i d a t e ) )

3

p r i n t ( " max = " + str ( m a x _ n u m b e r ) )

3. Modifiez le programme pour que le Devin cherche un nombre entre 0 et 1000 plutôt qu’entre 0 et 100.

Exécutez le programme pour tester ce changement.

2

4. Modifiez le programme pour que le Devin ne demande la validation du nombre que s’il l’a trouvé avec certitude (Indice : L’utilisateur ne demandera que le si le nombre est correct si max_number et min_number ont la même valeur, dans les autres cas, il demandera seulement si le nombre est plus grand que candidate) .

5. Remplacez l’instruction

1

c a n d i d a t e = m i n _ n u m b e r + (( m a x _ n u m b e r - m i n _ n u m b e r ) // 2)

par :

1

c a n d i d a t e = m i n _ n u m b e r

puis exécutez le programme. Est-ce que le programme fonctionne toujours ? Que pensez-vous de ce changement ?

2. Est-ce que le Devin met dix fois plus de temps pour trouver le nombre ?

2

(3)

6. Que se passe-t-il si l’utilisateur répond mal à une question en confondant un "O" et un "N" ?

Exercice 3 (L’artiste, ??)

Le fichier city.py contient un programme qui dessine les rues d’une ville et quelques maisons. Pour cela, il utilise une bibliothèque de fonctions de dessin inspirées du langage LOGO

3

, un des premiers langages conçus pour apprendre la programmation.

1. Lisez attentivement le code source du programme (son code Python mais surtout ses commentaires).

Une fois que vous l’avez lu, exécutez-le grâce à la commande :

1

p y t h o n 3 c i t y . py

Au fur et à mesure de l’affichage, mettez en correspondance les actions de la tortue et les instructions du programme. Avez-vous remarqué que vous pouvez modifier la vitesse de la tortue ?

2. Modifiez la ligne de code qui permet de répartir horizontalement les maisons dans une rue de façon à y insérer une nouvelle maison.

3. Remplacez l’instruction :

1

d r a w _ h o u s e (100 , x p o s i t i o n s [ i ] , y )

par

1

d r a w _ h o u s e (10 + 100 * i / len ( x p o s i t i o n s ) , x p o s i t i o n s [ i ] , y )

Que se passe-t-il ? Pourquoi ?

4. En vous inspirant de la procédure walls, écrivez une procédure door qui dessine une porte dans la maison, et une procédure windows qui dessinent des fenêtres.

Exercice 4 (Morpion, ? ? ?)

Le fichier tictactoe.py contient un programme qui permet à deux utilisateurs de faire une partie de morpion.

1. Lisez attentivement le code source du programme (son code Python mais surtout ses commentaires).

Une fois que vous l’avez lu, exécutez-le grâce à la commande :

1

p y t h o n 3 t i c t a c t o e . py

et faites plusieurs parties de façon à tester les cas où X gagne, O gagne ou bien le jeu se termine sur une égalité.

2. Dans ce programme, c’est toujours le joueur des croix qui commence à jouer. Modifiez le programme pour que le joueur des cercles débute.

3. Pour mettre un peu de piment dans le jeu, on souhaite qu’à chaque tour on puisse tirer à pile ou face celui qui commence. Pour cela, il suffit d’utiliser l’expression random.randint (0, 1) qui tire un nombre entier au hasard dans l’intervalle [0, 1]. (Il faut insérer une instruction “import random” pour l’utiliser.)

4. (Bonus) Modifiez le programme pour que la grille contienne 4 lignes de 4 cases. Il faudra maintenant aligner 4 cases pour gagner...

5. (Bonus) Modifiez le programme qu’il affiche des suggestions de coup au joueur qui s’apprête à jouer.

3. http://el.media.mit.edu/logo-foundation/what_is_logo/history.html

3

Références

Documents relatifs

On pourra se servir des nombreuses informations dans l’espace WEB consacré à QTCreator : http://www.siloged.fr/cours/QTCreator. 1/ Création du projet et des

L’instruction < (touche F5 ) permet d’afficher la valeur d’une variable., pour fournir un résultat intermédiaire. ou en fin de programme. Dans ce cas, pour

✔ Testez plusieurs fois chaque code couleur à l'aide du robot et indiquez ce qu'il fait. Partie 2 : Comment se comporte le robot « Ozobot » à

Coloriez soigneusement les cases et les lignes afin d’aider Ozobot à se rendre de toute urgence à l’hôpital.. Il doit s'allumer en bleu pour montrer qu'il est

Téléversez le programme dans le robot Ozobot (suivre les étapes de l’aide en bas à gauche).. Posez le robot Ozobot sur l’emprunte et lancez le programme (voir l’aide en bas

Atelier 1 Comment parler du prophète dans notre

Type 2 : Erreurs d’exécution : Après que la compilation soit faite sans erreur, il peut se trouver que le travail fait par le programme soit erroné, par exemple : division par

un point d’entrée dans un système avec de nombreuses classes ce programme est exécutable après compilation.. Une classe,