TP d Intelligence Artificielle

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

Download "TP d Intelligence Artificielle"

Transcription

1 TP d Intelligence Artificielle Ce projet d intelligence artificielle consiste à représenter un environnement et à le sécuriser à l aide d un robot. Pour cela, le robot est équipé d un certain nombre de capteurs et est capable de se déplacer et de détecter les éléments autour de lui. Il dispose en plus de sondes qu il peut déposer et reprendre à volonté pour l aider à sécuriser le monde. L environnement à sécuriser est clos (il peut éventuellement être accessible de l extérieur par un nombre limité de portes) et peut contenir des obstacles que le robot peut déplacer, mais en aucun cas il ne peut voir derrière un obstacle ou une paroi. Enfin, le robot peut explorer le monde puis le sécuriser ou bien l explorer et le sécuriser simultanément. Pour réaliser ce projet, le choix du ou des langages nous a été laissé libre. Nous avons utilisé deux langages : Prolog et Java. Le langage Prolog nous sert à définir le monde à explorer et les différentes contraintes de déplacement du robot, tandis que le Java nous sert essentiellement à réaliser l interface graphique de notre monde et à interroger Prolog. Enoncé En plus des données qui figurent sur l énoncé du TP, nous avons ajouté quelques règles à suivre : - les sondes sont des points qui surveillent dans un rayon alentour de 1. - une sonde fait une case - le robot détruit les sondes s'il passe dessus - le robot se déplace selon un quadrillage dans les directions haut, bas, gauche, droite - les cloisons sont définies sur les intersections de cases et sont infranchissables - le robot possède des "pinces" et peut déplacer les obstacles avec lui - le robot ne voit pas ce qu'il y a derrière les obstacles - le robot doit vérifier qu'il est passé partout dans le monde - le robot place les sondes, et il en possède autant qu il le souhaite - il existe des portes de sortie (parois particulières) Prolog Prolog est un langage de programmation logique. Le but était de faire un langage de programmation qui permettait d'utiliser l'expressivité de la logique au lieu de définir pas à pas la succession d'instructions que doit exécuter un ordinateur. Prolog est utilisé dans de nombreux programmes d intelligence artificielle. Un des avantages de Prolog est d avoir ses syntaxe et sémantique très simples et claires (le but original était de procurer un outil pour les linguistes ignorant l informatique)

2 Une des particularités de prolog est que l'on peut construire une base de connaissance dans un ordre indéterminé. Prolog résoudra ensuite des séries de problèmes logiques. Nous avons donc réalisé la définition de notre monde en Prolog et Java ne fait qu interroger Prolog afin de savoir quels sont les déplacements possibles pour notre robot. Le programme Prolog comporte 2 parties : la base de faits et la base de règles. La base de faits (aussi appelée base de connaissances en IA) décrit tous les éléments présents dans notre monde : la position du robot à l état initial, les parois, les obstacles La base de règles comporte les différentes règles dont dispose notre monde, il s agit essentiellement de règles de déplacement de notre robot en fonction de la connaissance du monde. Constantes Notre programme Prolog utilise 4 constantes qui correspondent aux 4 directions de déplacement possibles : haut, bas, gauche et droite. La base de faits Notre base de faits comporte de nombreux prédicats que nous allons vous détailler ci-dessous : robot(nomrobot,coordx,coordy) : le robot nomrobot se trouve en (coordx,coordy). explore(coordx,coordy) : la case de coordonnées (coordx,coordy) a été explorée. obstacle(nomobstacle,coordx,coordy) : l obstacle nomobstacle se trouve en (coordx,coordy). possedeobstacle(nomrobot,nomobstacle,coordx,coordy) : le robot nomrobot se trouve en (coordx,coordy) et possède l obstacle nomobstacle. sonde(nomsonde,coordx,coordy) : la sonde nomsonde se trouve en (coordx,coordy). paroi(coordx1,coordy1,coordx2,coordy2) : une paroi se situe entre les cases (coordx1, coordy1) et (coordx2, coordy2). En effet, nous avons décidé de modéliser une case comme une intersection entre 2 cases, ce qui fait qu une paroi n a pas d épaisseur proprement dit. L affichage d une paroi sera expliqué dans la partie Java plus bas. porte(coordx1,coordy1,coordx2,coordy2) : une porte se situe entre les cases (coordx1, coordy1) et (coordx2, coordy2). Une porte n empêche pas le robot de voir ce qui se trouve derrière et le robot peut également passer par les portes. Une porte se trouve à l intérieur du monde. sortie(coordx1,coordy1,coordx2,coordy2) : une sortie se situe entre les cases (coordx1, coordy1) et (coordx2, coordy2). Une sortie est une porte particulière, qui donne sur le monde extérieur, qui empêche le robot de voir ce qui se trouve derrière et le robot ne peut pas passer par les sorties, car le monde est semi-fermé. Une sortie sépare notre monde du monde extérieur

