Tables de hachage. Génération d adresses : code de hachage + fonction de compression CSI2510. Idée. Les tables de hachage sont des exemples du TAD MAP
|
|
- René Dupont
- il y a 8 ans
- Total affichages :
Transcription
1 Tables de hachage Tables de hachage: Idée et exemples Fonctions de hachage: Génération d adresses : code de hachage + fonction de compression Résolution des collisions: Chaînage Sondage linéaire Sondage quadratique Hachage double Idée Les tables de hachage sont des exemples du TAD AP Combine les avantages des tableaux et des listes chaînées On accède aux données emmagasinées à partir de leurs clés Les clés sont emmagasinées, mais ne sont pas triées! 1
2 Révision - Le TAD ap: méthodes findelement(k): si il y a un item avec clé k, retourner son élément, autrement retourner l'élément spécial NO_SUCH_KEY insertitem(k, o): insérer un item (k, o) removeelement(k): si il y a un item avec clé k, enlever-le et retourner son élément, autrement retourner l'élément spécial NO_SUCH_KEY size(), isempty() keys(), Elements() findallelements(k), removeallelements(k) Exemple Les rapports des étudiants sont emmagasinés dans un tableau utilisant les 7 chiffres d identification (ID) des étudiants comme indices. Si l ID est utilisé sans altération, le tableau doit avoir assez d espace pour loger les données des 10,000,000 étudiants. Alternative: les IDs des étudiants sont hachés pour produire un entier (entre par exemple 1 et 10,000) qui servira comme indice dans le tableau
3 Problème Puisque un nombre possible de 10,000,000 d entrées peuvent être insérées dans un tableau de seulement 10,000 emplacements, comment peut on garantir que 2 IDs ne soient pas emmagasinés dans un même endroit? Principe du hachage Problème 1 : Génération des adresses Construction d une fonction de hachage h(k i ) qui associe une adresse à une clé: Simple à calculer Distribue uniformément les éléments dans le tableau Problème 2 : Résolution des collisions Quelle stratégie à adopter lorsque la fonction de hachage attribue la même adresse à deux clés différentes 3
4 Pour toute clé k i : L idée: h ( k i ) = la position de k i dans le tableau h ( k i ) = pos avec h ( k i ) h ( k g ) pos: entier pour i g Chercher la clé k i O( 1 )! Insertion T Exemple d une table de hachage Hypothèse: toutes les clés ont des premières lettres différentes CAT, ELEPHANT, FOX, SKUNK, ZEBRA h (CAT) = 2 h (ELEPHANT) = 4 h (FOX) = 5 CAT ELEPHANT FOX SKUNK ZEBRA
5 Si nous voulons insérer deux clés qui ont la même première lettre COLLISION Exemple d une table de hachage CAT ELEPHANT FOX SKUNK ZEBRA Si nous voulons insérer deux clés qui ont la même première lettre COLLISION nous voulons insérer: CRICKET h (CRICKET) = 2 Exemple d une table de hachage position 2 est occupée CAT ELEPHANT FOX SKUNK ZEBRA 5
6 Fonction de hachage Une bonne fonction de hachage doit être facile et rapide à calculer et doit minimiser le risque de collision La fonction de hachage est la composition de deux fonctions: Le code de hachage h 1 (Hash code map): h 1 : clé entier La fonction de compression h 2 (Compression map): h 2 : entier [0, Taille du tableau - 1] On applique le code de hachage puis la fonction de compression: h(k i )=h 2 (h 1 (k i )) Code de hachage Le code de hachage réinterprète la clé comme un entier Un bon code de hachage : Déterministe: pour une même clé k on a toujours le même code h 1 (k) Doit fournir une bonne distribution : Le hachage des éléments similaires est discriminant; les clés similaires sont distribuées dans des cellules d indices éloignés 6
7 Définition: facteur de chargement d uns table de hachage a = n N # de éléments # de cellules Code de hachage - Exemples Adresse mémoire: Nous réinterprétons l'adresse mémoire de l'objet clé comme un entier (le code de hachage par défaut de tous les objets Java int 32bits) Integer cast (ex. byte, short, int, char) : Nous réinterprétons les bits de la clé comme un entier Somme des composantes (ex. long, double) : Nous représentons les bits de la clé dans avec des composantes de longueurs fixes (par ex., 16 ou 32 bits) et nous additionnons ces composantes (en négligeant les overflow) 7
8 Code de hachage - Exemples Accumulation polynômiale : Nous divisons les bits de la clé en une séquence de composantes de longueurs fixes (par ex., 8, 16 ou 32 bits) a 0 a 1 a n-1 Nous évaluons le polynôme : p(z) = a 0 + a 1 z + a 2 z a n-1 z n-1 pour une valeur fixe z (en négligeant les surplus) Surtout convenable pour les chaînes de caractères (strings) (par ex., le choix z = 33 donne au plus 6 collisions par case sur une série de mots anglais) La fonction de compression Le nombre des codes de hachage possibles peut dépasser la taille du tableau La fonction de compression transforme le résultat du code de hachage en le compressant dans la zone désirée La fonction de compression doit aussi être déterministe La fonction de compression doit maximiser la distribution et ainsi minimiser les collisions 8
9 La fonction de compression - Exemples Division: h 2 (y) = y mod N Le taille N du tableau de hachage est d'habitude choisie comme un nombre premier La fonction de compression - Exemples ultiplier, ajouter et diviser (AD): h 2 (y) = (ay + b) mod N a et b sont des nombres entiers non-négatifs tel que a mod N 0 Autrement, h 2 (y) = (ay + b) mod N = b 9
10 Fonction de hachage exemples Génération d adresse (a) N = la taille de la table r = log N h 1 (x): changement de type à entier a) h 2 (h 1 (x)): = sous-ensemble ( de r bits ) de h 1 (x) a.1) les r bits les moins significatifs a.2) les r bits les plus significatifs a.3) les r bits central Simple à calculer Ne garantit pas une distribution au hasard 10
11 Fonction de hachage Exemple a Le codage de lettres } 29 N = 2 9 r = 9 CHAT-- ot de 6 caracters (seulement pour cet exemple) A B C H T h( ) = C H A T - - Exemple a.1: les r bits les plus significatifs (r = 9) h( ) = Tous les animaux qui commence avec CH hachent a la même place. 11
12 Exemple a.2: les r bits les moins significatifs (r = 9) h( ) = Tous les animaux de 4 (ou moins) caractères hachent a la même place. Fonction de hachage Exemple b h 1 (x): changement au type entier b) h 2 (h 1 (x)): la somme des sous-ensembles de bits de h 1 (x) Simple à calculer Distribution plus aléatoire que a) 12
13 Exemple N = 2 9 C }2 9 r = 9 H T CHAT-- h( ) = Coding of letters A B b) plus significatifs centraux moins significatifs XOR Fonction de hachage Exemple c h 1 (x): changement au type entier c) h 2 (h 1 (x)): sous-ensembles (de r bits) de h 1 (x) 2 La multiplication est impliquée Distribution plus aléatoire que a) et b) 13
14 Fonction de hachage Exemple d d) h 2 (h 1 (x)): = h 1 (x) OD N La division est impliquée Distribution complètement aléatoire (surtout si N impair) Résolution de collision 14
15 Résolution des collisions Le facteur de charge d une table de hachage est la proportion des cases utilisées dans cette table: α =n/n n = nb. des cases occupées N = capacité du tableau Indicateur des performances de la table de hachage Deux approches: Chaînage Adressage ouvert (sondage lineaire, quadratique et double hachage) Résolution de collision Chaînage CAT DOG ELEPHANT FOX Ex: cricket, cccc CRICKET COYOTE Idéalement avec une excellente fonction de hachage chaque liste chaînée est de taille n/n findelement(k) removeelement(k) insertitem(k,o) O(n/N) ZEBRA 15
16 Résolution des collisions Adressage ouvert La collision est résolue en trouvant une place libre dans le tableau pour y insérer la nouvelle entrée. Cette nouvelle place est obtenue en sondant les cases du tableau On utilise une fonction de sondage s qu on compose avec la fonction de hachage h(k) pour trouver le nouveau indice (case) à vérifier; s(h(k),j) où {j=0..n et s(h(k),0)=h(k)} Le facteur de charge α dans ce cas est <1; A partir de α=75% on dit que la table de hachage est saturée et les collisions deviennent inévitables Résolution de collision (exemples) 1. Adressage ouvert CAT CRICKET ELEPHANT FOX Sondage linéaire COYOTE h (COYOTE) = 3 OCCUPÉE Nous considérons 4 OCCUPÉE Nous considérons 5 OCCUPÉE 6 OCCUPÉE 7 LIBRE! ZEBRA Les clés sont stockées dans des cellules contigües 16
17 Résolution de collision (1) Sondage linéaire h ( K i ), h ( K i ) + 1, h ( K i ) + 2, h ( K i ) + 3. h 0 ( K i ) h 1 ( K i ) h 2 ( K i ) h 3 ( K i ) Soit h 0 ( k i ) = h ( k i ) s(h(k i ),j) = h j (k i ) =( h ( k i ) + j ) mod N Recherche avec un sondage linéaire Considérons un tableau A de hachage qui utilise le sondage linéaire findelement(k) Nous commençons à la cellule h(k) Nous sondons les emplacements consécutifs jusqu'à ce que: Une entrée avec la clé k est trouvée, ou Une cellule vide est trouvée, ou N cellules ont été sondées sans succès Algorithm findelement(k) i h(k) p 0 repeat c A[i] if c = return NO_SUCH_KEY else if c.key () = k return c.element() else i (i + 1) mod N p p + 1 until p = N return NO_SUCH_KEY 17
18 Les mises à jour avec un sondage linéaire Pour contrôler les insertions et les suppressions, nous introduisons un objet spécial, appelé DISPONIBLE, qui remplace les éléments enlevés removeelement(k) Nous cherchons un item avec la clé k Si un tel élément (k, o) est trouvé, nous le remplaçons avec l objet spécial DISPONIBLE et nous retournons l'élément o Sinon, nous retournons NO_SUCH_KEY insert Item(k, o) Nous lançons une exception si la table est pleine Nous commençons à la cellule h(k) Nous sondons les cellules consécutives jusqu'à ce que: Une cellule i qui est vide ou emmagasine DISPONIBLE est trouvée, ou N cellules ont été infructueusement sondées Nous emmagasinons l item (k, o) dans la cellule i Performance du Sondage Linéaire Recherche: Le nombre moyen de sondages. C(α) Les résultats expérimentaux pour un tableau de hachage avec le facteur de chargement α α=n/n 0.1 (10%) 0.5 (50%) 0.75 (75%) 0.9 (90%) C(α )
19 Problème avec Sondage Linéaire : REGROUPEENT PRIAIRE (création de cellules contigües) CAT CRICKET ELEPHANT FOX CCC h (CAT) = 3 h 1 (CAT) = 4 h 2 = 5 h 3 = 6 h 4 = 7 h 5 = 8! Ici nous utilisons comme fonction de hachage l entier correspondant à la première lettre Idée: Utiliser un sondage non linéaire Résolution de collision (2) { h 0 (k i ) { h 1 (k i ) Sondage Quadratique h(k i ), h(k i )+1, h(k i )+4, h(k i )+9, s(h(k i ),j) = h j (k i ) =( h ( k i ) + j 2 ) mod N N: nombre premier mod est dur à calculer Visite seulement la moitié du tableau mais 19
20 Performance du Sondage Quadratique Les résultats expérimentaux pour un tableau de hachage avec le facteur de chargement α recherche α = n/n 0.1 (10%) 0.5 (50%) 0.75 (75%) 0.9 (90%) C(α ) Problème avec Sondage non-linéaire : REGROUPEENT SECONDAIRE Deux clés qui hachent au même endroit suivent le même chemin de collision Idée: Hachage Double 20
21 Ex: Résolution de collision Adressage ouvert: (3) Hachage Double { h(k i ), h(k i )+h'(k i ), h(k i )+2h'(k i ), h(k i )+3h'(k i ), h 0 h 1 h 2 h 3 h j (k i ) = [h(k i ) + j h (k i )] mod N OU Ex: h(k i ), h(k i )+h (k i ), h(k i )+4 h (k i ), h(k i )+9 h (k i ), h J (k i ) = [h(k i ) + j 2 h (k i )] mod N Choix de h( ) Choix de la fonction de hachage secondaire h ( ) N = 13 Un exemple de Hachage Double h(k) = k mod 13 h (k) = 7 - k mod 7 Insérer les clés 18, 41, 22, 44, 59, 32, 31, 73, dans cet ordre
22 Autre exemple de Hachage Double h(k i ) = k i mod N h (k i ) = k i div N N nombre premier! Performance de Hachage Double Les résultats expérimentaux pour un tableau de hachage avec le facteur de chargement α recherche α = n/n 0.1 (10%) 0.5 (50%) 0.75 (75%) 0.9 (90%) C(α )
23 Chaînage vs Adressage ouvert La méthode de chaînage utilise beaucoup de mémoire Au niveau théorique et expérimental la méthode de chainage est souvent aussi rapide que les méthodes d adressage ouvert Performance de Hachage: Résumé Dans le pire cas, les recherches, les insertions et les suppressions dans une table de hachage prennent O(n) Le pire cas arrive quand toutes les clés insérées dans le dictionnaire entrent en collision Le facteur de chargement α = n/n affecte les performances d une table de hachage Supposons que les valeurs de hachage sont comme des nombres aléatoires, il peut être montré que le nombre prévu de sondages pour une insertion avec adressage ouvert est 1 / (1 - α) Le temps prévu de toutes les opérations du TAD dictionnaire dans le tableau est O(1) En pratique, le hachage est très rapide si le facteur de chargement n'est pas près de 100% Les applications de tableau de hachage: Petite base de données compilateurs Cache des navigateurs P2P 23
6. 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étailTechniques de stockage. Techniques de stockage, P. Rigaux p.1/43
Techniques de stockage Techniques de stockage, P. Rigaux p.1/43 Techniques de stockage Contenu de ce cours : 1. Stockage de données. Supports, fonctionnement d un disque, technologie RAID 2. Organisation
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é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étailIFT3245. Simulation et modèles
IFT 3245 Simulation et modèles DIRO Université de Montréal Automne 2012 Tests statistiques L étude des propriétés théoriques d un générateur ne suffit; il estindispensable de recourir à des tests statistiques
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é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é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é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étailTD : Codage des images
TD : Codage des images Les navigateurs Web (Netscape, IE, Mozilla ) prennent en charge les contenus textuels (au format HTML) ainsi que les images fixes (GIF, JPG, PNG) ou animée (GIF animée). Comment
Plus en détailExercices sur les interfaces
Exercices sur les interfaces Fabrice Rossi 18 octobre 1999 1 Le type Object 1.1 Manipulations élémentaires Exercice 1.1 : Indiquer l affichage produit par le programme suivant : public class UpCast1 {
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étail6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr
6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr Interface d un SGF Implémentation d un SGF Gestion de la correspondance entre la structure logique et la structure
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é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étailLicence 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étailUtilitaires méconnus de StrataFrame
Utilitaires méconnus de StrataFrame Voici quelques classes d utilitaires, parmi ceux qui se trouvent dans le NameSpace MicroFour.StrataFrame.Tools. Cette liste n est pas exhaustive, et les regroupements
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é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é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é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étailComplexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation
Complexité Objectifs des calculs de complexité : - pouvoir prévoir le temps d'exécution d'un algorithme - pouvoir comparer deux algorithmes réalisant le même traitement Exemples : - si on lance le calcul
Plus en détaildonnées en connaissance et en actions?
1 Partie 2 : Présentation de la plateforme SPSS Modeler : Comment transformer vos données en connaissance et en actions? SPSS Modeler : l atelier de data mining Large gamme de techniques d analyse (algorithmes)
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étailChapitre 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é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étailAlgorithmique I. Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr. Algorithmique I 20-09-06 p.1/??
Algorithmique I Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr Télécom 2006/07 Algorithmique I 20-09-06 p.1/?? Organisation en Algorithmique 2 séances par semaine pendant 8 semaines. Enseignement
Plus en détailALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII
ALGORITHMIQUE II NOTION DE COMPLEXITE 1 2 Comment choisir entre différents algorithmes pour résoudre un même problème? Plusieurs critères de choix : Exactitude Simplicité Efficacité (but de ce chapitre)
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é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étailChapitre 7. Récurrences
Chapitre 7 Récurrences 333 Plan 1. Introduction 2. Applications 3. Classification des récurrences 4. Résolution de récurrences 5. Résumé et comparaisons Lectures conseillées : I MCS, chapitre 20. I Rosen,
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étail1 Introduction au codage
CélestineOscarDésiréAnatoleGastonEugène 1 Introduction au codage 1.1 Les ensembles L ensemble de tout les ensembles est Dieu lui-même. Kantor Ensemble des parties d un ensemble désigne l ensemble des sous-ensembles
Plus en détailExamen Médian - 1 heure 30
NF01 - Automne 2014 Examen Médian - 1 heure 30 Polycopié papier autorisé, autres documents interdits Calculatrices, téléphones, traducteurs et ordinateurs interdits! Utilisez trois copies séparées, une
Plus en détailCours 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étailPlan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7
Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin
Plus en détailCompression de Données - Algorithme de Huffman Document de Conception
ROLLET Samuel SALLE Jennifer Compression de Données - Algorithme de Huffman Document de Conception Projet d'algorithmique et Structure des Données 1 SOMMAIRE 1. Domaine d application....4 1.1 Objectifs
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étailStructure d un programme et Compilation Notions de classe et d objet Syntaxe
Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types
Plus en détailPROJET 1 : BASE DE DONNÉES REPARTIES
PROJET 1 : BASE DE DONNÉES REPARTIES GESTION D UNE BANQUE Elèves : David Bréchet Frédéric Jacot Charles Secrétan DONNÉES DU PROJET SSC - Bases de Données II Laboratoire de Bases de Données BD réparties
Plus en détailEPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE
EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0
Plus en détailLES DECIMALES DE π BERNARD EGGER
LES DECIMALES DE π BERNARD EGGER La génération de suites de nombres pseudo aléatoires est un enjeu essentiel pour la simulation. Si comme le dit B Ycard dans le cours écrit pour le logiciel SEL, «Paradoxalement,
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étailConventions d écriture et outils de mise au point
Logiciel de base Première année par alternance Responsable : Christophe Rippert Christophe.Rippert@Grenoble-INP.fr Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette
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étailInfo0101 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étailCorrigé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é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étail1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.
1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this
Plus en détailPlan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml
OCL Object Constraint Language Le langage de contraintes d'uml Plan 1. Introduction 2. Les principaux concepts d'ocl Object Constraint Language 1 Object Constraint Language 2 Exemple: une application bancaire
Plus en détailPour 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étailChapitre 2 Le problème de l unicité des solutions
Université Joseph Fourier UE MAT 127 Mathématiques année 2011-2012 Chapitre 2 Le problème de l unicité des solutions Ce que nous verrons dans ce chapitre : un exemple d équation différentielle y = f(y)
Plus en détailPackage Java.util Classe générique
Package Java.util Classe générique 1 Classe Vector La taille est dynamique: dès qu un tableau vectoriel est plein, sa taille est doublée, triplée, etc. automatiquement Les cases sont de type Object add(object
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étailThéorie et Codage de l Information (IF01) exercices 2013-2014. Paul Honeine Université de technologie de Troyes France
Théorie et Codage de l Information (IF01) exercices 2013-2014 Paul Honeine Université de technologie de Troyes France TD-1 Rappels de calculs de probabilités Exercice 1. On dispose d un jeu de 52 cartes
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é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é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é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étailProgrammer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)
Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes
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étailas Architecture des Systèmes d Information
Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes
Plus en détailLes arbres binaires de recherche
Institut Galilée Année 2010-2011 Algorithmique et arbres L2 TD 6 Les arbres binaires de recherche Type en C des arbres binaires (également utilisé pour les ABR) : typedef struct noeud_s { struct noeud_s
Plus en détailEstimation: intervalle de fluctuation et de confiance. Mars 2012. IREM: groupe Proba-Stat. Fluctuation. Confiance. dans les programmes comparaison
Estimation: intervalle de fluctuation et de confiance Mars 2012 IREM: groupe Proba-Stat Estimation Term.1 Intervalle de fluctuation connu : probabilité p, taille de l échantillon n but : estimer une fréquence
Plus en détailProbabilités sur un univers fini
[http://mp.cpgedupuydelome.fr] édité le 10 août 2015 Enoncés 1 Proailités sur un univers fini Evènements et langage ensemliste A quelle condition sur (a,, c, d) ]0, 1[ 4 existe-t-il une proailité P sur
Plus en détailUne ergonomie intuitive
Une ergonomie intuitive Les solutions de la ligne PME offrent une interface de travail proche des usages quotidiens en informatique. Leur ergonomie intuitive facilite la prise en main du logiciel. Une
Plus en détailQuantification Scalaire et Prédictive
Quantification Scalaire et Prédictive Marco Cagnazzo Département Traitement du Signal et des Images TELECOM ParisTech 7 Décembre 2012 M. Cagnazzo Quantification Scalaire et Prédictive 1/64 Plan Introduction
Plus en détailDU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION
145 NOTION DE PROGRAMMATION 1/ Complétons notre microprocesseur Nous avons, dans les leçons précédentes décrit un microprocesseur théorique, cependant il s inspire du 6800, premier microprocesseur conçu
Plus en détailSUPPORT DE COURS. Dr. Omari Mohammed Maître de Conférences Classe A Université d Adrar Courriel : omarinmt@gmail.com
Dr. Omari Mohammed Maître de Conférences Classe A Université d Adrar Courriel : omarinmt@gmail.com SUPPORT DE COURS Matière : Algorithmiques et Structures de Données 1 Niveau : 2 ème Année Licence en Informatique
Plus en détailProblèmes arithmétiques issus de la cryptographie reposant sur les réseaux
Problèmes arithmétiques issus de la cryptographie reposant sur les réseaux Damien Stehlé LIP CNRS/ENSL/INRIA/UCBL/U. Lyon Perpignan, Février 2011 Damien Stehlé Problèmes arithmétiques issus de la cryptographie
Plus en détailLe stockage local de données en HTML5
Le stockage local HTML5, pourquoi faire? Dans une optique de réduction des couts de maintenance, de déploiement, beaucoup d'entreprises ont fait le choix de migrer leurs applicatifs (comptables, commerciales,
Plus en détailCoup de Projecteur sur les Réseaux de Neurones
Coup de Projecteur sur les Réseaux de Neurones Les réseaux de neurones peuvent être utilisés pour des problèmes de prévision ou de classification. La représentation la plus populaire est le réseau multicouche
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étailProgrammation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle - 2012-2013 P. Bonnet
Programmation VBA Pierre BONNET 21 La programmation VBA Historiquement, la programmation sous Excel avait comme fonction d'automatiser une succession d'actions faites dans la feuille à l'aide de la souris.
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 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étailProgrammation 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étailOptimisations des SGBDR. Étude de cas : MySQL
Optimisations des SGBDR Étude de cas : MySQL Introduction Pourquoi optimiser son application? Introduction Pourquoi optimiser son application? 1. Gestion de gros volumes de données 2. Application critique
Plus en détailApplication 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é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étailBases de données documentaires et distribuées Cours NFE04
Bases de données documentaires et distribuées Cours NFE04 Introduction a la recherche d information Auteurs : Raphaël Fournier-S niehotta, Philippe Rigaux, Nicolas Travers prénom.nom@cnam.fr Département
Plus en détailARBRES BINAIRES DE RECHERCHE
ARBRES BINAIRES DE RECHERCHE Table de symboles Recherche : opération fondamentale données : éléments avec clés Type abstrait d une table de symboles (symbol table) ou dictionnaire Objets : ensembles d
Plus en détailQuelques Algorithmes simples
Quelques Algorithmes simples Irène Guessarian ig@liafa.jussieu.fr 10 janvier 2012 Je remercie Patrick Cegielski de son aide efficace pour la programmation Java ; la section sur le codage de Huffman a été
Plus en détailProgrammation Par Objets
Programmation Par Objets Structures de données package java.util B. Carré Polytech Lille 1 Tableaux et structures de données Tableaux «Objets» taille fixe type des éléments : primitif (homogène) ou objets
Plus en détailProgrammation parallèle et distribuée
Programmation parallèle et distribuée (GIF-4104/7104) 5a - (hiver 2015) Marc Parizeau, Département de génie électrique et de génie informatique Plan Données massives («big data») Architecture Hadoop distribution
Plus en détailCryptographie. Cours 3/8 - Chiffrement asymétrique
Cryptographie Cours 3/8 - Chiffrement asymétrique Plan du cours Différents types de cryptographie Cryptographie à clé publique Motivation Applications, caractéristiques Exemples: ElGamal, RSA Faiblesses,
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étailPaginer les données côté serveur, mettre en cache côté client
Paginer les données côté serveur, mettre en cache côté client Vous voulez sélectionner des lignes dans une table, mais celle-ci comporte trop de lignes pour qu il soit réaliste de les ramener en une seule
Plus en détailProgrammation parallèle et distribuée
Programmation parallèle et distribuée (GIF-4104/7104) 5a - (hiver 2014) Marc Parizeau, Département de génie électrique et de génie informatique Plan Mégadonnées («big data») Architecture Hadoop distribution
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étailOptimisation for Cloud Computing and Big Data
1 / 23 Optimisation for Cloud Computing and Big Data Olivier Beaumont, Lionel Eyraud-Dubois 2 / 23 Aujourd hui Problèmes de fiabilité on va oublier la dynamicité Placement de VMs en programmation par contraintes
Plus en détailProgrammation en Java IUT GEII (MC-II1) 1
Programmation en Java IUT GEII (MC-II1) 1 Christophe BLANC - Paul CHECCHIN IUT Montluçon Université Blaise Pascal Novembre 2009 Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1)
Plus en détailCours de Systèmes d Exploitation
Licence d informatique Synchronisation et Communication inter-processus Hafid Bourzoufi Université de Valenciennes - ISTV Introduction Les processus concurrents s exécutant dans le système d exploitation
Plus en détailProbabilités sur un univers fini
[http://mp.cpgedupuydelome.fr] édité le 7 août 204 Enoncés Probabilités sur un univers fini Evènements et langage ensembliste A quelle condition sur (a, b, c, d) ]0, [ 4 existe-t-il une probabilité P sur
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étailLe Langage De Description De Données(LDD)
Base de données Le Langage De Description De Données(LDD) Créer des tables Décrire les différents types de données utilisables pour les définitions de colonne Modifier la définition des tables Supprimer,
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étailIntroduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf
Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations
Plus en détailExceptions. 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