R&T 1 M Programmation Orientée Objet

Dimension: px
Commencer à balayer dès la page:

Download "R&T 1 M Programmation Orientée Objet"

Transcription

1 TABLE DES MATIÈRES 2 PRISE EN MAIN DE LA LIBRAIRIE PYGAME R&T 1 M Programmation Orientée Objet - TP3 : 2048, Une approche de pygame - 18 avril 2014 Table des matières 1 Présentation du sujet 1 2 Prise en main de la librairie pygame Présentation (très) rapide de pygame Premier programme La classe case Déclaration et constructeur La méthode update Programme de test de la classe case La classe quadrillage Déclaration et constructeur La méthode ajout_case La méthode actualiser_affichage La méthode PasFini Les méthodes touche_haut, touche_bas, touche_gauche et touche_droite Programme de test de la classe quadrillage Présentation du sujet Vous allez travailler sur le jeu Le résultat final est disponible dans le dossier But_Du_TP. Un extrait de code vous est fourni pour vous aider à démarrer. Le but du jeu est de faire glisser des tuiles sur une grille, pour les combiner et créer ainsi une tuile portant le nombre (Wikipedia) Pour créer votre jeu, vous allez créer les paquets et y implanter les classes nécessaires. 2 Prise en main de la librairie pygame 2.1 Présentation (très) rapide de pygame La librairie PyGame est une implémentation Python de la libraire SDL (Simple DirectMedia Layer). Elle permet la réalisation de jeux vidéo en 2D (comme les anciens jeux d arcade). Elle gère automatiquement toute la partie vidéo du programme, seule reste à écrire la partie «intelligente» du jeu. De la documentation est disponible sur le site : M Programmation Orientée Objet 1 TP3

2 2.2 Premier programme 2 PRISE EN MAIN DE LA LIBRAIRIE PYGAME 2.2 Premier programme Un premier programme (ci-dessous) vous est fourni comme base de travail pour l initialisation de la librairie. 1 #!/ usr / bin / env python 2 # -*- coding : utf -8 -*- 3 4 import sys 5 import os 6 import pygame 7 # from Quadrillage import * 8 9 def main (): 10 pygame. init () 11 size = width, height = 800, 600 # 1024, black = 0, 0, screen = pygame. display. set_mode ( size ) # Titre 17 pygame. display. set_caption (" 2048, Le jeu ") # Remplissage de l arrière - plan 20 background = pygame. Surface ( screen. get_ size ()) 21 background. fill ( black ) clock = pygame. time. Clock () 24 while 1: 25 clock. tick (15) 26 for event in pygame. event. get (): 27 # Une touche est appuyée 28 if event. type == pygame. KEYDOWN : 29 if event. key == pygame. K_ ESCAPE : 30 sys. exit () # Actualisation de l écran 33 pygame. display. flip () if name == main : 37 main () Le programme main_v0.py (recopié ci-dessus) permet d afficher une fenêtre de jeu et de préparer les interactions avec le joueur : La librairie est initialisée par la ligne 10. Plusieurs constantes (taille de la surface de jeu, couleur noire) sont initialisées dans les lignes 11 et 12. La surface de jeu est créée à la ligne 14. Il est possible (pour l instant ce n est pas le cas) de basculer l affichage en plein écran. Les lignes 20 et 21 sont utilisées pour créer un fond noir. Il est aussi possible de placer une image en fond. Un objet de la classe clock est nécessaire pour pouvoir régler la cadence de jeu. Il est crée en ligne 23. La cadence d affichage est fixée à la ligne 25. La partie principale du programme commence ensuite par une boucle while toujours vraie (ce peut être modifié par la suite pour détecter la fin du jeu). Les lignes 26 à 30 détectent l appui sur une touche (pygame.keydown) et quitte le programme si la touche est ESC (pygame.k_escape) est appuyé. M Programmation Orientée Objet 2 TP3

3 3 LA CLASSE CASE La fonction flip est appelée pour mettre à jour l affichage (pour l instant, elle n a rien à faire...). 3 La classe case La classe case doit être stockée dans le fichier Case.py. Cette classe représentent tous les éléments définissant la case telle qu elle sera affichée. Le schéma UML correspondant est le suivant. Les éléments publiques sont précédés par un un +. Les éléments privées sont précédés par un un -. Case + self.val :int + self.image :pygame.image + self.rect :pygame.rect case + init ( valeur :int, width :int, height :int,x :int,y :int) + update() 3.1 Déclaration et constructeur La classe hérite de pygame.sprite.sprite. La bibliothèque pygame étant très grosse elle est ellemême composée de plusieurs modules (dont sprite qui contient la classe Sprite). Le constructeur attend plusieurs arguments : valeur : la valeur de la case (2, 4, 8,...) width : la largeur de la case à créer height : la hauteur de la case à créer x : l abscisse de la case y : l ordonnée de la case Dans le constructeur de la classe case commencez par appeler le constructeur de la classe mère. Dans le constructeur, créez l attribut publics val initialisé avec l argument valeur. La classe Sprite (dont la classe case hérite) contient plusieurs attributs que nous allons utiliser dans la suite du projet. Pour l instant les 2 attributs sur lesquels vous allez travailler sont image et rect. L attribut public image stocke l image à afficher sur l écran. Cette image sera initialisée avec la valeur de retour de la fonction pygame.image.load. L argument utilisé pour cette fonction sera une chaîne de caractère définissant le nom de l image à charger (il faudra utiliser l argument valeur pour construire cette chaîne). Cette image peut être redimensionnée en utilisant les arguments width et height grâce à la fonction pygame.transform.scale. L attribut rect représente la position de l élément affiché ainsi que sa taille. Pour l instant initialisez le avec la valeur de retour de la méthode get_rect de l attribut image ( ref/rect.html). M Programmation Orientée Objet 3 TP3

