Notes de cours. Introduction

Save this PDF as:
 WORD  PNG  TXT  JPG

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

Download "Notes de cours. Introduction"

Transcription

1 Notes de cours GEI 44 : STRUCTURES DE DONNÉES ET ALGORITHMES Chapitre 5 Application des piles Introduction Piles très utilisées dans les compilateurs Voici deux exemples de composants d un compilateur qui utilisent les piles : (a) Vérification du balancement des symboles ([], Sect..) (b) Calculateur simple ([], Sect..) Premier exemple : à étudier (travail personnel) Second exemple : étudié dans ce chapitre traité dans le second laboratoire

2 Représentation infix Expression infix constituée de : opérandes opérateurs (binaires ou unaires) parenthèses Les deux opérandes d un opérateur binaire sont respectivement à droite et à gauche de l opérateur Exemples : ( 5 ) / L opérande d un opérateur unaire est à droite de l opérateur Exemple : Opérandes et opérateurs considérés Opérandes : nombres entiers Opérateurs binaires exposant / multiplication et division addition et soustraction Opérateur unaire : Exemple : 4 5 / 6 4

3 Précédence et associativité des opérateurs Précédence (ou priorité) Soient deux opérateurs op et op Si op est plus prioritaire que (a un précédence sur) op, alors : «a op b op c» doit être interprété comme «( a op b ) op c» Associativité : à droite, à gauche Soient deux opérateurs op et op de même priorité et de même associativité Si op et op sont associatifs à gauche, alors : «a op b op c» doit être interprété comme «( a op b ) op c» Si op et op sont associatifs à droite, alors : «a op b op c» doit être interprété comme «a op ( b op c )» 5 Précédence et associativité (suite) Opérateurs par ordre de précédence Opérateur Type Associativité binaire à droite unaire à droite / binaire à gauche binaire à gauche Exemple : l expression infix / est interprétée comme l expression infix suivante : ( ) ( ( ( ( 4 5 ) ) 6 ) / ( ( ) ) ) Remarque : le moins unaire n est pas considéré dans la suite de ce chapitre, mais vous devrez le traiter dans le second laboratoire 6

4 Représentation postfix Séquence d opérateurs et d opérandes Les positions des opérateurs et opérandes sont telles que l expression puisse être évaluée : sans mettre de parenthèse sans connaître les priorités et associativités des opérateurs Les positions des opérateurs et opérandes informent implicitement sur les priorités et associativités Position d un opérateur est toujours plus à droite des positions de ses opérandes Arbres syntaxiques abstraits (AST) et expression postfix Soit l expression infix dont le résultat est : si est plus prioritaire que 9 si est moins prioritaire que plus prioritaire que L expression infix peut être représentée par l AST L expression postfix correspondante est moins prioritaire que L expression infix peut être représentée par l AST L expression postfix correspondante est Passage de AST à postfix parcourir feuilles de gauche à droite remonter à un nœud à partir de son enfant le plus à droite (càd lorsque tous les enfants du nœud ont été parcourus) 8

5 ASTs et expression postfix (suite) Soit l expression infix / En appliquant les règles de priorité et d associativité (voir pages 5 et 6), cette expression est interprétée comme : ( ) ( ( ( ( 4 5 ) ) 6 ) / ( ( ) ) ) L AST correspondant est : / ASTs et expression postfix (suite) L expression postfix correspondante est : / /

6 Évaluation d une expression postfix Lecture de l expression postfix de gauche à droite Lorsqu un opérande est rencontré, alors il est mis (push) dans une pile Lorsqu un opérateur est rencontré, alors : le nombre approprié d opérandes (, si opérateur binaire) sont récupérés (topandpop) de la pile l opération est effectuée le résultat est mis (push) dans la pile À la fin, la pile devrait contenir un seul élément qui est l évaluation de l expression postfix Il n est pas nécessaire d utiliser les règles de priorité et d associativité, car cellesci sont implicitement déterminées à partir des positions des opérateurs et des opérandes dans l expression postfix Évaluation d une expression postfix : exemple Soit l expression infix Si est plus prioritaire que, alors l expression postfix correspondante est : (voir page 8) 6 Le résultat est donc Si est moins prioritaire que, alors l expression postfix correspondante est : (voir page 8) 9 Le résultat est donc 9

7 Évaluation d une expression postfix : exemple L expression infix / qui doit être interprétée comme : ( ) ( ( ( ( 4 5 ) ) 6 ) / ( ( ) ) ) L expression postfix correspondante est : (voir page 0) / / 8 Conversion de infix à postfix Nous avons déjà montré d une manière intuitive, comment la conversion est effectuée à l aide d un AST Nous montrons ici comment la conversion est faite d une manière systématique à l aide d une pile Lecture de l expression infix de gauche à droite Opérandes : l ordre dans lequel ils apparaissent est le même dans les deux expressions Opérateurs : L ordre dans lequel ils apparaissent peut être différent dans les deux expressions Cet ordre dépend des priorités et des associativités Ils apparaissent après leurs opérandes Lorsque opérateur rencontré (dans l expression infix), il est mis dans une pile (opération push) Il sera récupéré ultérieurement de la pile (opération topandpop) pour la construction de l expression postfix 4

