1 Le jeu «Puissance 4»

Save this PDF as:
 WORD  PNG  TXT  JPG

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

Download "1 Le jeu «Puissance 4»"

Transcription

1 Université de Nice-Sophia Antipolis Deug MIAS-MI 1 Algorithmique & Programmation TP N 3 Procédures et fonctions Buts : Manipuler des objets complexes Tableaux à deux dimensions Usage des sentinelles Utilisation des constantes Apprendre à modifier un programme 1 Le jeu «Puissance 4» Ce jeu se joue à deux joueurs sur une grille rectangulaire supposée verticale. Chacun à leur tour les joueurs posent un pion en haut d une colonne non pleine : ce pion glisse vers le bas jusqu à être arrêté par un autre pion ou par le bas de la grille. Le gagnant est le premier qui aligne 4 de ses pions, horizontalement, verticalement ou en diagonale. Voici un exemple de partie en cours : o x o... o x o x.. x x x o o.. C est à X de jouer. Il peut gagner en jouant en colonne 5 mais, s il ne le voit pas et commet l erreur de jouer en colonne 2, c est O qui pourra gagner en jouant lui aussi en colonne 2! Nous avons programmé pour vous un gestionnaire de partie pour ce jeu : un programme qui demande alternativement à deux joueurs humains 1 quel coup ils jouent, affiche l état de la partie et détermine qui gagne. Ce programme, trop long et trop complexe pour que vous l écriviez vousmême, vous est fourni dans les Documents de cours et il est reproduit à la fin de cette feuille de TP. Votre premier travail sera de le comprendre, le second sera d y faire quelques modifications pour en améliorer la programmation ou la qualité. 2 Comprendre un programme 2.1 Objets complexes Les objets définis par la classe instanciable Power4Game sont, comme leur nom l indique, des parties en cours de «Puissance 4». Le constructeur sera chargé de créer la partie dans son état initial (personne n a encore joué) et la classe exportera une seule méthode d instance, l ordre de «jouer la partie»! Regardez la classe Power4 pour voir comment la classe Power4Game est utilisée et vérifiez que toutes les autres méthodes de Power4Game sont déclarées private. 1. Programmer un jeu «humain contre ordinateur» n est pas encore de votre niveau : attendez la fin du semestre!

2 Les attributs d une partie en cours seront, très naturellement, l état de la grille de jeu (les coups déjà joués), les noms des joueurs (pour l affichage des dialogues), celui dont c est le tour de jouer et le résultat provisoire (la partie est-elle finie? y a-t-il un gagnant?). 2.2 Codage des joueurs Comme beaucoup de langages, Java ne dispose pas de type énuméré et, pour traduire une déclaration comme : type joueur = (joueur1, joueur2, personne) il faudra donner explicitement un codage par l ordinal de chacune des trois constantes (ici, 0, 1 et 2) et considérer ce type joueur comme un type entier. 2.3 Tableaux à deux dimensions La grille de jeu est une matrice rectangulaire qui contient des entiers (ces entiers codent l état de chaque case). Représenter une telle matrice ne pose aucun problème, il suffit de la considérer ligne par ligne : chaque case étant de type int, chaque ligne sera représentée par un tableau de type int[] et, comme on peut définir des tableaux de n importe quoi, on dira que la matrice est un tableau de lignes, donc de type int[][]. La ligne d indice line sera donc grid[][line] et sa valeur dans la colonne d indice column sera simplement grid[column][line]. Les informaticiens n utilisent pas le terme «matrice» pour désigner une telle structure, ils parlent plutôt de tableaux à deux dimensions Usage des sentinelles Pour savoir si le coup d un joueur le fait gagner, il va être nécessaire de se déplacer dans la grille de jeu et de tester la valeur de chaque case. Ce problème s apparente à celui de la recherche séquentielle (chercher une valeur dans une liste ou un tableau) et, comme lui, est compliqué par le fait qu il ne faut pas dépasser les bornes. La façon la plus simple de s en sortir est de placer des sentinelles, valeurs fictives, juste hors des bornes, pour lesquelles le résultat de la recherche est connu d avance et qui permettront de s arrêter sans avoir à tester qu on reste dans les bornes. Ici, on va entourer la grille de jeu de deux lignes et de deux colonnes supplémentaires dans lesquelles, bien sûr, il sera toujours interdit de jouer! Ainsi, quand on cherchera des alignements, la présence de ces cases vides arrêtera la recherche sans que d autres tests soit nécessaires. Et, évidemment, on n affichera pas ces cases fictives quand on affichera la grille de jeu. 2.5 Utilisation des constantes Java ne connaissant ni les types énumérés ni les intervalles, un très grand nombre des valeurs manipulées par un programme seront des entiers, soit comme valeur effective, soit comme codage, et il serait très facile de s y perdre : Qu est-ce que «2» dans un programme? Le nombre entier par lequel on multiplie une valeur pour la doubler? un indice dans un tableau? la troisième constante d un type énuméré? Et supposons que ce soit le dernier cas et que, mettant le programme au point, on s aperçoive qu il faut modifier le type énuméré et que cette constante devienne la cinquième : comment savoir quels sont, dans le programme, les «2» qu il faut remplacer par des «4»? 2. Beaucoup de langages de programmation (et notre langage algorithmique) permettent d utiliser l écriture équivalente grid[column,line] ; ce n est pas le cas de Java.

