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

Les références et la mémoire

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

Plus en détail

Projet 4ème année: Bras Robotique Contrôle du mouvement

Projet 4ème année: Bras Robotique Contrôle du mouvement Projet 4ème année: Bras Robotique Contrôle du mouvement TIAMIOU Adam BEN YOUNES Radhoane 1 Sommaire I. Présentation du contexte 3 II Travail effectué... 4 1.Interface de connexion avec le robot...4 2.Récupération

Plus en détail

Listes de personnes et calculatrice polonaise inverse en Java

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

Plus en détail

Enveloppes convexes dans le plan

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

Plus en détail

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

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 ÉTAPES DE L ALGORITHME DU SIMPLEXE

LES ÉTAPES DE L ALGORITHME DU SIMPLEXE LES ÉTAPES DE L ALGORITHME DU SIMPLEXE Sommaire 1. Introduction... 1 2. Variables d écart et d excédent... 2 3. Variables de base et variables hors base... 2 4. Solutions admissibles... 3 5. Résolution

Plus en détail

Module ITC34 - Algorithmique et Programmation

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

Plus en détail

Encadré par : Mr Philippe Janssen

Encadré par : Mr Philippe Janssen ABADIE Martin BENMOUFFOK Yasmine HEIDMANN Paul UTZEL Sylvain Encadré par : Mr Philippe Janssen 2014-2015

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

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

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

Plus en détail

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

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

Cours 4 Programmation web, orientée serveur

Cours 4 Programmation web, orientée serveur DUT MMI IUT de Marne-la-Vallée 17/03/2015 M2202 - Algorithmique Cours 4 Programmation web, orientée serveur Philippe Gambette Sources phpdebutant.net www.php.net (documentation du langage PHP) Plan du

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

IUT de Provence Site d Arles 2008-2009 Département d Informatique Licence pro SIL IN. IN Synthèse d images - Rendu TP 4

IUT de Provence Site d Arles 2008-2009 Département d Informatique Licence pro SIL IN. IN Synthèse d images - Rendu TP 4 IUT de Provence Site d Arles 2008-2009 Département d Informatique Licence pro SIL IN IN Synthèse d images - Rendu TP 4 Nous allons améliorer la vitesse d affichage d une scène 3D complexe en introduisant

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

Les graphes d intervalles

Les graphes d intervalles Les graphes d intervalles Complément au chapitre 3 «Vol aux archives cantonales» Considérons un ensemble de tâches ayant chacune une heure de début et une heure de fin bien précises. Supposons qu on demande

Plus en détail

KLIPS - PROJET INTELLIGENCE ARTIFICIEL

KLIPS - PROJET INTELLIGENCE ARTIFICIEL 19/03/2008 EPSI KLIPS - PROJET INTELLIGENCE ARTIFICIEL Christian Couder, Fabien Joubert, Guy-Ludovic Rodriguez Sommaire I Cahier des Charges 1. Les différentes composantes demandées... 3 a. Caractéristiques

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

La Clé informatique. Formation Word XP Aide-mémoire

La Clé informatique. Formation Word XP Aide-mémoire La Clé informatique Formation Word XP Aide-mémoire Septembre 2003 Table des matières Édition et insertion de texte... 4 Manipulation d un document Exploration de la fenêtre de travail Bouton de maximisation

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

Morgan Beau Nicolas Courazier

Morgan Beau Nicolas Courazier EPSI - 2010 Rapport projet IA Conception et mise en œuvre d un générateur de systèmes experts Morgan Beau Sommaire Cahier des charges 3 Présentation générale 4 Analyse et modélisation 6 Le moteur d inférence

Plus en détail

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

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

Plus en détail

IN104. Programmation orientée objet Introduction aux objets

IN104. Programmation orientée objet Introduction aux objets IN104 Programmation orientée objet Introduction aux objets Séance de Travaux Dirigés du 24 septembre 2009 B. Monsuez, F. Védrine Exercice 1 Notre compteur en C++ Nous étudions dans cet exercice l exemple

Plus en détail

Concours de Programmation ULCO 2013

Concours de Programmation ULCO 2013 Concours de Programmation ULCO 2013 Notice d aide à l utilisation de Prog&Play 7 mars 2013 Introduction Le concours de cette année a pour cadre un jeu de stratégie temps réel, basé sur le moteur Spring,

