Objectifs du cours d aujourd hui. Informatique I : Cours d introduction à l informatique et à la programmation Bases d algorithmique

Dimension: px
Commencer à balayer dès la page:

Download "Objectifs du cours d aujourd hui. Informatique I : Cours d introduction à l informatique et à la programmation Bases d algorithmique"

Transcription

1 Objectifs du cours d aujourd hui Informatique I : Cours d introduction à l informatique et à la programmation Bases d algorithmique Jamila Sam Haroud Laboratoire d Intelligence Artificielle Faculté I&C Introduire les bases de l algorithmique Vous apprendre à comparer 2 algorithmes Introduire la notion de complexité algorithmique Le but n est pas de vous faire un cours d algorithmique (ni de structures de données la semaine prochaine), mais......de vous faire pratiquer la programmation de base (série d exercices) tout en vous introduisant et vous familiarisant avec des notions fondamentales de l informatique autres que la programmation. Informatique I Cours : Algorithmique Informatique I Cours : Algorithmique 2 Qu est ce qu un algorithme? Algorithme? solution calculatoire/mécanique/itérative/... à un problème «spécification d un schéma de calcul sous forme d une suite d opérations élémentaires obéissant à un enchaînement déterminé» [Encyclopedia Universalis] Exemples : algorithme d Euclide (PGCD) algorithmes de tri (données non numériques) Rappel schématique : Programme = algorithme + données Informatique I Cours : Algorithmique 3 Mais les algorithmes existent depuis bien avant les ordinateurs : déjà dans l Antiquité Formalisation : dans années (9)30 par des mathématiciens : Gödel, Turing, Church, Post,... fonctions «calculables» et machines de Turing : abstraction mathématique des notions de traitement (suite d opérations élémentaires), de problème et d algorithme. algorithme = composition d un ensemble fini d opérations élémentaires bien définies (déterministes) opérant sur un nombre fini de données (éventuellement nul) et effectuant un traitement bien défini : suite finie de règles à appliquer, dans un ordre déterminé, à un nombre fini de données, se terminant (i.e. arriver, en un nombre fini d étapes, à un résultat, et cela quelque soit les données traitées). Informatique I Cours : Algorithmique 4

2 Algorithme Programme Un algorithme est indépendant du langage de programmation dans lequel on va l exprimer et de l ordinateur utilisé pour le faire tourner. C est une description abstraite des étapes conduisant à la solution d un problème algorithme = partie conceptuelle d un programme (indépendante du langage) programme = implémentation (réalisation) de l algorithme, dans un langage de programmation et sur un système particulier. Qualité d un algorithme? Qu est qu un bon algorithme? Y en a-t-il des meilleurs que d autres? En clair : Comment comparer différents algorithmes (résolvant le même problème)? 2 points de vue : rapidité : combien de temps? taille des ressources : combien de place mémoire? Mais peut-on comparer objectivement? c est-à-dire indépendemment de la réalisation de l algorithme sur une machine donnée dans un langage donné? (puisque justement on a dit qu un algorithme ne dépendait pas de ces éléments) on veut comparer des algorithmes, pas des programmes Informatique I Cours : Algorithmique 5 Informatique I Cours : Algorithmique 6 Comparaison objective d algorithmes? Machine de Turing : définition Peut-on comparer des algorithmes et non pas des programmes? Réponse : OUI abstraction/formalisation de la notion de programme/machine programmable : Machine de Turing Une machine de Turing est un automate abstrait, constitué des éléments suivants : une bande infinie (de taille non bornée), décomposée en cellules au sein desquelles peuvent être «stockés» des caractères (issus d un ensemble fini Σ). Objectif : permettre de démontrer des résultats généraux (décidabilité, complexité,...) vrais pour l ensemble des automates programmables concrets que l on peut envisager. Informatique I Cours : Algorithmique 7 Informatique I Cours : Algorithmique 8

3 Machine de Turing : définition Une machine de Turing est un automate abstrait, constitué des éléments suivants : une bande infinie une tête de lecture/écriture, pouvant : lire et modifier le caractère stocké dans la cellule correspondant à la position courante de la tête (le caractère courant) se déplacer d une cellule vers la gauche ou vers la droite (i.e. modifier sa position) Machine de Turing : définition Une machine de Turing est un automate abstrait, constitué des éléments suivants : une bande infinie une tête de lecture/écriture un ensemble fini E d états internes servant à caractériser le fonctionnement de la machine Informatique I Cours : Algorithmique 8 Informatique I Cours : Algorithmique 8 Machine de Turing : définition Machine de Turing : exemple Une machine de Turing est un automate abstrait, constitué des éléments suivants : une bande infinie une tête de lecture/écriture un ensemble d états internes une table de transitions indiquant, pour chaque couple (état interne, caractère courant) une nouvelle valeur pour ce couple, ainsi que le déplacement de la tête de lecture/écriture. Dans la table de transitions, chaque couple est donc associé à un triplet : (nouvel état interne, nouveau caractère, déplacement) Application : E Σ E Σ {, } Σ = {0,, ε} E = {, 2} caractère état courant courant 2 0 ε (,0,+) (,0,+) (2,ε,-) 2 (2,0,-) (2,0,-) (3,ε,+) avec + (respect. -) indiquant un déplacement vers la droite (respect. vers la gauche). Informatique I Cours : Algorithmique 8 Informatique I Cours : Algorithmique 9