3 Toutes ces difficultés sont résolues par l usage systématique de constantes nommées. Le programme donné ne lésine pas là-dessus et c est ainsi qu il faut procéder 3. Examinons en détail ces déclarations : les lignes 7 à 9 codent le type énuméré «joueur» mais aussi les indices du tableau de la ligne 10 qui dit quel caractère doit être affiché selon l état de la case ; comme les lignes 12 et 13 déclarent une trop grande grille (à cause des sentinelles), les lignes 14 et 17 donnent des noms explicites aux indices où commence et finit le plateau de jeu réel ; les lignes 19 et 20 précisent que, quand un tableau de deux éléments représente un vecteur, son premier indice correspond à l horizontale, son second à la verticale (ces constantes seront utilisées entre les lignes 74 et 83) ; les lignes 21 à 24 ne servent qu à indiquer la signification de la ligne 25, les constantes qu elles définissent ne seront plus jamais utilisées ensuite! enfin, cette ligne 25 précise les directions dans lesquelles on cherchera des alignements de quatre pions. Dans un premier temps, les meilleurs d entre vous penseront sans doute que ce travail de déclaration est fastidieux, qu ils ne sont pas des imbéciles et qu ils n ont pas de temps à perdre avec ça. Ce n est pas grave, ils changeront d avis quand ils s apercevront qu ils ne sont plus les meilleurs. 2.6 Variables d instance La variable impactline déclarée en ligne 34 joue un rôle un peu particulier : elle ne sert qu à mémoriser la ligne d arrivée d un pion, déterminée par la procédure play, le temps qu elle soit utilisée comme argument de iswinning en ligne 127. Une programmation peu soigneuse pourrait la mettre avec les attributs (elle se déclare exactement de la même façon) et, bien sûr, ça marcherait. Cependant, il est difficile de la considérer comme un attribut au sens «objet» du terme, elle n est qu un intermédiaire, non une caractéristique de la partie en cours et, d ailleurs, on serait bien en peine de la faire initialiser par le constructeur! Le mieux est de la considérer comme une sorte de variable locale, tout comme les indices de boucles ou celles qui servent à échanger deux valeurs. Si l on tient à la terminologie objet, on pourra éventuellement parler de variable d instance. 3 Modifier un programme À présent que vous avez à peu près compris comment marche ce programme, nous allons voir si vous êtes capables de lui faire subir quelques améliorations ou modifications mineures. Les exercices proposés sont tous indépendants et ils doivent être réalisés sans bouleverser le programme de façon importante. a. Modifiez le programme pour que, quand il affiche l état de la partie, il dise aussi à qui c est le tour de jouer. b. La convention qui a été choisie est de numéroter les lignes de bas en haut. Ce n est pas la convention usuelle en informatique. Modifiez le programme pour qu elles soient numérotées de haut en bas. c. Les lignes 98 et 99 sont un peu violentes car elles peuvent interrompre la partie pour une simple faute de frappe. Modifiez le programme pour que, si un joueur joue dans une colonne pleine, on lui signale son erreur et on lui demande un autre choix. d. La méthode playable est un peu lourde puisqu elle réexamine toutes les têtes de colonne à chaque coup alors qu elles ne changent pas souvent. Modifiez le programme pour que la fin de partie par impossibilité de jouer (partie nulle) soit décelée plus économiquement. e. (difficile) On change les règles en déclarant qu un alignement de quatre pions est aussi gagnant s il est réalisé selon la marche du cavalier aux échecs (c est-à-dire selon une pente 2, 2, 1/2 ou 1/2). Modifiez le programme pour tenir compte de cette nouvelle règle. Faites-le de telle sorte qu on puisse revenir très facilement aux anciennes règles. 3. Il aurait même été encore plus propre de les déclarer private.