8 Conversion de infix à postfix : cas général Lorsqu un opérande est rencontré, alors il est retourné Lorsqu un opérateur est rencontré, alors : Tous les opérateurs dans la pile qui ont : une plus grande priorité, ou une même priorité et sont associatifs à gauche sont récupérés de la pile (topandpop) et retournés L opérateur rencontré est ensuite mis dans la pile (push) Lorsque toute l expression infix a été lue, alors le contenu de la pile est récupéré (topandpop) et retourné La séquence des symboles retournés constitue l expression postfix 5 Conversion de infix à postfix : exemple simple Soit l expression infix «6» Après lecture de : l expression postfix courante est : la pile contient : Après lecture de : comme est moins prioritaire que, donc est récupéré de la pile (topandpop) et mis à droite de l expression postfix courante. On obtient est ensuite mis dans la pile (push) Après lecture de 6 L expression postfix courante devient : «6» Comme toute l expression infix a été lue, on récupère le contenu de la pile (topandpop) pour le mettre à droite de l expression postfix courante. Le résultat final est donc : «6» 6

9 Conversion de infix à postfix : autre exemple simple Soit l expression infix «6» Après lecture de : l expression postfix courante est : la pile contient : Après lecture de : comme est plus prioritaire que alors est mis dans la pile (push) Après lecture de : l expression postfix courante est : la pile contient : Après lecture de : comme est moins prioritaire que et, donc et sont récupérés de la pile (topandpop) et mis à droite de l expression postfix courante. On obtient est ensuite mis dans la pile (push) Après lecture de 6 L expression postfix courante devient : «6» Comme toute l expression infix a été lue, on récupère le contenu de la pile (topandpop) pour le mettre à droite de l expression postfix courante. Le résultat final est donc : «6» Cas des parenthèses Parenthèse ouvrante «(» doit être considérée comme : opérateur de plus haute priorité lorsque elle est rencontrée dans expression infix opérateur de plus basse priorité lorsqu elle se trouve dans la pile Parenthèse fermante «)» Lorsque rencontrée dans expression infix, alors on récupère (topandpop) tous les opérateurs de la pile jusqu à ce qu on rencontre une parenthèse ouvrante les opérateurs récupérés sont retournés (pour être mis dans l expression postfix) les deux parenthèses ne sont pas retournées 8