4 Machine de Turing: fonctionnement Exemple de fonctionnement Une machine de Turing fonctionne alors selon le principe suivant :. la bande est initialisée avec la séquence de caractères correspondant aux (à un codage des) données d entrée ; 2. la tête de lecture/écriture est positionnée sur la cellule initiale de la bande, et l état interne est positionné à sa valeur initiale (qui fait partie de la définition de la machine). 3. tant que le couple courant (état interne, caractère courant) est présent dans la table de transitions, le triplet (état interne[nouveau], caractère[nouveau], déplacement) est utilisé pour mettre à jour l état interne, le caractère courant, puis le déplacement de la tête de lecture/écriture est effectué. 4. si le couple (état interne, caractère courant) n est pas dans la table de transitions, la machine s arrète. Le contenu de la bande à ce moment-là est considéré comme le résultat du traitement. Informatique I Cours : Algorithmique 0 machine de Turing déterminant si un nombre est pair Entrée : le nombre à tester, sous forme binaire Sortie : si le nombre est pair, 0 sinon caractère état déplace à droite jusqu à la fin 0 ε (,0,+) (,,+) (2,ε,-) 2 (3,ε,-) (4,ε,-) x 3 (3,ε,-) (3,ε,-) (5,,+) 4 (4,ε,-) (4,ε,-) (5,0,+) 5 x x (6,ε,-) revient au début en effaçant tout détecte la fin droite, revient sur le dernier caractère déplace à droite déplace à droite revient sur le dernier caractère ε ε ε ε 0 ε 0 ε 0 ε 0 ε 2 Exemple pour l entrée 2 efface et à gauche résultat et à droite repositionne au début et termine ε ε 3 5 ε ε 3 ε ε ε ε ε ε 5 ε ε ε Informatique I Cours : Algorithmique Machine de Turing: forme canonique On voit qu une machine de Turing est caractérisée par. sa logique générale de fonctionnement (i.e. la définition) ; 2. le codage de ses entrées et sorties (par exemple sous forme de séquences binaires) ; 3. la table de transitions décrivant son fonctionnement. Si l on impose de coder les entrées et les sorties en binaire (et d indiquer l absence de caractère dans une cellule par le caractère ε), on obtient une représentation uniforme des machines de Turing, appelée représentation canonique. Remarque : D autres choix sont possibles pour la définition des machines de Turing (plusieurs bandes, autres opérations élémentaires, autres alphabets de caractères,...) mais on peut montrer que les résultats théoriques obtenus avec de telles machines sont équivalents à ceux obtenus à l aide d une machine de Turing canonique. Machine de Turing universelle () Le fonctionnement d une machine de Turing est conditionné par sa table de transitions. machine de Turing = abstraction d automate de comportement modifiable a priori......mais pas encore automate programmable, pour laquelle le programme doit faire partie des données d entrée de la machine (et non pas représenter un élément constitutif de la machine comme la table de transitions) Si l on désire qu une machine de Turing constitue une abstraction pour la notion d automate programmable, il faut donc que sa table de transitions soit fixe, et que le conditionnement de son fonctionnement soit entièrement imposé par ses données d entrées. Informatique I Cours : Algorithmique 2 Informatique I Cours : Algorithmique 3