Plus en détail

Base de données - Tableaux Query Rapport de projet

Base de données - Tableaux Query Rapport de projet Base de données - Tableaux Query Rapport de projet Xavier Dubuc 30 mars 2009 Table des matières 1 Introduction. 2 1.1 Qu est-ce qu un tableau query?................................. 2 1.2 Le tupple résumé..........................................

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

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

1 Le jeu «Puissance 4»

1 Le jeu «Puissance 4» Université de Nice-Sophia Antipolis Deug MIAS-MI 1 Algorithmique & Programmation 2002 2003 TP N 3 Procédures et fonctions Buts : Manipuler des objets complexes Tableaux à deux dimensions Usage des sentinelles

Plus en détail

Interface Homme-Machine Travaux pratiques Séance 1 : Introduction Java / Swing / JBuilder

Interface Homme-Machine Travaux pratiques Séance 1 : Introduction Java / Swing / JBuilder Interface Homme-Machine Travaux pratiques Séance 1 : Introduction Java / Swing / JBuilder Pluquet Frédéric 15 octobre 2004 1 Introduction 1.1 L assistant Pluquet Frédéric, Téléphone : 02/650.56.01, Email

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

Affichage rapide de scènes 3D

Affichage rapide de scènes 3D ÉPREUVE COMMUNE DE TIPE 2010 - Partie D TITRE : Affichage rapide de scènes 3D Temps de préparation :.. 2 h 15 minutes Temps de présentation devant les examinateurs :.10 minutes Entretien avec les examinateurs

Plus en détail

Une application de commerce électronique en utilisant CLAIM

Une application de commerce électronique en utilisant CLAIM Rapport du projet A4MA Une application de commerce électronique en utilisant CLAIM Étudiants : DINH Quang Ninh (dinhquangninh@gmail.com) PHAM Trong-Tôn (trongtonfr@yahoo.fr) Wiki : http://dev.deptrai.org/wiki/doku.php?id=projet_a4ma:start

Plus en détail

Supports amovibles (lettres E : ou F : selon l ordre de branchements des supports)

Supports amovibles (lettres E : ou F : selon l ordre de branchements des supports) 1 Composition d un ordinateur. Il existe différents supports de lecture et/ou d enregistrement des informations. Le disque dur (ou disque local) de l ordinateur (dans l unité centrale) C : Le lecteur/graveur

Plus en détail

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

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

Plus en détail

Premiers Pas en Algorithmique

Premiers Pas en Algorithmique Premiers Pas en Algorithmique JP Vallon Lycée Gaspard Monge - Savigny sur Orge 2011 Lignes directrices 1 Algorithme 2 Actions élémentaires Algorithme Qu est ce qu un algorithme? Exemples : Une recette

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

Run Away. FABRE Maxime LEPOT Florian

Run Away. FABRE Maxime LEPOT Florian Run Away FABRE Maxime 2015 Sommaire Introduction... 2 I. Analyse fonctionnelle générale... 3 A. But du Jeu... 3 B. Objectif... 3 C. Moyen mis en œuvre... 3 II. Description de l application... 5 A. Diagramme

Plus en détail

Mode d emploi pour la P-machine utilisée lors des TPs et des projets du cours INFO010 Théorie des langages et de la compilation.

Mode d emploi pour la P-machine utilisée lors des TPs et des projets du cours INFO010 Théorie des langages et de la compilation. Mode d emploi pour la P-machine utilisée lors des TPs et des projets du cours INFO010 Théorie des langages et de la compilation. Sébastien COLLETTE et Gilles GEERAERTS 1 Introduction Ce document décrit

Plus en détail

Programmation de robots

Programmation de robots Programmation de robots 1 Le robot Le but de ces séances d'initiation est de vous apprendre les bases de la programmation du robot en quelques heures. Pour arriver au plus vite au c ur du sujet, nous avons

Plus en détail

Les graphiques avec Excel

Les graphiques avec Excel Les graphiques avec Excel 1. Introduction Transformer des nombres en graphique est l'un des atouts d'excel. Un graphique joint l'utile à l'agréable: bien présenté et mis en valeur, un histogramme révélateur

Plus en détail

Maîtrise Informatique 2003 / 2004. Devoir de PROLOG. Julien Van Den Bossche / Benoît Moulin

