Programmation Impérative (en Python) H. Collavizza

Documents pareils
L informatique en BCPST

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Initiation à la programmation en Python

TP 1. Prise en main du langage Python

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Cours Informatique 1. Monsieur SADOUNI Salheddine


Programmation C. Apprendre à développer des programmes simples dans le langage C

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

I. QU'EST-CE QU'UN ORDINATEUR? Un ordinateur est relié à plein de périphériques

Cours 1 : Qu est-ce que la programmation?

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Licence Sciences et Technologies Examen janvier 2010

ACTIVITÉ DE PROGRAMMATION

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Représentation d un entier en base b

CQP 112 Introduc/on à la programma/on. Thème 2 : Architecture d un système informa/que. Département d informa/que

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Programmation C++ (débutant)/instructions for, while et do...while

Documentation Technique du programme HYDRONDE_LN

1. Structure d'un programme FORTRAN 95

Annexe : La Programmation Informatique

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

La mémoire. Un ordinateur. L'octet. Le bit

Cours 1 : La compilation

USTL - Licence ST-A 1ère année Codage de l information TP 1 :

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB)

Ateliers Python+Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi?

Cours 3 : L'ordinateur

Xubuntu Une alternative à Windows et à Ubuntu, (pour ceux qui ne veulent pas d'unity) : installer Xubuntu.

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

I. Introduction aux fonctions : les fonctions standards

Python - introduction à la programmation et calcul scientifique

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Bases de programmation. Cours 5. Structurer les données

Sélection du contrôleur

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

Support de TD ArcGIS Introduction à l automatisation et au développement avec ArcGIS 10.1 JEAN-MARC GILLIOT e année ingénieur

Évaluation et implémentation des langages

Les dossiers, sous-dossiers, fichiers

PG208, Projet n 3 : Serveur HTTP évolué

Gérer ses fichiers et ses dossiers avec l'explorateur Windows. Février 2013

RACCOURCIS CLAVIERS. DEFINITION : Une «combinaison de touches» est un appui simultané sur plusieurs touches.

Séance 0 : Linux + Octave : le compromis idéal

UE Programmation Impérative Licence 2ème Année

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

Utilisation de la Plateforme Office365 et d Oultlook Web App

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Pourquoi l apprentissage?

Chapitre 2 Devine mon nombre!

STAGE IREM 0- Premiers pas en Python

Éléments d'architecture des ordinateurs

Application 1- VBA : Test de comportements d'investissements

Préparation à l examen EFA en Macro

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

1 Recherche en table par balayage

Algorithmique avec Algobox

Chapitre 4 Pierre, papier, ciseaux

Informatique. Les réponses doivent être données en cochant les cases sur la dernière feuille du sujet, intitulée feuille de réponse

Introduction à Eclipse

Matériel & Logiciels (Hardware & Software)

Contrôle distant par liaison SSH Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

Initiation à l algorithmique

Algorithmique et programmation : les bases (VBA) Corrigé

Présentation du langage et premières fonctions

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

Algorithmique et Programmation, IMA

Structure et fonctionnement d'un ordinateur : hardware

Algorithmique avec Algobox

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

UE C avancé cours 1: introduction et révisions

I00 Éléments d architecture

Programmes des classes préparatoires aux Grandes Ecoles

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Chapitre 1 I:\ Soyez courageux!

Conservation des documents numériques

Ateliers Python+Qt : Premiers pas : S'installer pour PyQt... en quelques minutes sous Windows!

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Chapitre I Notions de base et outils de travail

Cours Informatique Master STEP

SCL LOGICIEL DE CONTROL

Compilation (INF 564)

TD séance n 2c Mise à jour des Systèmes

SYSTEME DE GESTION DES ENERGIES EWTS EMBEDDED WIRELESS TELEMETRY SYSTEM

Création du projet : 1 sur 13

Guide d installation de MySQL

TD : Codage des images

Qualité du logiciel: Méthodes de test

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Algorithme. Table des matières

Logiciel SCRATCH FICHE 02

TP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts

Premier cours d informatique

The Mozilla Art Of War. David Teller. 20 septembre Laboratoire d Informatique Fondamentale d Orléans. La sécurité des extensions.

Transcription:

Programmation Impérative (en Python) 2015-2016 H. Collavizza helen@polytech.unice.fr

Vous avez dit informatique?

Un peu de vocabulaire Matériel (hardware) 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,... Logiciel (software) Suite d'instructions pour effectuer des actions sur le matériel Doit être traduit en binaire Système d exploitation Outils : excel, word,... Périphériques : clavier, écran, souris, imprimante,... Butineurs Jeux Programmes applicatifs

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 : conclusion 1. 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

Programmation : conclusion... 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

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 3 LINUX 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/