4 3.2 La méthode update 4 LA CLASSE QUADRILLAGE Cet attribut peut être modifié pour prendre en compte la position donnée en argument (définit par x, y) grâce à son attribut topleft. 3.2 La méthode update La déclaration de cette méthode n est pas utile en elle-même, mais peut être pratique à la compréhension : c est la méthode qui sera appelé par pygame lorsqu un rafraichissement de l écran sera demandé. Dans cette méthode, il suffit d appeler la méthode du même nom de la classe mère. 3.3 Programme de test de la classe case Avant toutes choses, copiez le fichier main_v0.py vers main_v01.py. Création d un objet de la classe case Dans votre programme principal, après les 3 lignes de création du fond, créez un objet de la classe case (n oubliez pas d importer le module avec la commande from case import * au début de votre programme). Vous devez ensuite créer un objet de la classe pygame.sprite.group (ce sera nécessaire pour l affichage). Cet objet est un regroupement d éléments ayant le même «rôle» dans le jeu (même si le groupe ne contient qu un seul élément). Pour placer votre case dans le groupe utilisez la méthode add (de la classe pygame.sprite.group). Dans la boucle principale, après les tests liés aux touches et avant l appel à la fonction flip(), placez les opérations suivantes : Avant d afficher la nouvelle image, vous devez effacer l ancienne (vous pourrez tester votre programme sans cette commande pour voir la différence) en utilisant la méthode blit de l objet screen avec background comme premier paramètre et l attribut (0, 0) comme second paramètre. Appelez ensuite la méthode update de votre objet de la classe pygame.sprite.group. Elle permet de rafraichir tous les éléments du groupe. La méthode draw (toujours de cette objet) avec screen comme argument permet ensuite d afficher tous les éléments (même si pour l instant il n y en a qu un) du groupe. Vous pouvez ensuite tester votre programme, une case doit être affiché à la position que vous lui avez fournit lors de sa construction, appuyez sur ESC pour quitter le programme. 4 La classe quadrillage La classe quadrillage doit être stockée dans le fichier Quadrillage.py. Cette classe représentent tous les éléments définissant la case telle qu elle sera affichée. Le schéma UML correspondant est le suivant. Les éléments publiques sont précédés par un un +. Les éléments privées sont précédés par un un -. M Programmation Orientée Objet 4 TP3

5 4.1 Déclaration et constructeur 4 LA CLASSE QUADRILLAGE Quadrillage quadrillage + damier :list + width :int + height :int + groupecases :pygame.sprite.group() + fond :pygame.image + init ( taille=400 :int) + actualiser_affichage(parent :pygame.sprite) + int :touche_haut() + int :touche_bas() + int :touche_droite() + int :touche_gauche() - ajout_case() - int : PasFini() 4.1 Déclaration et constructeur Le constructeur attend un argument (taille) dont la valeur par défaut est 400 qui définit la taille total du quadrillage du jeu. Dans le constructeur, initialisez les attributs : damier initialisé avec une liste à deux dimensions rempli d éléments VIDE (définit dans le fichier des Constantes). Ce tableau servira à stocker les valeurs des cases à afficher. width initialisé en utilisant l argument taille et définissant la largeur des cases du quadrillage. height initialisé en utilisant l argument taille et définissant la hauteur des cases du quadrillage. groupecases initialisé en utilisant le constructeur de la classe pygame.sprite.group. Cet attribut sera utilisé pour stocker les cases à afficher à l écran. fond initialisée avec la valeur de retour de la fonction pygame.image.load(os.path.join( Images, background.png )).convert(). Cet attribut définit l image de fond du quadrillage. Elle peut être redimensionnée en utilisant l argument taille grâce à la fonction pygame.transform.scale. Pour terminer d initialiser le quadrillage du jeu, il faut ajouter une case. Pour cela, il suffit d appeler la méthode privée ajout_case() (même si pour l instant il n y a rien dedans...). 4.2 La méthode ajout_case Cette méthode permet d ajouter une case à une position aléatoire dans le quadrillage. Pour cela, il faut choisir une position aléatoirement. Si, à cette position, le tableau damier est VIDE alors on ajoute la valeur 2. Si la case n est pas VIDE, il faut en rechercher une autre La méthode actualiser_affichage Cette méthode prend en argument le parent graphique du quadrillage, c est à dire la fenêtre dans laquelle le quadrillage sera affiché (ici c est screen qui est définit dans le programme principal). M Programmation Orientée Objet 5 TP3