3 La base de règles libre(x,y) :- not(robot(_,x,y)), not(obstacle(_,x,y)), not(possedeobstacle(_,_,x,y). Une case de coordonnée (X,Y) est libre si cette case ne possède ni de robot, ni d obstacle et ni de robot possédant un obstacle. Le prédicat mur prend en paramètres les coordonnées de 2 cases et renvoi vrai si une paroi ou une sortie infranchissable existe entre ses 2 cases. Ce prédicat permet de ne pas tester à chaque règle si il n y a pas de paroi ni de sortie : mur(x1,y1,x2,y2) :- paroi(x1,y1,x2,y2). mur(x1,y1,x2,y2) :- sortie(x1,y1,x2,y2). A noter que dans notre repère, l axe des abscisses va de gauche à droite et l axe des ordonnées de haut en bas comme suit : abscisses ordonnées Le prédicat peut_prendre possède 3 paramètres qui sont le nom du robot, le nom de l obstacle à prendre et la direction dans laquelle prendre cet obstacle (une des quatre constante de direction). peut_prendre(a,b,haut) :- robot(a,x,y), Y1 is Y-1, obstacle(b,x,y1), not(mur(x,y1,x,y)). Pour qu un robot puisse prendre un obstacle, il faut que le robot soit sur une case conjointe à celle de l obstacle, et qu il n y ait pas de mur entre les 2 cases. Dans cette règle, il s agit de vérifier si le robot peut prendre un obstacle situé au dessus de sa case, donc la coordonnée de l obstacle en ordonné doit être égale à Y-1 tandis que l abscisse du robot sera la même que celle de l obstacle. Il en est de même pour les 3 autres directions où seul le Y1 is Y-1 change. Le prédicat prend possède 3 paramètres qui sont les mêmes que la règle précédente. prend(a,b,haut) :- peut_prendre(a,b,haut),retract(robot(a,x,y)),y1 is Y-1, retract(obstacle(b,x,y1)),assertz(possedeobstacle(a,b,x,y)). Pour qu un robot prenne un obstacle, il faut que le robot puisse prendre cet obstacle. On supprime le robot et l obstacle de la base de faits et on ajoute le fait possedeobstacle. Il en est de même pour les 3 autres directions où seul le Y1 is Y-1 change. Le prédicat deposeob possède lui aussi 3 paramètres : le nom d un robot, le nom d un obstacle et enfin une direction : deposeob(a,b,haut) :- possedeobstacle(a,b,x,y), Y1 is Y-1, libre(x,y1), detruit(a,_), not(mur(x,y1,x,y)), retract(possedeobstacle(a,b,x,y)), assertz(obstacle(b,x,y1)), assertz(robot(a,x,y)). Pour qu un robot dépose un obstacle, cet objet doit être possédé par ce robot, la case voisine doit être libre (ici la case du dessus) et il ne doit pas y avoir de mur (paroi ou sortie) entre cette case libre et la case du robot et de son obstacle. Si ces conditions sont respectées, alors le fait - 3 -

4 possedeobstacle sera supprimé de la base de faits tandis que les faits robot et obstacle seront ajoutés. Si une sonde se trouvait sur la case ou sera posée l obstacle, elle sera supprimée au préalable. Si il s agit d une sonde à déposer, la règle utilisée deposesonde sera différente. Du fait que le robot possède un nombre de sondes illimitées, il n y a pas de fait à vérifier. Cependant, on vérifie tout de même qu il n y a pas d autre sonde placée à coté afin que celles-ci ne sécurisent pas la même zone : deposesonde(x,y) :- X1 is X-1, X2 is X+1, Y1 is Y-1, Y2 is Y+1, not(sonde(_,x1,y)),not(sonde(_,x2,y)), not(sonde(_,x,y1)), not(sonde(_,x,y2)),!,assertz(sonde(sondesecu,x,y)). Le prédicat detruit a deux paramètres : le nom d un robot et le nom d une sonde. Cette règle doit supprimer la sonde si elle se situe sur la même case que le robot. Cette règle doit donc être appelée après chaque déplacement du robot. detruit(a,b) :- robot(a,x,y),sonde(b,x,y),retract(sonde(b,x,y)). detruit(a,b) :- possedeobstacle(a,_,x,y), sonde(b,x,y), retract(sonde(b,x,y)). Une sonde est supprimée de la base si elle se trouve sur la même case qu un robot ou qu un robot possédant un obstacle. Le prédicat deplacable a deux paramètres : le nom d un robot et la direction du déplacement. Cette règle doit renvoyée vrai si le robot donné peut se déplacé dans la direction donnée. deplacable(a,haut) :- robot(a,x,y), Y1 is Y-1, libre(x,y1), not(mur(x,y1,x,y)). Pour qu un robot soit déplaçable, la case qu il veut atteindre doit être libre et il ne doit pas y avoir de mûr (paroi ou sortie) entre sa case et celle qu il veut atteindre. Cette règle ne fonctionne que si le robot ne possède pas d objet. Nous avons réalisé les mêmes règles pour le déplacement du robot qui possède un obstacle (deplacableob qui possède un paramètre supplémentaire avec le nom de l obstacle possédé) et le déplacement du robot sur une case où se trouve un obstacle (deplacableobstacle qui possède également 3 paramètres) : deplacableob(a,b,haut) :- possedeobstacle(a,b,x,y), Y1 is Y-1, libre(x,y1), not(mur(x,y1,x,y)). deplacableobstacle(a,b,haut) :- robot(a,_,_), peut_prendre(a,b,haut). Pour cette dernière règle, il suffit de vérifier la règle peut_prendre expliquée précédemment. Nous avons réalisé une règle peut_aller qui correspond à une disjonction des 3 règles deplacable vue ci-dessus qui n est utilisée que par Java pour connaître les différentes possibilités du robot à tout instant : peut_aller(a,haut) :- deplacable(a,haut). peut_aller(a,haut) :- deplacableobstacle(a,_,haut). peut_aller(a,haut) :- deplacableob(a,_,haut)

5 Cette règle renverra donc vrai si le robot A peut aller en haut. Nous avons fait de même pour les 3 autres directions. Enfin, la dernière règle que nous avons réalisée est se_deplace qui possède deux paramètres : le nom du robot à déplacer et la direction du déplacement. se_deplace(a,haut) :- deplacable(a,haut),!, retract(robot(a,x,y)), securise(x,y), Y1 is Y-1, assertz(robot(a,x,y1)), assertz(explore(x,y1)), detruit(a,_). Pour déplacer un robot dans une direction, il faut que celui-ci soit déplaçable dans la direction voulue (voir règle deplacable ci-dessus). Un robot est également déplaçable s il possède un obstacle ou s il veut aller sur une case où se trouve un obstacle, c est pourquoi nous testons également les règles deplacableob et deplacableobstacle en lieu et place de deplacable dans la règle précédente. Si le robot est déplaçable, alors on supprime de la base de faits le robot à sa position initiale (ou possedeobstacle) et on ajoute la nouvelle position du robot (respectivement possedeobstacle), le fait explore de la nouvelle case du robot et enfin on teste si une sonde était présente sur cette nouvelle case par la règle detruit. A noter également l appel à la règle securise(x,y) décrite plus loin dans la partie sécurisation. Voici les 2 autres règles se_deplace toujours pour la direction haut : se_deplace(a,haut) :- deplacableobstacle(a,b,haut),!,prend(a,b,haut), retract(possedeobstacle(a,b,x,y)),securise(x,y), Y1 is Y-1, assertz(possedeobstacle(a,b,x,y1)),deposeob(a,b,bas),assertz(explore(x,y1)), detruit(a,_). se_deplace(a,haut) :- deplacableob(a,b,haut), retract(possedeobstacle(a,b,x,y)),securise(x,y),y1 is Y-1, assertz(possedeobstacle(a,b,x,y1)),assertz(explore(x,y1)),detruit(a,_). Pour la première règle, si le robot est déplaçable sur une case possédant un obstacle, alors on prend cet obstacle, on supprime la fait possedeobstacle de la case courante pour ajouter le fait possedeobstacle sur la case située au dessus dans cette règle, puis on dépose l obstacle sur la case d où le robot arrive, donc dans la direction opposée. La seconde règle consiste à déplacer un robot vers le haut tout en possédant un obstacle, donc on supprime simplement de la base de faits possedeobstacle de la case courante pour l ajouter sur la nouvelle case. Cette dernière règle ne nous sert pas dans notre implémentation java

6 Sécurisation Deux modes de sécurisation de notre monde nous étaient possibles : l exploration du monde et sa sécurisation simultanée ou bien l exploration puis la sécurisation. Nous avons opté pour une sécurisation et une exploration simultanée ce qui permet un gain de temps pour le robot. Cette sécurisation se réalise par Prolog. À chaque déplacement du robot, nous faisons appel à la règle securise(x,y)qui, en fonction des éléments qui entourent la position du robot avant son déplacement, déposera ou non une sonde sur cette case. Voici la règle securise : securise(x,y) :- zoneasecuriser(x,y),!,deposesonde(x,y). securise(_,_). La règle zoneasecuriser sera détaillée ci-dessous, mais cette règle securise nous montre que si la zone est à sécuriser, alors le robot déposera une sonde, sinon la règle securise(_,_) renverra vrai ce qui permettra au robot de tout de même effectuer son déplacement. Il reste désormais à définir les zones à sécuriser. Une zone est à sécuriser lorsqu il s agit d un «passage» donnant sur une pièce ou d une issue sur le monde extérieur. Il s agit donc de placer des sondes devant : - les portes intérieures (porte) - les portes extérieures (sortie) empêchant à un intrus de rentrer dans notre monde - les parois lorsqu elles forment une ouverture. Voici une analyse des différentes possibilités : avec en bleu la case(x,y) à sécuriser, et représente les parois. On place donc une sonde lorsque le robot se trouve devant deux parois horizontales et une ouverture ou une paroi verticale, une paroi horizontale et une ouverture. Dans cet exemple, il s agit de vérifier si la zone est à sécuriser par rapport au monde situé au dessus de lui, mais il faut faire de même pour les 3 autres directions. Voici la règle que nous avons défini pour sécuriser au dessus : zoneasecuriser(x,y) :- X1 is X+1, porte(x,y,x1,y). // Une porte se trouve au dessus zoneasecuriser(x,y) :- X1 is X+1, sortie(x,y,x1,y). // Une sortie se trouve au dessus zoneasecuriser(x,y) :- X1 is X-1, X2 is X+1, Y1 is Y-1, paroi(x1,y1,x1,y), paroi(x2,y1,x2,y), not(paroi(x,y1,x,y)). // cas 1 représenté ci-dessus zoneasecuriser(x,y) :- X1 is X-1, X2 is X+1, Y1 is Y-1, paroi(x1,y1,x1,y), paroi(x,y1,x2,y1), not(paroi(x,y1,x,y)). // cas 2 représenté ci-dessus zoneasecuriser(x,y) :- X1 is X-1, X2 is X+1, Y1 is Y-1, paroi(x1,y1,x,y1), paroi(x2,y1,x2,y), not(paroi(x,y1,x,y)). // cas 3 représenté ci-dessus - 6 -

7 Voici 2 exemples de monde sécurisés par notre robot : Avec : notre robot dans sa position finale : les obstacles : les sondes placées par notre robot pour sécuriser le monde - 7 -

8 Java Tout ce qui concerne la connaissance du monde est implémenté dans la partie Prolog. Java va questionner Prolog pour récupérer des informations et afficher ce que le robot perçoit. La stratégie d exploration est réservée à Java. Les fichiers Jeu.java Contient la matrice d entiers qui représente la scène vue par le robot. Cette matrice évolue au fil de l exploration du monde et des réactions du robot. DamierPanel.java extends JPanel. Affiche la matrice d affichage du monde. Transforme la matrice d entiers du Jeu.java en images. Fenetre.java extends JFrame. C est le container qui reçoit l affichage de la matrice de Jeu.java. Main.java Lance la fenêtre et exécute l exploration du monde. C est lui qui décide quelle direction doit prendre le robot, en fonction des informations que lui renvoie Prolog. tp.java Classe statique. Effectue le lien avec Prolog. Contient des fonctions qui questionnent Prolog et récupèrent les informations du monde. Contient notamment : static int NB_LIGNES //nombre de lignes du monde static int NB_COLONNES//nombre de colonnes du monde static int TAILLE_VUE//la taille de la vue du robot Les fonctions d accès à Prolog Initialisation public static void chargerfichierprolog(string filename) On spécifie à Java quel fichier Prolog (.pl) sera utilisé par Sicstus. public static void remplirmatricefrombase() On charge les éléments de la base de faits qui serviront au lancement de l application : Le robot. public static void chargerrobot() On recherche le nom du robot. C est utile pour l interrogation dans Prolog après. Interrogation public static String localiser(string coord_x1,string coord_y1) Renvoie le prédicat de ce qui se trouve dans la case coord_x1, coord_y1. null si case vide. Peut être : robot, obstacle, sonde public static String localiser(vector coord_1, Vector coord_2) Renvoie le prédicat de ce qui se trouve entre les cases dont les coordonnées sont contenues dans les vecteurs coord_1 et coord_2. null si case vide

9 Peut être : paroi, porte, sortie public static Vector trouver2param(string predicat) public static Vector trouver4param(string predicat) Renvoie l ensemble des résultats de l interrogation de la base de faits Prolog, pour un prédicat. Exemple : trouver2param( obstacle ), renvoie la liste des obstacles trouver4param( paroi ), renvoie la liste des parois public static Vector trouverrobot(string nomrobot) Renvoie les coordonnées de la case où se situe le robot dont le nom est passé en paramètre. public static void vision(vector coord_robot) Met à jour la matrice d affichage java, en lui ajoutant les cases visibles depuis la position passée en paramètre. public static boolean explore(string coord_x,string coord_y) Renvoie vrai si la case coord_x, coord_y a déjà été visité par le robot. public static Vector deplacable(string nomrobot) Renvoie les directions possibles (haut, bas, gauche, droite) pour un déplacement de la part du robot dont le nom est passé en paramètre. Actions public static void deplacer(string nomrobot, String direction) Fait appel à la fonction se_deplace dans Prolog. Le robot nomrobot se déplace dans une direction (haut, bas, gauche, droite). La base de faits en est modifiée. Idée générale L algorithme de parcours On recherche tout d abord la position de robot et ajoute de sa capacité de vision à la matrice d'affichage Java. C est le point de départ. Java ne connaît que ça. On questionne Prolog pour savoir où se déplacer. Il fois que l on a décidé où aller, on assert la nouvelle position du robot dans prolog, on met à jour la matrice d affichage, et on se souvient des cases où on pouvait aller et où on a pas encore été (liste d attente). On affichage la nouvelle matrice (en tenant compte de la vision) et on recommence à questionner Prolog. On arrête lorsque l on estime avoir explorer toutes les cases. L algorithme variables : deplacement //sens du déplacement positionrobot // position du robot taillevision //taille de la vision du robot listeattente //case non visitées, dont on connait l'existence matrice //matrice d'affichage Java (ce que connait Java) chemin //chemin déjà parcouru (mémoire pour backtrack) - 9 -

10 algorithme : Debut positionrobot := trouverrobot() ajouter(matrice, positionrobot) repeter deplacement := null ajouter(matrice, vision(positionrobot, taillevision)) afficher(matrice) deplacable := questionnerprolog(deplacementpossible, positionrobot) //On regarde où est ce que Prolog dit qu'on peut se déplacer si (deplacable en haut) alors si non(case du haut deja exploree) alors ajouter(listeattente, case) deplacement = haut si (deplacable à droite) alors si non(case de droite deja exploree) alors ajouter(listeattente, case) deplacement = droite si (deplacable en bas) alors si non(case du bas deja exploree) alors ajouter(listeattente, case) deplacement = bas si (deplacable à gauche) alors si non(case de gauche deja exploree) alors ajouter(listeattente, case) deplacement = gauche //Si on peut se déplacer au moins dans une direction si deplacement!= null alors positionrobot := deplacerdansprolog(positionrobot,deplacement) retirer(listeattente,positionrobot) ajouter(chemin,position) sinon si vide(listeattente) alors Fin de l algorithme // on a tout parcouru sinon //On revient sur nos pas positionrobot := deplacerdansprolog(positionrobot, derniereposition(chemin)) retirer(listeattente,positionrobot) retirer(chemin, derniereposition(chemin)) Fin finrepeter tantque(nonvide(listeattente))

11 Explications On récupère les directions où peut se déplacer le robot. Dans l ordre des possibilités, il pourra aller à gauche puis en bas, puis à droite, puis en haut. Ainsi pour un parcours d une pièce vide, voici son parcours : Jaune : départ Bleu : arrivée Sur un exemple simple comme celui-ci, on peut constater deux intérêts à l algorithme. Tout d abord il finit, et ça c est important (quand la liste d attente est vide), et ensuite, il ne passe pas deux fois sur la même case. Sur cette exemple, le parcours optimal. En ajoutant des obstacles et des parois : Jaune : départ Bleu : arrivée Gris : obstacle ou paroi Chemin Vert : Chemin arrière (Back track) Cette illustration ne correspond pas tout à fait à notre algorithme qui, lorsque le robot rencontre un obstacle, le prend pour le mettre sur la case d où il provient. On peut tirer différentes conclusions de cet exemple qui met en évidence les points positifs et négatifs de notre algorithme : Points positifs - l algorithme fini - l algorithme est simple et rapide (pas de temps de perdu pour des calculs complexes) - le back tracking est présent mais pas omniprésent (4 fois) - 28 cases (plus de la moitié) sont explorées une et une seule fois. - Le maximum d exploration pour une même case est de 3 fois (2 cases concernées). C est très peu. Le robot évite de repasser au même endroit

12 Points négatifs - Dans certains cas de Back track, on aurait pu gagner quelques déplacements. On voit sans trop réfléchir que dans le coin bas-gauche et haut-droite de l exemple, on revient sur nos pas alors que l on pourrait coupé directement. 25 cases sont explorées deux fois (à cause du back track). Il faut relativiser en pensant que le back track est obligatoire donc il existe tout le temps des cases explorées plusieurs fois. Par contre, il est évident que certaines cases auraient pu n être explorée qu une seule fois. Il faut faire un choix entre rapidité d exécution et minimisation du nombre de cases parcourues. - La case bleue (arrivée) est explorée en dernier alors qu il aurait été préférable de l explorer au moment où on était en bas-droite. On aurait ainsi évité un back track important pour une seule case. Conclusion Ce TP nous a permis de mettre en œuvre un programme utilisant à la fois le langage Prolog spécifiquement pour réaliser l intelligence artificielle de notre robot, et le langage Java pour interroger Prolog et créer un affichage graphique. Notre programme réalise le travail demandé, à savoir explorer et sécuriser un monde clos. Cependant, si nous devions améliorer celui-ci, nous rajouterions un algorithme de parcours du plus court chemin afin de diminuer le nombre de déplacements de notre robot lorsqu il se trouve dans une zone ou tout exploré mais qu il lui reste d autres zones non explorées plus loin

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

Mini-Projet : Tournoi de Dames

Mini-Projet : Tournoi de Dames Mini-Projet : Tournoi de Dames L objectif du projet est de programmer un jeu de dames de façon à ce que votre programme puisse jouer une partie de dames avec les programmes des autres étudiants. 1 Organisation

Plus en détail

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2 éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........

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

Jeu de Dames. Rapport de projet. Etudiants : Tuteur : Mohr Maxence Ollagnon Julien. Informatique 3 ème année Promo 2016 Projet Algorithmique

Jeu de Dames. Rapport de projet. Etudiants : Tuteur : Mohr Maxence Ollagnon Julien. Informatique 3 ème année Promo 2016 Projet Algorithmique Polytech'Marseille Case 925 163, avenue de Luminy 13288 Marseille cedex 9 Informatique 3 ème année Promo 2016 Projet Algorithmique Jeu de Dames Rapport de projet Etudiants : Tuteur : Charton Trystan Alexandra

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

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

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

Les algorithmes de base du graphisme

Les algorithmes de base du graphisme Les algorithmes de base du graphisme Table des matières 1 Traçage 2 1.1 Segments de droites......................... 2 1.1.1 Algorithmes simples.................... 3 1.1.2 Algorithmes de Bresenham (1965).............

Plus en détail

V. Visualisation d une scène

V. Visualisation d une scène V. Visualisation d une scène 1. Cadrage Il ne faut pas confondre la fenêtre d affichage (définie par le système de fenêtrage qui est indépendant d OpenGL) et le cadre (partie de fenêtre) dans lequel on

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

Initiation à la Programmation en Logique avec SISCtus Prolog

Initiation à la Programmation en Logique avec SISCtus Prolog Initiation à la Programmation en Logique avec SISCtus Prolog Identificateurs Ils sont représentés par une suite de caractères alphanumériques commençant par une lettre minuscule (les lettres accentuées

Plus en détail

BUREAU D ETUDES INFORMATIQUE JOUEUR DE PUISSANCE 4

BUREAU D ETUDES INFORMATIQUE JOUEUR DE PUISSANCE 4 MIETLICKI Pascal 3 MIC C2 BUREAU D ETUDES INFORMATIQUE JOUEUR DE PUISSANCE 4 1. Mode Console... 2 2. Mode Graphique... 2 3. Architecture de notre logiciel... 3 4. Manuel d utilisation... 5 5. Aide au joueur...

Plus en détail

Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée

Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée forax at univ-mlv dot fr - ParisJUG Java.next() - Mars 2012 What Else? Lambda == Inner class? Java a des lambdas depuis la version 1.1 Exemple utilisant

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

Correction de l épreuve intermédiaire de mai 2009.

Correction de l épreuve intermédiaire de mai 2009. Licence de Gestion. 3ème Année Année universitaire 8-9 Optimisation Appliquée C. Léonard Correction de l épreuve intermédiaire de mai 9. Exercice 1 Avec les notations du cours démontrer que la solution

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

Projet individuel d algorithmique-programmation AP1 : groupe 1.1 - complément bibliothèque graphique

Projet individuel d algorithmique-programmation AP1 : groupe 1.1 - complément bibliothèque graphique Projet individuel d algorithmique-programmation AP1 : groupe 1.1 - complément bibliothèque graphique octobre 2010 1 Affichage graphique statique Il en existe trois bibliothèques graphiques en Ocaml : la

Plus en détail

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

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes treinen@pps.univ-paris-diderot.fr 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation

Plus en détail

TP1 : Initiation à Java et Eclipse

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

Plus en détail

Infolettre #18 : Les graphiques avec Excel 2010

Infolettre #18 : Les graphiques avec Excel 2010 Infolettre #18 : Les graphiques avec Excel 2010 Table des matières Introduction... 1 Hourra! Le retour du double-clic... 1 Modifier le graphique... 4 Onglet Création... 4 L onglet Disposition... 7 Onglet

Plus en détail

1. Introduction...2. 2. Création d'une requête...2

1. Introduction...2. 2. Création d'une requête...2 1. Introduction...2 2. Création d'une requête...2 3. Définition des critères de sélection...5 3.1 Opérateurs...5 3.2 Les Fonctions...6 3.3 Plusieurs critères portant sur des champs différents...7 3.4 Requête

Plus en détail

Navigation dans Windows

Navigation dans Windows Cours 03 Navigation dans Windows Comme je le disais en introduction, notre souris se révèle plus maligne qu'elle n'en a l'air. À tel point qu'il faut apprendre à la dompter (mais c'est très simple, ce

Plus en détail

Jeu de taquin : résolution automatique sur ordinateur

Jeu de taquin : résolution automatique sur ordinateur 1 Jeu de taquin : résolution automatique sur ordinateur Sous sa forme la plus générale, le jeu de taquin est constitué d un rectangle rempli par des blocs carrés accolés, chacun portant un numéro, avec

Plus en détail

Windows 7 - Dossiers et fichiers

Windows 7 - Dossiers et fichiers Windows 7 - Dossiers et fichiers Explorez votre PC : dossiers et fichiers Tous les fichiers nécessaires au fonctionnement de votre ordinateur, qu il s agisse de ceux de Windows, des logiciels installés

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

ALGORITHMES POUR LA VISUALISATION SCIENTIFIQUE

ALGORITHMES POUR LA VISUALISATION SCIENTIFIQUE BAZEILLE Stéphane MOUGEL Baptiste IUP3 ALGORITHMES POUR LA VISUALISATION SCIENTIFIQUE EN Année 2003/2004 1 TABLE DES MATIERES Home... 3 Introduction.... 3 Marching Square... 4 Algorithme....4 Programmation...4

Plus en détail

les Formulaires / Sous-Formulaires Présentation...2 1. Créer un formulaire à partir d une table...3

les Formulaires / Sous-Formulaires Présentation...2 1. Créer un formulaire à partir d une table...3 Présentation...2 1. Créer un formulaire à partir d une table...3 2. Les contrôles :...10 2.1 Le contrôle "Intitulé"...11 2.2 Le contrôle "Zone de Texte"...12 2.3 Le contrôle «Groupe d options»...14 2.4

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

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

Plus en détail

Systèmes d acquisition - Partie "Java"

Systèmes d acquisition - Partie Java Systèmes d acquisition - Partie "Java" S. Reynal Automne 2015 Cette série de trois séances de TP Java a pour objectif de vous initier au développement rigoureux d applications, et en particulier d IHM,

Plus en détail

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

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

Plus en détail

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

Exemple d application en CFD : Coefficient de traînée d un cylindre

Exemple d application en CFD : Coefficient de traînée d un cylindre Exemple d application en CFD : Coefficient de traînée d un cylindre 1 Démarche générale Avec Gambit Création d une géométrie Maillage Définition des conditions aux limites Avec Fluent 3D Choix des équations

Plus en détail

Créer un album photo

Créer un album photo Créer un album photo Pourquoi créer un album photo? Un album photo, contrairement à vos dossiers photo, n a pas d existence propre sur votre disque dur, ce n est qu une liste de référence pointant vers

Plus en détail

COURS WINDEV NUMERO 3

COURS WINDEV NUMERO 3 COURS WINDEV NUMERO 3 01/02/2015 Travailler avec un fichier de données Etude du gestionnaire d analyse, Manipulation des tables mémoires, Manipulation de données, Création d états, Pré requis : Cours WinDev

Plus en détail

La notion de dualité

La notion de dualité La notion de dualité Dual d un PL sous forme standard Un programme linéaire est caractérisé par le tableau simplexe [ ] A b. c Par définition, le problème dual est obtenu en transposant ce tableau. [ A

Plus en détail

Rapport de projet : Jeu de dames en java

Rapport de projet : Jeu de dames en java Durand Faustine Hamouma Mickael Brunet-Manquat Ivan Coquilhat Mattéo Rapport de projet : Jeu de dames en java Licence 2 informatique 2015 Projet informatique HLIN405 1 Encadrant: Abdelhak-Djamel Seriai

Plus en détail

Java 7 Les fondamentaux du langage Java

Java 7 Les fondamentaux du langage Java 184 Java 7 Les fondamentaux du langage Java 1.1 Les bibliothèques graphiques Le langage Java propose deux bibliothèques dédiées à la conception d'interfaces graphiques. La bibliothèque AWT et la bibliothèque

Plus en détail

Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai.

Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai. Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai. 1 Introduction On considère une grille de 20 lignes 20 colonnes. Une case de la grille peut être vide, ou contenir une et une

Plus en détail

Sommaire Introduction... 3 Le but du projet... 3 Les moyens utilisés... 3 Informations sur le client FTP... 4 Pourquoi une version Linux et

Sommaire Introduction... 3 Le but du projet... 3 Les moyens utilisés... 3 Informations sur le client FTP... 4 Pourquoi une version Linux et Licence 3 CDA 2010/2011 Client FTP Java Maxence Jaouan Sommaire Introduction... 3 Le but du projet... 3 Les moyens utilisés... 3 Informations sur le client FTP... 4 Pourquoi une version Linux et Windows?...

Plus en détail

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB Ce document, écrit par des animateurs de l IREM de Besançon, a pour objectif de présenter quelques unes des fonctions du logiciel Scilab, celles qui sont spécifiques

Plus en détail

Manuel Utilisateur. Boticely

Manuel Utilisateur. Boticely Manuel Utilisateur Boticely Auteur : Logica Version : 1.4 Droit d auteur Ce texte est disponible sous contrat Creative Commons Paternité - Pas d'utilisation Commerciale - Partage des Conditions Initiales

Plus en détail

SUPPORT DE COURS ZWCAD+ 2014 NIVEAU 3D

SUPPORT DE COURS ZWCAD+ 2014 NIVEAU 3D ZWCAD+ NIVEAU 3D Copyright 2013 Tous droits réservés ZW France Page 1 SOMMAIRE 1. L INTERFACE RUBAN... 3 2. VISUALISER EN 3D... 4 3. VOIR et SE POSITIONNER EN 3D... 5 4. CREER LES OBJETS 3D DE BASE...

Plus en détail

Programmation linéaire

Programmation linéaire 1 Programmation linéaire 1. Le problème, un exemple. 2. Le cas b = 0 3. Théorème de dualité 4. L algorithme du simplexe 5. Problèmes équivalents 6. Complexité de l Algorithme 2 Position du problème Soit

Plus en détail

Généralités sur le Langage Java et éléments syntaxiques.

Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...

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

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Création d'un site dynamique en PHP avec Dreamweaver et MySQL Création d'un site dynamique en PHP avec Dreamweaver et MySQL 1. Création et configuration du site 1.1. Configuration de Dreamweaver Avant de commencer, il est nécessaire de connaître l'emplacement du

Plus en détail

Manuel d utilisation email NETexcom

Manuel d utilisation email NETexcom Manuel d utilisation email NETexcom Table des matières Vos emails avec NETexcom... 3 Présentation... 3 GroupWare... 3 WebMail emails sur internet... 4 Se connecter au Webmail... 4 Menu principal... 5 La

Plus en détail

Projet de traitement d'image - SI 381 reconstitution 3D d'intérieur à partir de photographies

Projet de traitement d'image - SI 381 reconstitution 3D d'intérieur à partir de photographies Projet de traitement d'image - SI 381 reconstitution 3D d'intérieur à partir de photographies Régis Boulet Charlie Demené Alexis Guyot Balthazar Neveu Guillaume Tartavel Sommaire Sommaire... 1 Structure

Plus en détail

Master UPMC Sciences et technologies, mention informatique Spécialité Systèmes et Applications

Master UPMC Sciences et technologies, mention informatique Spécialité Systèmes et Applications Master UPMC Sciences et technologies, mention informatique Spécialité Systèmes et Applications Réparties Réalisation Assistée d Applications Réparties Projet - écriture d un générateur de code Encadreur

Plus en détail

Interface PC Vivago Ultra. Pro. Guide d'utilisation

Interface PC Vivago Ultra. Pro. Guide d'utilisation Interface PC Vivago Ultra Pro Guide d'utilisation Version 1.03 Configuration de l'interface PC Vivago Ultra Configuration requise Avant d'installer Vivago Ultra sur votre ordinateur assurez-vous que celui-ci

Plus en détail

RÉALISATION DE GRAPHIQUES AVEC OPENOFFICE.ORG 2.3

RÉALISATION DE GRAPHIQUES AVEC OPENOFFICE.ORG 2.3 RÉALISATION DE GRAPHIQUES AVEC OPENOFFICE.ORG 2.3 Pour construire un graphique : On lance l assistant graphique à l aide du menu Insérer è Diagramme en ayant sélectionné au préalable une cellule vide dans

Plus en détail

TD/TP PAC - Programmation n 3

TD/TP PAC - Programmation n 3 Université Paris Sud Licence d informatique/iup-miage2 Année 2004-2005 Auteur : Frédéric Vernier Semaine : 11-16 octobre 2004 Conditions : sur machine avec les outils standards java web: http://vernier.frederic.free.fr/indexpac.html

Plus en détail

II. Conversions. I. Initialisation. III. Méthode point. TD Python Traitement d images MP*

II. Conversions. I. Initialisation. III. Méthode point. TD Python Traitement d images MP* Le but de ce TD est d utiliser les procédures et fonctions Python pour traiter des fichiers images. II. Conversions I. Initialisation Importer le module numpy sous l appellation np. On utilise le module

Plus en détail

Premiers Pas avec OneNote 2013

Premiers Pas avec OneNote 2013 Premiers Pas avec OneNote 2 Présentation de OneNote 3 Ouverture du logiciel OneNote 4 Sous Windows 8 4 Sous Windows 7 4 Création de l espace de travail OneNote 5 Introduction 5 Présentation des différentes

Plus en détail

LES TYPES DE DONNÉES DU LANGAGE PASCAL

LES TYPES DE DONNÉES DU LANGAGE PASCAL LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.

Plus en détail

Je me familiarise avec l ordinateur et son système d exploitation. Apprendre à utiliser les TIC dans la vie de tous les jours

Je me familiarise avec l ordinateur et son système d exploitation. Apprendre à utiliser les TIC dans la vie de tous les jours Je me familiarise avec l ordinateur et son système d exploitation Cahier de formation 1 Apprendre à utiliser les TIC dans la vie de tous les jours Programme ordinateur de Je Passe Partout Document produit

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

Traduction des Langages : Le Compilateur Micro Java

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

Plus en détail

212 année 2013/2014 DM de synthèse 2

212 année 2013/2014 DM de synthèse 2 22 année 20/204 DM de synthèse 2 Exercice Soit f la fonction représentée cicontre.. Donner l'ensemble de définition de la fonction f. 2. Donner l'image de 4 par f.. a. Donner un nombre qui n'a qu'un seul

Plus en détail

TEPZZ 568448A_T EP 2 568 448 A1 (19) (11) EP 2 568 448 A1 (12) DEMANDE DE BREVET EUROPEEN. (51) Int Cl.: G07F 7/08 (2006.01) G06K 19/077 (2006.

TEPZZ 568448A_T EP 2 568 448 A1 (19) (11) EP 2 568 448 A1 (12) DEMANDE DE BREVET EUROPEEN. (51) Int Cl.: G07F 7/08 (2006.01) G06K 19/077 (2006. (19) TEPZZ 68448A_T (11) EP 2 68 448 A1 (12) DEMANDE DE BREVET EUROPEEN (43) Date de publication: 13.03.2013 Bulletin 2013/11 (1) Int Cl.: G07F 7/08 (2006.01) G06K 19/077 (2006.01) (21) Numéro de dépôt:

Plus en détail

MODIFICATIONS DES PRINCIPES DIRECTEURS CONCERNANT LA RÉDACTION DES DÉFINITIONS RELATIVES AU CLASSEMENT

MODIFICATIONS DES PRINCIPES DIRECTEURS CONCERNANT LA RÉDACTION DES DÉFINITIONS RELATIVES AU CLASSEMENT ANNEXE VI MODIFICATIONS DES PRINCIPES DIRECTEURS CONCERNANT LA RÉDACTION DES DÉFINITIONS RELATIVES AU CLASSEMENT RECOMMANDATIONS GÉNÉRALES Les utilisateurs s attendent à trouver dans les définitions des

Plus en détail

Proposition d activité utilisant l application. Tripatouille. (http://www.malgouyres.fr/tripatouille/)

Proposition d activité utilisant l application. Tripatouille. (http://www.malgouyres.fr/tripatouille/) IREM Clermont-Ferrand Algorithmique au lycée Malika More malika.more@u-clermont1.fr 28 janvier 2011 Proposition d activité utilisant l application Tripatouille (http://www.malgouyres.fr/tripatouille/)

Plus en détail

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

Plus en détail

ACTIVITÉ DE PROGRAMMATION

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

Plus en détail

Modifier son site (design, structure, contenu)

Modifier son site (design, structure, contenu) Modifier son site (design, structure, contenu) Sommaire Personnaliser le Modèle et les couleurs Gérer l en-tête du site Modifier les composants de la Sidebar Gérer les Pages Editer la page d Accueil /

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

Corrigé des exercices sur les références

Corrigé des exercices sur les références Corrigé des exercices sur les références Exercice 3.1.1 dessin Pour cet exercice, vous allez dessiner des structures de données au moyen de petits schémas analogues à ceux du cours, comportant la pile

Plus en détail

Systèmes décisionnels et programmation avancée

Systèmes décisionnels et programmation avancée Systèmes décisionnels et programmation avancée M1 SIR Philippe Muller et Mustapha Mojahid, Matthieu Serrurier, Marie-Christine Scheix 2014-2015 Introduction structure du cours intervenants introduction

Plus en détail

Guide d'utilisation. OpenOffice Calc. AUTEUR INITIAL : VINCENT MEUNIER Publié sous licence Creative Commons

Guide d'utilisation. OpenOffice Calc. AUTEUR INITIAL : VINCENT MEUNIER Publié sous licence Creative Commons Guide d'utilisation OpenOffice Calc AUTEUR INITIAL : VINCENT MEUNIER Publié sous licence Creative Commons 1 Table des matières Fiche 1 : Présentation de l'interface...3 Fiche 2 : Créer un nouveau classeur...4

Plus en détail

Introduction à JDBC. Accès aux bases de données en Java

Introduction à JDBC. Accès aux bases de données en Java Introduction à JDBC Accès aux bases de données en Java Eric Cariou Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Introduction JDBC : Java Data Base Connectivity

Plus en détail

Date M.P Libellé Catégorie S.Catégorie Crédit Débit Solde S.B

Date M.P Libellé Catégorie S.Catégorie Crédit Débit Solde S.B Excel : Réalisation d un classeur Compta Saisir les étiquettes Renommer la première feuille Compta Laisser la première ligne vide et sur la deuxième ligne saisir les étiquettes Se placer sur A2 et saisir

Plus en détail

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. Encapsulation L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. La visibilité dépend des membres : certains membres peuvent être visibles et d'autres

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

Fiche n 5 Paysage avec Sketchup Make. Table des matières

Fiche n 5 Paysage avec Sketchup Make. Table des matières Fiche n 5 Paysage avec Sketchup Make Table des matières Fiche n 5 Paysage avec Sketchup Make...1 1-Utiliser les outils Bac à sable...1 2-Exercices d'application...5 2.1-À partir de zéro...5 2.2-À partir

Plus en détail

AGASC / BUREAU INFORMATION JEUNESSE 06700 Saint Laurent du Var Tel : 04.93.07.00.66 bij@agasc.fr www.agasc.fr. Word: Les tableaux.

AGASC / BUREAU INFORMATION JEUNESSE 06700 Saint Laurent du Var Tel : 04.93.07.00.66 bij@agasc.fr www.agasc.fr. Word: Les tableaux. Word: Les tableaux Introduction 6 ième partie Il est préférable par moments de présenter de l'information sous forme de tableau. Les instructions qui suivent démontrent comment créer un tableau et comment

Plus en détail

Bases Java - Eclipse / Netbeans

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

Plus en détail

Programmation par les Objets en Java

Programmation par les Objets en Java Programmation par les Objets en Java Najib TOUNSI Les classes en Java (TD 3) I. Notion de classe I.1 Classe, champs, méthodes, instanciation, this, private vs. public. Créer une classe Point (coordonnée

Plus en détail

Cours 1 : Qu est-ce que la programmation?

Cours 1 : Qu est-ce que la programmation? 1/65 Introduction à la programmation Cours 1 : Qu est-ce que la programmation? Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr Université Paris Diderot Paris 7 2/65 1. Sortez un appareil qui peut se rendre

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

UTILISER SA CALCULATRICE GRAPHIQUE TI NSPIRE CX CAS

UTILISER SA CALCULATRICE GRAPHIQUE TI NSPIRE CX CAS UTILISER SA CALCULATRICE GRAPHIQUE TI NSPIRE CX CAS Table des matières I ) Bon à savoir 2 I.1. L écran d Accueil (Home), le Bloc-Note (Scratchpad) et les classeurs............................ 2 I.2. Le

Plus en détail

RECUPEREZ DES FICHIERS SUPPRIMES AVEC RECUVA

RECUPEREZ DES FICHIERS SUPPRIMES AVEC RECUVA RECUPEREZ DES FICHIERS SUPPRIMES AVEC RECUVA INTRODUCTION Ce logiciel gratuit peut vous aider à récupérer des fichiers que vous auriez malencontreusement effacés en vidant la corbeille par exemple. Il

Plus en détail

Recueil des Fiches Concepteurs : Mise en œuvre d un site SharePoint 2013 Juin 2015

Recueil des Fiches Concepteurs : Mise en œuvre d un site SharePoint 2013 Juin 2015 Recueil des s s : Mise en œuvre d un site SharePoint 2013 Juin 2015 Ce document décrit le paramétrage pour la mise en œuvre des fonctionnalités standard de Microsoft SharePoint 2013. NADAP et SharePoint

Plus en détail

Trier les ventes (sales order) avec Vtiger CRM

Trier les ventes (sales order) avec Vtiger CRM Trier les ventes (sales order) avec Vtiger CRM Dans l'activité d'une entreprise, on peut avoir besoin d'un outil pour trier les ventes, ce afin de réaliser un certain nombre de statistiques sur ces ventes,

Plus en détail

Gestion distribuée (par sockets) de banque en Java

Gestion distribuée (par sockets) de banque en Java Gestion distribuée (par sockets) de banque en Java Université Paris Sud Rappel sur la solution locale de gestion simple de banque L objet de cet exercice était de créer une application java qui implante

Plus en détail

Gestion des sites Internet du groupe Stem Notice d utilisation

Gestion des sites Internet du groupe Stem Notice d utilisation Gestion des sites Internet du groupe Stem Notice d utilisation Table des matières Présentation 2 Connexion à la plateforme de gestion 2 Gestion et modification du contenu 3 Gestion des documents 13 Gérer

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

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

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

LES TOUT PREMIERS PAS

LES TOUT PREMIERS PAS DESMODO, un logiciel de gestion d idées http://www.desmodo.net/ LES TOUT PREMIERS PAS Desmodo est un logiciel (libre) qui permet, entre autre, de visualiser et de synthétiser, de manière organisée, sous

Plus en détail

Compte-rendu de projet de Système de gestion de base de données

Compte-rendu de projet de Système de gestion de base de données Compte-rendu de projet de Système de gestion de base de données Création et utilisation d'un index de jointure LAMBERT VELLER Sylvain M1 STIC Université de Bourgogne 2010-2011 Reponsable : Mr Thierry Grison

Plus en détail

Premier programme VBA : syntaxe, édition, compilation

Premier programme VBA : syntaxe, édition, compilation 1 Premier programme VBA : syntaxe, édition, compilation Le langage VBA (Visual Basic for Applications) permet de concevoir des programmes selon une syntaxe qui lui est propre, puis d éditer et d exécuter

Plus en détail

TD/TP PAC - Programmation n 3

TD/TP PAC - Programmation n 3 Université Paris Sud Licence d informatique/iup-miage2 - Année 2004-2005 auteur : Frédéric Vernier semaine : 11-16 octobre 2004 conditions : sur machine avec les outils standards java web: http://vernier.frederic.free.fr/indexpac.html

Plus en détail

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

Jade. Projet Intelligence Artificielle «Devine à quoi je pense» Jade Projet Intelligence Artificielle «Devine à quoi je pense» Réalisé par Djénéba Djikiné, Alexandre Bernard et Julien Lafont EPSI CSII2-2011 TABLE DES MATIÈRES 1. Analyse du besoin a. Cahier des charges

Plus en détail

PRÉSENTATION PRÉSENTATION DU LOGICIEL

PRÉSENTATION PRÉSENTATION DU LOGICIEL Page N 1 Table des matières Présentation...3 Présentation du logiciel...3 Téléchargement du logiciel...4 Installation sous Windows...5 Démarrage du logiciel...6 Paramétrage du logiciel...7 Présentation

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

SNAKE. Programmation du jeu SNAKE sur la console Windows en C sous l IDE Devcpp. Copie d écran du jeu

SNAKE. Programmation du jeu SNAKE sur la console Windows en C sous l IDE Devcpp. Copie d écran du jeu SNAKE Programmation du jeu SNAKE sur la console Windows en C sous l IDE Devcpp Copie d écran du jeu Principe de fonctionnement du jeu : le serpent avance automatiquement, le joueur ne peut agir que sur

Plus en détail

Utiliser Word. Thibault J-Jacques Animateur multimédia au CRDP de l académie de Versailles. Page 1 sur 12

Utiliser Word. Thibault J-Jacques Animateur multimédia au CRDP de l académie de Versailles. Page 1 sur 12 Utiliser Word Les fonctions de base de Word.... 2 Enregistrer le document en cours... 3 Un menu à connaître... 3 Ouvrir/fermer/réduire un document existant... 4 Réparer des erreurs de frappe... 4 Déplacer

Plus en détail

Administration du site (Back Office)

Administration du site (Back Office) Administration du site (Back Office) A quoi sert une interface d'administration? Une interface d'administration est une composante essentielle de l'infrastructure d'un site internet. Il s'agit d'une interface

Plus en détail