Maîtrise Informatique 2003 / 2004. Devoir de PROLOG. Julien Van Den Bossche / Benoît Moulin Maîtrise Informatique 2003 / 2004 Devoir de PROLOG Julien Van Den Bossche / Benoît Moulin Devoir de PROLOG, Julien Van Den Bossche / Benoît Moulin Page 1 sur 10 Généralités sur le devoir Les codes sources

Plus en détail

Programmation des interfaces graphiques en Java : les composants de Swing

Programmation des interfaces graphiques en Java : les composants de Swing Programmation des interfaces graphiques en Java : les composants de Swing Jean-Baptiste Vioix (Jean-Baptiste.Vioix@u-bourgogne.fr) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-67 Principales propriétés

Plus en détail

Mise en œuvre de serveurs d application TD n o 2

Mise en œuvre de serveurs d application TD n o 2 Master IST-IE 2007 08 UE 203d Mise en œuvre de serveurs d application TD n o 2 1 Introduction Dans ce TD, vous regarderez le contenu d une application J2EE. Ensuite, vous utiliserez les pages JSP pour

Plus en détail

2 ème année C Option Informatique. Introduction à Powerpoint. PAYOT Cédric 2C Informatique 1

2 ème année C Option Informatique. Introduction à Powerpoint. PAYOT Cédric 2C Informatique 1 2 ème année C Option Informatique Introduction à Powerpoint PAYOT Cédric 2C Informatique 1 1. Introduction Le logiciel Microsoft PowerPoint permet de créer une présentation pour écran et vidéo projecteur

Plus en détail

TUTORIAL. www.benevolat.org TUTORIAL. Créez en quelques minutes votre site Internet!

TUTORIAL. www.benevolat.org TUTORIAL. Créez en quelques minutes votre site Internet! Créez en quelques minutes votre site Internet! SOMMAIRE : Choisir une interface graphique - Nommez votre site... page 03 5 étapes de création... page 04 Les outils de création graphique... page 05 Mise

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

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

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

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

Explorateur Windows EXPLORATEUR WINDOWS...1 INTRODUCTION...2 LANCEMENT DE L'EXPLORATEUR WINDOWS...3 PRÉSENTATION PHYSIQUE...3 RECHERCHER...

Explorateur Windows EXPLORATEUR WINDOWS...1 INTRODUCTION...2 LANCEMENT DE L'EXPLORATEUR WINDOWS...3 PRÉSENTATION PHYSIQUE...3 RECHERCHER... EXPLORATEUR WINDOWS SOMMAIRE EXPLORATEUR WINDOWS...1 INTRODUCTION...2 LANCEMENT DE L'EXPLORATEUR WINDOWS...3 PRÉSENTATION PHYSIQUE...3 RECHERCHER...6 ORGANISATION DE SES DOSSIERS...7 CRÉER UN DOSSIER...7

Plus en détail

Cours 3 SDA et conception de logiciel. 1. Exemple d'analyse algorithmique n'utilisant que des tableaux

Cours 3 SDA et conception de logiciel. 1. Exemple d'analyse algorithmique n'utilisant que des tableaux Cours 3 SDA et conception de logiciel Les SDA servent à pouvoir construire des logiciels performants en cherchant à combiner des "briques" dont on sait qu'on pourra les implémenter en utilisant des techniques

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

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

Automates Cellulaires : Jeu de la Vie

Automates Cellulaires : Jeu de la Vie Automates Cellulaires : Jeu de la Vie November 13, 2010 Laurent Orseau Antoine Cornuéjols 1 Introduction Le grand public se fait souvent une idée bien

Plus en détail

Programmation logique par contraintes. Partie II

Programmation logique par contraintes. Partie II Programmation logique par contraintes Partie II Plan du cours Programmation logique et Prolog (PL) SWI-Prolog, Sicstus Programmation logique par contraintes (PLC) Sicstus Problèmes de satisfaction de contraintes

Plus en détail

INF-130 Travail Pratique #2

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

Plus en détail

Document d aide à la découverte de l outil d analyse de données Analyza. SOMMAIRE

Document d aide à la découverte de l outil d analyse de données Analyza. SOMMAIRE Guide Analyza Document d aide à la découverte de l outil d analyse de données Analyza. SOMMAIRE 1. Interface 2. Tableaux de bord 3. Indicateurs 4. Filtres 5. Permissions 6. Alertes 7. Flux de données 8.

