![Page 2: Programmation Impérative (en Python) 2015-2016users.polytech.unice.fr/~helen/pythonCIP1/coursIntro.pdf · langage de programmation. ... • Contrôles de TD type QCM/exercices de](https://reader034.vdocument.in/reader034/viewer/2022051718/5a71782e7f8b9ac0538ce08e/html5/thumbnails/2.jpg)
Vous avez dit informatique ?
![Page 3: Programmation Impérative (en Python) 2015-2016users.polytech.unice.fr/~helen/pythonCIP1/coursIntro.pdf · langage de programmation. ... • Contrôles de TD type QCM/exercices de](https://reader034.vdocument.in/reader034/viewer/2022051718/5a71782e7f8b9ac0538ce08e/html5/thumbnails/3.jpg)
![Page 4: Programmation Impérative (en Python) 2015-2016users.polytech.unice.fr/~helen/pythonCIP1/coursIntro.pdf · langage de programmation. ... • Contrôles de TD type QCM/exercices de](https://reader034.vdocument.in/reader034/viewer/2022051718/5a71782e7f8b9ac0538ce08e/html5/thumbnails/4.jpg)
Un peu de vocabulaire
•Information en binaire (0/1), organisée en mots de 8 bits (octets)
•Unité centrale : mémoire vive (RAM), cache, unité de calcul, unité de contrôle, ...
•Périphériques : clavier, écran, souris, imprimante, ...
•Suite d'instructions pour effectuer des actions sur le matériel
•Doit être traduit en binaire
•Système d’exploitation
•Outils : excel, word,...
•Butineurs
•Jeux
•Programmes applicatifs
Matériel (hardware) Logiciel (software)
![Page 5: Programmation Impérative (en Python) 2015-2016users.polytech.unice.fr/~helen/pythonCIP1/coursIntro.pdf · langage de programmation. ... • Contrôles de TD type QCM/exercices de](https://reader034.vdocument.in/reader034/viewer/2022051718/5a71782e7f8b9ac0538ce08e/html5/thumbnails/5.jpg)
Informatique en PeiP
PeiP1
• Environnement informatique
• Programmation (langage Python)
• Jeux et stratégies (TPs en Python)
• Environnement informatique (Python)
PeiP2
• Introduction au WEB
• Programmation (langage Java)
• Algorithmique (langage Java)
• Applications du WEB
Sem1
Sem2
![Page 6: Programmation Impérative (en Python) 2015-2016users.polytech.unice.fr/~helen/pythonCIP1/coursIntro.pdf · langage de programmation. ... • Contrôles de TD type QCM/exercices de](https://reader034.vdocument.in/reader034/viewer/2022051718/5a71782e7f8b9ac0538ce08e/html5/thumbnails/6.jpg)
Informatique au PeiP...
Environnement informatique : savoir se servir de sa machine
Semestre 1: connaissance de l'ordinateur, fonctions de base
Semestre 2 : programmation en Python de fonctions élaborées (traitement par lots des fichiers, connection à un serveur, ...)
![Page 7: Programmation Impérative (en Python) 2015-2016users.polytech.unice.fr/~helen/pythonCIP1/coursIntro.pdf · langage de programmation. ... • Contrôles de TD type QCM/exercices de](https://reader034.vdocument.in/reader034/viewer/2022051718/5a71782e7f8b9ac0538ce08e/html5/thumbnails/7.jpg)
Informatique au PeiP ...Programmation : écrire des programmes
PeiP1: impérative en Python (stocker les données, séquencer les opérations, structurer le code)
PeiP2 : objet avec Java (opérations et données sont rassemblées dans des boîtes à outil)
Jeux et stratégies : formaliser, résoudre des problèmes
Introduction et applications du WEB : savoir faire des pages web, un serveur
![Page 8: Programmation Impérative (en Python) 2015-2016users.polytech.unice.fr/~helen/pythonCIP1/coursIntro.pdf · langage de programmation. ... • Contrôles de TD type QCM/exercices de](https://reader034.vdocument.in/reader034/viewer/2022051718/5a71782e7f8b9ac0538ce08e/html5/thumbnails/8.jpg)
Programmation ...• Programme : suite d'instructions que la machine
doit exécuter. Le programme s'écrit dans un langage de programmation.
• Langage : règles lexicales (les mots), règles syntaxiques (les phrases), règles sémantiques (le sens)
Exemples :
• x1 est un nom en Python, 1x ne l’est pas
• cos(x) est la bonne syntaxe pas cos x
• On ne peut pas diviser un texte par un entier
![Page 9: Programmation Impérative (en Python) 2015-2016users.polytech.unice.fr/~helen/pythonCIP1/coursIntro.pdf · langage de programmation. ... • Contrôles de TD type QCM/exercices de](https://reader034.vdocument.in/reader034/viewer/2022051718/5a71782e7f8b9ac0538ce08e/html5/thumbnails/9.jpg)
Programmation ...Le programme doit être traduit en code exécutable pour la machine.
Langages compilés : traitement du programme en entier et génération d’un fichier exécutable (phases d’analyse, génération de code objet et binaire)
Langages interprétés : les instructions sont exécutées au fur et à mesure par un interprète
Langages hybrides : génération d’un bytecode et interprétation du bytecode
![Page 10: Programmation Impérative (en Python) 2015-2016users.polytech.unice.fr/~helen/pythonCIP1/coursIntro.pdf · langage de programmation. ... • Contrôles de TD type QCM/exercices de](https://reader034.vdocument.in/reader034/viewer/2022051718/5a71782e7f8b9ac0538ce08e/html5/thumbnails/10.jpg)
Python
• Langage interprété (génération de bytecode)
• Simple à utiliser mais complet (scripts de
quelques lignes ou programmes)
• Programmation modulaire (et objet)
• De nombreuses bibliothèques (compression des
données, cryptographie, ...)
![Page 11: Programmation Impérative (en Python) 2015-2016users.polytech.unice.fr/~helen/pythonCIP1/coursIntro.pdf · langage de programmation. ... • Contrôles de TD type QCM/exercices de](https://reader034.vdocument.in/reader034/viewer/2022051718/5a71782e7f8b9ac0538ce08e/html5/thumbnails/11.jpg)
Python ...• Interpréteur : là où s'exécutent les programmes
Utile aussi pour faire des petits essais
• Éditeur : pour garder les programmes et les modifier
• Une démo ...
![Page 12: Programmation Impérative (en Python) 2015-2016users.polytech.unice.fr/~helen/pythonCIP1/coursIntro.pdf · langage de programmation. ... • Contrôles de TD type QCM/exercices de](https://reader034.vdocument.in/reader034/viewer/2022051718/5a71782e7f8b9ac0538ce08e/html5/thumbnails/12.jpg)
Programmation
Ecouter le besoin de l'utilisateur
Modéliser le problème : algorithme, plan de validation
Programmer l'algorithme
Ne pas casser la machine si ça ne marche pas !!!
Tester puis s'assurer que l'utilisateur est satisfait
![Page 13: Programmation Impérative (en Python) 2015-2016users.polytech.unice.fr/~helen/pythonCIP1/coursIntro.pdf · langage de programmation. ... • Contrôles de TD type QCM/exercices de](https://reader034.vdocument.in/reader034/viewer/2022051718/5a71782e7f8b9ac0538ce08e/html5/thumbnails/13.jpg)
Programmation :
le jeu des allumettes
• Prendre 1, 2 ou 3 allumettes chacun son tour
• Celui qui prend la dernière allumette a gagné
![Page 14: Programmation Impérative (en Python) 2015-2016users.polytech.unice.fr/~helen/pythonCIP1/coursIntro.pdf · langage de programmation. ... • Contrôles de TD type QCM/exercices de](https://reader034.vdocument.in/reader034/viewer/2022051718/5a71782e7f8b9ac0538ce08e/html5/thumbnails/14.jpg)
Modélisation : données et actions
Données : nombre d'allumettes
Actions
– Afficher les allumettes restantes
– Demander au joueur de retirer des allumettes
– Faire « jouer » l'ordinateur
![Page 15: Programmation Impérative (en Python) 2015-2016users.polytech.unice.fr/~helen/pythonCIP1/coursIntro.pdf · langage de programmation. ... • Contrôles de TD type QCM/exercices de](https://reader034.vdocument.in/reader034/viewer/2022051718/5a71782e7f8b9ac0538ce08e/html5/thumbnails/15.jpg)
Modélisation : l'algorithme
Tant qu'il reste des allumettes :
– Faire jouer le joueur
– Mettre à jour le nombre d'allumettes
– S'il n'y a plus d'allumettes : le joueur a gagné
– S'il reste des allumettes :
• Faire jouer l'ordinateur
• Mettre à jour le nombre d'allumettes
• S'il n'y a plus d'allumettes, l'ordinateur a gagné
![Page 16: Programmation Impérative (en Python) 2015-2016users.polytech.unice.fr/~helen/pythonCIP1/coursIntro.pdf · langage de programmation. ... • Contrôles de TD type QCM/exercices de](https://reader034.vdocument.in/reader034/viewer/2022051718/5a71782e7f8b9ac0538ce08e/html5/thumbnails/16.jpg)
Besoins
• Stocker une valeur : variable
• Tester une condition : if else
• Répéter des actions : while
• Tirer un nombre au hasard : random
• Décomposer les tâches : les fonctions
Une démo en Python ...
![Page 17: Programmation Impérative (en Python) 2015-2016users.polytech.unice.fr/~helen/pythonCIP1/coursIntro.pdf · langage de programmation. ... • Contrôles de TD type QCM/exercices de](https://reader034.vdocument.in/reader034/viewer/2022051718/5a71782e7f8b9ac0538ce08e/html5/thumbnails/17.jpg)
Extensions
• Interface : affichage graphique des allumettes,
afficher le temps de réflexion de l'ordinateur
• Robustesse (le programme ne plante pas) : vérifier
que le joueur retire un nombre d'allumettes correct
(1,2 ou 3)
• Une démo …
![Page 18: Programmation Impérative (en Python) 2015-2016users.polytech.unice.fr/~helen/pythonCIP1/coursIntro.pdf · langage de programmation. ... • Contrôles de TD type QCM/exercices de](https://reader034.vdocument.in/reader034/viewer/2022051718/5a71782e7f8b9ac0538ce08e/html5/thumbnails/18.jpg)
Extensions...• Algorithme : il existe une stratégie gagnante
– Nombre d'allumettes de la forme 4*p
– Le joueur commence
– A chaque étape, l'ordinateur retire 4-i allumettes où i est le nombre choisi par le joueur
– Puisque i=1,2 ou 3, (4-i) = 1,2 ou 3
– On va arriver à 0 allumettes : 4*(p-1), 4*(p-2), ..., 4*0
• Le joueur retire i allumettes → il reste 4*p-i allumettes
• L'ordinateur retire (4-i) allumettes → il reste 4*p-i-(4-i) = 4*(p-1) allumettes
![Page 19: Programmation Impérative (en Python) 2015-2016users.polytech.unice.fr/~helen/pythonCIP1/coursIntro.pdf · langage de programmation. ... • Contrôles de TD type QCM/exercices de](https://reader034.vdocument.in/reader034/viewer/2022051718/5a71782e7f8b9ac0538ce08e/html5/thumbnails/19.jpg)
Extensions...• Tirer aléatoirement qui commence
• Tirer aléatoirement le nombre maximum max
d'allumettes que l'on peut retirer et avoir
(max+1)*k allumettes au départ
• L'ordinateur n'applique pas la stratégie gagnante
pendant x tours
• Autres idées ?
![Page 20: Programmation Impérative (en Python) 2015-2016users.polytech.unice.fr/~helen/pythonCIP1/coursIntro.pdf · langage de programmation. ... • Contrôles de TD type QCM/exercices de](https://reader034.vdocument.in/reader034/viewer/2022051718/5a71782e7f8b9ac0538ce08e/html5/thumbnails/20.jpg)
Programmation : conclusion1. Analyser le problème : décomposition,
algorithme, plan de validation
2. Programmer : tous les langages de
programmation permettent de stocker des
valeurs, tester des conditions, répéter des
actions, décomposer le programme en fonctions
3. Tester : penser à tous les cas possibles
![Page 21: Programmation Impérative (en Python) 2015-2016users.polytech.unice.fr/~helen/pythonCIP1/coursIntro.pdf · langage de programmation. ... • Contrôles de TD type QCM/exercices de](https://reader034.vdocument.in/reader034/viewer/2022051718/5a71782e7f8b9ac0538ce08e/html5/thumbnails/21.jpg)
4. Étendre : il ne suffit pas que ça marche,
il faut que le programme soit BIEN écrit !
• Commentaires : aide indispensable quand on
reprend le code
• Clarté : les noms utilisés doivent avoir un sens
(bannir a, b, c, ...)
• Structure : répétition et fonctions
Programmation : conclusion ...
![Page 22: Programmation Impérative (en Python) 2015-2016users.polytech.unice.fr/~helen/pythonCIP1/coursIntro.pdf · langage de programmation. ... • Contrôles de TD type QCM/exercices de](https://reader034.vdocument.in/reader034/viewer/2022051718/5a71782e7f8b9ac0538ce08e/html5/thumbnails/22.jpg)
Exemple : programme BIEN écrit
Dessin d’un carré de longueur 100 avec la
tortue Python :
• La tortue sait avancer d'une certaine distance d en
traçant un trait forward(d)
• Elle sait tourner à gauche d'un certain angle a à partir
de sa direction actuelle left(a)
Peut-on facilement étendre le programme du
carré pour dessiner un octogone ?
![Page 23: Programmation Impérative (en Python) 2015-2016users.polytech.unice.fr/~helen/pythonCIP1/coursIntro.pdf · langage de programmation. ... • Contrôles de TD type QCM/exercices de](https://reader034.vdocument.in/reader034/viewer/2022051718/5a71782e7f8b9ac0538ce08e/html5/thumbnails/23.jpg)
Programmation Impérative PeiP1
• http://users.polytech.unice.fr/~helen/pythonCIP1/
• Contrôles de TD type QCM/exercices de cours coeff 1
• Contrôle écrit intermédiaire 1h : 4 Novembre coeff 1
• Contrôle final 1h30 : 20 Janvier coeff 1.5
• Projet en binômes : en fin de semestre coeff 1.5
![Page 24: Programmation Impérative (en Python) 2015-2016users.polytech.unice.fr/~helen/pythonCIP1/coursIntro.pdf · langage de programmation. ... • Contrôles de TD type QCM/exercices de](https://reader034.vdocument.in/reader034/viewer/2022051718/5a71782e7f8b9ac0538ce08e/html5/thumbnails/24.jpg)
Installation de Python 3LINUX
•Vous assurez que vous êtes connecté à internet
•Ouvrir une fenêtre « terminal »
•Tapez : sudo apt-get install idle, mot de passe
•Répondez « oui » aux questions
•Tester en tapant « idle3 » dans un terminal
WINDOWS / MAC
https://www.python.org/download/