programmation impérative (en python)...
TRANSCRIPT
Vous avez dit informatique ?
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)
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
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, ...)
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
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
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
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, ...)
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 ...
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
Programmation :
le jeu des allumettes
• Prendre 1, 2 ou 3 allumettes chacun son tour
• Celui qui prend la dernière allumette a gagné
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
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é
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 ...
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 …
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
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 ?
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
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 ...
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 ?
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
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/