Rapport des travaux du bureau d étude Prolog «Programmer en Prolog»
|
|
- Georges Champagne
- il y a 8 ans
- Total affichages :
Transcription
1 Ministère d Enseignement Supérieur, de Recherche Scientifique et de Technologies *** Ecole Nationale d Ingénieurs de Tunis ***** Département de Technologies d Informations et de Communications ******* Rapport des travaux du bureau d étude Prolog «Programmer en Prolog» Présenté par : Encadré par : Mme. Amira kallal Mlle. Imen Mesbehi Classe : 2AINFO1 Année Universitaire : 2010/2011
2 2 Sommaire 1. Introduction Initiation à la manipulation de PROLOG (séance1) Exemple d initiation Exercices : Exercice 1 : Exercice 2 : Exercice 3 : Exercice4 :... 1 Arbre généalogique : (séance2) Définition des liens de parenté Les règles : Le programme :... 1 Les listes en Prlog (séance3) La notion de liste Exercice... 1 Gestion d un système de transport (séance3) Le problème : Travail demandé : Définition du domaine Définition des prédicats Traduction des questions [1] Inclure la longueur d un itinéraire Traduction des questions [2] conclusion...
3 3 1. Introduction Prolog est un langage utilisé dans les domaines de l'intelligence Artificielle et la Programmation Logique avec Contraintes. Sa syntaxe et son principe de fonctionnement sont radicalement différents de langages impératifs tels que C ou Java. Le raisonnement se rapproche plus de langages fonctionnels tels que Caml ou Lisp. Pourtant, Prolog n'est pas un langage fonctionnel. Prolog est le premier langage de programmation logique. 2. (séance1) Initiation à la manipulation de PROLOG La 1ère séance commence par u ne représentation de l outil de développement Visual Prolog. Fenêtre du projet Barre de Contrôle Fenêtre du projet Fenêtre d édition Figure 1 : Interface de "Visual Prolog"
4 4 Donc ce qu on acquit comme nécessaire pour ce logiciel est la création d un projet., la différenciation d es différentes sections d un programme en Prolog selon la structure suivante : options CONSTANTS const1 = definition [GLOBAL] DATABASE [ <databasename> ] [determ] pred1(...) [GLOBAL] DOMAINS dom = <domainedebase> PREDICATES [determ nondeterm] pred1(...) CLAUSES p(...) :- p1(...), p2(...),.... p( ).. GOAL p( ). On a ensuite implémenté un exemple pour se familiariser plus avec le logiciel mais surtout avec le langage Prolog Exemple d initiation Le but (goal) de cet exemple est de déterminer si une personne donnée peut acheter une voiture.
5 5 include "tp0.inc" domains personne, voiture, couleur = Symbol predicates voiturecouleur(voiture, couleur) aimecouleur(personne, couleur) aprecitvoiture(personne, voiture) peutacheter(personne, voiture) avendre(voiture) possedeargent(personne) clauses aprecitvoiture(x, Y) :aimecouleur(x, C), voiturecouleur(y, C). peutacheter(x, Y) :aprecitvoiture(x, Y), avendre(y), possedeargent(x). voiturecouleur(c3, bleu). voiturecouleur(yaris, gris). aimecouleur(ali, bleu). aimecouleur(sami, gris). avendre(c3). avendre(bmw). possedeargent(ali). possedeargent(sami). goal peutacheter(ali, Y).
6 Exercices : Exercice 1 : domains marque,couleur=symbol kilo,prix=real age=integer predicates nondeterm camion(marque,kilo,age,couleur,prix) nondeterm voiture(marque,kilo,age,couleur,prix) nondeterm vehicule(marque,kilo,age,couleur,prix) clauses voiture(chrysher, , 3, rouge, ). voiture(ford, , 4,gris,25.000). voiture(datsun, 8.000, 1, rouge,30.000). camion(ford,80.000, 6,bleu, 8.000). camion(datsun, , 5, orange,20.000). camion(toyota, , 2, noir,25.000). vehicule(x,y,z,t,w):- camion(x,y,z,t,w). vehicule(x,y,z,t,w):- voiture(x,y,z,t,w). goal %voiture(x,y,z,t,p), P< %camion(_,_,_,gris,p);voiture(ford,_,_,_,p), P< %vehicule(_,_,a,_,p),a>5,p< %camion(_,k,_,_,_),k<60.000;camion(_,_,_,_,p),p< voiture(_,_,age,_,p),p<
7 7 Les prédicats à définir ici sont : Vehicule(X,Y,Z,T,W):- camion(x,y,z,t,w). Vehicule(X,Y,Z,T,W):- voiture(x,y,z,t,w). Ils signifient simplement qu un véhicule est soit un camion, soit une voiture. Les réponses aux requêtes : 1) Trouver les voitures dont le prix < voiture(x,y,z,t,p), P< ) Trouver les camions gris et les voitures ford dont le prix < camion(_,_,_,gris,prix);voiture(ford,_,_,_,prix), Prix< ) Trouver les véhicules dont l âge >5 et le prix < vehicule(_,_,age,_,prix),age>5,prix< ) Quels sont les camions qui n ont pas encore roulé les ou qui coûtent moins que ? camion(marque,kilo,age,couleur,prix),kilo<60.000;camion(marque,kilo,age,cou leur,prix),prix<
8 8 5) l âge et le coût des voitures dont le prix < voiture(_,_,age,_,prix),prix< Exercice 2 : Le calcul de n! domains nb,res= Integer predicates nondeterm factoriel(nb,res) clauses factoriel(0,1). factoriel(nb,res):- Nb>0, N=Nb-1,factoriel(N,Res1),Res=Res1*Nb. goal Write("donner un entier"),nl, Readint(X),nl,write("le factoriel de "), factoriel(x,res).
9 9 Le calcul du factoriel se fait de façon récursive suivant le prédicat : factoriel(0,1). factoriel(nb,res):- Nb>0, N=Nb-1,factoriel(N,Res1),Res=Res1*Nb Exercice 3 : Cet exercice calcule la puissance d un nombre. Son algorithme est encore récursif. domains nb= Integer predicates nondeterm puissance(nb,nb,nb) clauses puissance(n,1,n):-!. puissance(nb,p,res):- P1=P-1,puissance(NB,P1,Res1),Res=Res1*Nb. goal Write("donner un entier"),nl,readint(nombre), Write("donner sa puissance"),nl,readint(puissance), nl,write("le résultat "),puissance(nombre,puissance,r).
10 10 La puissance nième de X est tel qu elle est égale au produit de X avec sa puissance (n-1)ième tant que la puissance qui décrémente est supérieure à 1. Si elle est à 1 elle retourne le même nombre. Il y a donc 2 solutions, soit qu on indique cette condition dans l appel récursif, soit on applique le cut dans la condition d arrêt. puissance(n,1,n):-!. puissance(nb,p,res):- P1=P-1,puissance(NB,P1,Res1),Res=Res1*Nb. Ou : puissance(n,1,n). puissance(nb,p,res):- P>1,P1=P-1,puissance(NB,P1,Res1),Res=Res1*Nb. Write("donner un entier"),nl,readint(nombre), Write("donner sa puissance"),nl,readint(puissance), nl,write("le résultat "),puissance(nombre,puissance,r) Exercice4 : Cet exercice calcule le PGCD de deux entiers include "exo4.inc" X et Y. domains nb=integer predicates nondeterm pgcd(nb,nb,nb). clauses pgcd(x,x,x). pgcd(x,y,d):-x<y,y1=y-x,pgcd(x,y1,d). pgcd(x,y,d):-x>y,pgcd(y,x,d). goal pgcd(6,3,x).
11 11 3. si X et Y sont égaux, D vaut X si X < Y alors D est le PGCD de X et de Y - X si Y < X alors échanger le rôle de X et Y pgcd(x,x,x). pgcd(x,y,d):-x<y,y1=y-x,pgcd(x,y1,d). pgcd(x,y,d):-x>y,pgcd(y,x,d). (séance2) Arbre généalogique : Les buts de cette séance sont : - La manipulation du concept de relation. - L implémentation d un programme permettant de définir des liens de parenté dans un arbre généalogique Définition des liens de parenté On va tout d abord traduire l arbre généalogique suivant par un ensemble de relations entre de objets.
12 12 Figure2 : arbre généalogique 3.2. Les règles : Les règles de bases implémentées sont : Féminin(X), Masculin(Y) et parent(x,y). Les autres comme grandparent et sœur et frère, etc seront déduits consécutivement à partir d premiers. Ils vont nous permettre aussi d écrire des règles récursives Le programme : Dans la partie clauses on a traduit tous les liens de parenté : une quarantaine. Et aussi on a indiqué le sexe de chaque membre. Et ce sont tous les faits essentiels. On passe maintenant à la définition de la règle ancêtre (X,Y) qui est une règle récursive. Elle répond à la question si une personne X est un ancêtre à une autre personne Y. Elle l est quand elle est un parent direct à Y où quand elle est l ancêtre d un parent de Y. Et c est ce qui est traduit dans le prédicat suivant :
13 13 ancetre(x,z) :- parent(x,z). ancetre(x,z) :- parent(x,y),ancetre(y,z). On demande par exemple le but suivant ancetre(pierre,gisele). Ou bien on peut demander tous les ancêtres de gisele ancetre(x,gisele). Et pour les autres règles : GRANDPARENT (X,Z) : X est un grand parent à Z quand il est un parent à un parent de Y. grandparent(x,z) :- parent(x,y),parent(y,z). Le but qu on peut poser par exemple est de détreminer le grands parents de «pierre» grandparent(x,rolande).
14 14 ENFANT: Ce prédicat se déduit directement du prédicat parent : il est son inverse à savoir : Enfant(X,Y) :-parent(y,x). afficher les enfants de pierre. FRERE (X,Y) : X est frère à Y si X est de sexe masculin et X et Y ont un parent commun. Aussi on doit ajouter la condition sur le parent qu il soit masculin ou féminin sinon il va répéter les résultats issus du fait que deux frères ont en commun un père et une mère. Ce qui se traduit par la règle : frère(x,y):- parent(z,y),parent(z,x),masculin(x),masculin(z). afficher les frères d «augustine». frere(x,augustine).
15 15 SŒUR(X,Y) : De même pour le prédicat sœur seulement on modifie le sexe de X afficher les sœurs de «eric». soeur(x,eric). TANTE (X,Y) : X est la tante de Y si elle est la sœur de l un de ses parents. On l écrit donc : tante(x,y):- parent(z,y),soeur(x,z). les tantes de «gerard» tante(x,gerard). ONCLE (X,Y) : De même pour la règle oncle(x,y). oncle(x,y):- parent(z,y),frere(x,z). oncle(x,rolande).
16 16 COUSIN (X,Y) : X est le cousin de Y s ils ont le même grand parent et qu il soit masculin pour éviter la répétition et aussi il faut en exclure le cas où ils sont frères ou sœurs. cousin(x,y):- grandparent(z,x),grandparent(z,y),masculin(z),not (frere(x,y)),not (soeur(x,y)). tous les cousins de «rolande» 4. cousin(rolande,x). (séance3) Les listes en Prlog Le but de cette séance est l utilisation de la notion de liste en Prolog et la définition de prédicats d utilisation des listes La notion de liste En Prolog, on ne connait que deux choses d'une liste son premier élément (la tête, ou head) le reste de la liste (la queue, ou tail) Le parcours d'une liste se fait de manière récursive sur la queue. La liste vide se note: [].
17 17 Une liste constituée d'au moins un élément se note [T Q]. Ici, T représente la tête et Q représente la queue. C'est aussi grâce à [T Q] que l'on ajoute un élément en début de liste (par unification). Les différents éléments d'une liste sont séparés par des virgules. Exemple: [1, 2, 3, 4, 5, 6,7]. Ainsi: [1, 2, 3 Q] représente une liste dont les premiers éléments sont 1, 2, 3 et le reste de la liste est unifié avec la variable Q Exercice Cet exercice rassemble les prédicats essentiels à appliquer sur une liste quelconque. ELEMENT (X,L) : elle vérifie si x est un élément de la liste. Il l est lorsqu il est le premier élément de la liste ou lorqu il appartient au reste de la liste, d où l appel récursi f. element(x,[x _]). element(x,[_ R]):- element(x,r). element(c,[a,b,c,d]). LONGUEUR (X,L) : elle donne en terme de nombre d objets la longueur d une liste. Si elle est vide sa longueur est nulle et c est la condition d arrê t, sinon sa longueur est un longueur N avec N=M+1 où M est la longueur du reste de cette liste. long([],0). long([_ R],N):-long(R,M),N=M+1.
18 18 long([a,b,c,d],longueur). ENLEVER (X,L,LX) : elle élimine de la liste L toutes les occurrences de X. 2 cas soit que X soit le 1 er de la liste il er l enlève et continue à vérifier s il est dans le reste, soit qu il ne l est pas alors il ignore le 1 élément et continue sa recherche dans le reste et ainsi de suite jusqu à ce qu il arrive à la liste vide qui est retournée telle quelle. enlever(_,[],[]). enlever(x,[x ResteListeInitiale],ListeSansX) :enlever(x,restelisteinitiale,listesansx). enlever(x,[pasx ResteListeInitiale],[PasX ListeSansX]) :X<>PasX,enlever(X,ResteListeInitiale,ListeSansX). enlever(a,[a,b,c,a,d],listesansa). UNION (L1,L2,L3) : union fait la fusion de listes L1 et L2 dans une troisième liste L3. On a l union de la liste L1 qui commence par T1 et la liste L2 est une liste qui commence par T1 si aussi l union du reste R1 et L2 donne R3, ce jusqu à l on vide la liste L1 et enfin l union de la liste vide avec la liste L2 donne L2.
19 19 union([],l2,l2). union([t1 R1],L2,[T1 R3]):-union(R1,L2,R3). union([a,b,c],[e,f,k,a],listefinale). INSERT (X,L,LX) : Elle ajoute l élément X à ma fin de la liste L et retourne LX. Si L est une liste vide alors LX=[X], sinon il l insère dans le reste de la liste. insert(x,[],[x]). insert(x,[r1 R],L) :- insert(x,r,l1),union([r1],l1,l). insert("a",[b,c,d],l). DERN (X,L) : Il donne le dernier élém ent de la liste. X est le dernier de la liste L s il est le dernier de son reste et ainsi de suite jusqu à ce qu il arrive à une liste formée d un seul élément. dern([x],x).
20 20 dern([_ R],X):-dern(R,X). dern([a,c,d],dernier). But: INVERSE (L,LINV) : L inverse de la liste [X Y] est la liste L2 tel que l inverse de Y est une liste L3 et que l union de L3 et X est L2. inverse([x],[x]). inverse([x Y],L2):-inverse(Y,L3),union(L3,[X],L2). inverse([a,b,c,d],inverse). AFFICHE (L) : Elle sert bien clair à afficher les éléments d une liste L avec le prédicat prédéfini write. affiche([x L]):- write(x),nl,affiche(l). affiche([a,b,c,d]).
21 21 AFFICHEINVERSE (L) : Elle affiche la liste L inversée. Ce qu elle fait en fait est qu elle utlilise simplement les 2 prédicats affiche et inverse. Elle inverse la liste L dans une autre liste et affiche celle-ci. afficheinverse(l):- inverse(l,l1),affiche(l1). afficheinverse([a,b,c,d]). 5. (séance3) Gestion d un système de transport 5.1. Le problème : On va réaliser un programme Prolog pour la gestion d un système de transport. Plusieurs stations («m», «q», «n», «r», «p», «o» et «s») sont reliées par des bus supposés à sens unique. Chaque arc représente un bus qui relie une station de dép art à une station d arrivée. Nous définissons un itinéraire à partir d une station de départ S1 à une station d arrivée S2 à
22 22 travers une liste de stations. Il existe un itinéraire de S1 à S2 s il existe une station S3 à laquelle S1 est reliée par un bus et S2 est reliée par un itinéraire Travail demandé : Définition du domaine On aura besoin d une station et d une liste de stations et puis après d un nombre entier. domains station= Symbol listestation= station* number= Integer Définition des prédicats BUS(S1,S2): Les faits suivants sont une description complète du graphe composé de stations et de bus qui les relient.
23 23 ELEMENT (S,LS): Permet de déterminer si la station S est un élément de la liste de stations LS. Ce prédicat est donc le même pour n importe quel type de liste. element(s,[s _]). element(s,[_ R]):- element(s,r). Ce prédicat ne sera pas utile directement dans notre programme mais essentiellement dans le prédicat suivant. ITINERAIRE (S1,S2,L) : Ce prédicat donne le chemin entre 2 stations S1 et S2. Les stations qui constituent les met dans une liste L. En effet, il existe un itinéraire de S1 à S2 s il existe une station S3 à laquelle S1 est reliée par un bus et S2 est reliée par un itinéraire. itineraire(s1,s1,[s1]). itineraire(s1,s2,[s1 R]):-bus(S1,S3),itineraire(S3,S2,R), Not(element(S1,R)). itineraire(a,o,l).
24 24 PEUTALLER (S1,S2) : Indique si on peut aller de la station S1 à la station S2. C est possible quand il existe un itinéraire entre S1 et S2. peutallera(s1,s2):- itineraire(s1,s2,_). peutallera(a,o). LONGUEUR (L,N): La longueur de la liste en termes de nombre de stations. longueur([],0). longueur([_ R],N):-longueur(R,M),N=M+1. longueur([m,a,n,r,p,o,s],longueur). AFFICHE (LS): Affiche les éléments de la liste de stations LS. affiche([s LS]):- write(s),nl,affiche(ls).
25 25 affiche([m,a,n,r,p,o,s]) Traduction des questions [1] a. Peut-on aller de la station «s» à la station «r»? peutallera(s,r). b. Comment se rendre de «a» à «p»? itineraire(a,p,l,_). c. Quels sont les itinéraires aboutissant à «o»? itineraire(_,o,l). d. Quels sont les itinéraires de «m» à «o» avec exactement 2 stations intermédiaires? itineraire(m,o,l,n),longueur(l,nb),nb=2. e. Quels sont les itinéraires de «m» à «o» avec au moins 2 stations intermédiaires? itineraire(m,o,l,n),longueur(l,nb),nb> Inclure la longueur d un itinéraire On va adapter la définition des prédicats bus et itineraire afin de calculer le coût total d un itinéraire. Il suffit juste d ajouter un autre paramètre à chacun de ces prédicats symbolisant le coût. PREDICAT BUS :
26 26 PREDICAT ITINERAIRE : Le coût total d un itinéraire X est le coût du bus reliant le 1 er élément au deuxième plus le coût de l itinéraire reliant le deuxième à la destination. itineraire(s1,s1,[s1],0). itineraire(s1,s2,[s1 R],X):bus(S1,S3,Y),itineraire(S3,S2,R,NUM),X=NUM+Y, Not(element(S1,R)). itineraire(a,p,l,coût) Traduction des questions [2] a. Quels sont les itinéraires de «m» à «o» passant par «n» et leurs coûts? itineraire(m,o,l,coût),element(n,l).
27 27 b. Quels sont les itinéraires issus de «m» et de coût au plus 17? itineraire(m,_,l,n),n<18.
28 28 6. conclusion Notre atelier a été une confrontation à l utilisation du langage de programmation logique Prolog. Programmer en Prolog, c'est énoncer une suite de faits et de règles puis poser des questions. Tout est relation en Prolog. Tout programme Prolog constitue un petitsystèmeexpert qui va fonctionner en "chaînage-arrière" ou "abduction", c'est-à-dire qui va tester les hypothèses pour prouver une conclusion.
Évaluation et implémentation des langages
Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation
Plus en détailSTAGE IREM 0- Premiers pas en Python
Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer
Plus en détailInitiation à 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étailJade. 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étailLicence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter
Plus en détailTD 1 - Structures de Traits et Unification
TD 1 - Structures de Traits et Unification 1 Définitions Un trait (en: feature) est un couple attribut-valeur. Une structure de traits (en: feature structure) est un ensemble de traits. On peut les représenter
Plus en détailÉléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if
Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike
Plus en détailLES 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étail1. Qu'est-ce que SQL?... 2. 2. La maintenance des bases de données... 2. 3. Les manipulations des bases de données... 5
1. Qu'est-ce que SQL?... 2 2. La maintenance des bases de données... 2 2.1 La commande CREATE TABLE... 3 2.2 La commande ALTER TABLE... 4 2.3 La commande CREATE INDEX... 4 3. Les manipulations des bases
Plus en détailExpression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e
P r o b l é m a t i q u e OCL : O b j e c t C o n s t r a i n t L a n g u a g e Le langage de contraintes d UML Les différents diagrammes d UML permettent d exprimer certaines contraintes graphiquement
Plus en détailChapitre 2. Eléments pour comprendre un énoncé
Chapitre 2 Eléments pour comprendre un énoncé Ce chapitre est consacré à la compréhension d un énoncé. Pour démontrer un énoncé donné, il faut se reporter au chapitre suivant. Les tables de vérité données
Plus en détailCours 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étailLES 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étailLes différents types de relation entre les tables
TABLES Les différents types de relation entre les tables La mise en relation de tables permet de relier les données d une table à celles d une autre table et ainsi d établir une base de données de type
Plus en détailLa carte de mon réseau social
La carte de mon réseau social Avant de commencer Un réseau social, c est quoi? Dans ta vie, tu es entouré de plusieurs personnes. Certaines personnes sont très proches de toi, d autres le sont moins. Toutes
Plus en détailMIS 102 Initiation à l Informatique
MIS 102 Initiation à l Informatique Responsables et cours : Cyril Gavoille Catherine Pannier Matthias Robine Marc Zeitoun Planning : 6 séances de cours 5 séances de TD (2h40) 4 séances de TP (2h40) + environ
Plus en détailEnsimag 1ère année Algorithmique 1 Examen 2ième session 24 juin 2010. Algorithmique 1
Algorithmique 1 Durée : 2h Machines électroniques interdites Tous documents papiers autorisés Il est conseillé de traiter les deux parties dans l ordre du sujet. Veuillez respecter les notations introduites
Plus en détail1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert
1 de 46 Algorithmique Trouver et Trier Florent Hivert Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert 2 de 46 Algorithmes et structures de données La plupart des bons algorithmes
Plus en détailExercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT
Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Ces exercices portent sur les items 2, 3 et 5 du programme d informatique des classes préparatoires,
Plus en détailObjectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)
Objectifs du cours d aujourd hui Informatique II : Cours d introduction à l informatique et à la programmation objet Complexité des problèmes Introduire la notion de complexité d un problème Présenter
Plus en détailExercices de dénombrement
Exercices de dénombrement Exercice En turbo Pascal, un entier relatif (type integer) est codé sur 6 bits. Cela signifie que l'on réserve 6 cases mémoires contenant des "0" ou des "" pour écrire un entier.
Plus en détailLes structures de données. Rajae El Ouazzani
Les structures de données Rajae El Ouazzani Les arbres 2 1- Définition de l arborescence Une arborescence est une collection de nœuds reliés entre eux par des arcs. La collection peut être vide, cad l
Plus en détailCréer une base de données
Access Créer une base de données SOMMAIRE Généralités sur les bases de données... 3 Création de la base de données... 4 A) Lancement d'access... 4 B) Enregistrement de la base de données vide... 4 Création
Plus en détailRappels sur les suites - Algorithme
DERNIÈRE IMPRESSION LE 14 septembre 2015 à 12:36 Rappels sur les suites - Algorithme Table des matières 1 Suite : généralités 2 1.1 Déition................................. 2 1.2 Exemples de suites............................
Plus en détailCOURS 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étailCliquez sur ILIAS. Puis, cliquez sur Login.
Cette visite permet de faire un tour complet, juste pour découvrir les pages et prendre connaissance du contenu de la plate forme d apprentissage ILIAS de l Espace Numérique de Travail (ENT) du collège
Plus en détailBases de données Cours 5 : Base de données déductives
Cours 5 : ESIL Université de la méditerranée Odile.Papini@esil.univmed.fr http://odile.papini.perso.esil.univmed.fr/sources/bd.html Plan du cours 1 Introduction 2 approche sémantique approche axiomatique
Plus en détail# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>
94 Programmation en OCaml 5.4.8. Concaténation de deux listes Définissons maintenant la fonction concat qui met bout à bout deux listes. Ainsi, si l1 et l2 sont deux listes quelconques, concat l1 l2 constitue
Plus en détailLe 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étailLE PROBLEME DU PLUS COURT CHEMIN
LE PROBLEME DU PLUS COURT CHEMIN Dans cette leçon nous définissons le modèle de plus court chemin, présentons des exemples d'application et proposons un algorithme de résolution dans le cas où les longueurs
Plus en détailCours Base de données relationnelles. M. Boughanem, IUP STRI
Cours Base de données relationnelles 1 Plan 1. Notions de base 2. Modèle relationnel 3. SQL 2 Notions de base (1) Définition intuitive : une base de données est un ensemble d informations, (fichiers),
Plus en détailclef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE
Cas Neptune hôtel Base de données et langage SQL Propriété Intitulé long Formation concernée Matière Notions Transversalité Présentation Description Neptune Hôtel. L interrogation d une base de données
Plus en détailReprésentation d un entier en base b
Représentation d un entier en base b 13 octobre 2012 1 Prérequis Les bases de la programmation en langage sont supposées avoir été travaillées L écriture en base b d un entier est ainsi défini à partir
Plus en détailSystè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étailINITIATION 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étailInitiation à l algorithmique
Informatique S1 Initiation à l algorithmique procédures et fonctions 2. Appel d une fonction Jacques TISSEAU Ecole Nationale d Ingénieurs de Brest Technopôle Brest-Iroise CS 73862-29238 Brest cedex 3 -
Plus en détail1 Position du problème
Licence Science et Technologies - INF245 Examen session 1 - mai 2012 Durée : 2 heures Documents non autorisés Le barème est donné à titre indicatif 1 Position du problème Le Club Universitaire de Vélo
Plus en détailArithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot
Chapitre 5 Arithmétique binaire L es codes sont manipulés au quotidien sans qu on s en rende compte, et leur compréhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabétique,
Plus en détailProjet 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étail1ère partie Nadine Cullot. Bases de données déductives. Bases de données déductives Introduction et Motivation
Master STIC «Image Informatique et Ingénierie» Module Informatique Modèles de représentation - 10h CM Nadine Cullot Kokou Yétongnon nadine.cullot@u-bourgogne.fr kokou.yetongnon@u-bourgogne.fr 1ère partie
Plus en détailManuel 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étailProblèmes de Mathématiques Filtres et ultrafiltres
Énoncé Soit E un ensemble non vide. On dit qu un sous-ensemble F de P(E) est un filtre sur E si (P 0 ) F. (P 1 ) (X, Y ) F 2, X Y F. (P 2 ) X F, Y P(E) : X Y Y F. (P 3 ) / F. Première Partie 1. Que dire
Plus en détailModes Opératoires WinTrans Mai 13 ~ 1 ~
Modes Opératoires WinTrans Mai 13 ~ 1 ~ Table des matières Facturation... 2 Tri Filtre... 2 Procédures facturation... 3 Transfert Compta... 8 Création d un profil utilisateur... Erreur! Signet non défini.
Plus en détailQuelques algorithmes simples dont l analyse n est pas si simple
Quelques algorithmes simples dont l analyse n est pas si simple Michel Habib habib@liafa.jussieu.fr http://www.liafa.jussieu.fr/~habib Algorithmique Avancée M1 Bioinformatique, Octobre 2008 Plan Histoire
Plus en détailUTILISER 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étailGrammaires d unification
Cours sur le traitement automatique des langues (IV) Violaine Prince Université de Montpellier 2 LIRMM-CNRS Grammaires d unification Grammaire catégorielle Grammaire syntagmatique généralisée (GPSG) Les
Plus en détailIntroduction à la théorie des graphes. Solutions des exercices
CAHIERS DE LA CRM Introduction à la théorie des graphes Solutions des exercices Didier Müller CAHIER N O 6 COMMISSION ROMANDE DE MATHÉMATIQUE 1 Graphes non orientés Exercice 1 On obtient le graphe biparti
Plus en détailRecherche dans un tableau
Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6
Plus en détailMachines virtuelles Cours 1 : Introduction
Machines virtuelles Cours 1 : Introduction Pierre Letouzey 1 pierre.letouzey@inria.fr PPS - Université Denis Diderot Paris 7 janvier 2012 1. Merci à Y. Régis-Gianas pour les transparents Qu est-ce qu une
Plus en détailPrénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004
Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)
Plus en détailTD n 10 : Ma première Base de Données
TD n 10 : Ma première Base de Données 4 heures Rédigé par Pascal Delahaye 11 mars 2015 Le but de ce TD est de découvrirles principales fonctions d OpenOffice Base, le systèmede gestion de bases de données
Plus en détailL exclusion mutuelle distribuée
L exclusion mutuelle distribuée L algorithme de L Amport L algorithme est basé sur 2 concepts : L estampillage des messages La distribution d une file d attente sur l ensemble des sites du système distribué
Plus en détailCentre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :
Algorithmique et programmation : STRUCTURES DE DONNÉES A. Structure et enregistrement 1) Définition et rôle des structures de données en programmation 1.1) Définition : En informatique, une structure de
Plus en détailCours 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étailEXCEL TUTORIEL 2012/2013
EXCEL TUTORIEL 2012/2013 Excel est un tableur, c est-à-dire un logiciel de gestion de tableaux. Il permet de réaliser des calculs avec des valeurs numériques, mais aussi avec des dates et des textes. Ainsi
Plus en détailAlgorithmique, Structures de données et langage C
UNIVERSITE PAUL SABATIER TOULOUSE III Algorithmique, Structures de données et langage C L3 IUP AISEM/ICM Janvier 2005 J.M. ENJALBERT Chapitre 1 Rappels et compléments de C 1.1 Structures Une structure
Plus en détailCours d électricité. Circuits électriques en courant constant. Mathieu Bardoux. 1 re année
Cours d électricité Circuits électriques en courant constant Mathieu Bardoux mathieu.bardoux@univ-littoral.fr IUT Saint-Omer / Dunkerque Département Génie Thermique et Énergie 1 re année Objectifs du chapitre
Plus en détailPROJET ALGORITHMIQUE ET PROGRAMMATION II
PROJET 1 ALGORITHMIQUE ET PROGRAMMATION II CONTENU DU RAPPORT A RENDRE : o Fiche signalétique du binôme o Listing des différents fichiers sources o CD sources o Il sera tenu compte de la présentation du
Plus en détailLA PUISSANCE DES MOTEURS. Avez-vous déjà feuilleté le catalogue d un grand constructeur automobile?
LA PUISSANCE DES MOTEURS Avez-vous déjà feuilleté le catalogue d un grand constructeur automobile? Chaque modèle y est décliné en plusieurs versions, les différences portant essentiellement sur la puissance
Plus en détailGestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed
6, bd maréchal Juin F-14050 Caen cedex 4 Spécialité Informatique 2 e année Rapport de projet Gestion du parc informatique matériel et logiciel de l Ensicaen SAKHI Taoufik SIFAOUI Mohammed Suivi ENSICAEN
Plus en détailChapitre 5 LE MODELE ENTITE - ASSOCIATION
Chapitre 5 LE MODELE ENTITE - ASSOCIATION 1 Introduction Conception d une base de données Domaine d application complexe : description abstraite des concepts indépendamment de leur implémentation sous
Plus en détailLe langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie
Chapitre I : Les bases du C++ Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie du logiciel, et ce depuis
Plus en détailUE Programmation Impérative Licence 2ème Année 2014 2015
UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative
Plus en détailDate 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étail1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)
1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d
Plus en détailUE C avancé cours 1: introduction et révisions
Introduction Types Structures de contrôle Exemple UE C avancé cours 1: introduction et révisions Jean-Lou Desbarbieux et Stéphane Doncieux UMPC 2004/2005 Introduction Types Structures de contrôle Exemple
Plus en détailNAVIGATION 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étailCréer le schéma relationnel d une base de données ACCESS
Utilisation du SGBD ACCESS Polycopié réalisé par Chihab Hanachi et Jean-Marc Thévenin Créer le schéma relationnel d une base de données ACCESS GENERALITES SUR ACCESS... 1 A PROPOS DE L UTILISATION D ACCESS...
Plus en détailTD de supervision. J.P. Chemla. Polytech Tours Département productique 2ème année
TD de supervision J.P. Chemla Polytech Tours Département productique 2ème année 1 Présentation de l équipement On veut superviser une cuve dans un batiment. Les informations à visualiser sont les suivantes
Plus en détailTravaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation
Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des
Plus en détailContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.
ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A. - 1 - PREAMBULE Les conditions générales d utilisation détaillant l ensemble des dispositions applicables
Plus en détailProjet 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étailProjet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte
Projet d informatique M1BI : Compression et décompression de texte Le but de ce projet est de coder un programme réalisant de la compression et décompression de texte. On se proposera de coder deux algorithmes
Plus en détailTP3 : Creation de tables 1 seance
Universite de Versailles IUT de Velizy - Algorithmique 2005/2006 TP3 : Creation de tables 1 seance Objectif : Creation et modication de tables dans une base de donnees. Avant de commencer ce TP, terminer
Plus en détailLa NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.
La NP-complétude Johanne Cohen PRISM/CNRS, Versailles, France. Références 1. Algorithm Design, Jon Kleinberg, Eva Tardos, Addison-Wesley, 2006. 2. Computers and Intractability : A Guide to the Theory of
Plus en détailChap III : Les tableaux
Chap III : Les tableaux Dans cette partie, on va étudier quelques structures de données de base tels que : Les tableaux (vecteur et matrice) Les chaînes de caractères LA STRUCTURE DE TABLEAU Introduction
Plus en détailALGORITHMIQUE ET PROGRAMMATION En C
Objectifs ALGORITHMIQUE ET PROGRAMMATION Une façon de raisonner Automatiser la résolution de problèmes Maîtriser les concepts de l algorithmique Pas faire des spécialistes d un langage Pierre TELLIER 2
Plus en détailObjets Combinatoires élementaires
Objets Combinatoires élementaires 0-0 Permutations Arrangements Permutations pour un multi-ensemble mots sous-ensemble à k éléments (Problème du choix) Compositions LE2I 04 1 Permutations Supposons que
Plus en détailIUT de Laval Année Universitaire 2008/2009. Fiche 1. - Logique -
IUT de Laval Année Universitaire 2008/2009 Département Informatique, 1ère année Mathématiques Discrètes Fiche 1 - Logique - 1 Logique Propositionnelle 1.1 Introduction Exercice 1 : Le professeur Leblond
Plus en détailSolutions du chapitre 4
Solutions du chapitre 4 Structures de contrôle: première partie 4.9 Identifiez et corrigez les erreurs (il peut y en avoir plus d une par segment de code) de chacune des proposition suivantes: a) if (
Plus en détailStructure fonctionnelle d un SGBD
Fichiers et Disques Structure fonctionnelle d un SGBD Requetes Optimiseur de requetes Operateurs relationnels Methodes d acces Gestion de tampon Gestion de disque BD 1 Fichiers et Disques Lecture : Transfert
Plus en détailDragon Naturally Speaking 13
Année 2015 Dragon Naturally Speaking 13 Guide premier pas Nathalie Macé / Grégoire Duval PROJET ORDYSCAN 1 Table des matières Introduction 3 Pourquoi utiliser Dragon Naturally Speaking avec les élèves
Plus en détailJava 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étailPréparation à l examen EFA en Macro
Préparation à l examen EFA en Macro Exercice sur les macros en Word / Excel Les questions suivantes doivent constituer un bref rafraîchissement et vous aider à situer le niveau de vos connaissances : Question
Plus en détailTraduction 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étailIndications pour une progression au CM1 et au CM2
Indications pour une progression au CM1 et au CM2 Objectif 1 Construire et utiliser de nouveaux nombres, plus précis que les entiers naturels pour mesurer les grandeurs continues. Introduction : Découvrir
Plus en détailManuel 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étailLangage SQL : créer et interroger une base
Langage SQL : créer et interroger une base Dans ce chapitre, nous revenons sur les principales requêtes de création de table et d accès aux données. Nous verrons aussi quelques fonctions d agrégation (MAX,
Plus en détailChapitre 5 : Flot maximal dans un graphe
Graphes et RO TELECOM Nancy A Chapitre 5 : Flot maximal dans un graphe J.-F. Scheid 1 Plan du chapitre I. Définitions 1 Graphe Graphe valué 3 Représentation d un graphe (matrice d incidence, matrice d
Plus en détailIN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C
IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en
Plus en détail1 Recherche en table par balayage
1 Recherche en table par balayage 1.1 Problème de la recherche en table Une table désigne une liste ou un tableau d éléments. Le problème de la recherche en table est celui de la recherche d un élément
Plus en détailUnité 6. Qu est ce que tu prends au petit au petit déjeuner?
L'amitié Unité 6 Qu est ce que tu prends au petit au petit déjeuner? 1) Ecoute la maîtresse et coche 2) Complète avec : un jus d orange de la confiture un chocolat du beurre du thé un gâteau du café des
Plus en détail1 les caractères des êtres humains.
Quelques rappels des classes précédentes ACTIVITÉ livre pages 8 et 9 : apprendre le bilan de la page 9 Les êtres vivants sont répartis en espèces. Chaque être vivant est formé de cellules. schéma d une
Plus en détailGuide 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étailSage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8
Sage 100 CRM - Guide de la Fusion Avancée Version 8 Mise à jour : 2015 version 8 Composition du progiciel Votre progiciel est composé d un boîtier de rangement comprenant : le cédérom sur lequel est enregistré
Plus en détailAccess et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite.
Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite. Mots-clés : Niveau : Bases de données relationnelles, Open Office, champs, relations,
Plus en détailLimites finies en un point
8 Limites finies en un point Pour ce chapitre, sauf précision contraire, I désigne une partie non vide de R et f une fonction définie sur I et à valeurs réelles ou complees. Là encore, les fonctions usuelles,
Plus en détailLe langage SQL pour Oracle - partie 1 : SQL comme LDD
Le langage SQL pour Oracle - partie 1 : SQL comme LDD 1 SQL : Introduction SQL : Structured Query Langage langage de gestion de bases de donn ees relationnelles pour Définir les données (LDD) interroger
Plus en détailCalcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.
1 Définitions, notations Calcul matriciel Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes. On utilise aussi la notation m n pour le
Plus en détail