Chaines de caractères. Opérations de chaine. Spécification algébrique d un type de données. 1. Type abstrait
|
|
- Léonie Clément
- il y a 7 ans
- Total affichages :
Transcription
1 Chaines de caractères 1. Type abstrait 1. Type abstrait Définition indépendante de la représentation en mémoire. Introduction à la spécification algébrique des types Opérations de comparaison On définit une liste d opérations sur les objets de ce type 2. Algorithmes de recherche de sous-chaînes 3. Implémentation Opérations concaténation élément à la position i sous-chaine de a à b modifier l élément à la position i insérer/retirer à la position i modifier l élément à la position i comparaisons 1 de 43 2 de 43 Spécification algébrique d un type de données Opérations de chaine Une technique de spécification formelle d un type de données Constructeurs --> chaine -- chaine vide Liste des opérations ajout(caractère, chaine) --> chaine constructeurs : produisent un objet de ce type concat(chaine, chaine) --> chaine sélecteurs : donnent une propriété d un objet de ce type Sélecteurs Profil des opérations car_à (entier, chaine ) --> caractère types des paramètres longueur(chaine) --> entier type du résultat sous_chaine(entier, entier, chaine) --> chaine Axiomes définition de la sémantique des opérations Expression logique => Equivalence 3 de 43 4 de 43
2 Axiomes S : chaine T : chaine C : caractère I : entier longueur(vide) == 0 longueur(ajout(c, S)) == longueur(s) + 1 Axiomes (suite) I = 1 => car_à(i, ajout(c, S)) == C I > 1 => car_à(i, ajout(c, S)) == car_à(i 1, S) longueur(concat(s, T)) == longueur(s) + longueur(t) I longueur(s) => car_à(i, concat(s, T)) == car_à(i, S) I > longueur(s) => car_à(i, concat(s, T)) == car_à(i longueur(s), T) 5 de 43 6 de 43 Utilisation des axiomes Utilisation des axiomes (suite) Calculer la longueur d une chaine longeur(ajout( b, ajout( o, ajout( n, )))) Quel est le deuxième caractère de "bon"? longueur(ajout(c, S)) == longueur(s) + 1 car_à(2, ajout( b, ajout( o, ajout( n, )))) == longeur(ajout( o, ajout( n, ))) + 1 I > 1 => car_à(i, ajout(c, S)) == car_à(i 1, S) == longeur(ajout( n, )) == car_à(1, ajout( o, ajout( n, ))) == longueur( ) I = 1 => car_à(i, ajout(c, S)) == C longueur(vide) == 0 == == o 7 de 43 8 de 43
3 Transformer concat en ajout Définition des comparaisons de chaines Axiomes Opération d égalité stricte concat(ajout(c, S), T) == ajout(c, concat(s, T)) = : chaine, chaine --> booléen concat(vide, S) == S concat(s, vide) == S Axiomes de l égalité stricte = == vrai longueur(s) longueur(t) => S = T == faux Utilisation: "bon"+"jo" C1 = C2 => ajout(c1, S) = ajout(c2, T) == S = T concat(ajout( b, ajout( o, ajout( n, ))), ajout( j, ajout( o, ))) C1 C2 => ajout(c1, S) = ajout(c2, T) == faux == ajout( b, concat(ajout( o, ajout( n, )), ajout( j, ajout( o, )))) == ajout( b, ajout( o, concat(ajout( n, ), ajout( j, ajout( o, ))))) Donc == ajout( b, ajout( o, ajout( n, concat(, ajout( j, ajout( o, )))))) "swing " = "swing" == faux == ajout( b, ajout( o, ajout( n, ajout( j, ajout( o, ))))) "swing" = "swing" == vrai "swing" = "Swing" == faux On peut désormais considérer que les chaines ne sont faites que de ajout "mel" = "mél" == faux 9 de de 43 Egalité par degré Comparaison lexicographique On suppose qu il existe des degrés d égalité sur les caractères Il doit exister un ordre ( ) sur les caractères (avec des degrés) = 0 : égalité stricte Axiomes = 1 : des car. différents selon = 0 sont considérés égaux vide S == vr ai "e" = 1 "é" ==> "fréquence" = "frequence" C1 < C2 => ajout(c1, S) ajout(c2, T) == vr ai = 2 : encore plus large C1 = C2 => ajout(c1, S1) ajout(c2, S2) == S1 S2 "e" = 2 "E" ==> "Fréquence" = "frequence" C1 > C2 => ajout(c1, S) ajout(c2, T) == faux etc. Dépend de la langue! (voir: classe java.text.collator) Donc "Zot" "aot" (si "Z" "a") Mêmes axiomes que l égalité stricte mais en remplaçant = par = D "truc" "truc " (mais pas l inverse) "1205" "205" 11 de de 43
4 2. Algorithmes de recherche d une sous-chaîne Recherche directe Problème Chercher si x apparaît dans y On a une chaîne y de taille n. On suppose que les chaînes sont stockées dans des tableaux On cherche une occurence de x (de taille m n) dans y x : tableau de m caractères y : tableau de n caractères Algorithmes Recherche directe Algorithme Automate à états Karp-Rabin (Hachage ) Boyer Moore et beaucoup d autres : tester si x se trouve au début de y : x[0.. m 1] = y[0.. m-1] tester à partir de la position 1 de y : x[0.. m 1] = y[1.. m] tester à partir de la position 2 de y : x[0.. m 1] = y[2.. m+1] tester à partir de la position k de y : x[0.. m 1] = y[k.. k+m 1] 13 de de 43 Algorithme Automate à états i := 0; position = -1; pour i := 0 jusqu àn m { j := 0; tant quej < m et ensuite x[j] = y[i+j] { --- ici on sait que x[0.. j] = y[i.. i+j] j := j+1 } si j = m { position = i sortir} ; --- ici on sait que x[0.. m 1] y[u.. u+m 1] --- pour tous les u entre 0 et i } --- si position = -1 on est sûr que x[0.. m 1] y[u.. u+m 1] --- pour tous les u entre 0 et n m, --- donc que x ne se trouve pas dans y. Technique : 1. construire un automate à états qui reconnaît la chaîne cherchée. 2. donner la chaîne à examiner comme entrée de l automate 3. simuler le fonctionnemet de l automate Complexité : O(n x m) 15 de de 43
5 Exemple : chercher "boboa" Construction de l automate Automate : ε pas b b boboa a b b b ni o ni b pas b ni a ni b bobo b o o bo b bob b Chaque état de l automate correspond à un préfixe de la chaîne x à chercher ε, x[0], x[0..1], x[0..2], Il y a une transition q a > qa si qa est un préfixe de x sinon il y a une transition q a > p où p est le plus long suffixe de qa qui est un préfixe de x 17 de de 43 Représentation de l automate Une transition q a > r est représentée par A [ nq ] [ na ] = nr nq : numéro d ordre du préfixe q na : code (entier) du caractère a nr : numéro d ordre du préfixe r A [ j ] [ k ] contient l état dans lequel il faut aller quand on rencontre k dans l état j. Exemple A 0: a 1: b... 14: o... 0 : ε : b : bo : bob : bobo : boboa Exécution de l automate etat 0 ; pour j de 1 à n { etat A[ etat ][ y[j] ]; si etat = FINAL retourner j taille(x) + 1 // début } retourner 1 19 de de 43
6 Karp-Rabin (Hachage) Algorithme Pour accélérer la recherche on teste une signature de la chaîne Si h est une fonction Chaînes --> Entiers Si x = y[j j+m 1] alors h(x) = h(y[j j+m 1]) calculer une fois pour toutes hx = h(x) pour j de 0 à n m + 1 { calculer hy = h(y[j j+m 1]) si hy = hx tester l égalité entre x et y[j j+m 1] } Donc si h(x) h(y[j j+m 1]) alors x y[j j+m 1]. Effectivement plus rapide si le calcul de hy est plus rapide que la comparaison Et si la fonction h est non triviale. 21 de de 43 Karp-Rabin (suite) Boyer Moore Astuce : calculer h(y[j+1 j+m]) à partir de h(y[j j+m 1]) On prend comme fonction h h(y[0 m 1] = (y[0]2 m y[m 1]2 0 ) mod q (pour q assez grand) Idée: déplacer la "fenêtre" de test de plusieurs cases d un coup quand c est possible. Pour chaque position à laquelle intervient une différence on a un décalage spécifique. Deux cas : bon-suffixe et mauvais-caractère. On commence les comparaisons par la fin de x. On a alors h(y[j+1 j+m]) = y[j+1]2 m y[j+m]2 0 mod q = (h(y[j j+m 1]) 2(y[j]2 m 1 ) + y[j+m]) mod q une multiplication par 2 m 1, une multiplication par 2, une soustraction, une addition et un modulo. 23 de de 43
7 Bon suffixe Mauvais caractère : Le caractère b de y ne correspond pas au a de x. On cherche la prochaine sous-chaine u dans x. S il n y en a pas on cherche le plus grand préfixe v de x qui est un suffixe de u. Tableau : caractère --> décalage. Décalage final : MAX (décalage bon suffixe, décalage mauvais car.) Ces tableaux peuvent être calculés en temps O(m + taille alphabet) Etablir un tableau : no. du caractère différent --> décalage. 25 de de 43 Données de taille variable 3. Représentation des chaînes Dans les programmes on aimerait pouvoir écrire Solution bornée Réserver l espace nécessaire à la plus grande chaîne que l on va mettre dans X. X : [ taille : Entier, contenu : tableau [1... max] de Caractère ] X "bon"... X "bonjour" Quel espace mémoire réserver pour la variable X? 1. S "abc" 3 S a b c Solutions Chaînes bornées 2. S "hahahabc" S 8 h a h a h a b c Chaînes non bornées Mutabilité et immuabilité 27 de de 43
8 Problèmes comment fixer la taille maximale d une chaîne? gaspillage de place pour la plupart des valeurs exemple : stocker des mot français dans des chaînes Solution non bornée => allocation dynamique de la mémoire et déplacement des données (impossible d agrandir sur-place une zone mémoire) ma chaine taille maximale =~ 26 (anticonstitutionnellement) taille moyenne : probablement inférieure à 7 place inoccupée : env. 70% ma nouvelle chaine mécanisme d allocation tient à jour une carte des zones occupées et libres de la mémoire est capable de trouver (rapidement) une zone libre d une taille donnée => coût 29 de de 43 Allocation dynamique de la mémoire et références Structure de données Variable de type référence chaine = [ taille : Entier, contenu : référence à tableau de Caractère ] contient l adress d un objet (entier, réel, tableau, etc.) référence = adresse mémoire d un objet de type tableau de Caractères pointeur qui contient n importe quelle adresse mémoire (év ent. à l intérieur d un objet ou en dehors de tout objet) Procédure d allocation 1. S "abcxx" S 5 a b c x x nouveau T ( new T() en Java) trouve un emplacement libre pour stocker un objet de type T fournit l adresse de cet objet 2. S "wwf" S 3 w w f p.ex. X = nouveau Tableau de 20 caractères X 3. S "hahahabcd" (allocation d un nouveau tableau) S h a h a h a b c d 8 w w f 31 de de 43
9 Propriétés Dans les langages Pas de limitation de taille Bonne utilisation de la mémoire Allocation d un nouvel espace => coût (chercher une place en mémoire) => réduire le nombre de réallocations => allouer un espace n% plus grand que nécessaire En Java String x Toute variable de type String est une référence à un objet mémoire String. En C char* x Les variables de type référence sont indiquée par une * Ce ne sont pas de vraies références à des objets mais des pointeurs -- qui peuvent pointer absolument n importe où en mémoire. 33 de de 43 Représentation immuable L objet qui contient la chaîne ne peut changer, chaque fois que l on affecte une nouvelle valeur à une variable chaîne, il faut créer (allouer) un nouvel objet. 1. x "cos" 2. y x 3. x x + "mos" Propriétés Pas besoin de prévoir des chaînes extensibles (non bornées), une fois qu une chaîne a été créée elle ne bouge plus. Deux variables peuvent faire référence à la même chaîne en mémoire si elles on la même valeur pas de problème d alias. x (3) (1) "cosmos" "cos" (2) y Toute opération qui produit un résultat de type chaîne doit créer une nouvelle chaîne pour stocker le résultat => coût. String S = "*"; for (i=1; i<=10000; i++) { S = S + "*" } => allocations + recopies de nouvelles chaînes 35 de de 43
10 Représentation mutable Un objet chaîne peut changer de valeur. => les opérations ne produisent pas forcément de nouveaux objets de stockage 1. x "hop et boum" 2. y x 3. x "zip" moins de créations d objets Propriétés des objets mutables prévoir une stratégie d extension qui minimise les réallocations, (et reréférences) effets d alias A, B : chaînes mutables x (1) Chaîne (2) "hop et boum" "zip" (3) y A = "encore"; B = A; A = A + " vous"; --- B = "encore vous" 37 de de 43 Mutabilité: Stratégies d extension Allouer un nouvel objet uniquement quand c est nécessaire (extension) - allouer plus de place que nécessaire lors de l extension de chaînes - p.ex. allouer toujours k cellules de plus. - p.ex. allouer le double de la taille précédente. [1] s "une chaîne ici" [2] s "plus court" [3] s s +"! " [4] s "de plus en plus long" s "*" pour i de 1 à { s s + "*" } Mutabilité et Performances si on alloue systématiquement k cellules de plus que nécessaire : / k allocations en tout --> voir type StringBuffer en Java s de plus en plus long une chaîne ici plus court (4) (1, 2, 3) 39 de de 43
11 Implémentation des opérations Implémentation Concaténation(s1, s2) chaînes immuables : 1. allouer un objet pour le résultat 2. copier s1 3. copier s2 complexité: allocation( s1 + s2 ) + ( s1 + s2 )copier caractère chaînes mutables si ( s2 > espace libre dans l objet s1) { allouer un objet pour le résultat copier s1 } copier s2 Insertion(s1, s2, position) Chaînes immuables : comme la concaténation Chaînes mutables s il y a réallocation : comme pour les chaînes immuables sinon ( s1 position)copies + s2 copies Conclusion: impossible de traiter de grands textes de manière efficace complexité: pire cas : comme chaînes immuables, meilleur cas : ( s1 ) copier caractèe 41 de de 43 Représentation - Résumé Les options de représentation sont : mutable immuable borné constantes non bornée avec référence peu d allocation/déallocation mémoire attention aux alias pas d alias bcp allocations mémoire 43 de 43
Définitions. Numéro à préciser. (Durée : )
Numéro à préciser (Durée : ) On étudie dans ce problème l ordre lexicographique pour les mots sur un alphabet fini et plusieurs constructions des cycles de De Bruijn. Les trois parties sont largement indépendantes.
Plus en détailUtilisation d objets : String et ArrayList
Chapitre 6 Utilisation d objets : String et ArrayList Dans ce chapitre, nous allons aborder l utilisation d objets de deux classes prédéfinies de Java d usage très courant. La première, nous l utilisons
Plus en détailSuivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)
Modularité Extensions Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs) généricité modules de première classe : peuvent être
Plus en détail6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses
6. Hachage Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses PLAN Définition Fonctions de Hachage Méthodes de résolution de collisions Estimation
Plus en détailUEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.
UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases
Plus en détailTP 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é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é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étailInformatique Générale
Informatique Générale Guillaume Hutzler Laboratoire IBISC (Informatique Biologie Intégrative et Systèmes Complexes) guillaume.hutzler@ibisc.univ-evry.fr Cours Dokeos 625 http://www.ens.univ-evry.fr/modx/dokeos.html
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étailCapacité d un canal Second Théorème de Shannon. Théorie de l information 1/34
Capacité d un canal Second Théorème de Shannon Théorie de l information 1/34 Plan du cours 1. Canaux discrets sans mémoire, exemples ; 2. Capacité ; 3. Canaux symétriques ; 4. Codage de canal ; 5. Second
Plus en détailChapitre 10. Les interfaces Comparable et Comparator 1
Chapitre 10: Les interfaces Comparable et Comparator 1/5 Chapitre 10 Les interfaces Comparable et Comparator 1 1 Ce chapitre a été extrait du document "Objets, Algorithmes, Patterns" de [René Lalement],
Plus en dé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étailPlus courts chemins, programmation dynamique
1 Plus courts chemins, programmation dynamique 1. Plus courts chemins à partir d un sommet 2. Plus courts chemins entre tous les sommets 3. Semi-anneau 4. Programmation dynamique 5. Applications à la bio-informatique
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étailFORD C-MAX + FORD GRAND C-MAX CMAX_Main_Cover_2013_V3.indd 1-3 22/08/2012 15:12
1 2 3 4 5 6 7 8 9 10 12,999,976 km 9,136,765 km 1,276,765 km 499,892 km 245,066 km 112,907 km 36,765 km 24,159 km 7899 km 2408 km 76 km 12 14 16 1 12 7 3 1 6 2 5 4 3 11 9 10 8 18 20 21 22 23 24 26 28 30
Plus en détailExercices - Polynômes : corrigé. Opérations sur les polynômes
Opérations sur les polynômes Exercice 1 - Carré - L1/Math Sup - Si P = Q est le carré d un polynôme, alors Q est nécessairement de degré, et son coefficient dominant est égal à 1. On peut donc écrire Q(X)
Plus en détailCRYPTOGRAPHIE. Signature électronique. E. Bresson. Emmanuel.Bresson@sgdn.gouv.fr. SGDN/DCSSI Laboratoire de cryptographie
CRYPTOGRAPHIE Signature électronique E. Bresson SGDN/DCSSI Laboratoire de cryptographie Emmanuel.Bresson@sgdn.gouv.fr I. SIGNATURE ÉLECTRONIQUE I.1. GÉNÉRALITÉS Organisation de la section «GÉNÉRALITÉS»
Plus en détailProgrammation 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étailTable des matières. Introduction
Table des matières 1 Formalisation des virus informatiques 2 1.1 Les machines de Turing........................ 2 1.2 Formalisation de Fred Cohen..................... 2 1.2.1 Définition d un virus informatique..............
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é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étailArchitecture des Systèmes d Information Architecture des Systèmes d Information
Plan... Tableaux et tris I3 - Algorithmique et programmation 1 Rappels Nicol Delestre 2 Tableaux à n dimensions 3 Initiation aux tris Tableaux - v2.0.1 1 / 27 Tableaux - v2.0.1 2 / 27 Rappels : tableau
Plus en détailCorrection TD algorithmique
Affectation Correction TD algorithmique Exercice 1 algo affect1b b 5 a b+1 b 2 Il vaut faire passer la notion de variable et la notion de stockage mémoire. Une variable n a donc pas d historique et à un
Plus en détailDe même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que
Introduction. On suppose connus les ensembles N (des entiers naturels), Z des entiers relatifs et Q (des nombres rationnels). On s est rendu compte, depuis l antiquité, que l on ne peut pas tout mesurer
Plus en détailTP3 : Manipulation et implantation de systèmes de fichiers 1
École Normale Supérieure Systèmes et réseaux Année 2012-2013 TP3 : Manipulation et implantation de systèmes de fichiers 1 1 Répertoire de travail courant Le but de l exercice est d écrire une commande
Plus en détailÉPREUVE COMMUNE DE TIPE 2008 - Partie D
ÉPREUVE COMMUNE DE TIPE 2008 - Partie D TITRE : Les Fonctions de Hachage Temps de préparation :.. 2 h 15 minutes Temps de présentation devant le jury :.10 minutes Entretien avec le jury :..10 minutes GUIDE
Plus en détailRaisonnement par récurrence Suites numériques
Chapitre 1 Raisonnement par récurrence Suites numériques Terminale S Ce que dit le programme : CONTENUS CAPACITÉS ATTENDUES COMMENTAIRES Raisonnement par récurrence. Limite finie ou infinie d une suite.
Plus en détailCompression Compression par dictionnaires
Compression Compression par dictionnaires E. Jeandel Emmanuel.Jeandel at lif.univ-mrs.fr E. Jeandel, Lif CompressionCompression par dictionnaires 1/25 Compression par dictionnaire Principe : Avoir une
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étailClasses et Objets en Ocaml.
Classes et Objets en Ocaml. Didier Rémy 2001-2002 http://cristal.inria.fr/ remy/mot/2/ http://www.enseignement.polytechnique.fr/profs/informatique/didier.remy/mot/2/ Cours Exercices Slide 1 1. Objets 2.
Plus en détailCours de Programmation 2
Cours de Programmation 2 Programmation à moyenne et large échelle 1. Programmation modulaire 2. Programmation orientée objet 3. Programmation concurrente, distribuée 4. Programmation monadique 5. Les programmes
Plus en détailOCL - Object Constraint Language
OCL - Object Constraint Language Laëtitia Matignon laetitia.matignon@univ-lyon1.fr Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object
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étailDM 1 : Montre Autoquartz ETA
Lycée Masséna DM 1 : Montre Autoquartz ETA 1 Présentation de la montre L essor de l électronique nomade s accompagne d un besoin accru de sources d énergies miniaturisées. Les contraintes imposées à ces
Plus en détailAlgorithmique et Programmation, IMA
Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions
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étailDifferential Synchronization
Differential Synchronization Neil Fraser Google 2009 BENA Pierrick CLEMENT Lucien DIARRA Thiemoko 2 Plan Introduction Stratégies de synchronisation Synchronisation différentielle Vue d ensemble Dual Shadow
Plus en détailGrandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test
Grandes lignes Analyseur Statique de logiciels Temps RÉel Embarqués École Polytechnique École Normale Supérieure Mercredi 18 juillet 2005 1 Présentation d 2 Cadre théorique de l interprétation abstraite
Plus en détailJean-Philippe Préaux http://www.i2m.univ-amu.fr/~preaux
Colonies de fourmis Comment procèdent les colonies de fourmi pour déterminer un chemin presque géodésique de la fourmilière à un stock de nourriture? Les premières fourmis se déplacent au hasard. Les fourmis
Plus en détailFiche n 1 : Téléverser une ressource dans la plateforme
Fiche n 1 : Téléverser une ressource dans la plateforme 1 er temps : Mettre ses fichiers sur la plateforme (dans son espace personnel) Sur la page d accueil de la plate-forme Formagri http://efoad.educagri.fr,
Plus en détailDéroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009
Déroulement Algorithmes et structures de données Cours 1 et 2 Patrick Reuter http://www.labri.fr/~preuter/asd2009 CM mercredi de 8h00 à 9h00 (Amphi Bât. E, 3 ème étage) ED - Groupe 3 : mercredi, 10h30
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étail3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes
PLAN CYCLE DE VIE D'UN LOGICIEL EXPRESSION DES BESOINS SPÉCIFICATIONS DU LOGICIEL CONCEPTION DU LOGICIEL LA PROGRAMMATION TESTS ET MISE AU POINT DOCUMENTATION CONCLUSION C.Crochepeyre Génie Logiciel Diapason
Plus en détailManuel d'installation
CyberMUT P@iement P@iement CIC P@iement OBC SERVICE SECURISE DE PAIEMENT INTERNET PAR CARTE BANCAIRE (Sécurisé par le protocole SSL) Manuel d'installation (Document 2/2) EURO Sp.Tech. 1.2.8 Octobre 2001
Plus en détailL ALGORITHMIQUE. Algorithme
L ALGORITHMIQUE Inspirée par l informatique, cette démarche permet de résoudre beaucoup de problèmes. Quelques algorithmes ont été vus en 3 ième et cette année, au cours de leçons, nous verrons quelques
Plus en détailCorrigé des TD 1 à 5
Corrigé des TD 1 à 5 1 Premier Contact 1.1 Somme des n premiers entiers 1 (* Somme des n premiers entiers *) 2 program somme_entiers; n, i, somme: integer; 8 (* saisie du nombre n *) write( Saisissez un
Plus en détailDébuter avec EXPRESS. Alain Plantec. 1 Schema 2
Débuter avec EXPRESS Alain Plantec Table des matières 1 Schema 2 2 Entité 2 2.1 Attributs simples................................................ 2 2.2 Attributs collection...............................................
Plus en détailÉ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étailUtilisez Toucan portable pour vos sauvegardes
Utilisez Toucan portable pour vos sauvegardes Préambule Toucan est un logiciel libre et gratuit, permettant de réaliser des sauvegardes ou synchronisation de vos données. Il est possible d automatiser
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étailUniversité Bordeaux 1, Licence Semestre 3 - Algorithmes et struct...
Université Bordeaux 1 table des matières Licence Semestre 3 - Algorithmes et structures de données 1 Dernière mise à jour effectuée le 23 Octobre 2013 Piles et Files Déitions Primitives de piles, exemples
Plus en détailNIMEGUE V3. Fiche technique 3.07 : Sauvegarde / Restauration manuelle
NIMEGUE V3 Fiche technique 3.07 : Sauvegarde / Restauration manuelle Version au 2 mai 2011 Toute donnée mémorisée sur un ordinateur, quelque soit le support, peut-être supprimée/effacée suite à un dysfonctionnement
Plus en détailLogiciel Libre Cours 3 Fondements: Génie Logiciel
Logiciel Libre Cours 3 Fondements: Génie Logiciel Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/
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étailKM2 W1 EVC1 M3~ Manuel AUTOMSIM API 24V. BP Dcy 1MINI 1MAXI. www.irai.com
L1 L2 L3 F1 M1 KM2 0V U1 V1 M3~ W1 EVC1 Manuel AUTOMSIM 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 API 24V 0 1 2 C1MINI BP Dcy C1MAXI 1MAXI 1MINI EVC1 www.irai.com INTRODUCTION... 5 INSTALLATION... 6 PRISE EN
Plus en détailManuel v. 6sV Simplement surfer. Simplement cliquer. Simplement bloguer.
Manuel v. 6sV Simplement surfer. Simplement cliquer. Simplement bloguer. Sommaire 1. Se loguer 2. Ta place de travail (Tableau de bord) 3. Créer ton article 3.1«Ajouter» un article 3.2 Ta feuille de papier
Plus en détailApproche Contract First
Exemple HelpDesk Approche Contract First Développement d un premier web service en utilisant l approche contract first (ou WSDL First) Écriture du wsdl avant d écrire le code java Autre possibilité implementation
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étailSouad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/
Recherche opérationnelle Les démonstrations et les exemples seront traités en cours Souad EL Bernoussi Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/ Table des matières 1 Programmation
Plus en détailDérivation : Résumé de cours et méthodes
Dérivation : Résumé de cours et métodes Nombre dérivé - Fonction dérivée : DÉFINITION (a + ) (a) Etant donné est une onction déinie sur un intervalle I contenant le réel a, est dérivable en a si tend vers
Plus en détailGuide d implémentation. Réussir l intégration de Systempay
Guide d implémentation - Interface avec la plateforme de paiement - Réussir l intégration de Systempay Version 1.4b Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa
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étailGestion réactive des opérations de maintien et d actualisation réglementaire et technologique des systèmes complexes.
Gestion réactive des opérations de maintien et d actualisation réglementaire et technologique des systèmes complexes. LE QUERE Yann, SEVAUX Marc, TRENTESAUX Damien, TAHON Christian Equipe Systèmes de Production
Plus en détailINF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies
INF 232: Langages et Automates Travaux Dirigés Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies Année Académique 2013-2014 Année Académique 2013-2014 UNIVERSITÉ JOSEPH
Plus en détailAnne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2
Anne Tasso Java Le livre de premier langage 10 e édition Avec 109 exercices corrigés Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Table des matières Avant-propos Organisation de l ouvrage..............................
Plus en détailTD3: 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é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étailProjet gestion d'objets dupliqués
Projet gestion d'objets dupliqués Daniel Hagimont Daniel.Hagimont@enseeiht.fr 1 Projet Service de gestion d'objets dupliqués Mise en cohérence lors de la prise d'un verrou sur un objet Pas de verrous imbriqués
Plus en détailINTRODUCTION 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étailDé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étailORDINATEUR DOSSIERS FICHIERS
SÉANCE INFORMATIQUE N 1 ORDINATEUR DOSSIERS FICHIERS Geo-phile : il y a un lien vers un site de définition des termes informatiques. 1/ ORDINATEUR - Disque dur : capacité exponentielle : actuellement plus
Plus en détailUne dérivation du paradigme de réécriture de multiensembles pour l'architecture de processeur graphique GPU
Une dérivation du paradigme de réécriture de multiensembles pour l'architecture de processeur graphique GPU Gabriel Antoine Louis Paillard Ce travail a eu le soutien de la CAPES, agence brésilienne pour
Plus en détailGESTION DE L'ORDINATEUR
FORMATION DES NOUVEAUX DIRECTEURS GESTION DE L'ORDINATEUR L'EXPLORATEUR WINDOWS Février 2012 B. Lorne Atice CHY1 Gestion de l'ordinateur Le système d'exploitation Il ne faut pas confondre : -Système d'exploitation
Plus en détailPowershell. Sommaire. 1) Étude du cahier des charges 2) Veille technologique 3) Administration sur site 4) Automatisation des tâches d administration
Powershell Powershell Sommaire 1) Étude du cahier des charges 2) Veille technologique 3) Administration sur site 4) Automatisation des tâches d administration 1) Étude du cahier des charges (1.1.1) La
Plus en détailProgrammation Linéaire - Cours 1
Programmation Linéaire - Cours 1 P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Université Bordeaux 1 Bât A33 - Bur 265 Ouvrages de référence V. Chvátal - Linear Programming, W.H.Freeman, New York, 1983.
Plus en détailTP 1. Prise en main du langage Python
TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer
Plus en détailLa programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique
La programmation linéaire : une introduction Qu est-ce qu un programme linéaire? Qu est-ce qu un programme linéaire? Exemples : allocation de ressources problème de recouvrement Hypothèses de la programmation
Plus en détailCours No 3 : Identificateurs, Fonctions, Premières Structures de contrôle.
Université Montpellier-II UFR des Sciences - Département Informatique - Licence Informatique UE GLIN302 - Programmation Applicative et Récursive Cours No 3 : Identificateurs, Fonctions, Premières Structures
Plus en détailAlgorithmique et structures de données I
Algorithmique et structures de données I Riadh Ben Messaoud Université 7 novembre à Carthage Faculté des Sciences Économiques et de Gestion de Nabeul 1ère année Licence Fondamentale IAG 1ère année Licence
Plus en détailD UN BON REFERENCEMENT
#QUICK GUIDE LES PRINCIPES DE BASE D UN BON REFERENCEMENT EDITION DECEMBRE 2013 // UNE PUBLICATION 1 LES PRINCIPES DE BASE D UN BON RÉFÉRENCEMENT RÉFÉRENCEMENT Introduction Vous attendez beaucoup de votre
Plus en détailLes différents types de données et leurs opérations de base
Séquence 2 Les différents types de données et leurs opérations de base Contenu Présentation générale... 21 Partie 1 Les 3 familles de données et l'opération d'affectation... 22 1. Les trois familles de
Plus en détailObjets et Programmation. origine des langages orientés-objet
Objets et Programmation origine des langages orientés-objet modularité, encapsulation objets, classes, messages exemples en Java héritage, liaison dynamique G. Falquet, Th. Estier CUI Université de Genève
Plus en détailReprésentation des Nombres
Chapitre 5 Représentation des Nombres 5. Representation des entiers 5.. Principe des représentations en base b Base L entier écrit 344 correspond a 3 mille + 4 cent + dix + 4. Plus généralement a n a n...
Plus en détailLes chaînes de caractères
Les chaînes de caractères Dans un programme informatique, les chaînes de caractères servent à stocker les informations non numériques comme par exemple une liste de nom de personne ou des adresses. Il
Plus en détailCryptographie et fonctions à sens unique
Cryptographie et fonctions à sens unique Pierre Rouchon Centre Automatique et Systèmes Mines ParisTech pierre.rouchon@mines-paristech.fr Octobre 2012 P.Rouchon (Mines ParisTech) Cryptographie et fonctions
Plus en détailBaccalauréat ES/L Amérique du Sud 21 novembre 2013
Baccalauréat ES/L Amérique du Sud 21 novembre 2013 A. P. M. E. P. EXERCICE 1 Commun à tous les candidats 5 points Une entreprise informatique produit et vend des clés USB. La vente de ces clés est réalisée
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é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étailProgrammation Orientée Objet Java
Programmation Orientée Objet Java Bertrand Estellon Département Informatique et Interactions Aix-Marseille Université 12 novembre 2014 Bertrand Estellon (DII AMU) Programmation Orientée Objet Java 12 novembre
Plus en détailTP1 : 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étailTransférer une licence AutoCAD monoposte
TRUCS & ASTUCES AutoCAD Transférer une licence AutoCAD monoposte Il peut vous arriver de devoir transférer votre licence Auto- CAD d un poste à un autre poste pour plusieurs raisons : soit parce que vous
Plus en détailPlateforme 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étailAlgorithmes récursifs
Licence 1 MASS - Algorithmique et Calcul Formel S. Verel, M.-E. Voge www.i3s.unice.fr/ verel 23 mars 2007 Objectifs de la séance 3 écrire des algorithmes récursifs avec un seul test rechercher un élément
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é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étailOlivier Mondet http://unidentified-one.net
T-GSI Ch.4 Le Langage SQL LDD, LCD Cet exercice guidé reprend le plan suivis lors de l intervention de formation faite pour l académie de Versailles. L objectif principal visait en la présentation du langage
Plus en détailCryptographie RSA. Introduction Opérations Attaques. Cryptographie RSA NGUYEN Tuong Lan - LIU Yi 1
Cryptographie RSA Introduction Opérations Attaques Cryptographie RSA NGUYEN Tuong Lan - LIU Yi 1 Introduction Historique: Rivest Shamir Adleman ou RSA est un algorithme asymétrique de cryptographie à clé
Plus en détailGénie Logiciel avec Ada. 4 février 2013
Génie Logiciel 4 février 2013 Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires I. Principes II. Notions propres à la POO I. Principes Chapitre
Plus en détailDécouverte de Python
Découverte de Python Python est un des langages informatiques au programme des concours à partir de la session 2015. Ce tutoriel vous permettra de vous mettre à peu près à niveau de ce qui a été fait en
Plus en détail