6 4.4 La méthode PasFini 4 LA CLASSE QUADRILLAGE Le but est ici de créer et d afficher les cases qui correspondent aux valeurs stockées dans le tableau damier. Pour écrire correctement cette méthode, il faut s inspirer du programme de test de la classe case. Il faut : 1. Initialiser le groupe groupecases grâce à la méthode empty() de la classe pygame.sprite.group. 2. Redessiner le fond du quadrillage (avec blit). 3. Pour chaque position du tableau, créer la case correspondante, à la bonne position, avec la bonne valeur (pour les cases VIDE, vous pourrez donner au constructeur la valeur "vide"). Une fois créée, vous devez ajouter cette case au groupe, avec la méthode add de la classe pygame.sprite.group. 4. Mettre à jour tous les objets du groupe grâce à la méthode update de la classe pygame.sprite.group. 5. Mettre à jour l affichage avec la méthode draw (toujours du même objet) avec parent comme argument. 4.4 La méthode PasFini Le but de cette fonction est de savoir si la partie peut continuer ou est finie (il existe une case 2048 ou il n y a plus de place sur le quadrillage). Cette méthode n a pas d argument d entrée mais a une sortie, l état du jeu : 1 : le jeu est terminé et l utilisateur a perdu (il n y a plus de place dans le quadrillage). 0 : le jeu n est pas terminé. 1 : le jeu est terminé et l utilisateur a gagné. Vous devrez légèrement réfléchir pour savoir quelles sont les actions à faire pour obtenir l état du jeu Les méthodes touche_haut, touche_bas, touche_gauche et touche_droite Elles sont presque identiques. Elles seront à appeler lorsque l utilisateur appuiera sur une touche directionnelle du clavier. Elle permettent de déplacer les valeurs des cases du tableau damier dans la bonne direction et de les fusionner lorsque deux cases se «percutent». Chacune de ces méthodes retourne l état du jeu une fois l opération effectué (voir définition de la méthode PasFini). 4.6 Programme de test de la classe quadrillage Avant toutes choses, copiez le fichier main_v0.py vers main_v1.py. Vous pourrez vous inspirer du fichier main_v01.py précédemment créé. Il vous faudra tout d abord importer et créer une instance de la classe quadrillage : ce sera l objet qui gérera le jeu Il faudra ensuite, dans la boucle principale, après les tests liés aux touches et avant l appel à la fonction flip(), placer les opérations suivantes : : 1. Effacez l ancienne image en utilisant la méthode blit. M Programmation Orientée Objet 6 TP3

7 4.6 Programme de test de la classe quadrillage 4 LA CLASSE QUADRILLAGE 2. Appelez ensuite la méthode qui permet d actualiser l affichage du quadrillage. Ensuite, à partir du test vérifiant la touche ESC, écrivez un test qui vérifie chaque flèche du clavier (K_RIGHT, K_LEFT, K_UP, K_DOWN). Après un appui sur une de ces flèches, la méthode correspondante de la classe quadrillage doit être appelée. Vous devez penser à récupérer l état du jeu fourni par les méthodes de déplacement et arrêter celui-ci lorsqu il est fini. Vous pouvez afficher l état du jeu grâce à une instance de l objet pygame.font.sysfont. Vous pouvez écrire un texte grâce à la méthode render de cet objet et l associer puis l afficher à la fenêtre graphique grâce aux méthodes blit et flip, que vous maîtrisez très bien maintenant... Une fois tout ce travail effectué, vous pouvez jouer à 2048 (modulo les bugs de code...). M Programmation Orientée Objet 7 TP3

Durée estimée :1 journée Date de la réalisation : 2011. Description Fournisseur Référence Nombre PU HT LM35CZ, LM35AZ LM35DZ

Durée estimée :1 journée Date de la réalisation : 2011. Description Fournisseur Référence Nombre PU HT LM35CZ, LM35AZ LM35DZ 001 Titre : Mesure de température interfacée par carte Arduino Type de réalisation : montage électronique, de surveillance de température Concepteur : C. Rouviere Coordonnées : Laboratoire lbv villefranche/mer

Plus en détail

Le langage C. Séance n 4

Le langage C. Séance n 4 Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de

Plus en détail

La programmation orientée objet et le langage C++

La programmation orientée objet et le langage C++ Cours précédents La programmation orientée objet et le langage C++ Pablo Rauzy rauzy @ enst fr pablo.rauzy.name/teaching.html#epu-cpp EISE4 @ Polytech UPMC 22 octobre 2014 Cours 5 Nouveautés du C++ par

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les

Plus en détail

Cours Informatique Master STEP

Cours Informatique Master STEP Cours Informatique Master STEP Bases de la programmation: Compilateurs/logiciels Algorithmique et structure d'un programme Programmation en langage structuré (Fortran 90) Variables, expressions, instructions