5 Machine de Turing universelle (2) C est-à-dire que bien qu ayant une table de transitions fixe elle puisse effectuer des taches différentes décrites uniquement par ses données d entrée (ces données d entrée sont donc à la fois le programme et les données au sens usuel) Une telle machine s appelle la machine de Turing universelle mais comment la construire? est-ce possible? Machine de Turing universelle (3) On peut montrer que l on peut effectivement construire une machine de Turing universelle (mais cela dépasse le cadre de ce cours) c est-à-dire une machine de Turing permettant de simuler le fonctionnement de n importe quelle autre machine de Turing i.e. d avoir le même comportement, pour ce qui est des entrées et des sorties, tout en ayant une table de transitions fixe. L idée permettant de construire une telle machine est la suivante :. la table de transitions de la machine T à simuler est codée sous la forme d une séquence binaire; 2. la bande de la machine universelle est séparée en deux zones distinctes, l une permettant de stocker la séquence binaire représentant la table de la machine T, ainsi que sa configuration (état interne, caractère courant), et l autre permettant de gérer les données d entrées (et sortie) de T. Informatique I Cours : Algorithmique 4 Informatique I Cours : Algorithmique 5 Machine de Turing universelle (3) Intérêt des machines de Turing Le fonctionnement de la machine universelle peut alors être schématisé ainsi : Zone réservée à la mémorisation de la configuration courante de T... état courant de T caractère de T... Zone réservée à la mémorisation de la table de T état caract. nouvel état Zone de la bande réservée à la gestion des E/S nouv. caract. depl Les machines de Turing constituent une notion centrale en informatique, car elles permettent de donner :. une définition précise à la notion informelle d algorithme (table de transitions) 2. une base théorique solide aux notions importantes que sont la calculabilité, la décidabilité et la complexité. (2) recherche de la configuration courante de T dans sa table () transfert du caractère courant position courante de T o (3) transfert du nouvel état courant de T (4) transfert du nouveau caractère et déplacement de la tête Informatique I Cours : Algorithmique 6 Informatique I Cours : Algorithmique 7

6 Notion de complexité : introduction Revenons donc à notre question de départ : comment comparer des algorithmes? L efficacité d un algorithme peut être mesurée par le temps d exécution, ou encore la quantité de mémoire, requis(e) pour la mise en œuvre de cet algorithme sur un certain jeu de données (variable). La notion de machine de Turing va nous permettre de définir de telles mesures absolues de l efficacité d un algorithme, indépendantes de la machine physique utilisée pour implémenter l algorithme. Elle sera appelée la complexité de l algorithme : complexité spatiale (occupation en mémoire) ou complexité temporelle (la plus utilisée) On distigue de plus la complexité pire cas (la plus utilisée) de la complexité moyenne. Informatique I Cours : Algorithmique 8 Notion de complexité : définition Considérons un algorithme A sur une machine de Turing T effectuant une tâche P (par exemple déterminer si l entrée est paire ou impaire) Nous appellerons complexité temporelle pire cas (i.e. dans le cas le plus défavorable) de A, le nombre maximal de déplacements de la tête de lecture/écriture que devra effectuer la machine T pour effectuer la tâche P avec A sur des données de taille n (la taille n est la longueur de la séquence binaire codant ces données en entrée de la machine de Turing) Note : La complexité est une fonction de n Nous appelerons complexité spatiale pire cas de A, la longueur de bande nécessaire à la machine T pour effectuer la tâche P avec A sur des données de taille n Informatique I Cours : Algorithmique 9 Complexité: notation O(...) Pour comparer des algorithmes, ce qui nous intéresse c est de savoir comment leur complexité évolue en fonction de la taille des données en entrée. Pour cela on effectue des comparaisons sur les ordres de grandeur asymptotiques (quand la taille des données en entrée tend vers l infini) Ces ordres de grandeur sont généralement notés en utilisant la notation de Landau O(...) Comparaison Pour deux fonctions f et g de R dans R, on écrit : f = O(g) si et seulement si 00 2**x x*x*x x*x x*log(x) x log(x) c > 0 x 0 x > x 0 f(x) c g(x) 0 Dans ce cas, on dit que f est «en grand O» de g. Informatique I Cours : Algorithmique Informatique I Cours : Algorithmique 2

7 Notation «grand O» : exemple Notation «grand O» : exemple (suite) f(n) = n n + log n f(n) = n n + log n n f(n) n 2 00n log n 000 valeur % valeur % valeur % valeur % e+08 e+07 e f(x) x*x 00*x log(x) Informatique I Cours : Algorithmique 22 Informatique I Cours : Algorithmique 23 Comparaison d algorithme Mesure de la complexité temporelle En pratique pour mesurer la complexité d un algorithme on utilise évidemment le plus petit des «grands O» possibles Exemples : n est O(n 2 ) mais n est aussi O(n) 2 est O(n 2 ), O(n), mais surtout O() Différentes classes de complexité permettent alors de caractériser les algorithmes (n représentant la taille d entrée) : complexité constante O() : le nombre d éléments n a pas d influence sur l algorithme complexité logarithmique O(log n) complexité linéaire O(n) complexité quasi-linéaire O(n log(n)) complexité polynomiale O(n 2 ),... O(n k ) complexité exponentielle O(2 n ) Dans l approche théorique, la complexité temporelle est mesurée par le nombre de déplacements effectués par le tête de lecture/écriture lors d exécution d une machine de Turing représentant l algorithme. Dans la pratique, cette machine de Turing est rarement disponible......et l on mesure la complexité par le nombre d instructions élémentaires nécessaires à l exécution de l algorithme. Par instruction élémentaire, nous entendrons ici toute instruction qui peut être réalisée par une machine de Turing en un nombre de déplacements de la tête de lecture/écriture borné par une constante connue a priori. Informatique I Cours : Algorithmique 24 Informatique I Cours : Algorithmique 25