4 f. (difficile) Il n est pas facile de repérer les alignements. Modifiez le programme de telle sorte que, quand un joueur gagne, l alignement qu il vient de compléter soit mis en majuscules. g. (programme d imitation, facultatif) Le jeu japonais appelé gomoku se joue avec les règles de notre «morpion» (un joueur a les X, l autre les O, ils jouent chacun leur tour en posant leur pion sur une intersection d un quadrillage, le premier qui aligne cinq a gagné) à la seule différence que la zone de jeu est un carré. Dans la variante la plus jouée, appelée gomoku ninuki, une règle de prise est ajoutée : quand un joueur, au moment où il joue, prend deux pions adverses en tenaille avec un autre de ses pions, ils sont considérés comme prisonniers et retirés du jeu (par exemple, si X joue sur le point dans la position X O O., la situation devient X.. X ; en revanche, O peut sans danger jouer sur le point dans une position X O. X ). La prise peut être multiple et, comme l alignement, elle se fait dans n importe quelle direction. Le gagnant est le premier qui a aligné cinq ou fait dix prisonniers. Programmez le jeu de base ou la variante. La classe instanciable Power4Game 1 import unsa.console ; 2 3 public class Power4Game { 4 5 // CONSTANTES 6 // joueurs 7 final static int PLAYER_1 = 0 ; 8 final static int PLAYER_2 = 1 ; 9 final static int EMPTY = 2 ; 10 final static char[] SYMBOL = new char[] { x, o,. } ; 11 // coordonnées 12 final static int GRID_WIDTH = 9 ; // 7 + sentinelles 13 final static int GRID_HEIGHT = 8 ; // 6 + sentinelles 14 final static int FIRST_COL = 1 ; 15 final static int LAST_COL = GRID_WIDTH - 2 ; 16 final static int TOP_LINE = GRID_HEIGHT - 2 ; 17 final static int BOTTOM_LINE = 1 ; 18 // directions 19 final static int H = 0 ; // horizontalement 20 final static int V = 1 ; // verticalement 21 final static int[] HOR = new int[] {1, 0} ; // horizontale 22 final static int[] VER = new int[] {0, 1} ; // verticale 23 final static int[] UP = new int[] {1, 1} ; // diagonale montante 24 final static int[] DOWN = new int[] {1, -1} ; // diagonale descendante 25 final static int[][] DIRECTION = new int[][] {HOR, VER, UP, DOWN} ; // Attributs 28 private int[][] grid ; // grille de jeu 29 private String[] name ; // noms des joueurs 30 private int player ; // qui doit jouer 31 private int result ; // vainqueur ou partie nulle (si EMPTY) // Variable d instance 34 private int impactline ; // ligne atteinte par le dernier pion joué 35

5 37 public Power4Game (String[] name) { // noms des joueurs 38 // tout mettre à vide, y compris les sentinelles! 39 grid = new int[grid_width][grid_height] ; 40 for (int i = 0 ; i < GRID_WIDTH ; i++) { 41 for (int k = 0 ; k < GRID_HEIGHT ; k++) 42 grid[i][k] = EMPTY ; 43 } 44 this.name = name ; 45 player = PLAYER_1 ; 46 result = EMPTY ; 47 } // Fonctions 50 private boolean isfree (int column) { 51 return grid[column][top_line] == EMPTY ; 52 } 53 private boolean playable () { 54 // cherche s il existe une colonne libre 55 int column = FIRST_COL ; 56 while (column <= LAST_COL) { 57 if (isfree(column)) 58 return true ; 59 column++ ; 60 } 61 return false ; 62 } 63 private boolean iswinning (int column, int line) { 64 // cherche s il existe une direction alignant 4 65 int i = 0 ; 66 while (i < DIRECTION.length) { 67 if (iswinning(column, line, DIRECTION[i])) 68 return true ; 69 i++ ; 70 } 71 return false ; 72 } 73 private boolean iswinning (int column, int line, int[] dir) { 74 int nextcolumn = column + dir[h] ; int nextline = line + dir[v] ; 75 int forward = 0 ; // nombre de cases du joueur vers l avant 76 while (grid[nextcolumn][nextline] == player) { 77 nextcolumn += dir[h] ; nextline += dir[v] ; forward++ ; 78 } 79 // reculer 80 nextcolumn = column - dir[h] ; nextline = line - dir[v] ; 81 int backward = 0 ; // nombre de cases du joueur vers l arrière 82 while (grid[nextcolumn][nextline] == player) { 83 nextcolumn -= dir[h] ; nextline -= dir[v] ; backward++ ; 84 } 85 return backward forward >= 4 ; 86 } // Procédures 89 private void nextplayer () { 90 // préférer un test clair à une astuce fondée sur les valeurs 91 // arbitraires des constantes comme player = 1 - player 92 if (player == PLAYER_1) 93 player = PLAYER_2 ; 94 else 95 player = PLAYER_1 ; 96 }

6 97 private void play (int column) { 98 if (!isfree(column)) 99 throw new RuntimeException(" colonne p l e i n e ") ; 100 impactline = TOP_LINE ; // on sait qu elle est libre 101 while (impactline > BOTTOM_LINE && grid[column][impactline - 1] == EMPTY) 102 impactline-- ; 103 // on est en bas ou au-dessus d un pion 104 grid[column][impactline] = player ; 105 } // Affichage 108 private void printboard () { 109 // numéros des colonnes 110 for (int column = FIRST_COL ; column <= LAST_COL ; column++) 111 System.out.print(" " + column + " ") ; 112 System.out.println() ; 113 // état de la partie 114 for (int line = TOP_LINE ; line >= BOTTOM_LINE ; line--) { 115 for (int column = FIRST_COL ; column <= LAST_COL ; column++) 116 System.out.print(" " + SYMBOL[grid[column][line]] + " ") ; 117 System.out.println() ; 118 } 119 } // Jeu d une partie 122 public void playgame () { 123 while (result == EMPTY && playable()) { 124 printboard() ; 125 int column = Console.readInt(name[player] + " joue en colonne?") ; 126 play(column) ; // la variable impactline a reçu une valeur 127 if (iswinning(column, impactline)) 128 result = player ; 129 else 130 nextplayer() ; 131 } 132 printboard() ; 133 if (result == EMPTY) 134 System.out.println(" p a r t i e n u l l e ") ; 135 else 136 System.out.println(name[result] + " gagne") ; 137 } 138 } La classe exécutable Power4 1 public class Power4 { 2 3 public static void main (String[ ] args) { 4 // les noms des joueurs sont donnés en arguments d exécution 5 Power4Game game = new Power4Game(args) ; 6 game.playgame() ; 7 } 8 }

1 Les arbres binaires en Java

1 Les arbres binaires en Java Université de Nice-Sophia Antipolis Deug MIAS-MI 1 Algorithmique & Programmation 2002 2003 TP N 10 Arbres binaires Buts : structuration des arbres binaires en Java. classes internes. objets de parcours.

Plus en détail

Java : Programmation Impérative

Java : Programmation Impérative 1 Java : Programmation Impérative Résumé du cours précédent (I11) Paradigme impératif Algorithmique simple Découpage fonctionnel Qu est-ce qu un programme informatique? / un langage de programmation? /

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

Université du Littoral Master 1. PROJET Puissance 4

Université du Littoral Master 1. PROJET Puissance 4 Université du Littoral Master 1 PROJET Puissance 4 Le but de ce projet est de réaliser un programme permettant à l utilisateur de jouer au Puissance 4 contre l ordinateur. 1 Travail à Rendre Le travail

Plus en détail

Contrôle sur papier. INF441 Modex Programmation efficace juin 2010. 1. Photo de dés

Contrôle sur papier. INF441 Modex Programmation efficace juin 2010. 1. Photo de dés Contrôle sur papier INF441 Modex Programmation efficace juin 2010 1. Photo de dés Plusieurs dés ont été lancés sur une table, et une photo a été pris de haut. Cette photo est représentée par une matrice.

Plus en détail

Listes de personnes et calculatrice polonaise inverse en Java

Listes de personnes et calculatrice polonaise inverse en Java Listes de personnes et calculatrice polonaise inverse en Java Université Paris Sud Motivation Le but de cet exercice est de manipuler les listes chaînées et les piles et de voir leur application en analyse

Plus en détail

Module ITC34 - Algorithmique et Programmation

Module ITC34 - Algorithmique et Programmation Module ITC34 - Algorithmique et Programmation TDs Algorithmique (trois séances) Benoît Darties - benoit.darties@u-bourgogne.fr Univ. Bourgogne Franche-Comté Année universitaire 2015-2016 Avant-propos :

Plus en détail

Université Mohammed Premier Année universitaire 2011-2012. Correction de l examen écrit de la session ordinaire 18 Février 2012

Université Mohammed Premier Année universitaire 2011-2012. Correction de l examen écrit de la session ordinaire 18 Février 2012 Université Mohammed Premier Année universitaire 2011-2012 Faculté des Sciences Filière SMI Département de Mathématiques Module : POO Java et d Informatique Semestre : S5 Correction de l examen écrit de

Plus en détail

Programmation orientée objet TP 1 Prise en main de l environnement Java

Programmation orientée objet TP 1 Prise en main de l environnement Java Programmation orientée objet TP 1 L2 MPCIE Prise en main de l environnement Java Exercice 1 Nous désirons développer un programme pour la gestion (très simplifiée) d'un parc de véhicules destinés à la

Plus en détail

} 7 Variables (composantes)

} 7 Variables (composantes) Chapitre 4 Tableaux Jusqu ici, nous avons employé les variables pour stocker les valeurs individuelles de types primitifs : une variable de type int pour stocker un entier, une variable de type boolean

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

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez

Plus en détail

Algorithmique et programmation avec Java (NFA002)

Algorithmique et programmation avec Java (NFA002) Algorithmique et programmation avec Java (NFA002) Deuxième session 13 septembre 2012 Aucun document n est autorisé. Le barème est donné à titre indicatif. Exercice 1 : listes (4 points) Etudiez le programme

Plus en détail

Computix. Dans la colonne du 10, B choisit le 7 inférieur A 10 B 7

Computix. Dans la colonne du 10, B choisit le 7 inférieur A 10 B 7 Computix Matériel : grilles carrées comportant un nombre impair de cases. Quelques-unes sont données en annexe ; mais on peut aussi les construire soi-même, ou les faire construire par les élèves. Elles

Plus en détail

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

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

Plus en détail

Plan. Tableaux. Utilité. Définition. Exemples. Déclaration d un tableau

Plan. Tableaux. Utilité. Définition. Exemples. Déclaration d un tableau Plan Tableaux Université de Nice - Sophia Antipolis Richard Grin Version 1.0.4 25/11/10 Définition Déclaration d un tableau Création d un tableau Utilisation d un dun tableau Tableau des paramètres de

Plus en détail

Claude Delannoy. Exercices C++ en langage. 3 e édition. Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5

Claude Delannoy. Exercices C++ en langage. 3 e édition. Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5 Claude Delannoy Exercices en langage C++ 3 e édition Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5 Chapitre 3 Les fonctions Rappels Généralités Une fonction est un bloc d instructions éventuellement

Plus en détail

Procédures et fonctions

Procédures et fonctions Chapitre 5 Procédures et fonctions 5.1 Introduction Considérons le programme suivant, dont le but est d inverser les éléments d un tableau : public class InversionTableau1 { int t[]= {8, 2, 1, 23; Terminal.ecrireStringln("Tableau

Plus en détail

Introduction à la Programmation 1

Introduction à la Programmation 1 Introduction à la Programmation 1 Séance de cours/td Université Paris-Diderot Objectifs: Découverte du type String. Comprendre qu il y a des types différents. Maîtriser les expressions booléennes dans

Plus en détail

Correction langage Java

Correction langage Java MINISTÈRE DE L ÉCOLOGIE, DU DÉVELOPPEMENT DURABLE, DES TRANSPORTS ET DU LOGEMENT EXAMEN PROFESSIONNEL DE VÉRIFICATION D APTIDUDE AUX FONCTIONS DE PROGRAMMEUR Session 2010 Correction langage Java Langage:

Plus en détail

Université Mohammed Premier Année universitaire 2012-2013

Université Mohammed Premier Année universitaire 2012-2013 Université Mohammed Premier Année universitaire 2012-2013 Faculté des Sciences Filière SMI Département de Mathématiques Module : POO Java et d Informatique Semestre : S5 Responsable du cours : El Mostafa

Plus en détail

Projet de programmation Java Puissance 4

Projet de programmation Java Puissance 4 Projet de programmation Java Puissance 4 Juliusz Chroboczek et Gabriel Scherer Version du 13 novembre 2014 Le but de ce projet est d implémenter en Java un jeu de plateau qui s appelle Puissance 4. Votre

Plus en détail

INF-130 Travail Pratique #2

INF-130 Travail Pratique #2 École de technologie supérieure INF-30 Travail Pratique #2 Travail individuel Tracé d un métro Francis Bourdeau, Frédérick Henri et Patrick Salois Remise à la 0 e semaine. Objectifs - Amener l étudiant

Plus en détail

Éléments de base en Java (suite et fin)

Éléments de base en Java (suite et fin) Éléments de base en Java (suite et fin) P.O.O. LMI 2 Semestre 4 Option Info Année 2008-09 1/33 Éléments de base en Java (suite et fin) Année 2008-09 Plan du cours Les chaînes de caractères Retour vers

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

Épreuve d informatique 2011

Épreuve d informatique 2011 A 2011 INFO. MP ÉCOLE NATIONALE DES PONTS ET CHAUSSÉES, ÉCOLES NATIONALES SUPÉRIEURES DE L AÉRONAUTIQUE ET DE L ESPACE, DE TECHNIQUES AVANCÉES, DES TÉLÉCOMMUNICATIONS, DES MINES DE PARIS, DES MINES DE

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

Introduction au débogage avec Eclipse

Introduction au débogage avec Eclipse Introduction au débogage avec Eclipse C. Pain-Barre et H. Garreta IUT INFO Année 2006-2007 1 Notion de debogage Tout développeur est confronté un jour à un programme qui plante pour une raison apparemment

Plus en détail

Chapitre 11: Récursivité. Qu est-ce que la récursivité? Penser récursivement. Définition récursive d une liste

Chapitre 11: Récursivité. Qu est-ce que la récursivité? Penser récursivement. Définition récursive d une liste Chapitre 11: Récursivité CSI150 Introduction au génie logiciel Chapitre 11: Récursion La récursivité est une technique fondamentale de programmation qui permet de résoudre élégamment certains types de

Plus en détail

Les types utilisateurs (VBA) Corrigé

Les types utilisateurs (VBA) Corrigé PAD INPT ALGORITHMIQUE ET PROGRAMMATION 1 Cours VBA, Semaine 2 avril mai 2013 Corrigé Résumé Ce document décrit comment traduire en VBA les types utilisateur du langage algorithmique. Table des matières

Plus en détail

CONTRÔLE HORS-CLASSEMENT ÉCOLE POLYTECHNIQUE INFORMATIQUE COURS INF 431

CONTRÔLE HORS-CLASSEMENT ÉCOLE POLYTECHNIQUE INFORMATIQUE COURS INF 431 CONTRÔLE HORS-CLASSEMENT ÉCOLE POLYTECHNIQUE INFORMATIQUE COURS INF 431 GUILLAUME HANROT ET JEAN-JACQUES LÉVY On se propose de résoudre le problème de l affectation de k tâches à n employés (k > 0, n >

Plus en détail

DS Java 1. 19 novembre 2005

DS Java 1. 19 novembre 2005 DS Java 1 19 novembre 2005 Durée : 2 heures. Documents (notes et polycopiés) autorisés. La rigueur et la propreté seront prises en compte dans l évaluation. Le barème est indicatif. Vous rédigerez vos

Plus en détail

Corrigé des exercices sur les tableaux

Corrigé des exercices sur les tableaux Corrigé des exercices sur les tableaux Exercice 4.1.1 tableau d entiers Dans cet exercice, on va travailler avec un tableau d entiers initialisé : int[] tab = {12, 15, 13, 10, 8, 9, 13, 14; Question 1

Plus en détail

Définitions de classes permettant de gérer Étudiant en Enseignant CORRECTION

Définitions de classes permettant de gérer Étudiant en Enseignant CORRECTION EILCO ING 1 - POO Java Contrôle 2014/2015 Définitions de classes permettant de gérer Étudiant en Enseignant CORRECTION Dans ces exercices, nous allons définir une classe Personne qui permettra de gérer

Plus en détail

Licence STIC, Semestre 1 Algorithmique & Programmation 1

Licence STIC, Semestre 1 Algorithmique & Programmation 1 Licence STIC, Semestre 1 Algorithmique & Programmation 1 Exercices Alexandre Tessier 1 Introduction 2 instruction de sortie 3 expressions 4 variable informatique 5 séquence d instructions, trace Exercice

Plus en détail

Programmation avec des objets : Cours 7. Menu du jour

Programmation avec des objets : Cours 7. Menu du jour 1 Programmation avec des objets : Cours 7 Menu du jour 1. Retour sur la classe Liste 2. Précisions sur l interface 3. Difficultés dans le cas d erreurs 4. Soulever des exceptions 5. Utilisation des Listes

Plus en détail

Eléments de syntaxe du langage Java

Eléments de syntaxe du langage Java c jan. 2014, v3.0 Java Eléments de syntaxe du langage Java Sébastien Jean Le but de ce document est de présenter es éléments de syntaxe du langage Java : les types primitifs, les opérateurs arithmétiques

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

INF 103 Langage JAVA. Contrôle du 7 janvier 2015 Durée : 1h30

INF 103 Langage JAVA. Contrôle du 7 janvier 2015 Durée : 1h30 INF 103 Langage JAVA Contrôle du 7 janvier 2015 Durée : 1h30 Nom : Prénom : Casier : Groupe :........ Écrire les réponses directement sur les feuilles du sujet dans les cases prévues à cet effet. Le barème

Plus en détail

Corrigés des premiers exercices sur les classes

Corrigés des premiers exercices sur les classes Corrigés des premiers exercices sur les classes Exercice 2.1.1 utilisation d une classe Voici le texte d une classe représentant de façon sommaire un compte bancaire et les opérations bancaires courantes.

Plus en détail

Université Paris 7 Denis Diderot Introduction à l informatique et à la programmation (IF1) Corrigé de l examen du 6 janvier 2009

Université Paris 7 Denis Diderot Introduction à l informatique et à la programmation (IF1) Corrigé de l examen du 6 janvier 2009 Exercice 1. Université Paris 7 Denis Diderot Introduction à l informatique et à la programmation (IF1) Corrigé de l examen du 6 janvier 2009 1.1. Pour répondre à la question, nous avons regroupé dans une

Plus en détail

6.1 Une classe simple pour représenter des comptes bancaires

6.1 Une classe simple pour représenter des comptes bancaires Chapitre 6 Héritage Ce chapitre du cours traite de concepts relatifs à la programmation objet (hiérarchie de classe, héritage, extension, masquage) et sera illustré par un exemple de représentation de

Plus en détail

Les références et la mémoire

Les références et la mémoire Chapitre 3 Les références et la mémoire 3.1 Introduction En Java, pour déclarer une variable, il faut donner son nom, précédé du type qu on souhaite lui attribuer. Ces types peuvent être des types primitifs

Plus en détail

Les exceptions en Java

Les exceptions en Java Chapitre 6 Les exceptions en Java Lorsqu on conçoit un programme, on essaie évidemment qu il soit correct, c est-à-dire qu il fonctionne parfaitement dans les conditions prévues de son utilisation. L utilisateur

Plus en détail

CSC4002 : Contrôle Final Session 1. Date : jeudi 26 janvier 2012 Durée : 1H30. Coordonnateurs : Christian Bac et Denis Conan

CSC4002 : Contrôle Final Session 1. Date : jeudi 26 janvier 2012 Durée : 1H30. Coordonnateurs : Christian Bac et Denis Conan Corrigé et Barème Contrôle de connaissances 2011/2012 des étudiants de 2 è année (EI2) CSC4002 : Contrôle Final Session 1 Date : jeudi 26 janvier 2012 Durée : 1H30 Coordonnateurs : Christian Bac et Denis

Plus en détail

TP Numéro 3 METTRE EN FORME UN DOCUMENT A L AIDE D EN TETE, DE PIEDS DE PAGE... ET GERER LES SECTIONS

TP Numéro 3 METTRE EN FORME UN DOCUMENT A L AIDE D EN TETE, DE PIEDS DE PAGE... ET GERER LES SECTIONS TP Numéro 3 METTRE EN FORME UN DOCUMENT A L AIDE D EN TETE, DE PIEDS DE PAGE... ET GERER LES SECTIONS 1 MISE EN PAGE Nous allons travailler sur la mise en forme d un document dans Word à l aide de fonctions

Plus en détail

Sylvain Archenault Yves Houpert. Projet Informatique : Langage Java : Jeu De Dames en Java

Sylvain Archenault Yves Houpert. Projet Informatique : Langage Java : Jeu De Dames en Java Sylvain Archenault Yves Houpert Projet Informatique : Langage Java : Jeu De Dames en Java Projet GM3 Mai 2005 Chapitre 1 INTRODUCTION Le projet qui nous a été confié est de réaliser un jeu de dames en

Plus en détail

Moniteurs, Java, Threads et Processus

Moniteurs, Java, Threads et Processus Moniteurs, Java, Threads et Processus 1 Une vue orientée-objet de la mémoire partagée On peut voir un sémaphore comme un objet partagé accessible par deux méthodes : wait et signal. L idée du concept de

Plus en détail

Rendu de travaux I, Algo - langage C

Rendu de travaux I, Algo - langage C IFIP 33 avenue de la République 75011 PARIS Rendu de travaux I, Valérie Amiot RP 50 2001-2002 SOMMAIRE I. Pourquoi sous C? II. Présentation du jeu 1) But du jeu III. Analyse fonctionnelle IV. Fonctionnalités

Plus en détail

Architecture des ordinateurs TP 3

Architecture des ordinateurs TP 3 Architecture des ordinateurs ESIPE - IR1 TP 3 Objectif de cette séance L objectif de cette séance est d apprendre à utiliser la pile et à écrire des fonctions en assembleur En particulier, nous verrons

Plus en détail

Enveloppes convexes dans le plan

Enveloppes convexes dans le plan ÉCOLE POLYTECHNIQUE ÉCOLES NORMALES SUPÉRIEURES ÉCOLE SUPÉRIEURE DE PHYSIQUE ET DE CHIMIE INDUSTRIELLES CONCOURS D ADMISSION FILIÈRE MP HORS SPÉCIALITÉ INFO FILIÈRE PC COMPOSITION D INFORMATIQUE B (XECLR)

Plus en détail

Licence d'informatique 2004-2005 Examen Programmation orientée objet Juin 2005

Licence d'informatique 2004-2005 Examen Programmation orientée objet Juin 2005 Licence d'informatique 2004-2005 Examen Programmation orientée objet Juin 2005 Durée de l'épreuve : 2 heures TRÈS IMPORTANT : respectez l'ordre des questions. La lisibilité sera un critère important pour

Plus en détail

Héritage, et quelques petits mots-clés de Java

Héritage, et quelques petits mots-clés de Java Héritage, et quelques petits mots-clés de Java Bilan de la séance du 3 février. 1 Champs d instance, champs de classe La situation usuelle pour les attributs et les méthodes est la suivante : La classe

Plus en détail

Analyse lexicale 2014-2015

Analyse lexicale 2014-2015 Analyse (lexicale, syntaxique) L3 MIAGE Analyse lexicale Université de Lille, France 2014-2015 1 Rappels Rôle de l analyse lexicale Outils 2 Mise en oeuvre Lexème Vers l analyseur syntaxique Codage d un

Plus en détail

Programmation orientée objet en langage JAVA

Programmation orientée objet en langage JAVA Programmation orientée objet en langage JAVA Connexion à une base de données avec JDBC Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE HAVRE CEDEX

Plus en détail

Notions d héritage en Java

Notions d héritage en Java EILCO ING 1 - POO Java TP 5 2014/2015 Notions d héritage en Java L héritage est la capacité d une classe (la sous-classe) à hériter des membres (attributs et méthodes) d une autre classe (la super-classe).

Plus en détail

PROJET INFORMATIQUE RECHERCHE DE SOUS-CHAÎNE DE CARACTERES

PROJET INFORMATIQUE RECHERCHE DE SOUS-CHAÎNE DE CARACTERES PROJET INFORMATIQUE RECHERCHE DE SOUS-CHAÎNE DE CARACTERES I-Présentation Un algorithme de recherche de sous-chaine est un type d'algorithme de recherche qui a pour objectif de trouver une chaîne de caractères

Plus en détail

À propos des matrices échelonnées

À propos des matrices échelonnées À propos des matrices échelonnées Antoine Ducros appendice au cours de Géométrie affine et euclidienne dispensé à l Université Paris 6 Année universitaire 2011-2012 Introduction Soit k un corps, soit E

Plus en détail

APPLICATION. Définition des classes : On va définir - une classe carte - une classe piledecartes - une classe joueur

APPLICATION. Définition des classes : On va définir - une classe carte - une classe piledecartes - une classe joueur APPLICATION On souhaite écrire un programme qui permet à l utilisateur de jouer au jeu de cartes 21. Principe : L utilisateur reçoit une carte à la fois et après chaque carte il décide s il continue ou

Plus en détail

Série notée Sujet 1. Règles et recommandations : Instructions

Série notée Sujet 1. Règles et recommandations : Instructions EIDGENÖSSISCHE TECHNISCHE HOCHSCHULE LAUSANNE POLITECNICO FEDERALE LOSANNA SWISS FEDERAL INSTITUTE OF TECHNOLOGY LAUSANNE Faculté Informatique et Communication Introduction à la POO SIN/SSC Faltings B.

Plus en détail

Initiation à la programmation

Initiation à la programmation Initiation à la programmation 1 re partie Ce cours est largement inspiré de "Informatique et sciences du numérique"-gilles DOWEK(Eyrolles) Nous avons vu, par ailleurs, qu un ordinateur peut effectuer des

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

Présentation du langage et premières fonctions

Présentation du langage et premières fonctions 1 Présentation de l interface logicielle Si les langages de haut niveau sont nombreux, nous allons travaillé cette année avec le langage Python, un langage de programmation très en vue sur internet en

Plus en détail

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

Chapitre 10. Les interfaces Comparable et Comparator 1

Chapitre 10. Les interfaces Comparable et Comparator 1 Chapitre 10: Les interfaces Comparable et Comparator 1/5 Chapitre 10 Les interfaces Comparable et Comparator 1 1 Ce chapitre a été extrait du document "Objets, Algorithmes, Patterns" de [René Lalement],

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

Université Mohammed Premier Année universitaire 2011-2012. Complément d exercices avec correction

Université Mohammed Premier Année universitaire 2011-2012. Complément d exercices avec correction Université Mohammed Premier Année universitaire 2011-2012 Faculté des Sciences Filière SMI Département de Mathématiques et d Informatique Module : POO Java Semestre : S5 Complément d exercices avec correction

Plus en détail

Avant de programmer en Java DOS Set Path=C:\JDK\bin Path=C:\JDK\bin C:\JDK\bin Set Path=%Path%;C:\JDK\bin C:\JDK\bin C:\JDK\

Avant de programmer en Java DOS Set Path=C:\JDK\bin Path=C:\JDK\bin C:\JDK\bin Set Path=%Path%;C:\JDK\bin C:\JDK\bin C:\JDK\ Exercices corrigés de programmation OO Java Préparés par : Mlle Imene Sghaier Année Académique : 2006-2007 Premiers Pas I. Avant de programmer en Java Le JDK de Sun (Java Development Kit) est l outil essentiel

Plus en détail

Cours 8 : Exceptions, un peu de graphique

Cours 8 : Exceptions, un peu de graphique 1 Cours 8 : Exceptions, un peu de graphique 1. Traiter les exceptions usuelles 2. Créer ses propres exceptions 3. Exemples: les files. 4. Quelques éléments sur les graphiques 2 Exceptions Une exception

Plus en détail

LIF1 : ALGORITHMIQUE ET PROGRAMMATION IMPÉRATIVE, INITIATION

LIF1 : ALGORITHMIQUE ET PROGRAMMATION IMPÉRATIVE, INITIATION Licence STS Université Claude Bernard Lyon I LIF1 : ALGORITHMIQUE ET PROGRAMMATION IMPÉRATIVE, INITIATION 1 COURS 5 : Les Tableaux PLAN DE LA SÉANCE Comprendre l utilité des tableaux Apprendre à manipuler

Plus en détail

DUT Informatique Module JAVA Apprentis Département Informatique 2008 / 2009. Travaux Pratiques n o 2 : JUnit

DUT Informatique Module JAVA Apprentis Département Informatique 2008 / 2009. Travaux Pratiques n o 2 : JUnit iut ORSAY DUT Informatique Département Informatique 2008 / 2009 Travaux Pratiques n o 2 : JUnit Nom(s) : Groupe : Date : Objectifs : Apprendre à vérifier une implantation à l aide de tests unitaires sous

Plus en détail

Environnement algorithmique et conventions

Environnement algorithmique et conventions 1 Environnement algorithmique et conventions Un algorithme est un maillon de la chaîne de développement d une application. Il est le lien indispensable entre l analyse et le développement final. Ce chapitre

Plus en détail

Programmation orientée objet en langage JAVA

Programmation orientée objet en langage JAVA Connexion à une base de données avec JDBC Programmation orientée objet en langage JAVA Connexion à une base de données avec JDBC Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe

Plus en détail

420KEL Petite révision v. 1,65. Petite révision

420KEL Petite révision v. 1,65. Petite révision Petite révision Quelques petits exercices pour vous rafraîchir la mémoire et vous remettre en forme. Dans les exercices pour lesquels on vous demande de programmer, cherchez à produire un résultat à la

Plus en détail

Poker. A rendre pour le 25 avril

Poker. A rendre pour le 25 avril Poker A rendre pour le 25 avril 0 Avant propos 0.1 Notation Les parties sans * sont obligatoires (ne rendez pas un projet qui ne contient pas toutes les fonctions sans *). Celles avec (*) sont moins faciles

Plus en détail

Les exceptions en java

Les exceptions en java 1/12 Les exceptions en java 2/12 C'est quoi une exception? Une exception est un événement (une erreur) qui se produit lors de l'exécution d'un programme, et qui va provoquer un fonctionnement anormal (par

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

ISN TP 3 : «Premiers pas en programmation» 18/06/2015

ISN TP 3 : «Premiers pas en programmation» 18/06/2015 ISN TP 3 : «Premiers pas en programmation» 18/06/2015 Cette année, nous allons développer des programmes dans un langage de programmation qui s appelle Python. Nous allons travailler dans un environnement

Plus en détail

Introduction. Introduction au langage Java

Introduction. Introduction au langage Java Un premier programme 1 Introduction Un ordinateur peut faire bien des choses, mais il faut d abord les lui expliquer. Apprendre la programmation, ce n est pas seulement savoir écrire un programme, c est

Plus en détail

Résumé Introduction Programmation Java

Résumé Introduction Programmation Java Résumé Introduction Programmation Java Concepts Un programme : séquence, test conditionnel, boucles. Objets : Les objets Java modélisent les objets d un problème donné Classe : Les objets sont crées à

Plus en détail

Auto-évaluation Programmation en Java

Auto-évaluation Programmation en Java Auto-évaluation Programmation en Java Document: f0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION PROGRAMMATION EN

Plus en détail

CHAPITRE 6 : Tableaux. Définition. Tableaux à une dimension (Vecteurs)

CHAPITRE 6 : Tableaux. Définition. Tableaux à une dimension (Vecteurs) Année Universitaire 2006/2007 CHAPITRE 6 : Tableaux Définition Tableaux à une dimension (Vecteurs) Déclaration ; Mémorisation M ; Tableaux à plusieurs dimensions Déclaration Tableaux à deux dimensions

Plus en détail

Plan. Arbres équilibrés Arbres AVL Arbres a-b Quelques compléments de Java. Amphi 9 1

Plan. Arbres équilibrés Arbres AVL Arbres a-b Quelques compléments de Java. Amphi 9 1 Plan Arbres équilibrés Arbres AVL Arbres a-b Quelques compléments de Java Amphi 9 1 Structures d'arbre Les structures d'arbre permettent de réaliser des opérations dynamiques, telles que recherche, prédécesseur,

Plus en détail

Initiation à la Programmation avec Java Semestre 1-2008/2009. Compte rendu final du Projet

Initiation à la Programmation avec Java Semestre 1-2008/2009. Compte rendu final du Projet Initiation à la Programmation avec Java Semestre 1-2008/2009 Compte rendu final du Projet Jean-Baptiste Leprêtre Groupe Y1 Chargé de TD : Fabienne Thomarat 1 SOMMAIRE : I) Cahier des Charges II) Analyse

Plus en détail

Cours 1 : Introduction Générale + Objet I

Cours 1 : Introduction Générale + Objet I Organisation du cours Équipe pédagogique DUT Informatique S3 - Programmation Java Jean-Claude MARTIN MARTIN@LIMSI.FR Cours 1 : Introduction Générale + Objet I Jean-Claude MARTIN (Responsable, Cours, TD

Plus en détail

Licence Informatique Année 2005-2006

Licence Informatique Année 2005-2006 Université Paris 7 Java Licence Informatique Année 2005-2006 TD n 6 - Correction Héritage Exercice 1 On modélise une application devant servir à l inventaire d une bibliothèque. Elle devra traiter des

Plus en détail

LIF1 : ALGORITHMIQUE ET PROGRAMMATION IMPÉRATIVE, INITIATION

LIF1 : ALGORITHMIQUE ET PROGRAMMATION IMPÉRATIVE, INITIATION Licence STS Université Claude Bernard Lyon I LIF1 : ALGORITHMIQUE ET PROGRAMMATION IMPÉRATIVE, INITIATION 1 COURS 7 : Structures et Fichiers OBJECTIFS DE LA SÉANCE Deux notions abordées dans ce cours Celle

Plus en détail

Polymorphisme. Programmation Orientée Objet. Jean-Christophe Routier Licence mention Informatique Université Lille 1

Polymorphisme. Programmation Orientée Objet. Jean-Christophe Routier Licence mention Informatique Université Lille 1 Polymorphisme Programmation Orientée Objet Jean-Christophe Routier Licence mention Informatique Université Lille 1 Université Lille 1 - Licence Informatique Programmation Orientée Objet 1 des méthodes

Plus en détail

Cours 3. La conditionnelle: instructions si et selon Les boucles Comment raisonner sur les boucles: les invariants de boucle

Cours 3. La conditionnelle: instructions si et selon Les boucles Comment raisonner sur les boucles: les invariants de boucle Cours 3 : Instructions qui changent l ordre d exécution séquentiel 1 Cours 3 Instructions qui changent l ordre d exécution séquentiel La conditionnelle: instructions si et selon Les boucles Comment raisonner

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

C, seconde séance. le if then else n est pas une expression, mais une instruction ( Caml) se souvenir de:

C, seconde séance. le if then else n est pas une expression, mais une instruction ( Caml) se souvenir de: C, seconde séance le if then else n est pas une expression, mais une instruction ( Caml) se souvenir de: false, c est 0 ( \0 aussi) test d égalité: == pour printf: %d entier, %f flottant, %c caractère,

Plus en détail

Cours Visual Basic URCA

Cours Visual Basic URCA Cours Visual Basic URCA Sommaire Introduction à la programmation VBA et VB Syntaxe de base, variables Opérateurs de base, boucles Introduction à la programmation Qu est-ce que la programmation? Séquences

Plus en détail

Algorithmique et Programmation Projets 2012/2013

Algorithmique et Programmation Projets 2012/2013 3 Dames 3. Objectif Il s agit d écrire un programme jouant aux Dames selon les règles. Le programme doit être le meilleur possible. Vous utiliserez pour cela l algorithme α β de recherche du meilleur coup

Plus en détail

Cours 1. Contenu du cours : " Premières applications. " Compilation, Exécution, Chemin. " Affichage et saisie. " Types de données. " Flux de contrôle

Cours 1. Contenu du cours :  Premières applications.  Compilation, Exécution, Chemin.  Affichage et saisie.  Types de données.  Flux de contrôle Cours 1 1 Contenu du cours : " Premières applications " Compilation, Exécution, Chemin " Affichage et saisie " Types de données " Flux de contrôle " Applets " Arrays " OO de base Edition Le fichier texte

Plus en détail

Formulaires. Fiches de savoir associées. C.0.a., C.0.b., C.0.c., C.2.1.a., C.2.1.b. et C.2.3.a.

Formulaires. Fiches de savoir associées. C.0.a., C.0.b., C.0.c., C.2.1.a., C.2.1.b. et C.2.3.a. Activité 10 Formulaires Objectif Travailler sur des formulaires : observer le code et modifier l interface (IHM) de l application. Ressource à utiliser Base de données Formation appformation.mdb Fiches

Plus en détail

EXAMEN DE JAVA 2010-2011

EXAMEN DE JAVA 2010-2011 NOM : PRÉNOM : TP : G TP EXAMEN DE JAVA 2010-2011 Consignes : avec documents, mais sans téléphone, ordinateur ou autre moyen de communication. Durée : 2h Recommandations : Le code doit être écrit en JAVA

Plus en détail

Licence E.E.A. TD N 2 de Langage C/C++

Licence E.E.A. TD N 2 de Langage C/C++ TD N 2 de Langage C/C++ 1 Licence E.E.A. TD N 2 de Langage C/C++ Ce TD a pour objectif de vous faire découvrir et utiliser le langage C et peut être C++. Il s agira de transcrire sous la forme d un programme

Plus en détail

JAVA. Illustration d UML et Introduction à la programmation «objet» Juillet 2004 Thierry Leydier Virtualité Réelle thierry.leydier@gmail.

JAVA. Illustration d UML et Introduction à la programmation «objet» Juillet 2004 Thierry Leydier Virtualité Réelle thierry.leydier@gmail. JAVA Illustration d UML et Introduction à la programmation «objet» Juillet 2004 Thierry Leydier Virtualité Réelle thierry.leydier@gmail.com Historique JAVA est issu d'un projet de recherche chez SUN (fin

Plus en détail

module SIN21 Rendre un syste me communicant Analyse UML et algorithmie 1 Modification du cahier des charges

module SIN21 Rendre un syste me communicant Analyse UML et algorithmie 1 Modification du cahier des charges Module SIN221 Rendre un syste me communicant Analyse UML et algorithmie Objectifs : Modifier des diagrammes UML suite à la modification du cahier des charges. Caractériser et valider une classe en C++.

Plus en détail