Plus en détail

TP 1. Prise en main du langage Python

TP 1. Prise en main du langage Python TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer

Plus en détail

1. Base de données SQLite

1. Base de données SQLite Dans ce TP, nous allons voir comment créer et utiliser une base de données SQL locale pour stocker les informations. La semaine prochaine, ça sera avec un WebService. On repart de l application AvosAvis

Plus en détail

Initiation à la programmation en Python

Initiation à la programmation en Python I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de

Plus en détail

STAGE IREM 0- Premiers pas en Python

STAGE IREM 0- Premiers pas en Python Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer

Plus en détail

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 I. Objectif du TP TP1 : Initiation à Java et Eclipse Programmation Mobile Initiation à l environnement Eclipse et aux notions de base du langage Java. II. Environnement

Plus en détail

Once the installation is complete, you can delete the temporary Zip files..

Once the installation is complete, you can delete the temporary Zip files.. Sommaire Installation... 2 After the download... 2 From a CD... 2 Access codes... 2 DirectX Compatibility... 2 Using the program... 2 Structure... 4 Lier une structure à une autre... 4 Personnaliser une

Plus en détail

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

RACCOURCIS CLAVIERS. DEFINITION : Une «combinaison de touches» est un appui simultané sur plusieurs touches. S Vous n aimez pas la souris Les raccourcis clavier sont là pour vous faciliter la vie! INTRODUCTION : Vous avez du mal à vous habituer à la manipulation de la souris Des solutions existent : les raccourcis

Plus en détail

TD3: tableaux avancées, première classe et chaînes

TD3: tableaux avancées, première classe et chaînes TD3: tableaux avancées, première classe et chaînes de caractères 1 Lestableaux 1.1 Élémentsthéoriques Déclaration des tableaux Pour la déclaration des tableaux, deux notations sont possibles. La première

Plus en détail

Projet Active Object

Projet Active Object Projet Active Object TAO Livrable de conception et validation Romain GAIDIER Enseignant : M. Noël PLOUZEAU, ISTIC / IRISA Pierre-François LEFRANC Master 2 Informatique parcours MIAGE Méthodes Informatiques

Plus en détail

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Anne Tasso Java Le livre de premier langage 10 e édition Avec 109 exercices corrigés Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Table des matières Avant-propos Organisation de l ouvrage..............................

Plus en détail

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

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique

Plus en détail

Examen Médian - 1 heure 30

Examen Médian - 1 heure 30 NF01 - Automne 2014 Examen Médian - 1 heure 30 Polycopié papier autorisé, autres documents interdits Calculatrices, téléphones, traducteurs et ordinateurs interdits! Utilisez trois copies séparées, une

Plus en détail

OCL - Object Constraint Language

OCL - Object Constraint Language OCL - Object Constraint Language Laëtitia Matignon laetitia.matignon@univ-lyon1.fr Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object

Plus en détail

Temps Réel. Jérôme Pouiller <j.pouiller@sysmic.org> Septembre 2011

Temps Réel. Jérôme Pouiller <j.pouiller@sysmic.org> Septembre 2011 Temps Réel Jérôme Pouiller Septembre 2011 Sommaire Problèmatique Le monotâche Le multitâches L ordonnanement Le partage de ressources Problèmatiques des OS temps réels J. Pouiller

Plus en détail

L informatique en BCPST

L informatique en BCPST L informatique en BCPST Présentation générale Sylvain Pelletier Septembre 2014 Sylvain Pelletier L informatique en BCPST Septembre 2014 1 / 20 Informatique, algorithmique, programmation Utiliser la rapidité

Plus en détail

Le prototype de la fonction main()

Le prototype de la fonction main() Le prototype de la fonction main() 1. Introduction...1 2. Paramètres et type de retour de la fonction main()...1 3. Exemple 1...2 4. La fonction exit() du C...2 5. Détecter le code de retour d un programme

Plus en détail

PAGE 1. L écran du logiciel d Open Office Draw. Barre de menu: Les commandes du logiciel

PAGE 1. L écran du logiciel d Open Office Draw. Barre de menu: Les commandes du logiciel PAGE L écran du logiciel d Open Office Draw Nom du document : Nom d enregistrement Barre de mise forme: Ligne, couleurs, fond,... Barre de menu: Les commandes du logiciel Barre d outils: Les boutons de

Plus en détail

École Polytechnique de Montréal. Département de Génie Informatique et Génie Logiciel. Cours INF2610. Contrôle périodique.

École Polytechnique de Montréal. Département de Génie Informatique et Génie Logiciel. Cours INF2610. Contrôle périodique. École Polytechnique de Montréal Département de Génie Informatique et Génie Logiciel Cours INF2610 Contrôle périodique Automne 2013 Date : 11 octobre 2013 de 18h à 20h Professeur : Boucheneb Hanifa Documentation

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

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

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1 Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1 B. Baert & F. Ludewig Bruno.Baert@ulg.ac.be - F.Ludewig@ulg.ac.be Qu est-ce que la programmation? Programmer Ecrire un

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