Plus en détail

Prise en main de Visual C++ 6.0

Prise en main de Visual C++ 6.0 Prise en main de Visual C++ 6.0 1) premier programme Sélectionnez l icône suivante pour démarrer l application. La fenêtre suivante s ouvre à l écran. Pour créer un nouveau projet, cliquez sur le menu

Plus en détail

Introduction aux exercices en Java

Introduction aux exercices en Java Introduction aux exercices en Java Avant de commencer les séries proprement dites, nous allons voir quelques informations utiles concernant le langage de programmation principal de ce cours d'informatique

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

PG208, Projet n 1 : Gestion d une bibliothèque

PG208, Projet n 1 : Gestion d une bibliothèque PG208, Projet n 1 : Gestion d une bibliothèque Bertrand LE GAL, Serge BOUTER et Clément VUCHENER Filière électronique 2 eme année - Année universitaire 2011-2012 1 Introduction 1.1 Objectif du projet L

Plus en détail

Sujet à finir pour le jeudi 8 janvier 2015 23h59 À rendre par mail à aurelie.lagoutte@ens-lyon.fr

Sujet à finir pour le jeudi 8 janvier 2015 23h59 À rendre par mail à aurelie.lagoutte@ens-lyon.fr ENS Lyon L3 Info PROJ1 2014 2015 Projet Caml : Jeux de cartes 1 Consignes Sujet à finir pour le jeudi 8 janvier 2015 23h59 À rendre par mail à aurelie.lagoutte@ens-lyon.fr Forme Vous devez rendre le fichier.ml

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

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

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

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

Sollaud Timothée Girard Alexis. Rapport de projet

Sollaud Timothée Girard Alexis. Rapport de projet Sollaud Timothée Girard Alexis Rapport de projet 20 avril 2012 Table des matières Introduction 3 1 Présentation du projet......................................... 3 2 Présentation de l environnement de

Plus en détail

DS Informatique Scientifique

DS Informatique Scientifique DUT Mesures Physiques - semestre S'2 DS Informatique Scientifique 10 décembre 2012 0. Directives Durée : 2h Tout système électronique interdit (calculatrice, téléphone, etc). Téléphone portable éteint

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

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

4. Créer des compteurs, des curseurs ou des bandes déroulantes : a) Création des objets. b) Affectation à une cellule et réglage du pas.

4. Créer des compteurs, des curseurs ou des bandes déroulantes : a) Création des objets. b) Affectation à une cellule et réglage du pas. Logiciel Excel version Office 2007. Voici une liste non exhaustive de fonctions de ce logiciel en relation avec le stage. Au sommaire : 1. Créer des boutons de raccourci dans une barre d outils: a) Sélection

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

Licence Informatique Année 2005-2006

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

Plus en détail

10.6 Créer un fond d image avec une couleur personnelle:

10.6 Créer un fond d image avec une couleur personnelle: 10.6 Créer un fond d image avec une couleur personnelle: La dimension de l écran du système Tellimage est définie à 720 x 480 pixels. Il faut donc utiliser votre logiciel de dessin pour créer un fond d

Plus en détail

Nous allons détailler dans cette documentation les fonctionnalités pour créer un objet colonne.

Nous allons détailler dans cette documentation les fonctionnalités pour créer un objet colonne. Généralités Dans le générateur d états des logiciels Ciel pour Macintosh vous avez la possibilité de créer différents types d éléments (texte, rubrique, liste, graphiques, tableau, etc). Nous allons détailler

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

Questions / Réponses. Comment mettre à jour mon registre parcellaire graphique?

Questions / Réponses. Comment mettre à jour mon registre parcellaire graphique? Questions / Réponses Comment mettre à jour mon registre parcellaire graphique? Février 2014 Liste des questions Préambule... 3 Localisation... 4 1.- Comment faire pour se déplacer sur la carte?... 4 2.-

Plus en détail

ENSEIRB-MATMECA PG-113 2014. TP6: Optimisation au sens des moindres carrés

ENSEIRB-MATMECA PG-113 2014. TP6: Optimisation au sens des moindres carrés ENSEIRB-MATMECA PG-113 014 TP6: Optimisation au sens des moindres carrés Le but de ce TP est d implémenter une technique de recalage d images qui utilise une méthode vue en cours d analyse numérique :