8 instructions élémentaires Exemples d instructions élémentaires : écrire un caractère à l écran lire un caractère dans un fichier affecter une valeur atomique (un caractère, un entier, un réel,...) à une variable (mais l affectation d une valeur composée peut ne pas correspondre à un nombre constant de déplacements en cas de dépendance par rapport au nombre d éléments constituant la valeur composée) (parfois : réaliser une opération arithmétique sur des valeurs atomiques) Calcul de complexité le coût d instructions en séquence est la somme des coûts de chacune des instructions C(I ; I 2 ) = C(I ) + C(I 2 ) d où le coût d une boucle (for ou while) : C(boucle q fois B(i)) = q C(B(i)) i= où B(i) est un bloc d instructions correspondant à la ième itération de la boucle Dans les cas les plus simples, c est le produit du coût du bloc répété par le nombre de fois que se fait la boucle une des difficultés principales (à part dans les cas triviaux) est de trouver combien de fois s éxecute la boucle Informatique I Cours : Algorithmique 26 Pour les appels récursifs : on écrit l équation de récurrence à partir des règles ci-dessus. Informatique I Cours : Algorithmique 27 Analyse de complexité : exemple Analyse de complexité : exemple Exemple : recherche d un élément dans une liste triée Soit l algorithme suivant : appartient entrée : x, E sortie : x E? taille entrée : E sortie : t Pour i de 0 à t Si x = E[i] x E x E bool appartient(type x, Liste E) { for (int i(0); i < taille(e); ++i) { if (x==e[i]) return true; } return false; } Quelle est la complexité de appartient? Analyse de la complexité de appartient(x,e) : Taille des entrées : les entrées sont constituées d un élément x et d une liste E de m=taille(e) éléments du même type que x. La taille d un codage binaire de la séquence d entrée pourra être de la forme : K (m + ) et l on pourra donc prendre m comme mesure de référence. Instructions élémentaires utilisées ici :. l affectation d une valeur à une variable entière ; 2. le calcul de la taille d une liste d entiers ; 3. la comparaison de deux valeurs entières (avec < et ==) ; 4. l incrément d une valeur entière ; 5. l accès au i-ème élément d une liste ; 6. le renvoi d une valeur booléenne. Informatique I Cours : Algorithmique 28 Informatique I Cours : Algorithmique 29

9 Analyse de la complexité : exemple (2) Remarques à propos des instructions élémentaires : Pour des entiers codés sur un nombre fixe de bits, les instructions (), (3), (4) et (6) peuvent être réalisées en un nombre constant de déplacements d une machine de Turing. Ces instructions pourront donc être associées à un coût unité lors du calcul de complexité. Par contre, pour les instructions (2) et (5), la situation est plus compliquée, car dépendante de la représentation qui est utilisée pour la liste E : En effet, selon que cette représentation contient ou non de façon explicite l indication de la taille, le calcul de cette dernière pourra être réalisé : soit en un nombre constant d étapes (e.g. mémorisation explicite de la taille) soit en un nombre d étapes dépendant du nombre d éléments de la liste (e.g. parcours + sommation) Informatique I Cours : Algorithmique 30 De même, selon que la liste est représentée ou non par une structure de données permettant un accès direct à ses éléments (tableau, vecteur), l accès au ième élément pourra se faire: soit en un nombre constant d étapes (accès direct) soit à nouveau en un nombre d étapes dépendant du nombre d éléments de la liste (parcours). Informatique I Cours : Algorithmique 3 Analyse de la complexité : exemple (3) Analyse de la complexité : exemple (4) Dans le cas où la liste E est représentée par un structure de données permettant le calcul de la taille de E et l accès à son i-ème élément en un temps constant, l analyse de la complexité de appartient(x,e) est la suivante : affectation de la valeur 0 à la variable i instruction 2 calcul de la taille de E et vérification de 2 instructions la condition (i<taille(e)) 3 accès au i-ème élément de E et comparaison 2 instructions de cet élément avec x 4 décrément (de ) de i et retour en 2 instruction Par construction de l algorithme, les étapes 2, 3 et 4 seront faites au plus autant de fois qu il y a d éléments dans E, donc m fois. Si C(m) est le nombre d instructions élémentaires nécessaires pour réaliser l algorithme appartient(x,e), on a donc : Supposons maintenant que la liste E est représentée par un structure de données ne permettant pas le calcul de la taille de E en temps constant. Supposons par exemple que le calcul de taille(e) est en a + b m instructions (donc en O(m)). L analyse de la complexité de appartient(x,e) est la suivante : et on aura : pour l étape : instruction pour l étape 2 : + a + b m instructions pour l étape 3 : 2 instructions pour l étape 4 : instruction C (m) = + m ( + a + b m + 3) = O(m 2 ) C(m) = + 5 m = O(m) Informatique I Cours : Algorithmique 32 Informatique I Cours : Algorithmique 33