Réalisation d un portail captif d accès authentifié à Internet 10.10.10.1

Réalisation d un portail captif d accès authentifié à Internet 10.10.10.1 Master 1 ère année UE Réseaux avancés I Projet Réalisation d un portail captif d accès authentifié à Internet Présentation du projet Le but du projet est de mettre en place un portail captif permettant

Plus en détail

Bases Java - Eclipse / Netbeans

Bases Java - Eclipse / Netbeans Institut Galilée PDJ Année 2014-2015 Master 1 Environnements Java T.P. 1 Bases Java - Eclipse / Netbeans Il existe plusieurs environnements Java. Il est ESSENTIEL d utiliser la bonne version, et un environnement

Plus en détail

Guide de démarrage rapide. (pour la version 5.0.)

Guide de démarrage rapide. (pour la version 5.0.) Guide de démarrage rapide (pour la version 5.0.) 2 Table des matières Introduction Réglages de l application MyTalk Mobile 1. MODIFICATION 2. DEMARRER 3. AFFICHER 4. SYNTHETISEUR VOCAL 5. NOMBRE DE MOTS

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

ACTIVITÉ DE PROGRAMMATION

ACTIVITÉ DE PROGRAMMATION ACTIVITÉ DE PROGRAMMATION The purpose of the Implementation Process is to realize a specified system element. ISO/IEC 12207 Sébastien Adam Une introduction 2 Introduction Ø Contenu Utilité de l ordinateur,

Plus en détail

Problèmes liés à la concurrence

Problèmes liés à la concurrence ENS Cachan Problématique Difficile de gérer la concurrence : Pas toujours facile d avoir des fonctions réentrantes. Risque de race condition : ex : x :=x+1 x :=x+1 On voudrait des blocs d instructions

Plus en détail

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN fbertin@neotilus.com

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN fbertin@neotilus.com Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184 Frédéric BERTIN fbertin@neotilus.com Présentaion : Mobile 3D Graphics API JSR 184 M3G :présentation Package optionnel de l api J2ME. Prend

Plus en détail

Evaluation et mise en place d un serveur de messages pour Chamilo 2.0

Evaluation et mise en place d un serveur de messages pour Chamilo 2.0 Evaluation et mise en place d un serveur de messages pour Chamilo 2.0 Descriptif Dans ce projet, on va montrer l évaluation et la mise en place d un serveur de message pour Chamilo. Le but est d améliorer

Plus en détail

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004 Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)

Plus en détail

TP, première séquence d exercices.

TP, première séquence d exercices. TP, première séquence d exercices. Benoît Valiron benoit.valiron@lipn.univ-paris13.fr 7 novembre 2010 Introduction Vous écrirez les réponses aux questions courtes sur une feuille à rendre à la fin de la

Plus en détail

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé. http://www.rzo.free.fr

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé. http://www.rzo.free.fr Cours de Java Sciences-U Lyon Java - Introduction Java - Fondamentaux Java Avancé http://www.rzo.free.fr Pierre PARREND 1 Octobre 2004 Sommaire Java Introduction Java Fondamentaux Histoire de Java Machine

Plus en détail

Tp 1 correction. Structures de données (IF2)

Tp 1 correction. Structures de données (IF2) Tp 1 correction Structures de données (IF2) Remarque générale : compilez et exécutez le code au-fur-et-à mesure de son écriture. Il est plus facile de corriger une petite portion de code délimitée que

Plus en détail

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

Programmation C++ (débutant)/instructions for, while et do...while Programmation C++ (débutant)/instructions for, while et do...while 1 Programmation C++ (débutant)/instructions for, while et do...while Le cours du chapitre 4 : le for, while et do...while La notion de

Plus en détail

Cours de Systèmes d Exploitation

Cours de Systèmes d Exploitation Licence d informatique Synchronisation et Communication inter-processus Hafid Bourzoufi Université de Valenciennes - ISTV Introduction Les processus concurrents s exécutant dans le système d exploitation

Plus en détail

Traduction des Langages : Le Compilateur Micro Java

Traduction des Langages : Le Compilateur Micro Java BARABZAN Jean-René OUAHAB Karim TUCITO David 2A IMA Traduction des Langages : Le Compilateur Micro Java µ Page 1 Introduction Le but de ce projet est d écrire en JAVA un compilateur Micro-Java générant

Plus en détail

Cours de Programmation Impérative: Zones de mémoires et pointeurs

