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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Cours d initiation à la programmation en C++ Johann Cuenin

Cours d initiation à la programmation en C++ Johann Cuenin Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................

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

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

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

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

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

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

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

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

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

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar bbm@badr-benmammar.com

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar bbm@badr-benmammar.com Intelligence Artificielle et Systèmes Multi-Agents Badr Benmammar bbm@badr-benmammar.com Plan La première partie : L intelligence artificielle (IA) Définition de l intelligence artificielle (IA) Domaines

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

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

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

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

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

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

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

Java Licence Professionnelle CISII, 2009-10

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

Plus en détail

Chapitre 1 : Introduction aux bases de données

Chapitre 1 : Introduction aux bases de données Chapitre 1 : Introduction aux bases de données Les Bases de Données occupent aujourd'hui une place de plus en plus importante dans les systèmes informatiques. Les Systèmes de Gestion de Bases de Données

Plus en détail

Interfaces graphiques avec l API Swing

Interfaces graphiques avec l API Swing Interfaces graphiques avec l API Swing Les Swing Les classes graphiques Swing dérivent de la classe JComponent, qui hérite ellemême de la classe AWT (Abstract Window Toolkit). Tous les composants Swing

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

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

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

Construire. Statique. Styled by Smou. SEMA France SARL: 50, avenue d Alsace F-68027 Colmar Tél. +49-8304-939-0 Fax +49-8304-939-240

Construire. Statique. Styled by Smou. SEMA France SARL: 50, avenue d Alsace F-68027 Colmar Tél. +49-8304-939-0 Fax +49-8304-939-240 Construire Statique Styled by Smou SEMA France SARL: 50, avenue d Alsace F-68027 Colmar Tél. +49-8304-939-0 Fax +49-8304-939-240 Manuel d'application - Calcul statique -- Ferme et pannes à devers Page

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

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

Application 1- VBA : Test de comportements d'investissements

Application 1- VBA : Test de comportements d'investissements Application 1- VBA : Test de comportements d'investissements Notions mobilisées Chapitres 1 à 5 du cours - Exemple de récupération de cours en ligne 1ère approche des objets (feuilles et classeurs). Corps

Plus en détail

Utilisation avancée de SugarCRM Version Professional 6.5

Utilisation avancée de SugarCRM Version Professional 6.5 Utilisation avancée de SugarCRM Version Professional 6.5 Document : Utilisation_avancee_SugarCRM_6-5.docx Page : 1 / 32 Sommaire Préambule... 3 I. Les rapports... 4 1. Les principes du générateur de rapports...

Plus en détail

Développement Logiciel

Développement Logiciel Développement Logiciel Éxamen session 1-2012-2013 (Vendedi 25 mai, 9h-11h) Seuls les documents liés directement au cours sont autorisés (comme dit sur le site) : sujets de TD, notes de cours, notes personnelles

Plus en détail

Chapitre 2. Classes et objets

Chapitre 2. Classes et objets Chapitre 2: Classes et Objets 1/10 Chapitre 2 Classes et objets Chapitre 2: Classes et Objets 2/10 Approche Orientée Objet Idée de base de A.O.O. repose sur l'observation de la façon dont nous procédons

Plus en détail

Projet Matlab : un logiciel de cryptage

Projet Matlab : un logiciel de cryptage Projet Matlab : un logiciel de cryptage La stéganographie (du grec steganos : couvert et graphein : écriture) consiste à dissimuler une information au sein d'une autre à caractère anodin, de sorte que

Plus en détail

NAVIGATION SUR INTERNET EXPLORER

NAVIGATION SUR INTERNET EXPLORER Centres d accès communautaire Internet des Îles NAVIGATION SUR INTERNET EXPLORER Table des matières Introduction 1- Les barres d outils 1.1 La barre d adresse 2 5 min. 1.2. Les boutons de navigation 2

Plus en détail

Guide d utilisation commandes des pièces de rechange Rev.1.0.3

Guide d utilisation commandes des pièces de rechange Rev.1.0.3 SECLI Ver.2.3 Guide d utilisation commandes des pièces de rechange Rev.1.0.3 Ce document est constamment actualisé: vérifiez le n de la version pour savoir s il existe d éventuelles mises à jour Futura

Plus en détail

Le langage C. Séance n 4

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

Plus en détail

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

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

Plus en détail

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

Les structures. Chapitre 3

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

Plus en détail

Plateforme PAYZEN. Définition de Web-services

Plateforme PAYZEN. Définition de Web-services Plateforme PAYZEN Définition de Web-services Ordre de paiement Version 1.1 Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa Nom Date/Visa Nom Date/Visa Lyra-Network

Plus en détail

Trajet d'une recette payée par un tiers (2)

Trajet d'une recette payée par un tiers (2) Trajet d'une recette payée par un tiers (2) niveau : confirmé Nous avons vu dans l'article précédent la saisie d'une recette en mode "tierspayant" dans le dossier-patient. Il est déjà possible d'aller