10 Analyse de la complexité : exemple (5) Mais si l on modifie très légèrement l algorithme de la façon suivante : Autre exemple Calcul récursif des nombres de Fibonacci bool appartient2(type x, Liste E) { for (int i(0), j(taille(e)); i<j; ++i) { if (x == E[i]) return (true); } return (false); } Les nombres d instructions élémentaires pour les étapes seront alors : pour l étape : + a + b m instruction pour l étape 2 : instruction pour l étape 3 : 2 instructions pour l étape 4 : instruction et on aura donc: C2(m) = + a + b m + m ( ) = O(m) algorithme linéaire Informatique I Cours : Algorithmique 34 Fibonacci Récursif entrée : n sortie : F (n) Si n = 0 F (n) = 0 Si n = F (n) = Sinon Fibonacci Récursif entrée : n sortie : p Fibonacci Récursif entrée : n 2 sortie : q F (n) = p + q if (n == 0) return 0; else if (n == ) return ; else return Fibonacci(n-) + Fibonacci(n-2); Informatique I Cours : Algorithmique 35 Complexité de la version recursive des nombres de Fibonnacci A coût des tests et B coût de l addition C(0) = A C() = A Résolution (voir annexe) : C(n) = A + C(n ) + C(n 2) + B C(n) = 2A + B 5 (Φ n+ Φ n+) A B avec Φ = (nombre d or) et Φ = 5 2 d où C(n) = O(Φ n ) (notez que Φ < ) algorithme exponentiel (en n) Informatique I Cours : Algorithmique 36 Calcul itératif de Fibonacci Fibonacci Itératif entrée : n sortie : F (n) y 0 z Pour i de à n x y + z z y y x F (n) = x Autre exemple (suite) C (n) = avec D coût de l addition entier Fn_(0); entier Fn_2(); for (entier i(); i <= n; ++i) { Fn = Fn_ + Fn_2; Fn_2 = Fn_; Fn_ = Fn; } return Fn; n (D + 5) = (D + 5) n + 3 i= C (n) = O(n) algorithme linéaire (en n) Informatique I Cours : Algorithmique 37