Cours de Programmation Impérative: Zones de mémoires et pointeurs Cours de Programmation Impérative: Zones de mémoires et pointeurs Julien David A101 - david@lipn.univ-paris13.fr Julien David (A101 - david@lipn.univ-paris13.fr) 1 / 1 Z`o n`e s `d`e m`é m`o i r`e Julien

Plus en détail

Licence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter

Plus en détail

TP : Gestion d une image au format PGM

TP : Gestion d une image au format PGM TP : Gestion d une image au format PGM Objectif : L objectif du sujet est de créer une classe de manipulation d images au format PGM (Portable GreyMap), et de programmer des opérations relativement simples

Plus en détail

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles) 1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d

Plus en détail

Utilisation d objets : String et ArrayList

Utilisation d objets : String et ArrayList Chapitre 6 Utilisation d objets : String et ArrayList Dans ce chapitre, nous allons aborder l utilisation d objets de deux classes prédéfinies de Java d usage très courant. La première, nous l utilisons

Plus en détail

Cours 1 : La compilation

Cours 1 : La compilation /38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà

Plus en détail

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

Contrôle distant par liaison SSH Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille Contrôle distant par liaison SSH Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille 1) TP Configuration client SSH sur PC Connaitre SSH, lire : http://fr.wikipedia.org/wiki/secure_shell

Plus en détail

1 Lecture de fichiers

1 Lecture de fichiers Programmation 1 Cours n 6 GB3, 2 nd semestre 2014-2015 Cours de Python Gilles Bernot 1 Lecture de fichiers Un fichier est une suite de caractères mémorisés sur le disque dur de la machine dans un endroit

Plus en détail

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ; CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe

Plus en détail

Cours 14 Les fichiers

Cours 14 Les fichiers Cours 14 Les fichiers F. Gayral 1 Fichier : définition /media/travaux/documents/fgenseignement/java1/courstpsfgfc/14-fichiers/voirtypefichiers Fichier = ensemble d informations codées et stockées sur une

Plus en détail

Les processus légers : threads. Système L3, 2014-2015 1/31

Les processus légers : threads. Système L3, 2014-2015 1/31 Les processus légers : threads Système L3, 2014-2015 1/31 Les threads Les threads sont des processus légers exécutés à l intérieur d un processus L exécution des threads est concurrente Il existe toujours

Plus en détail

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Ces exercices portent sur les items 2, 3 et 5 du programme d informatique des classes préparatoires,

Plus en détail

Découverte de Python

Découverte de Python Découverte de Python Python est un des langages informatiques au programme des concours à partir de la session 2015. Ce tutoriel vous permettra de vous mettre à peu près à niveau de ce qui a été fait en

Plus en détail

Manuel de System Monitor

Manuel de System Monitor Chris Schlaeger John Tapsell Chris Schlaeger Tobias Koenig Traduction française : Yves Dessertine Traduction française : Philippe Guilbert Traduction française : Robin Guitton Relecture de la documentation

Plus en détail

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */. Page 1 de 9 MATLAB : COMMANDES DE BASE Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */. Aide help, help nom_de_commande Fenêtre de travail (Command Window) Ligne

Plus en détail

Open-Sankoré. Mise en route. Guide utilisateur Février 2013 NTICE (E. S.)

Open-Sankoré. Mise en route. Guide utilisateur Février 2013 NTICE (E. S.) Guide utilisateur Février 2013 NTICE (E. S.) Open-Sankoré Développé à l Université de Lausanne en 2003 sous le nom d Uniboard, ce logiciel combine la simplicité des outils d enseignements traditionnels

Plus en détail

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15 MapReduce Malo Jaffré, Pablo Rauzy ENS 16 avril 2010 Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15 Qu est ce que c est? Conceptuellement Données MapReduce est un framework de calcul distribué

Plus en détail

Qualité du logiciel: Méthodes de test

Qualité du logiciel: Méthodes de test Qualité du logiciel: Méthodes de test Matthieu Amiguet 2004 2005 Analyse statique de code Analyse statique de code Étudier le programme source sans exécution Généralement réalisée avant les tests d exécution

Plus en détail

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle - 2012-2013 P. Bonnet

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle - 2012-2013 P. Bonnet Programmation VBA Pierre BONNET 21 La programmation VBA Historiquement, la programmation sous Excel avait comme fonction d'automatiser une succession d'actions faites dans la feuille à l'aide de la souris.

Plus en détail

Chapitre 4 Pierre, papier, ciseaux

Chapitre 4 Pierre, papier, ciseaux Python 3 : objectif jeux Chapitre 4 Chapitre 4 Pierre, papier, ciseaux (version graphique) 4.1. Thèmes abordés dans ce chapitre Le module tkinter : Label, Button Fenêtre Événements Réceptionnaire d'événements

Plus en détail

Documentation utilisateur. [EIP] TransLSF

Documentation utilisateur. [EIP] TransLSF Documentation utilisateur [EIP] TransLSF Henri HARDILLIER - Thomas MOREL - Florian JOUSSEAU Alexis MONNIER - Keo KHEMARA - Leo MARTIN Stéphane RICARDO Résumé Ce document présente la documentation destinée

Plus en détail

Devenez un véritable développeur web en 3 mois!

Devenez un véritable développeur web en 3 mois! Devenez un véritable développeur web en 3 mois! L objectif de la 3W Academy est de former des petits groupes d élèves au développement de sites web dynamiques ainsi qu à la création d applications web

Plus en détail

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

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 4 : Fonctions La construction de fonctions dans un langage de programmation permet aux

Plus en détail

Licence Sciences et Technologies Examen janvier 2010

Licence Sciences et Technologies Examen janvier 2010 Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre.

Plus en détail

Les structures. Chapitre 3

Les structures. Chapitre 3 Chapitre 3 Les structures Nous continuons notre étude des structures de données qui sont prédéfinies dans la plupart des langages informatiques. La structure de tableau permet de regrouper un certain nombre

Plus en détail

CREATION WEB DYNAMIQUE

CREATION WEB DYNAMIQUE CREATION WEB DYNAMIQUE IV ) MySQL IV-1 ) Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requêtes vers les bases de données relationnelles. Le serveur de

Plus en détail

Excel 2007 Niveau 3 Page 1 www.admexcel.com

Excel 2007 Niveau 3 Page 1 www.admexcel.com Excel 2007 Niveau 3 Page 1 TABLE DES MATIERES UTILISATION DE LISTES DE DONNEES... 4 REMARQUES PREALABLES SUR LES LISTES DE DONNEES... 4 METTRE EN FORME LE TABLEAU... 6 METTRE LA LISTE A JOUR... 7 a/ Directement

Plus en détail

Découverte du tableur CellSheet

Découverte du tableur CellSheet Découverte du tableur CellSheet l application pour TI-83 Plus et TI-84 Plus. Réalisé par Guy Juge Professeur de mathématiques et formateur IUFM de l académie de Caen Pour l équipe des formateurs T 3 Teachers

Plus en détail

Chapitre 4 : Édition de fichiers texte - Vi

Chapitre 4 : Édition de fichiers texte - Vi Édition de fichiers texte - Vi ÉNONCÉSDUCHAPITRE4 33 Chapitre 4 : Édition de fichiers texte - Vi X Durée : 1heure30 X Mots-clés : Éditeur, texte, vi, vim. X Objectif À l'issue de ce chapitre, vous serez

Plus en détail

AP1.1 : Montages électroniques élémentaires. Électricité et électronique

AP1.1 : Montages électroniques élémentaires. Électricité et électronique STI2D Option SIN Terminale AP1.1 : Montages électroniques élémentaires Électricité et électronique Durée prévue : 3h. Problématique : connaître les composants élémentaires de l'électronique Compétences

Plus en détail

BUREAU VIRTUEL. Utilisation de l application sur ipad. Guide utilisateur. Sciences Po Utilisation du bureau virtuel sur ipad 1 / 6

BUREAU VIRTUEL. Utilisation de l application sur ipad. Guide utilisateur. Sciences Po Utilisation du bureau virtuel sur ipad 1 / 6 BUREAU VIRTUEL Utilisation de l application sur ipad Guide utilisateur Sciences Po Utilisation du bureau virtuel sur ipad 1 / 6 Utilisation du bureau virtuel sur ipad Table des matières PREAMBULE...2 QU

Plus en détail

Cours 7 : Utilisation de modules sous python

Cours 7 : Utilisation de modules sous python Cours 7 : Utilisation de modules sous python 2013/2014 Utilisation d un module Importer un module Exemple : le module random Importer un module Exemple : le module random Importer un module Un module est

Plus en détail

Rapport de Projet Béatrice Frey et Cyril Crassin Printemps 2004. Projet Fourmis. Université de Technologie de Belfort-Montbéliard

Rapport de Projet Béatrice Frey et Cyril Crassin Printemps 2004. Projet Fourmis. Université de Technologie de Belfort-Montbéliard Rapport de Projet LO43 Béatrice Frey et Cyril Crassin Printemps 2004 Projet Fourmis Université de Technologie de Belfort-Montbéliard GI02 Sommaire Béatrice Frey et Cyril Crassin Rapport Projet LO43 Introduction...

Plus en détail

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés

Plus en détail

Introduction à Expression Web 2

Introduction à Expression Web 2 Introduction à Expression Web 2 Définitions Expression Web 2 est l éditeur HTML de Microsoft qui répond aux standard dew3c. Lorsque vous démarrez le logiciel Expression Web 2, vous avez le choix de créer

Plus en détail

Support de formation Notebook

Support de formation Notebook Support de formation Notebook Guide de l utilisateur du tableau interactif SMART Board Table des matières Le Tableau Blanc Interactif... 1 Comprendre le fonctionnement du TBI... 1 Utiliser le plumier

Plus en détail

Les chaînes de caractères

Les chaînes de caractères Les chaînes de caractères Dans un programme informatique, les chaînes de caractères servent à stocker les informations non numériques comme par exemple une liste de nom de personne ou des adresses. Il

Plus en détail

I. Introduction aux fonctions : les fonctions standards

I. Introduction aux fonctions : les fonctions standards Chapitre 3 : Les fonctions en C++ I. Introduction aux fonctions : les fonctions standards A. Notion de Fonction Imaginons que dans un programme, vous ayez besoin de calculer une racine carrée. Rappelons

Plus en détail

Vous avez cliqué sur le lien disponible sur le Site Uniformation. Vous venez d arriver sur cette page.

Vous avez cliqué sur le lien disponible sur le Site Uniformation. Vous venez d arriver sur cette page. Vous avez cliqué sur le lien disponible sur le Site Uniformation. Vous venez d arriver sur cette page. Ce site vous permettra de faire votre demande d agrément en ligne. Première étape, vous identifier.

Plus en détail

Premiers Pas en Programmation Objet : les Classes et les Objets

Premiers Pas en Programmation Objet : les Classes et les Objets Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.

Plus en détail

1 Recherche en table par balayage

1 Recherche en table par balayage 1 Recherche en table par balayage 1.1 Problème de la recherche en table Une table désigne une liste ou un tableau d éléments. Le problème de la recherche en table est celui de la recherche d un élément

Plus en détail

L exclusion mutuelle distribuée

L exclusion mutuelle distribuée L exclusion mutuelle distribuée L algorithme de L Amport L algorithme est basé sur 2 concepts : L estampillage des messages La distribution d une file d attente sur l ensemble des sites du système distribué

Plus en détail

Présentation du PL/SQL

Présentation du PL/SQL I Présentation du PL/ Copyright Oracle Corporation, 1998. All rights reserved. Objectifs du Cours A la fin de ce chapitre, vous saurez : Décrire l intéret du PL/ Décrire l utilisation du PL/ pour le développeur

Plus en détail

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs) Modularité Extensions Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs) généricité modules de première classe : peuvent être

Plus en détail

Installation et configuration du logiciel BauBit

Installation et configuration du logiciel BauBit Installation et configuration du logiciel BauBit Version Windows 2013 Version Date Description 1.0 11.2011 Gabriel Python 2.0 01.2013 Gabriel Python 3.0 09.2013 Gabriel Python 1 1 Configuration avant installation

Plus en détail

Unity. Moteur de jeu 3D et 2D. Cross platform: Windows, Mac, Linux, ios, Android, Blackberry, Xbox, Playstation, Wii

Unity. Moteur de jeu 3D et 2D. Cross platform: Windows, Mac, Linux, ios, Android, Blackberry, Xbox, Playstation, Wii Unity Moteur de jeu 3D et 2D Cross platform: Windows, Mac, Linux, ios, Android, Blackberry, Xbox, Playstation, Wii C# / Javascript (UnityScript) / Boo Possibilité de créer ses propres outils Programmation

Plus en détail

Guide de formation EndNote Web Interface EndNote Web

Guide de formation EndNote Web Interface EndNote Web Guide de formation EndNote Web Interface EndNote Web Document préparé par Marilou Bourque Dernière mise à jour : 2009-12-10 Se créer un compte Ouvrir l application Se créer un compte via Web of science

Plus en détail

COMMENT CREER SIMPLEMENT UN TABLEAU DE BORD AVEC SAS BI DASHBOARD 4.3?

COMMENT CREER SIMPLEMENT UN TABLEAU DE BORD AVEC SAS BI DASHBOARD 4.3? COMMENT CREER SIMPLEMENT UN TABLEAU DE BORD AVEC SAS BI DASHBOARD 4.3? Les versions 4.3 et 4.31 du SAS BI Dashboard offrent de nouvelles fonctionnalités tant pour les utilisateurs finaux (nouvelle application

Plus en détail

PROJECTEUR DE DONNEES XJ-A135/XJ-A145/XJ-A155/ XJ-A245/XJ-A255

PROJECTEUR DE DONNEES XJ-A135/XJ-A145/XJ-A155/ XJ-A245/XJ-A255 PROJECTEUR DE DONNEES XJ-A135/XJ-A145/XJ-A155/ XJ-A245/XJ-A255 F Projecteur de données Guide des fonctions sans fil Veillez à lire les précautions dans le Mode d emploi (Opérations de base) fourni avec

Plus en détail

Unix/Linux I. 1 ere année DUT. Université marne la vallée

Unix/Linux I. 1 ere année DUT. Université marne la vallée Unix/Linux I 1 ere année DUT Université marne la vallée 1 Introduction 2 Fonctions et spécifité d Unix Architecture 3 4 5 Fichier Unix Arborescence de fichiers Quelques commandes sur les fichiers Chemins

Plus en détail

Algorithmique et Programmation, IMA

Algorithmique et Programmation, IMA Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions

Plus en détail

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

Ateliers Python+Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi? Ateliers Python+Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi? par X. HINAULT www.mon-club-elec.fr Tous droits réservés 2013. Document gratuit. Ce support

Plus en détail

COMPTA. Description des Commandes

COMPTA. Description des Commandes PARAM : Vous permet d entrer vos dates d exercices et de sélectionner l endroit où se trouvent vos factures à importer directement. En principe c:\agi3k\logiciel POUR LA FACTURATION ET LES SALAIRES Logiciel

Plus en détail

Travaux Dirigés n 1 : chaînes de caractères

Travaux Dirigés n 1 : chaînes de caractères UE LE315 Travaux Dirigés n 1 : chaînes de caractères Exercice 1 Ecrire une fonction int nombre_caract(char *chaîne) qui retourne la taille d une chaîne de caractères. Exercice 2 Ecrire la fonction void

Plus en détail