10 Algorithme de conversion : récapitulation Opérandes : immédiatement retournés lorsque rencontrés Parenthèse fermante : lorsque rencontrée : il faut récupérer et retourner tous les symboles de la pile jusqu à ce qu on trouve une parenthèse ouvrante la parenthèse ouvrante est récupérée de la pile mais n est pas retournée la parenthèse fermante n est pas retournée Opérateur (incluant parenthèses ouvrantes) lorsque rencontré : Récupérer et retourner tous les symboles de la pile jusqu à ce qu on trouve un opérateur : de plus haute priorité, ou de même priorité et associatif à droite Celuici est ni récupéré ni retourné Ensuite, mettre dans la pile l opérateur rencontré Fin de lecture : lorsque expression infix entièrement lue, récupérer et retourner tout le contenu de la pile Rappel : parenthèses ouvrantes traitées comme opérateurs particuliers (voir page précédente) 9 Algorithme de conversion de infix à postfix : exemple Soit l expression infix 5 4 ( 8 ) ( ( ( 8 8 ( ( ( ( ) 6 6 L expression postfix est donc :

11 Évaluation expression infix Évaluation expression infix peut être fait en deux étapes : () convertir expression infix en postfix (pages 40) () évaluer expression postfix (pages ) Dans la réalisation que nous allons présenter : Le moins unaire n est pas traité Au lieu de générer explicitement toute l expression postfix, chaque symbole postfix est envoyé comme entrée de l étape dès qu il est généré Évaluation expression infix : exemple Soit l expression infix «6» Au lieu d obtenir dans l étape toute l expression postfix «6», et de l évaluer dans l étape, on peut procéder comme suit : = = 5 5 6

12 Implantation Évaluation expression infix ([], Fig..) import DataStructures.; import Exceptions.; import java.io.; import java.util.stringtokenizer; public class Evaluator { / définitions de constantes EOL, VALUE, OPAREN, CPAREN, EXP, MULT, DIV, PLUS, MINUS (voir page 4) / // PrecTable matches order of Token enumeration static Precedence [ ] prectable = new Precedence[ 9 ]; static { / Initialisation de la table de précédence, voir page / public Evaluator( String s ) { / voir page / public long getvalue( ) { / La seule routine publique voir page 8 / private Stack opstack; // Operator stack for conversion private Stack postfixstack; // Stack for postfix machine StringTokenizer str; // The character stream long currentvalue; // Current operand int lasttoken; // Last token read / Two internal methods that hide typecasting. / private long postfixtopandpop( ) throws Underflow { return ( (Long) ( postfixstack.topandpop( ) ) ).longvalue( ); private int opstacktop( ) throws Underflow { return ( (Integer) ( opstack.top( ) ) ).intvalue( ); private static long pow( long x, long n ) { / calcul de xn / private int gettoken( ) { / voir page 0 / private long gettop( ) { / voir page / private void binaryop( int topop ) { / voir page / private void processtoken( ) { / voir page 8 / public static void main( String [ ] args ) { / voir page 4 / Classe Evaluator : constantes static final int EOL = 0; static final int VALUE = ; static final int OPAREN = ; static final int CPAREN = ; static final int EXP = 4; static final int MULT = 5; static final int DIV = 6; static final int PLUS = ; static final int MINUS = 8; EOL est utilisé pour spécifier la reconnaissance d une fin de ligne VALUE est utilisé pour spécifier la reconnaissance d un opérande OPAREN et CPAREN sont respectivement utilisés pour spécifier les reconnaissances de «(» et «)» EXP, MULT, DIV, PLUS et MINUS sont respectivement utilisés pour spécifier les reconnaissances des opérateurs binaires / 4

13 Classe Evaluator : piles utilisées Deux piles sont nécessaires : Première pile : opstack pour générer expression postfix (voir pages 40) contient uniquement opérateurs Seconde pile : postfixstack pour évaluer expression postfix (voir pages ) contient uniquement opérandes 5 Classe Evaluator : autres champs Objet str de type StringTokenizer : Utilisé pour reconnaître dans l expression infix les opérateurs / les opérandes (nombres entiers) Variable currentvalue : Utilisée pour stocker la valeur de l opérande courante Variable lasttoken : Contient la spécification du dernier élément reconnu Exemple : si est le dernier élément reconnu, alors lasttoken est égale à MULT 6

14 Classe Evaluator : constructeur public Evaluator( String s ) { opstack = new StackAr( ); postfixstack = new StackAr( ); str = new StringTokenizer( s, "/() ", true ); opstack.push( new Integer( EOL ) ); Construit deux piles vides référencées par opstack et postfixstack opstack et postfixstack : déclarées de type Stack qui est une interface (voir [], page 46) référencent objets de type StackAr qui est une implantation de Stack (voir [], page 4) Cela implique que seules les méthodes spécifiées dans l interface sont accessibles pour un utilisateur des deux piles Construit objet str de type StringTokenizer (voir [], page 9) er argument : chaîne de caractères sur laquelle l objet str va travailler ème argument : délimiteurs pour séparer éléments (tokens) reconnus (et retournés) ème argument : spécifie si délimiteurs reconnus ( et retournés) comme des tokens Initialise opstack en y mettant objet Integer de valeur EOL Classe Evaluator : méthode getvalue getvalue ([], Fig..5) public long getvalue( ) { long theresult = 0; do { lasttoken = gettoken( ); processtoken( ); while( lasttoken!= EOL ); try { theresult = postfixtopandpop( ); catch( Underflow e ) { System.err.println( "Missing operand!" ); return 0; if(!postfixstack.isempty( ) ) System.err.println( "Warning: missing operators!" ); return theresult; Seule méthode publique de Evaluator Retourne valeur qui évalue expression infix Celleci a été donné en argument lors de la création de l objet de type Evaluator theresult est le résultat retourné Boucle DoWhile reconnaît un élément (gettoken) et le traite (processtoken) jusqu à la fin de la ligne On suppose qu une expression infix est constituée d une seule ligne 8

15 Classe Evaluator : méthode getvalue (suite) À la fin du traitement, la pile doit contenir un seul élément, qui est le résultat de l évaluation de l expression infix donnée en entrée Après avoir traité toute la ligne, alors (bloc try) le résultat de l évaluation est récupéré de la pile postfixstack si celleci est vide alors une exception Underflow est générée par la fonction postfixtopandpop Si la pile n est pas vide après récupération du résultat, cela signifie qu il manque au moins un opérateur dans l expression postfix 9 Classe Evaluator : méthode gettoken ([], Fig..6) private int gettoken( ) { String s = ""; try { s = str.nexttoken( ); catch( java.util.nosuchelementexception e ) { return EOL; if( s.equals( " " ) ) return gettoken( ); if( s.equals( "" ) ) return EXP; if( s.equals( "/" ) ) return DIV; if( s.equals( "" ) ) return MULT; if( s.equals( "(" ) ) return OPAREN; if( s.equals( ")" ) ) return CPAREN; if( s.equals( "" ) ) return PLUS; if( s.equals( "" ) ) return MINUS; try { currentvalue = Long.parseLong( s ); catch( NumberFormatException e ) { System.err.println( "Parse error" ); return EOL; return VALUE; 0

16 Classe Evaluator : méthode gettoken (suite) Méthode privée utilisée par getvalue Retourne un élément (opérateur ou opérande) reconnu (er bloc try) Si objet référencé par str n a pas été créé avant d appeler str.nextoken, alors une exception est : générée (dans er bloc try) et attrapée (dans er bloc catch) Si blanc reconnu, alors on l ignore en rappelant gettoken Si opérateur ou parenthèse reconnu, alors on retourne un identificateur de l élément reconnu Si l élément reconnu n est ni opérateur ni parenthèse, alors on s attend à ce qu il soit un nombre (ème bloc try) Si on n arrive pas à convertir cet élément (qui est une chaîne de caractère) en un entier long, alors une exception est : générée (dans ème bloc try) et attrapée (dans ème bloc catch) Si l élément peut être converti en un entier long, alors : on dépose sa valeur dans currentvalue on retourne VALUE Classe Evaluator : méthode gettop ([], Fig..) private long gettop( ) { try { return postfixtopandpop( ); catch( Underflow e ) { System.err.println( "Missing operand" ); return 0; Récupère un élément de la pile postfixstack (qui contient des opérandes) Génère une exception si la pile est vide

17 Classe Evaluator : méthode BinaryOp BinaryOp ([], Fig..8) private void binaryop( int topop ) { if( topop == OPAREN ) { System.err.println( "Unbalanced parentheses" ); try { opstack.pop( ); catch( Underflow e ) { // Cannot happen return; long rhs = gettop( ); long lhs = gettop( ); if( topop == EXP ) postfixstack.push( new Long( pow( lhs, rhs ) ) ); else if( topop == PLUS ) postfixstack.push( new Long( lhs rhs ) ); else if( topop == MINUS ) postfixstack.push( new Long( lhs rhs ) ); else if( topop == MULT ) postfixstack.push( new Long( lhs rhs ) ); else if( topop == DIV ) if( rhs!= 0 ) postfixstack.push( new Long( lhs / rhs ) ); else { System.err.println( "Division by zero" ); postfixstack.push( new Long( lhs ) ); try { opstack.pop( ); catch( Underflow e ) { Récupère deux éléments de la pile postfixstack (qui contient des opérandes) Applique aux deux élément récupérés l opérateur donné en argument Met résultat dans la pile postfixstack Classe Evaluator : méthode BinaryOp (suite) Bloc «if topop == OPAREN» Si l opérateur est une parenthèse ouvrante, cela signifie que les parenthèses ne sont pas balancées dans l expression infix En effet, lorsqu elles sont balancées, les parenthèses ne font pas partie des symboles qui sont utilisés pour effectuer l évaluation Si opérateur n est pas parenthèse ouvrante, alors il est un des opérateurs / Dans ce cas : on récupère les deux opérandes de la pile postfixstack on effectue opération et on met résultat dans la pile postfixstack Si division par zéro alors : message d erreur envoyé on remet numérateur dans la pile postfixstack Lorsque opération effectuée, l opérateur qui a été appliqué est supprimé de la pile opstack 4

18 Définition des précédences des opérateurs Classe Precedence ([], Fig..9) class Precedence { int inputsymbol; int topofstack; Precedence( int insymbol, int topsymbol ) { inputsymbol = insymbol; topofstack = topsymbol; Contient deux champs inputsymbol et topofstack qui définissent respectivement deux niveaux de priorité : () lorsque opérateur est une entrée (vient d être reconnu) () lorsque opérateur est dans la pile opstack Si opérateur associatif : à gauche : alors niveau () < niveau () à droite : alors niveau () > niveau () 5 Définition des précédences des opérateurs (suite) Les niveaux de priorité peuvent être les suivants : Niveau () Niveau () Symbole / 0 0 opérande 0 EOL 00 0 ( 0 99 ) 6

19 Table des précédences des opérateurs ([], Fig. 9) static { prectable[ 0 ] = new Precedence( 0, ); // EOL prectable[ ] = new Precedence( 0, 0 ); // VALUE prectable[ ] = new Precedence( 00, 0 ); // OPAREN prectable[ ] = new Precedence( 0, 99 ); // CPAREN prectable[ 4 ] = new Precedence( 6, 5 ); // EXP prectable[ 5 ] = new Precedence(, 4 ); // MULT prectable[ 6 ] = new Precedence(, 4 ); // DIV prectable[ ] = new Precedence(, ); // PLUS prectable[ 8 ] = new Precedence(, ); // MINUS Déclarée et définie juste après les autres champs statiques de Evaluator (page ) Utilisée dans processtoken pour décider quqnd il faut récupérer des opérateurs de la pile opstack Classe Evaluator : méthode ProcessToken ([], Fig..0) private void processtoken( ) { int topop; try { switch( lasttoken ) { case VALUE: postfixstack.push( new Long( currentvalue ) ); return; case CPAREN: while( ( topop = opstacktop( ) )!= OPAREN && topop!= EOL ) binaryop( topop ); if( topop == OPAREN ) opstack.pop( ); else System.err.println( "Missing open parenthesis" ); break; default: // General operator case while( prectable[ lasttoken ].inputsymbol <= prectable[ topop = opstacktop( ) ].topofstack ) binaryop( topop ); if( lasttoken!= EOL )opstack.push( new Integer( lasttoken ) ); break; catch( Underflow e ) { // Cannot happen 8

20 Classe Evaluator : méthode ProcessToken (suite) Si élément reconnu est un opérande (case VALUE), alors il est mis dans postfixstack Si élément reconnu est une «)» (case CPAREN), alors : on récupère (pop) et traite éléments (opérateurs) de la pile opstack jusqu à ce que : soit on trouve une parenthèse ouvrante (OPAREN) : dans ce cas, la parenthèse est supprimée de la pile soit la pile se vide : dans ce cas, un message d erreur est généré Si l élément reconnu est un opérateur (default), alors : Tant que priorité () opérateur reconnu priorité () opérateur en haut de opstack : on récupère (pop) et traite opérateur en haut de la pile opstack Ensuite, on dépose l opérateur reconnu dans opstack Le traitement d un opérateur en haut de opstack consiste à : (voir fonction BinaryOp) récupérer deux opérandes de la pile postfixstack, effectuer l opération mettre le résultat dans postfixstack 9 Test de la classe Evaluator Evaluator ([], Fig..) public static void main( String [ ] args ) { String str; BufferedReader in = new BufferedReader( new InputStreamReader( System.in ) ); try { System.out.println( "Enter expressions, one per line:" ); while( ( str = in.readline( ) )!= null ) { System.out.println( "Read: " str ); Evaluator ev = new Evaluator( str ); System.out.println( ev.getvalue( ) ); System.out.println( "Enter next expression:" ); catch( IOException e ) { Chaque fois qu une ligne est entrée : on crée un objet ev de la classe Evaluator on appelle la méthode getvalue de l objet ev 40

21 Laboratoire Écrire un programme qui reçoit en entrée une expression infix et génère : () l expression postfix correspondante () l évaluation de l expression postfix (et infix) Le mois unaire doit être traité Vous pouvez utiliser les codes source mis à votre disposition et les adapter à votre besoin 4

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

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 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

BAZIN Danil et PRIEZ Jean-Baptiste. LEX & YACC : Calculatrice Évoluée

BAZIN Danil et PRIEZ Jean-Baptiste. LEX & YACC : Calculatrice Évoluée BAZIN Danil et PRIEZ Jean-Baptiste LEX & YACC : Calculatrice Évoluée Table des matières 1 Introduction 3 2 Description 4 3 La grammaire utilisée 6 4 Lexèmes et FLEX 8 5 Analyse syntaxique et YACC 8 5.1

Plus en détail

Université Paris Diderot ISIFAR Année 2008-2009. Exceptions et Classes Abstraites

Université Paris Diderot ISIFAR Année 2008-2009. Exceptions et Classes Abstraites Université Paris Diderot JAVA ISIFAR Année 2008-2009 TP n 7 - Correction Exceptions et Classes Abstraites Exercice 1 [Utilisation des Exceptions] La méthode parseint est spécifiée ainsi : public static

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

Workshop CAS et évaluation d expressions. Raphaël Shugo Boissel (boisse_r)

Workshop CAS et évaluation d expressions. Raphaël Shugo Boissel (boisse_r) Workshop CAS et évaluation d expressions Raphaël Shugo Boissel (boisse_r) 23 Novembre 2013 1 Présentation du workshop.................... 2 1.1 Définition du cas..................... 2 1.2 Définition de

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

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

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

Plan du cours. Syntaxe abstraite. Actions sémantiques Exemple : Analyseur d expressions arithmétiques Arbres de syntaxe.

Plan du cours. Syntaxe abstraite. Actions sémantiques Exemple : Analyseur d expressions arithmétiques Arbres de syntaxe. Plan du cours Syntaxe abstraite Martin Odersky 21 et 22 novembre 2005 version 1.0 1 2 3 Syntaxe abstraite Martin Odersky 1 de 31 Syntaxe abstraite Martin Odersky 2 de 31 Un analyseur syntaxique fait généralement

Plus en détail

TP Compilation Analyse lexicale

TP Compilation Analyse lexicale TP Compilation Analyse lexicale Eric Ramat ramat@lisic.univ-littoral.fr 9 mai 2014 Durée : 6 heures 1 Introduction Le but de cet TP est de vous donner les bases nécessaires afin de pouvoir écrire votre

Plus en détail

Héritage en java : Calculatrice SDC

Héritage en java : Calculatrice SDC Programmation orientée objet L3 MIAGE Héritage en java : Calculatrice SDC Travail à rendre : le code complet du projet SDC sous forme d une archive tar.gz. L archive comportera trois répertoires : un répertoire

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

Plan. Piqûre de rappel sur les références Evaluation d'expressions arithmétiques Variables et méthodes statiques Vocabulaire sur les arbres.

Plan. Piqûre de rappel sur les références Evaluation d'expressions arithmétiques Variables et méthodes statiques Vocabulaire sur les arbres. Plan Piqûre de rappel sur les références Evaluation d'expressions arithmétiques Variables et méthodes statiques Vocabulaire sur les arbres Amphi 4 1 Retour sur les références class Code { int numero; Code(int

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

Théorie des Langages

Théorie des Langages Théorie des Langages AntLR - Générateur d analyseurs Claude Moulin Université de Technologie de Compiègne Printemps 2015 Sommaire 1 Introduction 2 AntLR ANTLR : ANother Tool for Language Recognition URL

Plus en détail

Solutions du chapitre 14

Solutions du chapitre 14 Solutions du chapitre 14 Traitement des exceptions 14.16 Sous quelles circonstances utiliseriez-vous l instruction suivante? catch ( Exception e ) { throw e; } Cette instruction sert à capturer toute exception

Plus en détail

Listes et arbres binaires

Listes et arbres binaires Des structures de données dynamiques Listes, Listes ordonnées Arbres binaires, arbre binaires de recherche Listes chaînées Utile si le nombre d éléments n est pas connu à l avance et évolue beaucoup. Permet

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

POO LES EXCEPTIONS LES EXCEPTIONS

POO LES EXCEPTIONS LES EXCEPTIONS CHAPITRE 7 : LES EXCEPTIONS Objectifs spécifiques 1. Introduire la notion d exception, les règles d utilisation et de définition des exceptions. 2. Distinguer entre les exceptions prédéfinies et les exceptions

Plus en détail

TP 7 Client REST Java - OAuth

TP 7 Client REST Java - OAuth TP 7 Client REST Java - OAuth Xavier de Rochefort xderoche@labri.fr - labri.fr/~xderoche 15 mai 2014 Résumé Dans le TP5 nous avons comment effectué des requêtes à un service tiers et comment permettre

Plus en détail

Tableaux (introduction) et types de base

Tableaux (introduction) et types de base Tableaux (introduction) et types de base A. Motivation..................................................... 4 B. Les tableaux.................................................... 5 C. Construction des tableaux.......................................

Plus en détail

Programmer avec les exceptions en Java

Programmer avec les exceptions en Java Programmer avec les exceptions en Java Premier Cycle Cours Eurinsa 2002 (c) P.Pollet 05/12/2002 Java 2001 (PP) 1 Plan Gestion traditionnelle des erreurs d exécution Qu est-ce qu une exception? La classe

Plus en détail

ISMIN 1A Programmation 1 : Examen de programmation C. Réponses. Partie 1. Questions ouvertes

ISMIN 1A Programmation 1 : Examen de programmation C. Réponses. Partie 1. Questions ouvertes ISMIN 1A Programmation 1 : Examen de programmation C Réponses Partie 1. Questions ouvertes 1. Soit la déclaration suivante, char tab[] = "". Que contient le tableau tab? Réponse : tab[0] = \0. tab est

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

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

Programmation récursive

Programmation récursive Année 2004-2005 F. Lévy IUT De Villetaneuse Dép t informatique Cours d'algorithmique 2 éme Année Cours 8 Programmation récursive 1. Qu'est-ce que la programmation récursive Définition : la programmation

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

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

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 7. Exceptions

Chapitre 7. Exceptions Chapitre 7 Exceptions 1 Exceptions en Java Séparation exécution normale/gestion des erreurs Inspiration : C++ et Ada Un composant peut : prendre en charge le problème signaler le problème en levant une

Plus en détail

Les exceptions. Cours 12. vous les avez pratiquées sans le savoir... ArrayIndexOfBoundsException NullPointerException ClassNotFoundException...

Les exceptions. Cours 12. vous les avez pratiquées sans le savoir... ArrayIndexOfBoundsException NullPointerException ClassNotFoundException... Cours 12 Les exceptions vous les avez pratiquées sans le savoir... ArrayIndexOfBoundsException NullPointerException ClassNotFoundException... F.Gayral 1 Les exceptions, vous connaissez... public class

Plus en détail

C++ / MC-II1 - Cours n o 3 Allocation Mémoire et Constructeurs

C++ / MC-II1 - Cours n o 3 Allocation Mémoire et Constructeurs C++ / MC-II1 - Cours n o 3 Allocation Mémoire et Constructeurs Sebastien.Kramm@univ-rouen.fr IUT GEII Rouen 2010-2011 S. Kramm (IUT Rouen) MCII1 - Cours 3 2010-2011 1 / 47 Sommaire 1 Rappels de C et définitions

Plus en détail

Projet de Programmation Fonctionnelle

Projet de Programmation Fonctionnelle Projet de Programmation Fonctionnelle L objectif de ce projet est de concevoir, en Objective Caml, un évaluateur pour le langage mini-ml (un sous ensemble du langage Objective Caml). Votre programme devra

Plus en détail

LMI 2. Programmation Orientée Objet POO - Cours 7. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour

LMI 2. Programmation Orientée Objet POO - Cours 7. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour LMI 2 Programmation Orientée Objet POO - Cours 7 Said Jabbour jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Facult e des Sciences - Univ. Artois Janvier 2011 Exceptions

Plus en détail

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations

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 de Java Exceptions et E/S. catch (IOException ioe) { System.out.println(" E/S problem :" + ioe);

TP de Java Exceptions et E/S. catch (IOException ioe) { System.out.println( E/S problem : + ioe); TP de Java Exceptions et E/S Sujets abordés dans ce TP : Bloc try/catch/finally Déclenchement d exception Redéfinition d exception Taxonomie des exceptions Gestion de fichiers Tokenizer 1) Les erreurs

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

Le mécanisme d exception du langage Java

Le mécanisme d exception du langage Java Le mécanisme d exception du langage Java 1 / 39 Plan 1 Introduction aux exceptions en Java 2 Exemples de code avec gestion des exceptions 3 Créer ses propres exceptions 4 Instruction try/catch/finally

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

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

Les structures de données. Rajae El Ouazzani

Les structures de données. Rajae El Ouazzani Les structures de données Rajae El Ouazzani Les arbres 2 1- Définition de l arborescence Une arborescence est une collection de nœuds reliés entre eux par des arcs. La collection peut être vide, cad l

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

ITI 1521. Introduction à l informatique II

ITI 1521. Introduction à l informatique II ITI 1521. Introduction à l informatique II Marcel Turcotte École d ingénierie et de technologie de l information Version du 14 février 2011 Résumé Traitement d erreurs en Java : Déclaration, gestion, création

Plus en détail

Introduction au Java Development Kit Et quelques instructions en Java. 1 Création des répertoires d accueil des programmes Java

Introduction au Java Development Kit Et quelques instructions en Java. 1 Création des répertoires d accueil des programmes Java HLIN406 - Janvier 2015 Le Java Development Kit offre un ensemble d outils de développement d applications Java. Pour utiliser ces outils, JDK ne propose pas d interface utilisateur, on doit donc écrire

Plus en détail

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 SHERLOCK 7 Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 Cette note montre comment intégrer un script Java dans une investigation Sherlock et les différents aspects de Java script. S T E M M E R I M A G I N

Plus en détail

Algorithmique. Évaluation d expressions. Luc Brun. luc.brun@greyc.ensicaen.fr. Évaluation d expressions p.1/38

Algorithmique. Évaluation d expressions. Luc Brun. luc.brun@greyc.ensicaen.fr. Évaluation d expressions p.1/38 Algorithmique Évaluation d expressions Luc Brun luc.brun@greyc.ensicaen.fr Évaluation d expressions p.1/38 Plan Les différents types d expressions Expression complètement parenthésée (ECP), Expression

Plus en détail

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3. 1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this

Plus en détail

Introduction à la Programmation Orientée Objet

Introduction à la Programmation Orientée Objet Introduction à la Programmation Orientée Objet Bertrand Estellon Département Informatique et Interactions Aix-Marseille Université 4 avril 2013 Bertrand Estellon (DII AMU) Introduction à la Programmation

Plus en détail

Arbres binaires. Illustration avec des arbres binaires de décision Généricité bornée Synthèse sur les assertions et les exceptions

Arbres binaires. Illustration avec des arbres binaires de décision Généricité bornée Synthèse sur les assertions et les exceptions Arbres binaires Illustration avec des arbres binaires de décision Généricité bornée Synthèse sur les assertions et les exceptions FMIN220 Structures de données Université de Montpellier 2015 FMIN220 (UM)

Plus en détail

Programmation - Java - Fiches du Langage. Marie Beurton-Aimar

Programmation - Java - Fiches du Langage. Marie Beurton-Aimar Programmation - Java - Fiches du Langage Marie Beurton-Aimar Fiche Numéro 1 1.1 Structure d un programme Java Toutes les instructions se terminent par un ; Le nom du fichier qui contient une classe doit

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

Objectifs du cours: Gestion des exceptions. CSI1502 Principes fondamentaux en conception des logiciels. Prise en charge d`exception en Java

Objectifs du cours: Gestion des exceptions. CSI1502 Principes fondamentaux en conception des logiciels. Prise en charge d`exception en Java CSI1502 Principes fondamentaux en conception des logiciels Chapter 8: Gestion des exceptions Objectifs du cours: Gestion des exceptions Comprendre ce qui suit: Le fonctionnement de «try-catch» Propagation

Plus en détail

Programmation en Python - Cours 2 : Premiers programmes

Programmation en Python - Cours 2 : Premiers programmes Programmation en Python - Cours 2 : Premiers programmes 2013/2014 Diverses utilisations de python Utilisation en mode interactif Ecriture d un programme python Saisie de données par l utilisateur : input(),

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

Plan. Conseils de Programmation. Types et Classes. Exemple: fraction. Méthodes. Variables locales:

Plan. Conseils de Programmation. Types et Classes. Exemple: fraction. Méthodes. Variables locales: Plan Conseils de Programmation Joël Quinqueton Dépt MIAp, UFR IV UPV Université Montpellier III Types et classes Un exemple de classe Les erreurs en Java L héritage en Java Types primitifs Tableaux Classes:

Plus en détail

Introduction à l algorithmique et à la programmation 2013-2014. Cyril Nicaud Cyril.Nicaud@univ-mlv.fr. Cours 1 / 5

Introduction à l algorithmique et à la programmation 2013-2014. Cyril Nicaud Cyril.Nicaud@univ-mlv.fr. Cours 1 / 5 Introduction à l algorithmique et à la programmation IUT 1ère année 2013-2014 Cyril Nicaud Cyril.Nicaud@univ-mlv.fr Cours 1 / 5 Déroulement du cours Organisation : 5 séances de 2h de cours 10 séances de

Plus en détail

Le Langage Java et le Monde des Objets

Le Langage Java et le Monde des Objets . p.1 Le Langage Java et le Monde des Objets Les principes de la modélisation Orientée Objet. Qu est-ce qu une classe?. Les types de base. Utiliser les classes. Les tentacules de Java. . p.2 Bibliographie

Plus en détail

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour LMI 2 Programmation Orientée Objet POO - Cours 9 Said Jabbour jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Faculté des Sciences - Univ. Artois Février 2011 Les collections

Plus en détail

Programmation en Python - Cours 2 : Premiers programmes. MPSI - Lycée Thiers

Programmation en Python - Cours 2 : Premiers programmes. MPSI - Lycée Thiers Programmation en Python - Cours 2 : Premiers programmes Diverses utilisations de python Utilisation en mode interactif Ecriture d un programme python Utilisation en mode interactif Ecriture d un programme

Plus en détail

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

Programmation Java Avancée

Programmation Java Avancée Programmation Java Avancée Module RPCI01 Département R&T IUT de Villetaneuse 2 novembre 2015 Département R&T Programmation Java Avancée 2 novembre 2015 1 / 74 Plan du cours 1 La gestion des exceptions

Plus en détail

M2 FMIN305 - Novembre 2010 CORBA

M2 FMIN305 - Novembre 2010 CORBA FMIN05 - Novembre 0 Ce TD est très largement inspiré de ceux de Gilles Roussel. Vous trouverez beaucoup de choses intéressantes ici : http://www-igm.univ-mlv.fr/ roussel. 1 Horloge distante On souhaite

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

L outil Cup. Licence info et GMI documentation COMPIL 2007-2008. Pour toutes remarques, questions, suggestions : mirabelle.nebut@lifl.

L outil Cup. Licence info et GMI documentation COMPIL 2007-2008. Pour toutes remarques, questions, suggestions : mirabelle.nebut@lifl. UFR IEEA Licence info et GMI documentation COMPIL 2007-2008 FIL Pour toutes remarques, questions, suggestions : mirabelle.nebut@lifl.fr 1 raccourci pour Java-Based Constructor of Useful Parsers est un

Plus en détail

Langage Élémentaire Algorithmique Spécifications du langage

Langage Élémentaire Algorithmique Spécifications du langage Langage Élémentaire Algorithmique Spécifications du langage Lionel Clément Version provisoire Novembre 2012 Le but de ce projet est de livrer un compilateur pour un langage élémentaire algorithmique (Léa).

Plus en détail

Programmation objet en Java.

Programmation objet en Java. Programmation objet en Java. Didier Rémy 2001-2002 http://cristal.inria.fr/ remy/mot/7/ http://www.enseignement.polytechnique.fr/profs/informatique/didier.remy/mot/7/ Cours Exercices Slide 1 1. Classes,

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

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

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

Langage C/C++ TD 3-4 : Création dynamique d objets. Hubert Godfroy. 27 novembre 2014

Langage C/C++ TD 3-4 : Création dynamique d objets. Hubert Godfroy. 27 novembre 2014 Langage C/C++ TD 3-4 : Création dynamique d objets Hubert Godfroy 7 novembre 014 1 Tableaux Question 1 : Écrire une fonction prenant un paramètre n et créant un tableau de taille n (contenant des entiers).

Plus en détail

CHAPITRE 3 : Types de base, Opérateurs et Expressions

CHAPITRE 3 : Types de base, Opérateurs et Expressions CHAPITRE 3 : Types de base, Opérateurs et Expressions 1. Types simples Un type définit l'ensemble des valeurs que peut prendre une variable, le nombre d'octets à réserver en mémoire et les opérateurs que

Plus en détail

Cours d Analyse, Algorithmique Elements de programmation

Cours d Analyse, Algorithmique Elements de programmation 1 de 33 Cours d Analyse, Algorithmique Elements de programmation Florent Hivert Mél : Florent.Hivert@lri.fr Adresse universelle : http://www.lri.fr/ hivert 2 de 33 Données et instructions Un programme

Plus en détail

Projet. Coloration lexicale et indentation de code Java

Projet. Coloration lexicale et indentation de code Java Université Paris Diderot Programmation Orientée Objet L3 Année 2011-2012 Projet Coloration lexicale et indentation de code Java Le but de ce projet est de développer un programme qui prend en entrée un

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 Java

Programmation Orientée Objet Java Programmation Orientée Objet Java Bertrand Estellon Département Informatique et Interactions Aix-Marseille Université 29 octobre 2015 Bertrand Estellon (DII AMU) Programmation Orientée Objet Java 29 octobre

Plus en détail

Apache STORM. Version 1.0. avec des fichiers

Apache STORM. Version 1.0. avec des fichiers Apache STORM avec des fichiers Version 1.0 Rédacteur : Philippe Lacomme (placomme@isima.fr) Date : 3 septembre 2015 Liste des modifications Date : 9/09/2015 Auteur : Philippe Lacomme Modifications : ajout

Plus en détail

Java Licence Professionnelle CISII, 2009-10

Java Licence Professionnelle CISII, 2009-10 Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation

Plus en détail

Série 3.1- Morane Gruenpeter. Method Summary

Série 3.1- Morane Gruenpeter. Method Summary NFA019 : Série 3.1- Morane Gruenpeter a. La série 3.1 consiste à créer une classe ES qui gère les entrées et les sorties en utilisant les exceptions. La zone de capture qui peut soulever une exception--

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

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

PC* Structure de pile

PC* Structure de pile Structure de pile I. Définition........................................... 2 I.1 Introduction..................................... 2 I.2 Opérations caractérisant une structure de pile...................

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

TP4 : Stockage de données

TP4 : Stockage de données TP4 : Stockage de données 1 TP4 : Stockage de données Programmation Mobile Objectifs du TP Ce TP a pour objectif de vous initier au stockage des données dans le téléphone Android, dans la mémoire interne

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours 6 : JDBC : ou comment lier ORACLE avec Java 1ère partie Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Introduction 2 les étapes de la connexion

Plus en détail

2. lancer (throw) une exception consiste à la signaler

2. lancer (throw) une exception consiste à la signaler Cours 7 Exceptions 1 1. Une exception est un signal qui indique que quelque chose d'exceptionnel (par exemple une erreur) s est produite qui interrompt le flot d exécution normal du programme 2. lancer

Plus en détail

Fascicule de Génie Electrique (Terminale S option SI)

Fascicule de Génie Electrique (Terminale S option SI) Le langage C Ressource Centre d intérêt CI10 : Traitement de Thématique I11 - Les systèmes numériques : Mise en œuvre d un microcontrôleur avec des composants logiciels réutilisables. 1 Les constantes

Plus en détail

Programmation avancée et répartie en Java : rappels sur les mots-clés de Java

Programmation avancée et répartie en Java : rappels sur les mots-clés de Java Programmation avancée et répartie en Java : rappels sur les mots-clés de Java Frédéric Gava L.A.C.L Laboratoire d Algorithmique, Complexité et Logique Cours de M1 MIAGE Plan 1 Flot de contrôle 2 Plan 1

Plus en détail

Algorithmique, C++ Recollement d'images

Algorithmique, C++ Recollement d'images Algorithmique, C++ Recollement d'images Introduction à C++ Quatrième partie Quelques outils pour améliorer le code ou vous simplifier la vie Plan de la séance Compilation : optimisation Profiling et débogage

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

Cours d informatique du 17/11/2009 A. Rappels sur les boucles

Cours d informatique du 17/11/2009 A. Rappels sur les boucles Cours d informatique du 17/11/2009 A. Rappels sur les boucles 1) Rappel sur les invariants de boucle : L invariant de boucle est un outil pour concevoir cette boucle. Il peut exister plusieurs invariants

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

Introduction à la programmation en Java. Java sans Bluej. Ligne de commande entrées/sorties fichiers. Où en sommes-nous? Hello, world!

Introduction à la programmation en Java. Java sans Bluej. Ligne de commande entrées/sorties fichiers. Où en sommes-nous? Hello, world! Introduction à la programmation en Java Frédéric MALLET Jean-Paul ROY U.F.R. Sciences de Nice Licence Math-Info 2006-2007 Module L1I1 12-1 Où en sommes-nous? Nous savons rédiger le texte d une classe d

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

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

Contrôler les programmes VBA

Contrôler les programmes VBA 7 Contrôler les programmes VBA Au sommaire de ce chapitre Utiliser les opérateurs logiques Trier des données Répéter une série d instructions : les boucles Utiliser des instructions conditionnelles Définir

Plus en détail

Principes de la programmation impérative

Principes de la programmation impérative Séquence d instructions Variables et types Types élaborés Procédures, arguments Gestion de la mémoire Langage compilé, interprété Principes de la programmation impérative Séquence d instructions Variables

Plus en détail

Introduction au langage C - types et variables

Introduction au langage C - types et variables Chapitre 2 Introduction au langage C - types et variables 1 Le Langage C Le langage C est un langage de bas niveau dans le sens où il permet l accès à des données que manipulent les ordinateurs (bits,

Plus en détail