Algo_E1 : Piles & Files à l aide de tableaux
|
|
- André Meloche
- il y a 7 ans
- Total affichages :
Transcription
1 Algo_E1 : Piles & Files à l aide de tableaux 1.1 Exercice 1 : Pile (LIFO : «last in, first out») On désire réaliser la notion de pile à l'aide d'une structure de données définie comme suit : enreg Tpile Tobj Elts[MAX] entier NbElts Le type Tpile est un enregistrement comportant 2 champs : Elts : tableau devant contenir les éléments de la pile. La capacité de la pile est définie par MAX. Le type des éléments est Tobj. NbElts : nombre d éléments dans la pile. On supposera que les éléments de la pile sont rangés dans l ordre des indices croissants. Pour une pile vide, NbElts doit être égal à zéro. 1.1.a) Proposez un jeu d'algorithmes pour les opérations suivantes : procédure initialiser (résultat Tpile pile) procédure empiler (résultat Tpile pile, valeur Tobj E) procédure depiler (résultat Tpile pile, résultat Tobj E) fonction pilevide (valeur Tpile pile) retour entier fonction pilepleine (valeur Tpile pile) retour entier Pour chacun des algorithmes donnés, on indiquera leur complexité en fonction du nombre d'éléments dans la pile. On rappelle que dans une pile, le dernier élément ajouté doit être le premier à sortir. 1.1.b) Ecrire un algorithme vérifiant l existence d un élément de valeur e dans la pile dont les éléments sont mémorisés triés. Ce traitement devra être basé sur une recherche dichotomique de l indice de l élément du tableau contenant la valeur e (la recherche pouvant ne pas aboutir si un tel élément n existe pas). Le principe d une telle recherche sur un tableau T de N éléments numérotés de 1 à N est le suivant : - on accède à l élément i = N / 2 (division entière de N par 2) ; - si T[i] = e, on a gagné ; - si T[i] < e, on itère la recherche aux éléments (i + 1).. N du tableau ; - enfin, si T[i] > e, on itère le processus de recherche aux éléments 1.. (i - 1) ; - on arrête les itérations lorsque l intervalle de recherche est réduit à 1 élément. Donner la complexité de cet algorithme. Exos_Algo_06/ Page 1
2 1.2 Exercice 2 : File (FIFO : «first in, first out») On veut maintenant réaliser la notion de file à l'aide de la structure de données définie ci-après : enreg Tfile Tobj Elts[MAX] entier id entier NbElts Les 3 champs du type Tfile ont la signification suivante : Elts : tableau devant contenir les éléments de la file ; la capacité de la file est définie par MAX. Id : indice de l élément le plus ancien dans la file si NbElts est non nul. La file est gérée comme un buffer circulaire ; le contenu de la file est défini par les indices compris entre Id et (Id+Nbelts) mod MAX (a mod b désignant le reste de la division entière de a par b). Nbelts : nombre d éléments dans la file (0 pour une file vide). Proposez un jeu d'algorithmes pour les opérations suivantes : procédure initialiser (résultat Tfile file) procédure ajouter (résultat Tfile file, valeur Tobj E) procédure retirer (résultat Tfile file, résultat Tobj E) fonction filevide (valeur Tfile file) retour entier fonction filepleine (valeur Tfile file) retour entier Pour chacun des algorithmes donnés, on indiquera leur complexité en fonction du nombre d'éléments dans la file. On rappelle que dans une file, le premier élément ajouté doit être le premier à en sortir. 1.3 Exercice 3 : File d attente avec priorité Dans cet exercice, on suppose que tout élément est muni d'une priorité représentée par un entier qui doit être précisé au moment de l'ajout de l'élément dans la file. La procédure de retrait doit maintenant chercher l'élément le plus prioritaire. On s'intéresse à une implémentation efficace des opérations. La file d'attente sera définie par 2 structures de données : Telt et TfilePrio enreg Telt entier priorite Tobj obj Chaque élément de la file d'attente est décrit par un enregistrement de type Telt comportant 2 champs : priorite : entier représentant la priorité de l'élément obj : une valeur d'un type Tobj non précisé décrivant l'élément Exos_Algo_06/ Page 2
3 enreg TfilePrio Telt elts[max] entier nbelts Donnez une implémentation des fonctions ajouter et retirer dans les 2 cas suivants : 1. On décide pour la procédure ajouter de ranger les éléments dans un ordre quelconque. Ce qui implique que la procédure retirer doit parcourir la liste pour extraire l'élément prioritaire, puis tasser le tableau pour qu'il n'y ait pas de trous. 2. On décide dans la procédure ajouter de maintenir les éléments par ordre de priorité croissante. Les procédures ajouter et retirer sont déclarées comme suit : procédure ajouter (résultat TfilePrio file, valeur entier prio, valeur Tobj obj) procédure retirer (résultat TfilePrio file, résultat Tobj obj) Quelle est la complexité des algorithmes obtenus dans les 2 cas? 1.4 Arbres binaires équilibrés n1 racine n2 n3 n4 père n5 n6 n7 n8 n9 n10 fils n11 n12 n13 Figure 1 : notion d'arbre Un arbre est constitué d un ensemble d'éléments appelés nœuds reliés entre eux par une relation binaire. Un nœud particulier porte le nom de racine. Tout nœud autre que la racine est relié à un autre nœud appelé père. On dit aussi que le premier nœud est un fils du second. Un arbre généalogique est un exemple parfait d'arbre : un nœud peut avoir plusieurs fils, mais ne peut avoir qu'un seul père. Les nœuds qui n'ont pas de fils sont appelés les feuilles de l'arbre. Exos_Algo_06/ Page 3
4 Le degré d'un nœud est le nombre de fils qu'il possède. La profondeur d'un nœud est la longueur du chemin qui le sépare de la racine. On dit qu'un arbre est équilibré si les profondeurs des feuilles ne diffèrent pas de plus de 1. Un arbre binaire est un arbre dans lequel tout nœud a au plus 2 fils. Une manière d implémenter un arbre binaire équilibré à l'aide d'un tableau est de procéder comme suit : la racine est placée en position 0 un noeud en position i a son fils gauche en position 2*i+1, et son fils droit en position 2*i+2 Parcourir le tableau dans l'ordre croissant des indices revient à parcourir l'arbre de la racine vers les feuilles en largeur d'abord : c'est à dire qu'on parcourt tous les nœuds d'un niveau avant de passer au niveau suivant. Exemple : 58(0) 20(1) 35(2) 11(3) 15(4) 23(5) 19(6) 7(7) 9(8) 11(10) 6(9) 16(11) 3(12) 2(13) 17(14) indices file Figure 1 : Exemple d'arbre binaire vérifiant la propriété de tas Propriété d un tas : Supposons que chaque nœud de l'arbre soit muni d'une priorité (entier positif). On dira qu un arbre binaire vérifie la propriété de tas si la priorité d'un nœud est toujours supérieure à celle de ses fils. C est à dire : Pour i compris entre 0 et (Nb/2) 1 on a : priorite(i) >= priorite(2*i+1) et priorite(i) >= priorite(2*i+2) Exos_Algo_06/ Page 4
5 En particulier, la racine possède la plus grande priorité parmi tous les nœuds de l'arbre... Exercice : application à la file d'attente avec priorité On utilise les structures de données définies dans l'exercice 1.3 (file d attente avec priorité). On décide de considérer les éléments du tableau comme les nœuds d'un arbre équilibré vérifiant la propriété de tas. Ajouter un élément à la suite du tableau revient à ajouter une feuille à l'arbre, mais alors la propriété de tas n'est plus nécessairement vérifiée : il faut alors échanger la position du nœud avec celle de son père s il y a violation de la propriété de tas. Le processus doit être répété avec le père jusqu'à ce qu'il n'y ait plus violation, ou jusqu'à la racine. Retirer un élément revient à en extraire la racine, puisque l'arbre vérifie la propriété de tas. Mais alors on n a plus de racine. On remplacera la racine par le dernier élément du tableau (qui est une feuille). Ce remplacement détruit la propriété de tas. Il faut alors tester si la nouvelle racine a une priorité moindre que le maximum des priorités de ses fils, et faire l'échange si c'est le cas. Lorsqu un tel échange est réalisé, le processus doit être répété jusqu'à ce qu'il n'y ait plus violation, ou jusqu'à ce qu'on ait atteint les feuilles de l'arbre. Proposer un algorithme pour les procédures ajouter et retirer correspondantes. Quelle est la complexité des algorithmes ainsi proposés dans le pire des cas? Exos_Algo_06/ Page 5
6 Algo_E2 : Piles & Files à l aide de listes chaînées 2.1 Exercice 1 : Pile (LIFO) On désire réaliser la notion de pile à l'aide des 2 structures de données définies ci-après. enreg Telmt Tobj obj Telmt *suiv Le type Telmt est un enregistrement comportant 2 champs : obj : contient un objet de type Tobj ; suiv : pointeur sur l élément suivant de la liste. et enreg Tpile Telmt *premier Le type Tpile est un enregistrement comportant 1 seul champ : premier : pointeur sur le premier élément de la pile. Il doit être nul si la pile est vide. Proposez un jeu d'algorithmes pour les opérations suivantes : procédure initialiser (résultat Tpile pile) procédure empiler (résultat Tpile pile, valeur Tobj E) procédure depiler (résultat Tpile pile, résultat Tobj E) fonction pilevide (valeur Tpile pile) retour booléen fonction pilepleine (valeur Tpile pile) retour booléen Pour chacun des algorithmes donnés, on indiquera leur complexité en fonction du nombre d'éléments dans la pile. On rappelle que dans une pile, le dernier élément ajouté doit être le premier à sortir. 2.2 Exercice 2 : File (FIFO) On désire réaliser la notion de file à l'aide de la structure de données définie ci-dessous : enreg Tfile Telmt *premier Telmt *dernier Exos_Algo_06/ Page 6
7 Les 2 champs du type Tfile ont pour signification : premier : pointeur sur le premier élément de la file. Il doit être nul si la file est vide ; dernier : pointeur sur le dernier élément de la file. Il doit être nul si la file est vide. Proposez un jeu d algorithmes pour les opérations suivantes : procédure initialiser (résultat Tfile file) procédure ajouter (résultat Tfile file, valeur Tobj E) procédure retirer (résultat Tfile file, résultat Tobj E) fonction filevide (valeur Tfile file) retour booleen Pour chacun des algorithmes donnés, on indiquera leur complexité en fonction du nombre d'éléments dans la file. On rappelle que dans une file, le premier élément ajouté doit être le premier à sortir. 2.3 Exercice 3 : polynôme creux Dans cet exercice, on se propose de développer un module permettant de manipuler des polynômes creux. Un polynôme creux est un polynôme contenant très peu de monômes non nuls. Exemple : P(x) = 5.6 x x 9 contient 1281 termes dont 3 seulement sont non nuls. enreg Tmonome entier deg réel coef Tmonome *suiv P Chaque monôme est décrit par un enregistrement de type Tmonome comportant les 3 champs suivants : deg : entier représentant le degré du monôme ; coef : réel représentant le coefficient du monôme ; suiv : pointeur sur le monôme suivant. enreg Tpolynome Tmonome *prem Un polynôme sera décrit par une structure Tpolynome contenant un seul champ prem : Si prem est nul, le polynôme correspondant sera le polynôme zéro ; Si prem est non nul, il pointera sur le monôme de plus haut degré dont le coefficient est non nul. Les monômes de coefficient non nuls sont chaînés par ordre de degré décroissant. Proposez un algorithme pour la procédure ajouter : procédure ajouter (résultat Tpolynome pol, valeur entier deg, valeur réel coef) qui ajoute à un polynôme (pol) la valeur d un monôme défini par son degré (deg) et son coefficient (coef). Exos_Algo_06/ Page 7
8 On s intéresse maintenant à l implémentation des opérations additionner et multiplier dont les déclarations sont données ci-dessous. Ces opérations construisent le polynôme résultat somme (respectivement produit) de deux polynômes : procédure additionner (valeur Tpolynome1 pol1, valeur Tpolynome1 pol2, résultat Tpolynome1 pol3) procédure multiplier (valeur Tpolynome1 pol1, valeur Tpolynome1 pol2, résultat Tpolynome1 pol3) Proposez des algorithmes pour les opérations additionner et multiplier utilisant la procédure ajouter de la question précédente. Quelle est la complexité des algorithmes obtenus en fonction du nombre de monômes non nuls des 2 polynômes opérandes? Proposez un autre algorithme pour l opération additionner sans utiliser la procédure ajouter, en remarquant que chaque fois que l on ajoute un monôme au polynôme résultat, il est toujours placé à la fin puisque les monômes sont rangés dans un ordre décroissant. Quelle est la complexité de l algorithme obtenu? Proposez une solution pour réduire le temps de calcul du produit de 2 polynômes. Exos_Algo_06/ Page 8
9 Algo_E3 : Récursivité 3.1 Exercice 1 : Chaîne de caractères Proposez un algorithme récursif qui permette de saisir une chaîne de caractères terminée par le caractère., puis d afficher cette chaîne de façon inversée (le tout devant être réalisé via une seule procédure). On se servira pour cela uniquement des opérations suivantes : fonction lire_caractere () retour caractère procédure afficher_caractere (valeur caractère c) 3.2 Exercice 2 : Tri Quick-Sort Donner une version complète de l algorithme de tri rapide dont le principe est exposé dans le support de cours d. Exos_Algo_06/ Page 9
10 Algo_E4 : Exercice récapitulatif : Tri par fusion On s'intéresse au tri de données (des nombres réels) gérées sous forme de file d attente, c est à dire que les ajouts à la file se font en queue et les retraits en tête. On supposera défini le type Tfile dont on ne connaît pas les détails. Mais on dispose des opérations suivantes pour manipuler des objets de type Tfile : procédure Créer (résultat Tfile file) : crée une file nouvelle ; la file créée persiste jusqu'à ce qu'elle soit détruite. procédure Détruire (résultat Tfile file) : détruit une file existante. procédure Initialiser (résultat Tfile file) : applicable sur une file déjà existante ; cette procédure a pour effet de vider le contenu de la file. procédure Ajouter (résultat Tfile file, valeur réel E) : ajoute la valeur E en queue de file. procédure Retirer (résultat Tfile file, résultat réel E) : retire l'élément en tête de file et le place dans E. fonction FileVide (valeur Tfile file) retour booléen : retourne vrai si la file est vide et faux sinon. fonction PremierElement (valeur Tfile file) retour réel : retourne la valeur du premier élément si la file est non vide ; cette fonction ne modifie pas le contenu de la file!!! On peut toujours considérer une file de réels comme constituée de séquences monotones. Une séquence monotone est une séquence triée dans l'ordre croissant. Deux éléments successifs de la file appartiennent à une même monotonie si le premier est plus petit ou égal au second. Lorsqu'une file est triée, elle est constituée d'une seule monotonie. Lorsqu'elle n'est pas triée, elle est constituée de plusieurs monotonies. Exemple La file est composée de 5 monotonies repérées par des barres : procédure Eclater procédure TransfertMonotonie Proposez un algorithme pour la procédure TransfertMonotonie procédure TransfertMonotonie (résultat TFile Lsource, résultat TFile Ldestination) qui retire la monotonie en tête de la file Lsource et la place en queue de la file Ldestination. On supposera que Lsource n'est pas vide et que Ldestination est une file valide (initialisée correctement) et non nécessairement vide. Exos_Algo_06/ Page 10
11 Exemple si Lsource correspond à la file : et Ldestination à : 7 après exécution de TransfertMonotonie on a Lsource : et Ldestination : procédure Eclater Proposez un algorithme pour la procédure Eclater procédure Eclater ( résultat TFile Lsource, résultat TFile Ldest1, résultat TFile Ldest2, résultat entier nb_monotonies) qui crée deux files Ldest1, Ldest2 à partir d'une file Lsource. Cette procédure devra initialiser les files Ldest1 et Ldest2 puis utiliser la procédure TransfertMonotonie pour répartir les monotonies de la file initiale entre Ldest1 et Ldest2. Le paramètre nb_monotonies sera utilisé pour indiquer le nombre de monotonies de la file initiale. Exemple : si initialement on a Lsource: Ldest1:??? - Ldest2:??? - nb_monotonies:??? après invocation de Eclater (Lsource, Ldest1, Ldest2, nb_momotonies), on doit avoir la situation suivante : Lsource: vide - Ldest1: Ldest2: nb_monotonies : Procédure fusionner Procédure FusionMonotonie Donnez un algorithme pour la procédure FusionMonotonie procédure FusionMonotonie (résultat TFile Lsource1, résultat TFile Lsource2, résultat TFile Ldestination) qui retire des files Lsource1 et Lsource2 les monotonies en tête de file, et les fusionne en une monotonie unique placée en queue de la file Ldestination. On supposera que les files Lsource1 et Lsource2 ne sont pas vides, et contiennent donc chacune au moins une monotonie. La file Ldestination sera supposée déjà initialisée et non nécessairement vide. Exemple : à partir de Lsource1: Lsource2: Ldestination: 7 on a, après FusionMonotonie (Lsource1, Lsource2, Ldestination), la situation suivante : Lsource1: 17 - Lsource2: Ldestination: Exos_Algo_06/ Page 11
12 4.2.2 Procédure Fusionner Utiliser le sous-programme précédent pour exprimer l algorithme de la procédure Fusionner qui fusionne les monotonies de deux files Lsource1 et Lsource2 en une troisième file Ldestination. Ldestination devra être initialisée avant le début de la fusion. procédure Fusionner (résultat TFile Lsource1, résultat TFile Lsource2 résultat TFile Ldestination) Quelle est la complexité de l algorithme Fusionner? 4.3 Procédure Tri_Par_Fusion Utiliser les procédures Eclater et Fusionner pour déduire un algorithme de tri par fusion en observant que, après éclatement et fusion, la file obtenue possède un nombre de monotonies divisé par 2. procédure Tri_Par_Fusion (résultat TFile File) Donnez la complexité de l'algorithme développé en fonction du nombre d'éléments dans la file. /* Applications à venir */ 4.4 Application 1 : tri de listes chaînées Proposez une implémentation du type Tfile ainsi que des opérations de manipulation des files qui permettent de trier des listes chaînées. 4.5 Application 2 : tri de tableaux Proposez une implémentation du type Tfile ainsi que des opérations de manipulation des files qui permettent de trier un tableau pouvant contenir (au plus) N réels. 4.6 Application 3 : tri de fichiers Proposez une implémentation du type Tfile ainsi que des opérations de manipulation des files permettant de trier un fichier. Exos_Algo_06/ Page 12
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface
Plus en dé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é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é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é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é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é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étailChap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1
Chap 4: Analyse syntaxique 1 III- L'analyse syntaxique: 1- Le rôle d'un analyseur syntaxique 2- Grammaires non contextuelles 3- Ecriture d'une grammaire 4- Les méthodes d'analyse 5- L'analyse LL(1) 6-
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étailArbres binaires de recherche
1 arbre des comparaisons 2 recherche dichotomique l'arbre est recalculé à chaque recherche 2 5 3 4 7 9 1 6 1 2 3 4 5 6 7 9 10 conserver la structure d'arbre au lieu de la reconstruire arbre binaire de
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é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étailDé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étailAlgorithmes de recherche
Algorithmes de recherche 1 Résolution de problèmes par recherche On représente un problème par un espace d'états (arbre/graphe). Chaque état est une conguration possible du problème. Résoudre le problème
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é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étailPROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES
Leçon 11 PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES Dans cette leçon, nous retrouvons le problème d ordonnancement déjà vu mais en ajoutant la prise en compte de contraintes portant sur les ressources.
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 4 Nombres de Catalan
chapitre 4 Nombres de Catalan I Dénitions Dénition 1 La suite de Catalan (C n ) n est la suite dénie par C 0 = 1 et, pour tout n N, C n+1 = C k C n k. Exemple 2 On trouve rapidement C 0 = 1, C 1 = 1, C
Plus en détailintroduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives
introduction Chapitre 5 Images récursives http ://univ-tln.fr/~papini/sources/flocon.htm Récursivité http://www.poulain.org/fractales/index.html Image qui se contient elle-même 1 Exemples mathématiques
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étail1.6- Génération de nombres aléatoires
1.6- Génération de nombres aléatoires 1- Le générateur aléatoire disponible en C++ 2 Création d'un générateur aléatoire uniforme sur un intervalle 3- Génération de valeurs aléatoires selon une loi normale
Plus en détailSystème binaire. Algèbre booléenne
Algèbre booléenne Système binaire Système digital qui emploie des signaux à deux valeurs uniques En général, les digits employés sont 0 et 1, qu'on appelle bits (binary digits) Avantages: on peut utiliser
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é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é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é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é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étailAlgorithmique avec Algobox
Algorithmique avec Algobox 1. Algorithme: Un algorithme est une suite d instructions qui, une fois exécutée correctement, conduit à un résultat donné Un algorithme doit contenir uniquement des instructions
Plus en détailProgrammation Objet - Cours II
Programmation Objet - Cours II - Exercices - Page 1 Programmation Objet - Cours II Exercices Auteur : E.Thirion - Dernière mise à jour : 05/07/2015 Les exercices suivants sont en majorité des projets à
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é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é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é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étailC f tracée ci- contre est la représentation graphique d une
TLES1 DEVOIR A LA MAISON N 7 La courbe C f tracée ci- contre est la représentation graphique d une fonction f définie et dérivable sur R. On note f ' la fonction dérivée de f. La tangente T à la courbe
Plus en détailTaux d évolution moyen.
Chapitre 1 Indice Taux d'évolution moyen Terminale STMG Ce que dit le programme : CONTENUS CAPACITÉS ATTENDUES COMMENTAIRES Indice simple en base 100. Passer de l indice au taux d évolution, et réciproquement.
Plus en détailAlgorithmique et Programmation
École Supérieure d Ingénieurs de Poitiers Gea Algorithmique et Programmation Laurent Signac ii Algorithmique et programmation Gea Table des matières Avant Propos v Structures de données Notion de pointeur..............................................
Plus en détailContinuité et dérivabilité d une fonction
DERNIÈRE IMPRESSIN LE 7 novembre 014 à 10:3 Continuité et dérivabilité d une fonction Table des matières 1 Continuité d une fonction 1.1 Limite finie en un point.......................... 1. Continuité
Plus en détailLicence Sciences et Technologies Examen janvier 2010
Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre.
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étailCorrection TD Algorithmique 5.3 Pile - 5.4 Liste 5.3 Pile
Correction TD Algorithmique 5.3 Pile - 5.4 Liste 5.3 Pile Classe Pile var sommet : entier var vals : Tableau Methode Pile() vals nouveau Tableau (?) sommet -1 Methode estvide() :booléen Renvoie
Plus en détailINTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores
INTRODUCTION AUX SYSTEMES D EXPLOITATION TD2 Exclusion mutuelle / Sémaphores Exclusion mutuelle / Sémaphores - 0.1 - S O M M A I R E 1. GENERALITES SUR LES SEMAPHORES... 1 1.1. PRESENTATION... 1 1.2. UN
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étailPourquoi l apprentissage?
Pourquoi l apprentissage? Les SE sont basés sur la possibilité d extraire la connaissance d un expert sous forme de règles. Dépend fortement de la capacité à extraire et formaliser ces connaissances. Apprentissage
Plus en détailFonctions homographiques
Seconde-Fonctions homographiques-cours Mai 0 Fonctions homographiques Introduction Voir le TP Géogébra. La fonction inverse. Définition Considérons la fonction f définie par f() =. Alors :. f est définie
Plus en détailDéveloppements limités. Notion de développement limité
MT12 - ch2 Page 1/8 Développements limités Dans tout ce chapitre, I désigne un intervalle de R non vide et non réduit à un point. I Notion de développement limité Dans tout ce paragraphe, a désigne un
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é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étailSystemes d'exploitation des ordinateurs
! " #$ % $ &' ( $ plan_ch6_m1 Systemes d'exploitation des ordinateurs Conception de Systèmes de Gestion de la Mémoire Centrale Objectifs 1. Conception de systèmes paginés 2. Conception des systèmes segmentés
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é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é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étailLe Langage SQL version Oracle
Université de Manouba École Supérieure d Économie Numérique Département des Technologies des Systèmes d Information Le Langage SQL version Oracle Document version 1.1 Mohamed Anis BACH TOBJI anis.bach@isg.rnu.tn
Plus en détailCours Informatique Master STEP
Cours Informatique Master STEP Bases de la programmation: Compilateurs/logiciels Algorithmique et structure d'un programme Programmation en langage structuré (Fortran 90) Variables, expressions, instructions
Plus en détailT. A. D. pile. Chapitre 7 (suite) Listes particulières. T. A. D. file. représentation chaînée de la file algorithmique. Files
Chapitre 7 (suite) Listes particulières Pile : liste particulière T. A. D. pile insertion et suppression au sommet de la pile extraction Files queue Listes doublement chaînées insertion file : liste particulière
Plus en détailDéfinition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS = 7 10 1 + 5 10 2 + 2 10 3
8 Systèmes de numération INTRODUCTION SYSTÈMES DE NUMÉRATION POSITIONNELS Dans un système positionnel, le nombre de symboles est fixe On représente par un symbole chaque chiffre inférieur à la base, incluant
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étailConception. Génie Logiciel. Renaud Marlet. LaBRI / INRIA http://www.labri.fr/~marlet. (d'après A.-M. Hugues) màj 17/04/2007
1 Génie Logiciel (d'après A.-M. Hugues) Conception Renaud Marlet LaBRI / INRIA http://www.labri.fr/~marlet màj 17/04/2007 2 Position dans le cycle de vie Contexte : étant donnée une spécification (ce que
Plus en détailImage d un intervalle par une fonction continue
DOCUMENT 27 Image d un intervalle par une fonction continue La continuité d une fonction en un point est une propriété locale : une fonction est continue en un point x 0 si et seulement si sa restriction
Plus en détailCORRECTION EXERCICES ALGORITHME 1
CORRECTION 1 Mr KHATORY (GIM 1 A) 1 Ecrire un algorithme permettant de résoudre une équation du second degré. Afficher les solutions! 2 2 b b 4ac ax bx c 0; solution: x 2a Solution: ALGORITHME seconddegré
Plus en détailInitiation à LabView : Les exemples d applications :
Initiation à LabView : Les exemples d applications : c) Type de variables : Créer un programme : Exemple 1 : Calcul de c= 2(a+b)(a-3b) ou a, b et c seront des réels. «Exemple1» nom du programme : «Exemple
Plus en détailConversion d un entier. Méthode par soustraction
Conversion entre bases Pour passer d un nombre en base b à un nombre en base 10, on utilise l écriture polynomiale décrite précédemment. Pour passer d un nombre en base 10 à un nombre en base b, on peut
Plus en détailInitiation à la programmation en Python
I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de
Plus en détailExcel Avancé. Plan. Outils de résolution. Interactivité dans les feuilles. Outils de simulation. La valeur cible Le solveur
Excel Avancé Plan Outils de résolution La valeur cible Le solveur Interactivité dans les feuilles Fonctions de recherche (ex: RechercheV) Utilisation de la barre d outils «Formulaires» Outils de simulation
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étailCours d Informatique
Cours d Informatique 1ère année SM/SMI 2007/2008, Info 2 Département de Mathématiques et d Informatique, Université Mohammed V elbenani@hotmail.com sayah@fsr.ac.ma 2007/2008 Info2, 1ère année SM/SMI 1
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é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étailCalcul de développements de Puiseux et application au calcul du groupe de monodromie d'une courbe algébrique plane
Calcul de développements de Puiseux et application au calcul du groupe de monodromie d'une courbe algébrique plane Poteaux Adrien XLIM-DMI, UMR-CNRS 6172 Université de Limoges Soutenance de thèse 15 octobre
Plus en détailStructurer ses données : les tableaux. Introduction à la programmation
Structurer ses données : les tableaux Introduction à la programmation Plan du document Introduction Introduire la notion de type Types primitifs Types composés Tableaux de type primitif Page 2 Notion de
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étailTP 2 Réseaux. Adresses IP, routage et sous-réseaux
TP 2 Réseaux Adresses IP, routage et sous-réseaux C. Pain-Barre INFO - IUT Aix-en-Provence version du 24/2/2 Adressage IP. Limites du nombre d adresses IP.. Adresses de réseaux valides Les adresses IP
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étailV- Manipulations de nombres en binaire
1 V- Manipulations de nombres en binaire L ordinateur est constitué de milliards de transistors qui travaillent comme des interrupteurs électriques, soit ouverts soit fermés. Soit la ligne est activée,
Plus en détailDérivation CONTENUS CAPACITÉS ATTENDUES COMMENTAIRES
Capitre 4 Dérivation Ce que dit le programme : CONTENUS CAPACITÉS ATTENDUES COMMENTAIRES Dérivation Nombre dérivé d une fonction en un point. Tangente à la courbe représentative d une fonction dérivable
Plus en détailBases de programmation. Cours 5. Structurer les données
Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et
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étailEvaluation et mise en place d un serveur de messages pour Chamilo 2.0
Evaluation et mise en place d un serveur de messages pour Chamilo 2.0 Descriptif Dans ce projet, on va montrer l évaluation et la mise en place d un serveur de message pour Chamilo. Le but est d améliorer
Plus en détailCHAPITRE VIII : Les circuits avec résistances ohmiques
CHAPITRE VIII : Les circuits avec résistances ohmiques VIII. 1 Ce chapitre porte sur les courants et les différences de potentiel dans les circuits. VIII.1 : Les résistances en série et en parallèle On
Plus en détailDéfinition : On obtient les nombres entiers en ajoutant ou retranchant des unités à zéro.
Chapitre : Les nombres rationnels Programme officiel BO du 8/08/08 Connaissances : Diviseurs communs à deux entiers, PGCD. Fractions irréductibles. Opérations sur les nombres relatifs en écriture fractionnaire.
Plus en détailSujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.
Promotion X 004 COURS D ANALYSE DES STRUCTURES MÉCANIQUES PAR LA MÉTHODE DES ELEMENTS FINIS (MEC 568) contrôle non classant (7 mars 007, heures) Documents autorisés : polycopié ; documents et notes de
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étailMDI Chèque de Allégroupe Réclamation
Introduction MDI Chèque de Allégroupe Réclamation MDIChèques est une suite logique d' Allégroupe Réclamation. Une fois que l'adjudicateur a pris la décision de payer le lot, il fait une Requête de paiement
Plus en détailAlgorithmes d'apprentissage
Algorithmes d'apprentissage 1 Agents qui apprennent à partir d'exemples La problématique : prise de décision automatisée à partir d'un ensemble d'exemples Diagnostic médical Réponse à une demande de prêt
Plus en détailNOEUD HERRINGBONE-PINEAPPLE STANDARD TYPE and PASS
CopyrightCharles HAMEL aka Nautile 2012 Oct16th page 1 on 10 NOEUD HERRINGBONE-PINEAPPLE STANDARD TYPE and PASS Le sujet PASS a été traité ailleurs par moi alors consultez les pdf et les pages appropriées
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é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étailCodage d information. Codage d information : -Définition-
Introduction Plan Systèmes de numération et Représentation des nombres Systèmes de numération Système de numération décimale Représentation dans une base b Représentation binaire, Octale et Hexadécimale
Plus en détailCREATION D UNE EVALUATION AVEC JADE par Patrick RUER (www.mathenvideo.comuv.com)
TABLE DES MATIERES I) Le logiciel JADE 2 II) Etablissements 3 1) Configuation de l établissement 3 2) Importation des classes avec SCONET 4 3) Les groupes d élèves 6 4) Les variables supplémentaires 6
Plus en détail1.1 L EXPLORATEUR WINDOWS
Gérer les fichiers et les dossiers Cette partie du T.P. a pour objectifs de vous familiariser avec les méthodes pour copier, déplacer, effacer, renommer des dossiers et des fichiers. 1.1 L EXPLORATEUR
Plus en détailThéorie des Langages
Théorie des Langages Analyse syntaxique descendante Claude Moulin Université de Technologie de Compiègne Printemps 2010 Sommaire 1 Principe 2 Premiers 3 Suivants 4 Analyse 5 Grammaire LL(1) Exemple : Grammaire
Plus en détailNouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires
Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires Julien Jorge julien.jorge@univ-nantes.fr Laboratoire d Informatique de Nantes Atlantique,
Plus en détailCours de Programmation en Langage Synchrone SIGNAL. Bernard HOUSSAIS IRISA. Équipe ESPRESSO
Cours de Programmation en Langage Synchrone SIGNAL Bernard HOUSSAIS IRISA. Équipe ESPRESSO 24 septembre 2004 TABLE DES MATIÈRES 3 Table des matières 1 Introduction 5 1.1 La Programmation Temps Réel.........................
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é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étailVOCALYS LITE. www.adetec.com
VOCALYS LITE www.adetec.com Sommaire GENERALITES 1 Présentation Caractéristiques techniques RACCORDEMENTS 2 Ligne téléphonique 2 Autoprotection 3 Entrées 3 Sorties 4 UTILISATION 5 Marche / Arrêt du transmetteur
Plus en détailREALISATION d'un. ORDONNANCEUR à ECHEANCES
REALISATION d'un ORDONNANCEUR à ECHEANCES I- PRÉSENTATION... 3 II. DESCRIPTION DU NOYAU ORIGINEL... 4 II.1- ARCHITECTURE... 4 II.2 - SERVICES... 4 III. IMPLÉMENTATION DE L'ORDONNANCEUR À ÉCHÉANCES... 6
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étailUniversité de Strasbourg UFR de Mathématique et d'informatique. L2 Informatique Semestres S3 et S4. Structures de Données et Algorithmes 1 et 2
Université de Strasbourg UFR de Mathématique et d'informatique L2 Informatique Semestres S3 et S4 Structures de Données et Algorithmes 1 et 2 Fiches d exercices année 2009 2010 1 2 Constructions de base
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étail