Algorithmique et Analyse d Algorithmes
|
|
- Paulette Sauvé
- il y a 7 ans
- Total affichages :
Transcription
1 Algorithmique et Analyse d Algorithmes L3 Info Cours 1 : notion de coût d un algorithme Benjamin Wack / 44
2 Objectifs du cours Savoir proposer une solution algorithmique à un problème posé, savoir implanter la solution et savoir analyser celle-ci. Objectifs détaillés Savoir reconnaître et mettre en œuvre des schémas génériques d algorithmes (séquence, arbre, graphe...), Savoir construire une solution selon une démarche allant du plus simple (algorithme naïf) au plus efficace (diviser pour régner, etc.) Savoir démontrer la correction des algorithmes Savoir comment évaluer la complexité d une solution algorithmique : - analyser la complexité au pire, en moyenne avec des hypothèses probabilistes, - analyser la complexité en utilisant des mesures sur des simulations ou des jeux de test. 2 / 44
3 Plan Présentation du cours Problématique Correction Coût d un algorithme Complexité Méthodologie Ordres de grandeur Algorithme de Horner 3 / 44
4 Présentation du cours Structure du cours Cours (Benjamin Wack) Une partie synthétique sur les concepts et schémas algorithmiques Un algorithme classique afin de se constituer une culture de référence TD1 (Florence Perronnin, Anne Rasse, Benjamin Wack) Exercices permettent de renforcer la compréhension des concepts. TD2 (Rémy Boutonnet, Guillaume Cordonnier, Vincent Danjean) Mise en œuvre des concepts et préparation aux activités pratiques APNEES (RB, GC, VD) : Activités Pratiques Non Encadrées Évaluées Validation des concepts par la pratique et évaluation de la compréhension + au moins autant de travail personnel! (exercices, petits programmes) Adresse Mail enseignant : Prénom.Nom@imag.fr 5 / 44
5 Présentation du cours Ressources Bibliographie Algorithmique, T. Cormen, R. Rivest & C. Leiserson, Dunod Algorithmes, R. Sedgewick, Pearson Education Page Web Planning, documents, annales Moodle de l UFR Sujets et rendus d Apnées 6 / 44
6 Présentation du cours Évaluations Note finale = 67 % Examen + 33 % CC Les contrôles continus 2 quicks (mi-octobre et mi-novembre) : 50 % du CC 4 comptes-rendus d APNEEs dont 2 notés : 50 % du CC Examen terminal 2h30 sans documents ni calculatrice Session 2 en juin... Challenge de programmation Semaine du 7 au 11 novembre En équipes 7 / 44
7 Présentation du cours Programme (indicatif) du cours Complexité des algorithmes 1. Coût d un algorithme (itérations, ordres de grandeur) Horner 2. Analyse en moyenne Quicksort Preuves d algorithmes 3. Invariant, correction, terminaison Drapeau hollandais 4. Logique de Hoare Dichotomie Types abstraits élémentaires et implantation 5. Structures séquentielles Algorithme de parenthésage 6. Structures arborescentes Partition Binaire de l Espace Arbres 7. Arbres binaires de recherche Arbres B 8. Arbres ordonnés, structure de tas Algorithmes gloutons 9. Arbres et codage Algorithme de Huffman Graphes et algorithmes 10. Algorithmique de graphes Tri topologique 11. Arbre couvrant, prétraitement Algorithme de Knuth-Morris-Pratt 8 / 44
8 Problématique Notion de problème données Effectuer une recherche dans un inventaire Résoudre une équation Trouver le plus court chemin sur un plan de ville Corriger des fautes d orthographe Multiplier des matrices... stock coefficients plan texte + dictionnaire coefficients Dans chacun de ces exemples on s intéresse en fait à une classe de problèmes similaires, dont chaque instance est définie par des données. Il faut également préciser le résultat attendu. (par exemple pour l inventaire : oui/non? quantité? localisation?) 10 / 44
9 Problématique Qu est-ce qu un algorithme? Procédure de résolution de n importe quelle instance d un problème suffisamment élémentaire pour être exécutée de façon automatique. Problème concret Problème formalisé Algorithme Programme Programmation Instance Données Solution Exécution Exemple : résolution d équation 11 / 44
10 Problématique Un algorithme traite donc des données pour produire un résultat ; mais avec quelles primitives et quelles ressources? 12 / 44
11 Problématique Nécessité d un modèle Alan M. Turing Machine «de papier» La machine est dotée : d un ruban infini ( mémoire) d une tête de lecture/écriture d un automate ( processeur) Un modèle donc tourné vers les opérations de lecture/écriture ( affectation, calculs) 13 / 44
12 Problématique Les questions résolues par Turing Qu est-ce qu un calcul effectué automatiquement? Peut-on tout calculer? Peut-on décider automatiquement si une formule logique est vraie? 10 ans avant les premiers ordinateurs! Cf. Modèles de calcul au semestre 6 14 / 44
13 Problématique Les questions traitées en Algo5 Est-ce que je peux construire un programme qui résout mon problème (sur une machine conforme à mon modèle)? Spécification du problème et construction d un algorithme Est-ce que l exécution de mon programme sur la machine donne bien le résultat souhaité? Vérification de propriétés qualitatives par test et preuve Est-ce que mon programme me fournit le résultat en un temps acceptable? Validation de propriétés quantitatives par mesure et analyse 15 / 44
14 Problématique Les questions traitées en Algo5 Problème concret spécification Problème formalisé Instance construction Données Correction preuve Algorithme test Programme Solution Programmation mesure Exécution analyse de complexité Efficacité Exemple : résolution d équation 15 / 44
15 Correction Les propriétés recherchées Terminaison L exécution de l algorithme produit-elle un résultat en temps fini quelles que soient les données fournies? Correction partielle Lorsque l algorithme s arrête, le résultat calculé est-il la solution cherchée quelles que soient les données fournies? 17 / 44
16 Correction Test ou preuve? Testing shows the presence, not the absence of bugs E. W. Dijkstra, 1969 Le test : valide une implantation plutôt qu un algorithme permet des vérifications rapides peut être utilisé en cours de développement fait apparaître les limites du modèle La preuve : fournit une garantie incontestable sur le fond de l algorithme mais n élimine pas (complètement) les erreurs de programmation nécessite des outils formels pour une utilisation à grande échelle 18 / 44
17 Coût d un algorithme Notre modèle de machine Une machine est constituée d un processeur, d une mémoire et d un ensemble d opérations. Mémoire - infinie (mais un calcul donné utilise un espace fini), - types élémentaires (finis) int, float,... - puis on ajoutera des structures de données Opérations - nombre fini d opérations (arithmétiques, booléennes...) ; - chaque opération a un nombre fini de paramètres (nombre fini de variables lues et écrites) Processeur - processeur unique ; - effectue les opérations en temps constant (1 top = 1 opération) 20 / 44
18 Coût d un algorithme Efficacité d un algorithme Est-ce que mon programme consomme une quantité acceptable de ressources pour fournir un résultat? Étant donnés deux programmes résolvant le même problème, lequel est le meilleur? Calcul Un calcul est une séquence d opérations qui, à partir d une configuration initiale de la mémoire, produit, en un temps fini, une configuration terminale. coût en temps à partir d une configuration initiale d = nombre d opérations dans la séquence coût en mémoire = nombre maximal de variables utilisées simultanément 21 / 44
19 Coût d un algorithme Exemple (1) Moyenne de 2 flottants MOY(a,b) Données : Deux flottants : a et b Résultat : La moyenne de a et de b s := a + b m := s/2 Return (m) Coût de l algorithme Coût temps? 2 opérations Coût en espace mémoire? 2 variables Coût constant, indépendant des données 22 / 44
20 Coût d un algorithme Exemple (2) Puissance : calcul de x n PUISSANCE(x,n) Données : Un flottant x et un entier n Résultat : La valeur de x n p := 1 k := 0 while k n p := p x k := k + 1 Return (p) Coût en temps : 2 + 2n opérations Coût variable, dépend de la valeur des données 23 / 44
21 Coût d un algorithme Exemple (3) Maximum d un tableau MAXIMUM(T,n) Données : T tableau de n entiers Résultat : L indice d un élément maxi max := T [1] for i := 1 to n if T [i] max i max := i max := T [i] Traiter (max) Return (i max ) Coût de l algorithme Modèle de coût? Supposons Traiter coûteux pour T=[1,2,...,n]? pour T=[14,28,...,14n]? pour T=[n,1,2,...,n-1]? Dépend de la taille des données Borné par une fonction linéaire Expression du coût : en fonction de quoi? Pour ce tableau n est la taille des données Pour un entier n est la valeur de la donnée : on préférera log 2 (n) 24 / 44
22 Complexité Généralisation Espace des données Algorithme Espace des résultats Machine Taille de la donnée Cout du calcul Entier Entier Caractériser l efficacité générale de l algorithme = trouver la relation entre la taille des données et le coût de l algorithme sur un (modèle de) machine donnée 26 / 44
23 Complexité Complexité d un algorithme Complexité (au pire) La complexité d un algorithme A est fonction de la taille des données : C A (n) = max(coût(d)) pour toutes les données d de taille n Suppose d avoir fixé la notion de taille Maximum = garantie quelles que soient les conditions d utilisation Exhiber un cas défavorable «suffit» Complexité au mieux CA min (n) = min(coût(d)) pour toutes les données d de taille n Correspond au cas le plus favorable Quel comportement privilégie-t-on? 27 / 44
24 Complexité Méthodologie Complexité des structures de base Instructions en séquence Le coût de Faire Truc Faire Machin est la somme des coûts de Truc et de Machin Composition des coûts La complexité d une boucle est donc la somme des coûts de chaque itération Instructions FOR, WHILE, REPEAT, / 44
25 Complexité Méthodologie Complexité des structures de base (2) Instructions conditionnelles if condition Faire Truc else Faire Machin Coût de l une des branches plus le coût d évaluation de la condition Majoration du coût La complexité au pire sera donc majorée par le maximum des complexités au pire de chaque branche. C(si Condition alors A sinon B) C(evaluation(Condition)) + max{c(a), C(B)} Instructions IF, SWITCH, / 44
26 Complexité Méthodologie Complexité des structures de base (3) Appel de procédure Le coût de l appel d une procédure est : le coût du corps de la procédure pour ses paramètres d appel plus le coût de l évaluation de ses paramètres. Méthode de calcul de complexité Le calcul de la complexité d un algorithme s obtient donc en composant les complexités des différentes opérations composant l algorithme. assemblage et reconstruction méthode par composition se fait à la conception de l algorithme 31 / 44
27 Complexité Méthodologie Exemple Calcul de la somme des entiers de 1 à n i := 1 somme := 0 Tantque (i n) : somme := somme + i i := i + 1 Coût d une itération = 2 (additions) + 1 test Nombre d itérations = n Coût de la boucle = 3n Coût de l algorithme = 3n + 1 Niveau de détail judicieux? 32 / 44
28 Complexité Ordres de grandeur Ordres de grandeur La complexité est une prédiction du temps d exécution du programme codant l algorithme. Mais dépend de l architecture de la machine, donc c est une abstraction (approximation) Passage à l échelle des algorithmes Ce qui est important c est : 1. l ordre de grandeur ; 2. de pouvoir comparer les algorithmes 34 / 44
29 Complexité Ordres de grandeur Exemples n = 10 6 n = 10 9 somme des éléments d un tableau de taille n n opérations tri par insertion des éléments d un tableau de taille n n 2 opérations énumération des vecteurs de bits de taille n 2 n opérations Définir des ordres de grandeur comparables 1/1000 e s1 s 1/4 h30 ans années... Pour se donner une représentation concrète : sur un PC récent, environ 1 milliard d opérations / seconde 35 / 44
30 Complexité Ordres de grandeur Borne supérieure asymptotique Notation O Pour une fonction donnée g on note O(g) l ensemble de fonctions : O(g) = {f telles que c 0, n 0 0, n n 0, f (n) c.g(n)} On écrit f = O(g) pour f O(g). On dit que g est une borne supérieure asymptotique pour f. Vite dit : g dépasse f à partir d un certain rang (taille de données) Pause courbes Exemples n = O(n 3 ) 1250n 3 = O(2 n ) n + n = O(n) n n + n log n = O(n n) 36 / 44
31 Complexité Ordres de grandeur Échelles de comparaison (à connaître) Échelle polynomiale Si k l alors n k = O(n l ) Échelle logarithmique log(n) = O(n) log(log(n)) = O(log(n)) Échelle exponentielle Si 0 < a < b alors a n = O(b n ) Pour tous a > 1 et k 0 on a n k = O(a n ) Deux propriétés utiles Si f = O(g) alors f + g = O(g) et k f = O(g) 37 / 44
32 Complexité Ordres de grandeur Autres encadrements f = O(g) si c 0, n 0 0, n n 0, f (n) c.g(n) Borne inférieure asymptotique (notation Ω) f = Ω(g) si c 0, n 0 0, n n 0, c.g(n) f (n) Borne asymptotique approchée : (notation Θ) f = Θ(g) si c 1, c 2 0, n 0 0, n n 0, c 1.g(n) f (n) c 2.g(n) 38 / 44
33 Algorithme de Horner Évaluation d un polynôme Un polynôme P à une seule variable X s écrit de façon unique Résultat : La valeur P(x 0 ) P = a n X n + a n 1 X n a 1 X + a 0 Données : Les coefficients a n,..., a 0 suffisent à donner le polynôme Rangés dans un tableau A de taille n + 1 Une valeur x 0 en laquelle on veut évaluer le polynôme Types de données : les coefficients a n,..., a 0 sont des flottants x 0 peut être un flottant mais aussi une matrice, un polynôme... Incidence sur le modèle de coût 40 / 44
34 Algorithme de Horner Algorithme (très) naïf Évaluation de P en x 0 EVAL(P,x 0 ) Données : Un tableau de coefficients A et un flottant x 0 Résultat : La valeur de P(x 0 ) r = 0 i = n while i 0 p = 1 k = 0 while k i p = p x 0 k = k + 1 r = r + A[i] p i = i 1 Return (r) (calcul de x n 0 dans p) Complexité en O(n 2 ) 41 / 44
35 Algorithme de Horner Évaluation droite-gauche Idée : ne pas recalculer les puissances de x 0 pour rien Évaluation de P en x 0 par la droite EVAL_DROITE(P,x 0 ) Données : Un tableau de coefficients A et un flottant x 0 Résultat : La valeur de P(x 0 ) r = 0 i = 0 p = 1 while i n r = r + A[i] p p = p x 0 i = i + 1 Return (r) Complexité en O(n) 42 / 44
36 Algorithme de Horner Évaluation gauche-droite efficace On se base sur la pseudo-factorisation P = ((... (a n X + a n 1 )...) X + a 1 ) X + a 0 Évaluation de P en x 0 par la méthode de Horner HORNER(P,x 0 ) Données : Un tableau de coefficients A et un flottant x 0 Résultat : La valeur de P(x 0 ) r = 0 i = n while i 0 r = r x 0 + A[i] i = i 1 Return (r) Même complexité mais : En place et meilleure constante Autres applications : dérivation, division, calcul de racines / 44
37 Algorithme de Horner Conclusion Un même problème peut être résolu par des algorithmes très différents On peut (parfois) passer de l un à l autre par raffinement L analyse de complexité est un critère fiable pour les comparer... mais pas le seul La prochaine fois schémas récursifs analyse du coût en moyenne tri rapide 44 / 44
ALGORITHMIQUE 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é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é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é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é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é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é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é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étailQualité du logiciel: Méthodes de test
Qualité du logiciel: Méthodes de test Matthieu Amiguet 2004 2005 Analyse statique de code Analyse statique de code Étudier le programme source sans exécution Généralement réalisée avant les tests d exécution
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étailCalculabilité Cours 3 : Problèmes non-calculables. http://www.irisa.fr/lande/pichardie/l3/log/
Calculabilité Cours 3 : Problèmes non-calculables http://www.irisa.fr/lande/pichardie/l3/log/ Problèmes et classes de décidabilité Problèmes et classes de décidabilité Nous nous intéressons aux problèmes
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é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é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é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é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étail4. Les structures de données statiques
4. Les structures de données statiques 4.1 Tableaux à une dimension 4.1.1 Introduction Imaginons que dans un programme, nous ayons besoin simultanément de 25 valeurs (par exemple, des notes pour calculer
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é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étailInitiation à l algorithmique
Informatique S1 Initiation à l algorithmique procédures et fonctions 2. Appel d une fonction Jacques TISSEAU Ecole Nationale d Ingénieurs de Brest Technopôle Brest-Iroise CS 73862-29238 Brest cedex 3 -
Plus en dé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étailCours 1 : La compilation
/38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà
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é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étailBaccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé
Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé A. P. M. E. P. Exercice 1 5 points 1. Réponse d. : 1 e Le coefficient directeur de la tangente est négatif et n est manifestement pas 2e
Plus en détailFeuille TD n 1 Exercices d algorithmique éléments de correction
Master Sciences, Technologies, Santé Mention Mathématiques, spécialité Enseignement des mathématiques Algorithmique et graphes, thèmes du second degré Feuille TD n 1 Exercices d algorithmique éléments
Plus en détailComparaison de fonctions Développements limités. Chapitre 10
PCSI - 4/5 www.ericreynaud.fr Chapitre Points importants 3 Questions de cours 6 Eercices corrigés Plan du cours 4 Eercices types 7 Devoir maison 5 Eercices Chap Et s il ne fallait retenir que si points?
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é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étailObjectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)
Objectifs du cours d aujourd hui Informatique II : Cours d introduction à l informatique et à la programmation objet Complexité des problèmes Introduire la notion de complexité d un problème Présenter
Plus en dé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é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é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é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é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é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é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étailProbabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12
Probabilités. I - Rappel : trois exemples. Exemple 1 : Dans une classe de 25 élèves, il y a 16 filles. Tous les élèves sont blonds ou bruns. Parmi les filles, 6 sont blondes. Parmi les garçons, 3 sont
Plus en détailAlgorithmique et Programmation Fonctionnelle
Algorithmique et Programmation Fonctionnelle RICM3 Cours 9 : Lambda-calcul Benjamin Wack Polytech 2014-2015 1 / 35 La dernière fois Typage Polymorphisme Inférence de type 2 / 35 Plan Contexte λ-termes
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étailUE Programmation Impérative Licence 2ème Année 2014 2015
UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative
Plus en détailProgrammes des classes préparatoires aux Grandes Ecoles
Programmes des classes préparatoires aux Grandes Ecoles Filière : scientifique Voies : Mathématiques, physique et sciences de l'ingénieur (MPSI) Physique, chimie et sciences de l ingénieur (PCSI) Physique,
Plus en détailParallélisme et Répartition
Parallélisme et Répartition Master Info Françoise Baude Université de Nice Sophia-Antipolis UFR Sciences Département Informatique baude@unice.fr web du cours : deptinfo.unice.fr/~baude Septembre 2009 Chapitre
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étailCommunications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes
Loris MARCHAL Laboratoire de l Informatique du Parallélisme Équipe Graal Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes Thèse réalisée sous la direction
Plus en détailExercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?
Exercices Alternatifs Quelqu un aurait-il vu passer un polynôme? c 2004 Frédéric Le Roux, François Béguin (copyleft LDL : Licence pour Documents Libres). Sources et figures: polynome-lagrange/. Version
Plus en détailExercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?
Exercices Alternatifs Quelqu un aurait-il vu passer un polynôme? c 2004 Frédéric Le Roux, François Béguin (copyleft LDL : Licence pour Documents Libres). Sources et figures: polynome-lagrange/. Version
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é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étailTable des matières. I Mise à niveau 11. Préface
Table des matières Préface v I Mise à niveau 11 1 Bases du calcul commercial 13 1.1 Alphabet grec...................................... 13 1.2 Symboles mathématiques............................... 14 1.3
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étailLa Licence Mathématiques et Economie-MASS Université de Sciences Sociales de Toulouse 1
La Licence Mathématiques et Economie-MASS Université de Sciences Sociales de Toulouse 1 La licence Mathématiques et Economie-MASS de l Université des Sciences Sociales de Toulouse propose sur les trois
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étailASR1 TD7 : Un microprocesseur RISC 16 bits
{Â Ö Ñ º ØÖ Ý,È ØÖ ºÄÓ Ù,Æ ÓÐ ºÎ ÝÖ Ø¹ ÖÚ ÐÐÓÒ} Ò ¹ÐÝÓÒº Ö ØØÔ»»Ô Ö Óº Ò ¹ÐÝÓÒº Ö» Ö Ñ º ØÖ Ý»¼ Ö½» ASR1 TD7 : Un microprocesseur RISC 16 bits 13, 20 et 27 novembre 2006 Présentation générale On choisit
Plus en détailAlgorithmique, graphes et programmation dynamique Notes de Cours Rapport de Travaux Pratiques. Laurent Canet
Algorithmique, graphes et programmation dynamique Notes de Cours Rapport de Travaux Pratiques Laurent Canet Le 2 juillet 2003 Table des matières I IN202 - Algorithmique 6 1 Système formel de preuve de
Plus en détailIN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C
IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en
Plus en dé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étailProgrammation C. Apprendre à développer des programmes simples dans le langage C
Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités
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étailCours de Master Recherche
Cours de Master Recherche Spécialité CODE : Résolution de problèmes combinatoires Christine Solnon LIRIS, UMR 5205 CNRS / Université Lyon 1 2007 Rappel du plan du cours 16 heures de cours 1 - Introduction
Plus en détailRappels sur les suites - Algorithme
DERNIÈRE IMPRESSION LE 14 septembre 2015 à 12:36 Rappels sur les suites - Algorithme Table des matières 1 Suite : généralités 2 1.1 Déition................................. 2 1.2 Exemples de suites............................
Plus en détailCours Optimisation Partie Optimisation Combinatoire. Année scolaire 2008-2009. Gérard Verfaillie ONERA/DCSD/CD, Toulouse Gerard.Verfaillie@onera.
Cours Optimisation Partie Optimisation Combinatoire 3ième année ISAE Année scolaire 2008-2009 Gérard Verfaillie ONERA/DCSD/CD, Toulouse Gerard.Verfaillie@onera.fr Septembre 2008 Résumé Ce document couvre
Plus en détailChapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme
Chapitre 3 Quelques fonctions usuelles 1 Fonctions logarithme et eponentielle 1.1 La fonction logarithme Définition 1.1 La fonction 7! 1/ est continue sur ]0, +1[. Elle admet donc des primitives sur cet
Plus en détailAlgorithmique - Cours et Travaux Dirigés Ecole Normale Supérieure de Lyon
Algorithmique - Cours et Travaux Dirigés Ecole Normale Supérieure de Lyon Rédaction Etudiants-scribes, MIM 2003 et 2004 Cours Yves Robert Travaux Dirigés Yves Caniou et Eric Thierry 2003-2004-2005 2 Table
Plus en détailCours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples
Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation
Plus en détailMABioVis. Bio-informatique et la
MABioVis Modèles et Algorithmes pour la Bio-informatique et la Visualisation Visite ENS Cachan 5 janvier 2011 MABioVis G GUY MELANÇON (PR UFR Maths Info / EPI GRAVITE) (là, maintenant) - MABioVis DAVID
Plus en détailCorrection de l examen de la première session
de l examen de la première session Julian Tugaut, Franck Licini, Didier Vincent Si vous trouvez des erreurs de Français ou de mathématiques ou bien si vous avez des questions et/ou des suggestions, envoyez-moi
Plus en détailQuatrième partie IV. Test. Test 15 février 2008 1 / 71
Quatrième partie IV Test Test 15 février 2008 1 / 71 Outline Introduction 1 Introduction 2 Analyse statique 3 Test dynamique Test fonctionnel et structurel Test structurel Test fonctionnel 4 Conclusion
Plus en détailIntroduction à MATLAB R
Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d
Plus en dé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é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é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étailCalculer avec Sage. Revision : 417 du 1 er juillet 2010
Calculer avec Sage Alexandre Casamayou Guillaume Connan Thierry Dumont Laurent Fousse François Maltey Matthias Meulien Marc Mezzarobba Clément Pernet Nicolas Thiéry Paul Zimmermann Revision : 417 du 1
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é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é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é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étailUniversité du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.
Université du Québec à Chicoutimi Département d informatique et de mathématique Plan de cours Titre : Élément de programmation Sigle : 8inf 119 Session : Automne 2001 Professeur : Patrice Guérin Local
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étailIntroduction au langage C
Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les
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étailPremière partie. Préliminaires : noyaux itérés. MPSI B 6 juin 2015
Énoncé Soit V un espace vectoriel réel. L espace vectoriel des endomorphismes de V est désigné par L(V ). Lorsque f L(V ) et k N, on désigne par f 0 = Id V, f k = f k f la composée de f avec lui même k
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é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é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étailI. Polynômes de Tchebychev
Première épreuve CCP filière MP I. Polynômes de Tchebychev ( ) 1.a) Tout réel θ vérifie cos(nθ) = Re ((cos θ + i sin θ) n ) = Re Cn k (cos θ) n k i k (sin θ) k Or i k est réel quand k est pair et imaginaire
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étailExclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011
Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr Université de Provence 9 février 2011 Arnaud Labourel (Université de Provence) Exclusion Mutuelle 9 février 2011 1 / 53 Contexte Epistémologique
Plus en détailRésolution de systèmes linéaires par des méthodes directes
Résolution de systèmes linéaires par des méthodes directes J. Erhel Janvier 2014 1 Inverse d une matrice carrée et systèmes linéaires Ce paragraphe a pour objet les matrices carrées et les systèmes linéaires.
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é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é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étailInitiation. àl algorithmique et à la programmation. en C
Initiation àl algorithmique et à la programmation en C Initiation àl algorithmique et à la programmation en C Cours avec 129 exercices corrigés Illustration de couverture : alwyncooper - istock.com Dunod,
Plus en détailQuelques tests de primalité
Quelques tests de primalité J.-M. Couveignes (merci à T. Ezome et R. Lercier) Institut de Mathématiques de Bordeaux & INRIA Bordeaux Sud-Ouest Jean-Marc.Couveignes@u-bordeaux.fr École de printemps C2 Mars
Plus en détailCommun à tous les candidats
EXERCICE 3 (9 points ) Commun à tous les candidats On s intéresse à des courbes servant de modèle à la distribution de la masse salariale d une entreprise. Les fonctions f associées définies sur l intervalle
Plus en détailCours 1 : Introduction Ordinateurs - Langages de haut niveau - Application
Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un
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é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é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é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étail