Plus en détail

TP1 : Initiation à Java et Eclipse

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

Plus en détail

UTILISER LA MESSAGERIE

UTILISER LA MESSAGERIE UTILISER LA MESSAGERIE OUTLOOK OU WINDOWS MAIL PRESENTATION DE LA MESSAGERIE CONDITIONS POUR UTILISER LE COURRIER ELECTRONIQUE Pour envoyer un courrier sur un PC il faut un programme ou un service de messagerie.

Plus en détail

Algorithmique avec Algobox

Algorithmique avec Algobox Algorithmique avec Algobox 1. Algorithme: Un algorithme est une suite d instructions qui, une fois exécutée correctement, conduit à un résultat donné Un algorithme doit contenir uniquement des instructions

Plus en détail

Encryptions, compression et partitionnement des données

Encryptions, compression et partitionnement des données Encryptions, compression et partitionnement des données Version 1.0 Grégory CASANOVA 2 Compression, encryption et partitionnement des données Sommaire 1 Introduction... 3 2 Encryption transparente des

Plus en détail

Consignes générales :

Consignes générales : PROCÉDURE POUR DÉPÔT DANS WEBCT Consignes générales : 1) Il est important de toujours conserver une copie de votre Webfolio ou Dossier professionnel sur votre disquette, clé USB ou sur votre disque dur

Plus en détail

Environnements de développement (intégrés)

Environnements de développement (intégrés) Environnements de développement (intégrés) Tests unitaires, outils de couverture de code Patrick Labatut labatut@di.ens.fr http://www.di.ens.fr/~labatut/ Département d informatique École normale supérieure

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

La Programmation Orientée Agent Les Agents Réactifs

La Programmation Orientée Agent Les Agents Réactifs La Programmation Orientée Agent Les Agents Réactifs Emmanuel ADAM Université de Valenciennes et du Hainaut-Cambrésis UVHC/ISTV-LAMIH E. ADAM University of Valenciennes La Programmation Orientée Agent Les

Plus en détail

Créer un document composite avec NéoOffice J et le partager

Créer un document composite avec NéoOffice J et le partager OU BIEN On veut que les élèves mettent en relation du texte et des images trouvées sur internet (ce sont eux qui devront les chercher ou bien on va les insérer dans le document et à eux de les mettre en

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

Optimisation Discrète

Optimisation Discrète Prof F Eisenbrand EPFL - DISOPT Optimisation Discrète Adrian Bock Semestre de printemps 2011 Série 7 7 avril 2011 Exercice 1 i Considérer le programme linéaire max{c T x : Ax b} avec c R n, A R m n et

Plus en détail

OpenPaaS Le réseau social d'entreprise

OpenPaaS Le réseau social d'entreprise OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3

Plus en détail

Problèmes sur le chapitre 5

Problèmes sur le chapitre 5 Problèmes sur le chapitre 5 (Version du 13 janvier 2015 (10h38)) 501 Le calcul des réactions d appui dans les problèmes schématisés ci-dessous est-il possible par les équations de la statique Si oui, écrire

Plus en détail

Construire des plug-ins pour SAS Management Console SAS 9.1

Construire des plug-ins pour SAS Management Console SAS 9.1 Construire des plug-ins pour SAS Management Console SAS 9.1 Janvier 2005 Sommaire 1 INTRODUCTION... 3 1.1 OBJECTIFS... 3 1.2 PERIMETRE... 3 2 LES COMPOSANTS DE SAS MANAGEMENT CONSOLE... 4 3 LA CONSTRUCTION

Plus en détail

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

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

Plus en détail

Arrêté Royal du 7 juillet 1994 fixant les normes de base en matière de prévention contre l incendie et l explosion : Notice explicative

Arrêté Royal du 7 juillet 1994 fixant les normes de base en matière de prévention contre l incendie et l explosion : Notice explicative Arrêté Royal du 7 juillet 1994 fixant les normes de base en matière de prévention contre l incendie et l explosion : Notice explicative A n n e x e 1 Annexe 1 1.2.1 hauteur d un bâtiment La hauteur h d'un

Plus en détail

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page

Plus en détail

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS Mémento Ouvrir TI-Nspire CAS. Voici la barre d outils : L insertion d une page, d une activité, d une page où l application est choisie, pourra

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

Programmation Objet Java Correction

Programmation Objet Java Correction INSA - 4 AE 2007 2008 Durée : 1H00 Contrôle Programmation Objet Java Correction Consignes Tous les documents sont autorisés, mais ils seront peu utiles. Indiquez vos nom et prénom sur chaque feuille. Le

Plus en détail

Fonctions de plusieurs variables

Fonctions de plusieurs variables Module : Analyse 03 Chapitre 00 : Fonctions de plusieurs variables Généralités et Rappels des notions topologiques dans : Qu est- ce que?: Mathématiquement, n étant un entier non nul, on définit comme

Plus en détail