Plus en détail

Manuel Utilisateur. Création de site web

Manuel Utilisateur. Création de site web Manuel Utilisateur Création de site web Auteur : Logica Version : 1.3 Droit d auteur Ce texte est disponible sous contrat Creative Commons Paternité - Pas d'utilisation Commerciale - Partage des Conditions

Plus en détail

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

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

Plus en détail

TP1:Priseenmaind Eclipse,élémentsdebasede java

TP1:Priseenmaind Eclipse,élémentsdebasede java TP1:Priseenmaind Eclipse,élémentsdebasede java jean-baptiste.vioix@iut-dijon.u-bourgogne.fr R&T 2ème année Vousavezàvotredisposition(surlerépertoirecommun):lecours,lesTDs, et quelques documents provenant

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

Flash3.exe. Flash 3 est un logiciel d édition de graphiques vectoriels. Il permet de créer des animations et des

Flash3.exe. Flash 3 est un logiciel d édition de graphiques vectoriels. Il permet de créer des animations et des Flash3.exe Flash 3 est un logiciel d édition de graphiques vectoriels. Il permet de créer des animations et des anim ations interactives destinées principalement à être diffusées sur internet. Tutoriel

Plus en détail

Guillaume SOLDERA (B guillaume.soldera@serli.fr) SERLI Informatique Bull OW2 Consortium. Comparatif Choco/Drools dans le cadre du projet JASMINe

Guillaume SOLDERA (B guillaume.soldera@serli.fr) SERLI Informatique Bull OW2 Consortium. Comparatif Choco/Drools dans le cadre du projet JASMINe Guillaume SOLDERA (B guillaume.soldera@serli.fr) SERLI Informatique Bull OW2 Consortium dans le cadre du projet JASMINe Avril 2008 Table des matières 1 Introduction 3 1.1 Rappel sur JASMINe.......................................

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

Mise en œuvre d un Site Sharepoint-V1

Mise en œuvre d un Site Sharepoint-V1 Mise en œuvre d un Site Sharepoint- MAJ 20/01/2015 Ce document décrit le paramétrage pour la mise en œuvre des fonctionnalités standard de Microsoft SharePoint 2013 NADAP et SharePoint NADAP ( Nouvelle

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

Anne Tasso. Le livre de. Java. premier langage. édition. Groupe Eyrolles, 2000-2012, ISBN : 978-2-212-13538-1

Anne Tasso. Le livre de. Java. premier langage. édition. Groupe Eyrolles, 2000-2012, ISBN : 978-2-212-13538-1 8 Anne Tasso Java Le livre de premier langage e édition Groupe Eyrolles, 2000-2012, ISBN : 978-2-212-13538-1 partie n 3 Outils et techniques orientés objet Dans ce chapitre, les termes «applications mobiles»

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

Licence STIC, Semestre 1 Algorithmique & Programmation 1

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

Plus en détail

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

TP1 : Organisation du projet d algorithmique

TP1 : Organisation du projet d algorithmique TP1 : Organisation du projet d algorithmique Enseignants: Antoine Bonnefoy et Sokol Koço Sujet: Liva Ralaivola, Antoine Bonnefoy et Sokol Koço 15 janvier 2014 1 Chasser à l aveuglette 1.1 Le projet Le

Plus en détail

Informations relatives à la mise-à-jour. 2011r.03

Informations relatives à la mise-à-jour. 2011r.03 Informations relatives à la mise-à-jour 2011r.03 Table des matières 1. Modélisation... 3 1.1. Attribuer plus facilement des conditions limites de pivotement aux éléments plats... 3 1.1.1. Possibilités

Plus en détail

Conception et Développement Orientés Objets Cours 1 : Introduction. 2 Les paradigmes de programmation. 3 Les concepts de la programmation objet

Conception et Développement Orientés Objets Cours 1 : Introduction. 2 Les paradigmes de programmation. 3 Les concepts de la programmation objet CNAM UV 19357 Année 2003-2004 David Delahaye David.Delahaye@cnam.fr Conception et Développement Orientés Objets Cours 1 : Introduction 1 Présentation de la valeur Ce cours s adresse à toute personne ayant

Plus en détail