11 Profiling Le «profiling» est un moyen de déterminer le temps consommé par chacune des parties de votre programme. Pour réaliser ces mesures de manière automatique, on peut ajouter une option de compilation -pg : c++ -pg programme.cc -o programme L exécution de programme produit alors un fichier gmon.out L utilitaire gprof utilise ce fichier et programme pour donner des statistiques sur le déroulement du programme : gprof programme Exemple : c++ -pg fibonacci.cc -o fibonacci fibonacci (... s exécute...) gprof fibonacci pourcentage du temps Profiling % cumulative self self total time seconds seconds calls s/call s/call name Fibonacci(unsigned) FibonacciIteratif(unsign demander_nombre(int, int _GLOBAL I_main static_initialization_... Temps propre Temps total index %time self children called name Fibonacci(unsigned) [2] / main [] [2] Fibonacci(unsigned) [2] Fibonacci(unsigned) [ / main [] [3] FibonacciIteratif(unsigned) [3 man gprof pour plus de détails Informatique I Cours : Algorithmique 38 Informatique I Cours : Algorithmique 39 Ce que j ai appris aujourd hui Ce qu est formellement un algorithme La modélisation d automate programmable : Machine de Turing Comment comparer des algorithmes : notion de complexité algorithmique Comment analyser le temps d exécution de mon programme (profiling) Résolution de Annexe mathématique C(0) = A C() = A C(n) = A + C(n ) + C(n 2) + B C(n) C(n ) C(n 2) = A + B Équation homogène associée : C(n) C(n ) C(n 2) = 0 r 2 r = 0 Informatique I Cours : Algorithmique 40 r = Φ = ou r = Φ = 5 2 Informatique I Cours : Algorithmique 4

12 Annexe mathématique (2) Annexe mathématique (3) = C(n) = λ Φ n + λ 2 Φ n Solution particulière de l équation complète : λ = (2A + B) Φ 5 () C(n) = A B Solution générale : C(n) = λ Φ n + λ 2 Φ n A B Résolution des conditions initiales : λ + λ 2 A B = A λ Φ + λ 2 Φ A B = A et finalement (2A + B) Φ λ 2 = (2) 5 C(n) = 2A + B 5 (Φ n+ Φ n+) A B Informatique I Cours : Algorithmique 42 Informatique I Cours : Algorithmique 43

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

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étail

1/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/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étail

Objectifs 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é 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étail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION 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étail

Licence 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étail

UEO11 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. 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étail

Initiation à l algorithmique

Initiation à 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étail

Chapitre 7. Récurrences

Chapitre 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étail

Cours d algorithmique pour la classe de 2nde

Cours d algorithmique pour la classe de 2nde Cours d algorithmique pour la classe de 2nde F.Gaudon 10 août 2009 Table des matières 1 Avant la programmation 2 1.1 Qu est ce qu un algorithme?................................. 2 1.2 Qu est ce qu un langage

Plus en détail

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

IN 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étail

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Complexité. 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étail

MIS 102 Initiation à l Informatique

MIS 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étail

Représentation d un entier en base b

Repré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étail

Licence Sciences et Technologies Examen janvier 2010

Licence 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étail

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Cours 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étail

Introduction à MATLAB R

Introduction à 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étail

Programmation C++ (débutant)/instructions for, while et do...while

Programmation 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étail

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Info0101 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étail

Bases de programmation. Cours 5. Structurer les données

Bases 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étail

Organigramme / Algorigramme Dossier élève 1 SI

Organigramme / Algorigramme Dossier élève 1 SI Organigramme / Algorigramme Dossier élève 1 SI CI 10, I11 ; CI 11, I10 C24 Algorithmique 8 février 2009 (13:47) 1. Introduction Un organigramme (ou algorigramme, lorsqu il est plus particulièrement appliqué

Plus en détail

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

INTRODUCTION 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étail

Algorithmique et Programmation, IMA

Algorithmique 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étail

Définitions. Numéro à préciser. (Durée : )

Définitions. Numéro à préciser. (Durée : ) Numéro à préciser (Durée : ) On étudie dans ce problème l ordre lexicographique pour les mots sur un alphabet fini et plusieurs constructions des cycles de De Bruijn. Les trois parties sont largement indépendantes.

Plus en détail

Quelques algorithmes simples dont l analyse n est pas si simple

Quelques algorithmes simples dont l analyse n est pas si simple Quelques algorithmes simples dont l analyse n est pas si simple Michel Habib habib@liafa.jussieu.fr http://www.liafa.jussieu.fr/~habib Algorithmique Avancée M1 Bioinformatique, Octobre 2008 Plan Histoire

Plus en détail

Informatique Générale

Informatique 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étail

Algorithme. Table des matières

Algorithme. Table des matières 1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............

Plus en détail

Résolution d équations non linéaires

Résolution d équations non linéaires Analyse Numérique Résolution d équations non linéaires Said EL HAJJI et Touria GHEMIRES Université Mohammed V - Agdal. Faculté des Sciences Département de Mathématiques. Laboratoire de Mathématiques, Informatique

Plus en détail

Cours d initiation à la programmation en C++ Johann Cuenin

Cours 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étail

Exercices 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 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étail

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2. Eo7 Calculs de déterminants Fiche corrigée par Arnaud Bodin Eercice Calculer les déterminants des matrices suivantes : Correction Vidéo ( ) 0 6 7 3 4 5 8 4 5 6 0 3 4 5 5 6 7 0 3 5 4 3 0 3 0 0 3 0 0 0 3

Plus en détail

Conversion d un entier. Méthode par soustraction

Conversion 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étail

Cours 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 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étail

Cours Informatique Master STEP

Cours 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étail

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7

Plan 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étail

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot

Arithmé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étail

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Grandes 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étail

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Exercices - Polynômes : corrigé. Opérations sur les polynômes Opérations sur les polynômes Exercice 1 - Carré - L1/Math Sup - Si P = Q est le carré d un polynôme, alors Q est nécessairement de degré, et son coefficient dominant est égal à 1. On peut donc écrire Q(X)

Plus en détail

1 Recherche en table par balayage

1 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étail

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes treinen@pps.univ-paris-diderot.fr 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation

Plus en détail

Représentation des Nombres

Repré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é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 É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étail

Programmation linéaire

Programmation 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étail

Algorithmique et Programmation Fonctionnelle

Algorithmique 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étail

Programmer 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) 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étail

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

La 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étail

Cours 1 : La compilation

Cours 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étail

Comparaison de fonctions Développements limités. Chapitre 10

Comparaison 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étail

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview. ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview. Sciences et Technologies de l Industrie et du Développement Durable Formation des enseignants parcours : ET24 Modèle de

Plus en détail

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, tableaux, opérateurs Entrées sorties de base Structures de

Plus en détail

Chapitre 2. Eléments pour comprendre un énoncé

Chapitre 2. Eléments pour comprendre un énoncé Chapitre 2 Eléments pour comprendre un énoncé Ce chapitre est consacré à la compréhension d un énoncé. Pour démontrer un énoncé donné, il faut se reporter au chapitre suivant. Les tables de vérité données

Plus en détail

Recherche dans un tableau

Recherche 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étail

Rappels sur les suites - Algorithme

Rappels 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étail

Quelques tests de primalité

Quelques 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étail

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/

Souad 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

STAGE IREM 0- Premiers pas en Python

STAGE IREM 0- Premiers pas en Python Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer

Plus en détail

Notions fondamentales du langage C# Version 1.0

Notions fondamentales du langage C# Version 1.0 Notions fondamentales du langage C# Version 1.0 Z 2 [Notions fondamentales du langage Csharp] [Date : 25/03/09] Sommaire 1 Tout ce qu il faut savoir pour bien commencer... 3 1.1 Qu est ce qu un langage

Plus en détail

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation

Travaux 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étail

Algorithmique, Structures de données et langage C

Algorithmique, 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étail

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 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étail

DOCM 2013 http://docm.math.ca/ Solutions officielles. 1 2 10 + 1 2 9 + 1 2 8 = n 2 10.

DOCM 2013 http://docm.math.ca/ Solutions officielles. 1 2 10 + 1 2 9 + 1 2 8 = n 2 10. A1 Trouvez l entier positif n qui satisfait l équation suivante: Solution 1 2 10 + 1 2 9 + 1 2 8 = n 2 10. En additionnant les termes du côté gauche de l équation en les mettant sur le même dénominateur

Plus en détail

Algorithmes récursifs

Algorithmes 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étail

Logique. Plan du chapitre

Logique. Plan du chapitre Logique Ce chapitre est assez abstrait en première lecture, mais est (avec le chapitre suivant «Ensembles») probablement le plus important de l année car il est à la base de tous les raisonnements usuels

Plus en détail

Algorithmique 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. 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étail

Programmation C. Apprendre à développer des programmes simples dans le langage C

Programmation 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étail

La fonction exponentielle

La fonction exponentielle DERNIÈRE IMPRESSION LE 2 novembre 204 à :07 La fonction exponentielle Table des matières La fonction exponentielle 2. Définition et théorèmes.......................... 2.2 Approche graphique de la fonction

Plus en détail

Conventions d écriture et outils de mise au point

Conventions 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étail

Calculabilité 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/ 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étail

Cours 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 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étail

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Exclusion 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étail

Corrigé des TD 1 à 5

Corrigé 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étail

Cours d Algorithmique et de Langage C 2005 - v 3.0

Cours d Algorithmique et de Langage C 2005 - v 3.0 Cours d Algorithmique et de Langage C 2005 - v 3.0 Bob CORDEAU cordeau@onera.fr Mesures Physiques IUT d Orsay 15 mai 2006 Avant-propos Avant-propos Ce cours en libre accès repose sur trois partis pris

Plus en détail

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS = 7 10 1 + 5 10 2 + 2 10 3

Dé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étail

Plus courts chemins, programmation dynamique

Plus courts chemins, programmation dynamique 1 Plus courts chemins, programmation dynamique 1. Plus courts chemins à partir d un sommet 2. Plus courts chemins entre tous les sommets 3. Semi-anneau 4. Programmation dynamique 5. Applications à la bio-informatique

Plus en détail

Probabilités sur un univers fini

Probabilité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étail

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Logiciel 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étail

Une dérivation du paradigme de réécriture de multiensembles pour l'architecture de processeur graphique GPU

Une dérivation du paradigme de réécriture de multiensembles pour l'architecture de processeur graphique GPU Une dérivation du paradigme de réécriture de multiensembles pour l'architecture de processeur graphique GPU Gabriel Antoine Louis Paillard Ce travail a eu le soutien de la CAPES, agence brésilienne pour

Plus en détail

Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN

Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN Table des matières. Introduction....3 Mesures et incertitudes en sciences physiques

Plus en détail

LES TYPES DE DONNÉES DU LANGAGE PASCAL

LES 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étail

Chapitre VI - Méthodes de factorisation

Chapitre VI - Méthodes de factorisation Université Pierre et Marie Curie Cours de cryptographie MM067-2012/13 Alain Kraus Chapitre VI - Méthodes de factorisation Le problème de la factorisation des grands entiers est a priori très difficile.

Plus en détail

Cours de C++ François Laroussinie. 2 novembre 2005. Dept. d Informatique, ENS de Cachan

Cours de C++ François Laroussinie. 2 novembre 2005. Dept. d Informatique, ENS de Cachan Cours de C++ François Laroussinie Dept. d Informatique, ENS de Cachan 2 novembre 2005 Première partie I Introduction Introduction Introduction Algorithme et programmation Algorithme: méthode pour résoudre

Plus en détail

6 - 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 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étail

Initiation à la programmation en Python

Initiation à 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étail

Université Paris-Dauphine DUMI2E 1ère année, 2009-2010. Applications

Université Paris-Dauphine DUMI2E 1ère année, 2009-2010. Applications Université Paris-Dauphine DUMI2E 1ère année, 2009-2010 Applications 1 Introduction Une fonction f (plus précisément, une fonction réelle d une variable réelle) est une règle qui associe à tout réel x au

Plus en détail

Machines virtuelles Cours 1 : Introduction

Machines 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étail

Table des matières. Introduction

Table des matières. Introduction Table des matières 1 Formalisation des virus informatiques 2 1.1 Les machines de Turing........................ 2 1.2 Formalisation de Fred Cohen..................... 2 1.2.1 Définition d un virus informatique..............

Plus en détail

4. Les structures de données statiques

4. 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étail

Raisonnement par récurrence Suites numériques

Raisonnement 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étail

Fonctions de plusieurs variables

Fonctions de plusieurs variables Module : Analyse 03 Chapitre 00 : Fonctions de plusieurs variables Généralités et Rappels des notions topologiques dans : Qu est- ce que?: Mathématiquement, n étant un entier non nul, on définit comme

Plus en détail

Premiers Pas en Programmation Objet : les Classes et les Objets

Premiers Pas en Programmation Objet : les Classes et les Objets Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.

Plus en détail

Sur certaines séries entières particulières

Sur certaines séries entières particulières ACTA ARITHMETICA XCII. 2) Sur certaines séries entières particulières par Hubert Delange Orsay). Introduction. Dans un exposé à la Conférence Internationale de Théorie des Nombres organisée à Zakopane

Plus en détail

La persistance des nombres

La persistance des nombres regards logique & calcul La persistance des nombres Quand on multiplie les chiffres d un nombre entier, on trouve un autre nombre entier, et l on peut recommencer. Combien de fois? Onze fois au plus...

Plus en détail

Notes du cours 4M056 Programmation en C et C++ Vincent Lemaire et Damien Simon

Notes du cours 4M056 Programmation en C et C++ Vincent Lemaire et Damien Simon Notes du cours 4M056 Programmation en C et C++ Vincent Lemaire et Damien Simon 13 janvier 2015 2 Table des matières Organisation générale du cours 7 1 Notions générales d algorithmique et de programmation

Plus en détail

Mesurer les performances (CPU) sous Linux

Mesurer les performances (CPU) sous Linux Titre : Mesurer les performances (CPU) sous Linux Date : 22/07/2015 Page : 1/7 Mesurer les performances (CPU) sous Linux Résumé : Il existe des outils permettant de tracer les temps CPU utilisés (profiling).

Plus en détail

V- Manipulations de nombres en binaire

V- 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étail

Université 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. 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étail

Statistiques Descriptives à une dimension

Statistiques Descriptives à une dimension I. Introduction et Définitions 1. Introduction La statistique est une science qui a pour objectif de recueillir et de traiter les informations, souvent en très grand nombre. Elle regroupe l ensemble des

Plus en détail

ALGORITHMIQUE ET PROGRAMMATION En C

ALGORITHMIQUE ET PROGRAMMATION En C Objectifs ALGORITHMIQUE ET PROGRAMMATION Une façon de raisonner Automatiser la résolution de problèmes Maîtriser les concepts de l algorithmique Pas faire des spécialistes d un langage Pierre TELLIER 2

Plus en détail

Transmission d informations sur le réseau électrique

Transmission d informations sur le réseau électrique Transmission d informations sur le réseau électrique Introduction Remarques Toutes les questions en italique devront être préparées par écrit avant la séance du TP. Les préparations seront ramassées en

Plus en détail

Calcul Formel et Numérique, Partie I

Calcul Formel et Numérique, Partie I Calcul Formel et Numérique N.Vandenberghe nvdb@irphe.univ-mrs.fr Table des matières 1 Introduction à Matlab 2 1.1 Quelques généralités.......................... 2 2 Où trouver des informations 2 3 Opérations

Plus en détail