MIS 102 Initiation à l Informatique

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

Download "MIS 102 Initiation à l Informatique"

Transcription

1 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 3h de travail individuel par semaine Web : Supports de cours Textes des TD, TP Annales d examens. 1/136

2 Support de cours Livre ( 10 euros) : Initiation à l Informatique par Robert Strandh et Irène Durand Non autorisé à l Examen Version html en ligne sur le site du cours Transparents 2/136

3 Modalités de contrôle des connaissances Épreuve Durée Coef. DS 1h20 0,25 TP individuel noté 1h20 0,15 Examen 1h30 0,60 3/136

4 Objectif et contenu Objectif : Thème : Contenu : Donner une idée fidèle du contenu des études supérieures en informatique Étude d un objet appelé graphe Théorie des graphes (cours) Algorithmique des graphes (TD) Programmation des algorithmes de graphes (TP) 4/136

5 Il faut activer les comptes Vous avez reçu un compte sur l ensemble des ordinateurs de l université Il faut suivre les instructions pour activer le compte au moins 24 heures (de préférence plus) avant le premier TP. 5/136

6 C est quoi l informatique? dans la vie quotidienne : ordinateur avec logiciels en entreprise : un outil de communication et de production à l université : une discipline scientifique L informatique est similaire aux mathématiques (étude d objets abstraits). L informatique n est pas une science expérimentale. Les objets en mathématiques : nombres, relations, fonction, transformations, etc. Les objets en informatique : algorithmes, programmes, preuves, systèmes de réécriture, images numériques, graphes, etc. 6/136

7 Domaines en informatique fondamentale Exemples de domaines : Algorithmique. Les méthodes les plus efficaces pour traiter un problème donné. Structures de données. La meilleure façon d organiser un ensemble de données dans le but d y accéder rapidement. Complexité. Une façon d exprimer l efficacité d un algorithme, indépendamment d un ordinateur ou d un langage de programmation particulier. 7/136

8 Domaines en informatique fondamentale Exemples de domaines : Algorithmique. Les méthodes les plus efficaces pour traiter un problème donné. Structures de données. La meilleure façon d organiser un ensemble de données dans le but d y accéder rapidement. Complexité. Une façon d exprimer l efficacité d un algorithme, indépendamment d un ordinateur ou d un langage de programmation particulier. 7/136

9 Domaines en informatique fondamentale Exemples de domaines : Algorithmique. Les méthodes les plus efficaces pour traiter un problème donné. Structures de données. La meilleure façon d organiser un ensemble de données dans le but d y accéder rapidement. Complexité. Une façon d exprimer l efficacité d un algorithme, indépendamment d un ordinateur ou d un langage de programmation particulier. 7/136

10 Structures de données Exemple Construire une ville de 15 maisons en évitant aux facteurs qui suivent les rues un trajet trop long depuis la poste. Organisation 1 : linéaire. Numéros croissants. Poste au numéro /136

11 Structures de données Exemple Construire une ville de 15 maisons en évitant aux facteurs qui suivent les rues un trajet trop long depuis la poste. Organisation 1 : linéaire. Numéros croissants. Poste au numéro Organisation 2 : Embranchements. À l ouest de la maison k, numéros < k, et à l est, numéros > k. Poste au numéro /136

12 Complexité Dans les deux organisations, le facteur a une méthode simple pour trouver une maison en partant de la poste. On suppose qu il faut une unité de temps pour passer d une maison à une autre (par une rue). Quel est, dans le cas le pire, le temps mis par le facteur pour aller jusqu à une maison depuis la poste? Nombre de maisons Temps organisation 1 Temps organisation /136

13 Complexité Dans les deux organisations, le facteur a une méthode simple pour trouver une maison en partant de la poste. On suppose qu il faut une unité de temps pour passer d une maison à une autre (par une rue). Quel est, dans le cas le pire, le temps mis par le facteur pour aller jusqu à une maison depuis la poste? Nombre de maisons Temps organisation 1 Temps organisation /136

14 Complexité Dans les deux organisations, le facteur a une méthode simple pour trouver une maison en partant de la poste. On suppose qu il faut une unité de temps pour passer d une maison à une autre (par une rue). Quel est, dans le cas le pire, le temps mis par le facteur pour aller jusqu à une maison depuis la poste? Nombre de maisons Temps organisation 1 Temps organisation /136

15 Complexité Dans les deux organisations, le facteur a une méthode simple pour trouver une maison en partant de la poste. On suppose qu il faut une unité de temps pour passer d une maison à une autre (par une rue). Quel est, dans le cas le pire, le temps mis par le facteur pour aller jusqu à une maison depuis la poste? Nombre de maisons Temps organisation 1 Temps organisation n n 1 log 2 (n) 9/136

16 Domaines de l informatique fondamentale (suite) Exemples de domaines plus théoriques : Théorie des langages. Différentes façons de produire et reconnaître des suites de symboles. Applications : linguistique, recherche de mots dans un texte, étude du génome... Calculabilité. Déterminer pour quels problèmes il est théoriquement possible/impossible d écrire un programme. Logique. La puissance d expression de différents types de logique. 10/136

17 Domaines de l informatique fondamentale (suite) Exemples de domaines plus théoriques : Théorie des langages. Différentes façons de produire et reconnaître des suites de symboles. Applications : linguistique, recherche de mots dans un texte, étude du génome... Calculabilité. Déterminer pour quels problèmes il est théoriquement possible/impossible d écrire un programme. Logique. La puissance d expression de différents types de logique. 10/136

18 Domaines de l informatique fondamentale (suite) Exemples de domaines plus théoriques : Théorie des langages. Différentes façons de produire et reconnaître des suites de symboles. Applications : linguistique, recherche de mots dans un texte, étude du génome... Calculabilité. Déterminer pour quels problèmes il est théoriquement possible/impossible d écrire un programme. Logique. La puissance d expression de différents types de logique. 10/136

19 Domaines de l informatique pratique Exemples de domaines : Programmation. Techniques pour organiser un programme de façon qu il soit facilement modifiable. Génie Logiciel. Méthodes pour organiser le développement d un logiciel de grande taille. Informatique multimédia. Méthodes d analyse, modification et synthèse d images et de sons. Systèmes d exploitation. Techniques pour réaliser un système qui assure intégrité, sécurité et performance. Compilation. Techniques pour traduire un programme en code machine efficace. 11/136

20 Domaines de l informatique pratique Exemples de domaines : Programmation. Techniques pour organiser un programme de façon qu il soit facilement modifiable. Génie Logiciel. Méthodes pour organiser le développement d un logiciel de grande taille. Informatique multimédia. Méthodes d analyse, modification et synthèse d images et de sons. Systèmes d exploitation. Techniques pour réaliser un système qui assure intégrité, sécurité et performance. Compilation. Techniques pour traduire un programme en code machine efficace. 11/136

21 Domaines de l informatique pratique Exemples de domaines : Programmation. Techniques pour organiser un programme de façon qu il soit facilement modifiable. Génie Logiciel. Méthodes pour organiser le développement d un logiciel de grande taille. Informatique multimédia. Méthodes d analyse, modification et synthèse d images et de sons. Systèmes d exploitation. Techniques pour réaliser un système qui assure intégrité, sécurité et performance. Compilation. Techniques pour traduire un programme en code machine efficace. 11/136

22 Domaines de l informatique pratique Exemples de domaines : Programmation. Techniques pour organiser un programme de façon qu il soit facilement modifiable. Génie Logiciel. Méthodes pour organiser le développement d un logiciel de grande taille. Informatique multimédia. Méthodes d analyse, modification et synthèse d images et de sons. Systèmes d exploitation. Techniques pour réaliser un système qui assure intégrité, sécurité et performance. Compilation. Techniques pour traduire un programme en code machine efficace. 11/136

23 Domaines de l informatique pratique Exemples de domaines : Programmation. Techniques pour organiser un programme de façon qu il soit facilement modifiable. Génie Logiciel. Méthodes pour organiser le développement d un logiciel de grande taille. Informatique multimédia. Méthodes d analyse, modification et synthèse d images et de sons. Systèmes d exploitation. Techniques pour réaliser un système qui assure intégrité, sécurité et performance. Compilation. Techniques pour traduire un programme en code machine efficace. 11/136

24 Pourquoi étudier l informatique Deux sous-questions : pourquoi choisir une carrière en informatique? pourquoi étudier l informatique alors qu on a choisi une carrière différente (physique, chimie, mathématique, etc.)? 12/136

25 Pourquoi une carrière en informatique? Raisons techniques : demandes croissantes d informaticien(ne)s, produits haute technologie contenant de plus en plus de logiciels, la complexité des logiciels augmente, Raisons non techniques : contacts (souvent internationaux), voyages, mobilité (même internationale). 13/136

26 Pourquoi l informatique pour les non informaticiens Le travail d un scientifique ou d un ingénieur nécessite de plus en plus la manipulation de logiciels, Ces logiciels sont de plus en plus sophistiqués, Souvent, ces logiciels nécessitent de la programmation, Pour programmer efficacement, il faut des connaissances en informatique (algorithmique, programmation). C est surtout nécessaire pour produire des programmes maintenables. 14/136

27 Un mot sur l importance de l algorithmique Il est facile de se tromper d algorithme. Une telle erreur peut faire la différence entre plusieurs années et quelques minutes de calculs sur une même machine. C est souvent une question d utilisation de structures de données ou d algorithmes connus dans la littérature. 15/136

28 Un mot sur la programmation Il ne suffit pas de construire un programme qui marche. L essence de la programmation est l organisation pour faciliter la maintenance (représentant environ 80% du coût d un logiciel). Cela nécessite la construction d abstractions (sous-programmes, modules, classes, extensions syntaxiques, fonctions de première classes, etc.). Plusieurs styles de programmation adaptés aux types différents de problèmes : programmation impérative, fonctionnelle, orientée-objets, logique. Chaque type a ses idiomes de programmation qu il faut apprendre. 16/136

29 Prérequis pour études supérieures en informatique Prérequis : Il faut être bien organisé (ça s apprend), Il faut avoir une curiosité intellectuelle, car l informatique nécessite un apprentissage permanent, Non prérequis : Connaissance préalable d un langage ou d un système d exploitation, Connaissance de la programmation (c est souvent un handicap), Connaissance de logiciels destinés au grand public. 17/136

30 Choix d un langage de programmation Paramètres (langage ou implémentation du langage) : facilité d apprentissage, facilité d utilisation, rapidité d exécution, rapidité de compilation, absence de défauts dans le compilateur, pérennité (fabricant, langage, implémentation), disponibilité de programmeurs, expressivité du langage (structuration, styles), normalisation, conformité des implémentations. 18/136

31 Choix d un langage pour l enseignement facilité d apprentissage (moins important dans l industrie), utilité plus tard, facilité de programmer de façon propre et modulaire. Nous avons choisi le langage Python. 19/136

32 Caractéristiques de Python implémentation libre et gratuite existe, orienté-objets, facilité de manipulation de listes, grand nombre de bibliothèques, efficacité moyenne du code, structure de bloc indiquée par l indentation (unique pour Python). 20/136

33 Qu est-ce qu un algorithme? C est une méthode systématique (recette) pour résoudre un problème donné. Cette méthode peut donc être appliquée par un ordinateur. Par exemple : la division /136

34 Qu est qu un programme? C est une suite d instructions écrites dans un langage (langage de programmation) compréhensible par l ordinateur. Cela permet à l ordinateur d appliquer un algorithme. Par exemple en Python : i = 0 if f(i) > 0 : i = i + 1 else: i = 2 * i 23/136

35 Quelques instructions Python 1. Affectation : ranger une valeur dans une variable i = 1 x = 2 * i + 1 i = i + 1 x = x + i L ordinateur effectue les instructions dans l ordre. L ordre des instructions est donc très important. Une variable désigne un emplacement dans lequel on peut mémoriser une valeur. Une variable a un nom. En python, le symbole = n a pas la même signification qu en mathématique. Il signifie calculer la valeur à droite du symbole = et la ranger dans la variable dont le nom se trouve à gauche. 25/136

36 Quelques instructions Python (suite) 2. Conditionnelle : if i > x : print "test VRAI" else : print "test FAUX" 27/136

37 Quelques instructions Python (suite) 3. Répétition : while i > 0 : print i i = i - 1 Mais aussi, for i in range(10) : print i 29/136

38 Quelques instructions Python (fin) 4. Définition de fonction : En math : Soit la fonction f : x 2x En Python : def f(x) : return 2 * x * x + 1 y = 2 * f(2) Une fonction Python peut être très compliquée. Elle peut remplacer un long programme. Il y a d autres instructions... 31/136

39 Le Graphe Un graphe est un ensemble d objets muni d une relation binaire entre ces objets. Une relation binaire est un ensemble de couples d objets. En mathématiques, l ensemble est souvent infini et non dénombrable (les réels par exemple), alors qu en informatique, elle est souvent dénombrable et parfois finie. En informatique, les objets représentés sont souvent des objets plus concrets (molécules, composants électroniques, villes, réseaux de téléphones mobiles, personnes). 32/136

40 Exemple de graphe : parents Ensemble : toutes les personnes assistant à un repas de Noël. Relation : l ensemble des couples de personnes (p 1, p 2 ) tels que p 1 a pour parent p 2 (relation non symétrique). 33/136

41 Représentation graphique d un graphe x y = «x a pour parent y» (relation non symétrique, graphe orienté) : Isabelle Jean Jacques Luc Anne Olivier Marie Pierre 34/136

42 Exemple de graphe : cousins Ensemble : toutes les personnes assistant à un repas de Noël. Relation : l ensemble des couples de personnes (p 1, p 2 ) tels que p 1 est un cousin de p 2 (relation symétrique). 35/136

43 Représentation graphique : cousins Les cousins (relation symétrique, graphe non orienté) : Isabelle Jean Jacques Luc Anne Olivier Marie Pierre 36/136

44 Exemple de graphe : molécules Ensemble : les atomes d une molécule. Relation : l ensemble des couples d atomes (a 1, a 2 ) tels que a 1 et a 2 partagent au moins un électron (liaison covalente, relation symétrique) 37/136

45 Représentation graphique : molécules Une molécule de caféine (relation symétrique, graphe non orienté) : 38/136

46 Exemple de graphe : internet Ensemble : les pages web. Relation : l ensemble des couples (w 1, w 2 ) tels qu il existe un lien direct sur la page web w 1 qui amène sur la page web w 2. Relation non symétrique, graphe orienté. 39/136

47 Représentation graphique : internet 40/136

48 Représentation graphique : internet 41/136

49 Représentation graphique : connaissance entre personnes saines/grippées/porteuses 42/136

50 Concepts et notation Il s agit de donner un nom et un façon d écrire certaines notions fréquemment utilisées. Raison pour introduire des concepts et des notations : évite la répétition de phrases compliquées, précision ; on évite l ambiguïté, Exemples connus : racine carrée. 43/136

51 Concepts et notations ensemblistes Nous supposons que la notion d ensemble est connue. En informatique, il faut souvent préciser la fonction de comparaison utilisée entre deux éléments de l ensemble. Exemple : L objet a est une Renault Clio immatriculée 1234AB33, l objet b est une Renault Mégane immatriculée 1234AB24, l objet c une Renault Clio immatriculée 5678XY40. Est-ce que c est élément de l ensemble {a, b}? 44/136

52 Élément d un ensemble La notation x E signifie que x est élément de l ensemble E. Cette notation ne précise pas le test d égalité qu il faut donc préciser séparément. On notera E le nombre d éléments de l ensemble E. 45/136

53 Sous-ensembles On utilise la notation E F pour dire que E est un sous-ensemble de F, à savoir que tout élément de E est aussi élément de F. Attention, il est possible que E = F. Sinon, on écrit E F Pour l ensemble des sous-ensembles d un ensemble E (appelé les parties de E), nous utilisons la notation P(E). Exemple : Si E = {a, b}, alors P(E) = {, {a},{b},{a, b}} Questions : 1. Est-ce que E P(E)? 2. Que vaut P(E) si E est fini? 46/136

54 Fonctions Une fonction est un objet mathématique qui, à un objet d un ensemble fait correspondre un objet d un autre ensemble. Exemple : f(x) = sin(x) g(x, y) = x 2 + y 2 En informatique les ensembles sont souvent composés d objets concrets (personnes, voitures), de graphes, de sommets, d arêtes... On dit qu une fonction est appliquée à un ou plusieurs arguments et qu elle renvoie (ou retourne) une valeur. Ceci reflète l aspect exécutable d une fonction. 47/136

55 Domaine et image d une fonction L ensemble de tous les arguments possibles d une fonction φ est le domaine de la fonction : dom(φ). L ensemble de toutes les valeurs possibles d une fonction est l image de la fonction : img(φ). Notation : φ : dom(φ) img(φ). Exemples : sin : R [ 1, 1]. g : R R R +, où g(x, y) = x 2 + y 2. 48/136

56 Conditions nécessaires et suffisantes Condition nécessaire : A est une condition nécessaire pour B est la même chose que B implique A ou B A. Ici B est l objectif. Une autre façon de le dire : B seulement si A Condition suffisante : A est une condition suffisante pour B est la même chose que A implique B ou A B. B est encore l objectif. Une autre façon de le dire : B si A Condition nécessaire et suffisante : B si et seulement si A. B est l objectif et souvent un concept à définir. 49/136

57 Raisonnement par l absurde Nous avons besoin de calculer la négation d une phrase. La négation de A se lit non A et s écrit A. Si A est vrai, alors A est faux. Si A est faux, alors A est vrai. La négation de B seulement si A est non A mais B. (le mais est le et logique) La négation de B si A est A mais non B. La négation de a A est a A. La négation de b B est b B. 50/136

58 Complexité Comment savoir si une méthode est efficace? C est le problème du domaine de la complexité asymptotique, ou simplement la complexité. 51/136

59 Complexité (suite) On suppose l existence d un ensemble d opérations simples et rapides (ou opérations élémentaires). Une opération est simple et rapide si un ordinateur peut l exécuter avec un nombre faible d instructions. Exemples d opérations élémentaires : additionner, soustraire, multiplier ou diviser deux nombres, tester si une valeur est égale à une autre valeur, affecter une valeur à une variable. 52/136

60 Complexité (suite) Pour déterminer si une méthode est efficace, on compte d abord le nombre d opérations nécessaire à effectuer dans le pire des cas et en fonction de la taille du problème. Par exemple, pendant un pot, on souhaite que chaque participant serre la main à chaque autre participant. L opération élémentaire est serrer la main. La taille du problème est le nombre de participants. En général, pour n personnes, il faut n(n 1)/2 opérations élémentaires, soit 1 2 n2 1 2 n. 53/136

61 Complexité (suite) Pour obtenir la complexité asymptotique, on remplace d abord toute constante (de type 1 2 ou 55) par 1. Cela nous donne n2 n. Puis, on garde uniquement le terme le plus grand pour n grand. Cela donne n 2. Finalement, on indique que ces approximations ont été effectuées en rajoutant O() comme ceci : O(n 2 ). En réalité, on effectue les approximations avant de compter exactement. 54/136

62 Complexité : exemple Problème : déterminer si 2 ensembles E 1, E 2 de n entiers ont une valeur commune. Algorithme 1 : comparer successivement chaque élément de E 1 avec chaque élément de E 2 n 2 comparaisons /136

63 Complexité : exemple Problème : déterminer si 2 ensembles E 1, E 2 de n entiers ont une valeur commune. Algorithme 1 : comparer successivement chaque élément de E 1 avec chaque élément de E 2 n 2 comparaisons =? /136

64 Complexité : exemple Problème : déterminer si 2 ensembles E 1, E 2 de n entiers ont une valeur commune. Algorithme 1 : comparer successivement chaque élément de E 1 avec chaque élément de E 2 n 2 comparaisons =? /136

65 Complexité : exemple Problème : déterminer si 2 ensembles E 1, E 2 de n entiers ont une valeur commune. Algorithme 1 : comparer successivement chaque élément de E 1 avec chaque élément de E 2 n 2 comparaisons =? /136

66 Complexité : exemple Problème : déterminer si 2 ensembles E 1, E 2 de n entiers ont une valeur commune. Algorithme 1 : comparer successivement chaque élément de E 1 avec chaque élément de E 2 n 2 comparaisons =? /136

67 Complexité : exemple Problème : déterminer si 2 ensembles E 1, E 2 de n entiers ont une valeur commune. Algorithme 1 : comparer successivement chaque élément de E 1 avec chaque élément de E 2 n 2 comparaisons =? /136

68 Complexité : exemple Problème : déterminer si 2 ensembles E 1, E 2 de n entiers ont une valeur commune. Algorithme 1 : comparer successivement chaque élément de E 1 avec chaque élément de E 2 n 2 comparaisons /136

69 Complexité : exemple Problème : déterminer si 2 ensembles E 1, E 2 de n entiers ont une valeur commune. Algorithme 1 : comparer successivement chaque élément de E 1 avec chaque élément de E 2 n 2 comparaisons /136

70 Complexité : exemple Problème : déterminer si 2 ensembles E 1, E 2 de n entiers ont une valeur commune. Algorithme 1 : comparer successivement chaque élément de E 1 avec chaque élément de E 2 n 2 comparaisons On peut résoudre le problème avec environ n log(n) comparaisons! E 1 = E 2 Algorithme 1 Algorithme 2 n n 2 n log(n) /136

71 Définition d un graphe (1) Une première tentative : Un graphe est un couple (V, E), où V est un ensemble d objets appelés les sommets du graphe (V pour l anglais vertex ), E V V est une relation binaire sur V V. Les éléments de E sont appelés les arêtes du graphe (E pour l anglais edge ). 56/136

72 Problème de la définition Problème : Comment représenter le graphe suivant? e 1 s 2 s 3 s e e 4 4 s 3 1 e 5 e 2 La définition a plusieurs problèmes : On ne peut pas avoir deux arêtes différentes entre deux sommets (les arêtes n ont pas d identité propre), Un couple (s1, s 2 ) n est pas le même que (s 2, s 1 ). En fait, la définition donne ce que l on appelle un graphe orienté simple. Ici simple signifie qu il y a au plus une arête entre deux sommets. 57/136

73 Définition d un graphe (2) (orientée arêtes) Deuxième tentative : un graphe est un triplet (V, E,φ), où V est un ensemble d objets appelés les sommets du graphe, E est un ensemble d objets appelés les arêtes du graphe, φ est une fonction φ : E P(V) telle que e E, φ(e) {1, 2} 58/136

74 Définition d un graphe (2) (orientée arêtes) Deuxième tentative : un graphe est un triplet (V, E,φ), où V est un ensemble d objets appelés les sommets du graphe, E est un ensemble d objets appelés les arêtes du graphe, φ est une fonction φ : E P(V) telle que e E, φ(e) {1, 2} e 1 s 2 s 3 s e e 4 4 φ(e s 3 1 ) = {s 1 } 1 φ(e e 2 ) = {s 1 } 5 φ(e 3 ) = {s 1, s 2 } e 2 φ(e 4 ) = {s 2, s 3 } φ(e 5 ) = {s 2, s 3 } 58/136

75 Interprétation de la définition Ici, les arêtes sont des objets à part. La fonction φ prend comme argument une arête et renvoie un ensemble de sommets (les points extrêmes de l arête). Pour forcer une arête à avoir un ou deux points extrêmes, il faut une restriction sur la taille de l ensemble renvoyé. La façon d exprimer cela est : φ : E P(V) telle que e E, φ(e) {1, 2} 59/136

76 Définition d un graphe (3) (orientée sommets) Une autre définition : un graphe est un triplet (V, E,ψ), où V est un ensemble d objets appelés les sommets du graphe, E est un ensemble d objets appelés les arêtes du graphe, ψ est une fonction ψ : V P(E) telle que e E, {s V, e ψ(s)} {1, 2} 60/136

77 Définition d un graphe (3) (orientée sommets) Une autre définition : un graphe est un triplet (V, E,ψ), où V est un ensemble d objets appelés les sommets du graphe, E est un ensemble d objets appelés les arêtes du graphe, ψ est une fonction ψ : V P(E) telle que e E, {s V, e ψ(s)} {1, 2} e 1 s 2 s 3 s e e 4 4 ψ(s s 3 1 ) = {e 1, e 2, e 3 } 1 ψ(s e 2 ) = {e 3, e 4, e 5 } 5 ψ(s 3 ) = {e 4, e 5 } ψ(s 4 ) = e 2 60/136

78 Interprétation de la définition Elle génère les mêmes objets que la précédente. Le rôle de la fonction est totalement différent. Ici, ψ est appliquée à un sommet et renvoie un ensemble d arêtes. 61/136

79 Le graphe en tant que type abstrait Chaque définition a des conséquences sur la programmation. On peut : à partir d un objet de type graphe, récupérer l ensemble des sommets du graphe, à partir d un objet de type graphe, récupérer l ensemble des arêtes du graphe, avec la définition orientée arêtes : à partir d une arête du graphe, récupérer le(s) sommet(s) extrémités de l arête. avec la définition orientée sommets : à partir d un sommet du graphe, récupérer le(s) arêtes(s) dont le sommet est extrémité. 62/136

80 La notion de type abstrait On appelle une telle collection d opérations un type abstrait. C est une notion centrale en programmation. Cela permet de créer des programmes modulaires (i.e., contenant des parties relativement indépendantes) et donc maintenables. Pour programmer une application, on se pose la question : Quels sont les objets manipulés par le programme, et quelles sont les opérations sur ces objets? La notion de type abstrait sera traitée en TD. 63/136

81 Quel type abstrait est le bon? Ça dépend de ce que vous voulez en faire (de l application). Certaines opérations sont plus rapides et/ou plus simples à programmer selon le type choisi. Souvent, il n est pas possible de n avoir que des opérations simples et rapides. Il faut donc choisir. Exemple : Déterminer si 2 sommets s, t sont reliés par une arête. Définition orientée arêtes : on regarde pour chaque arête s il y en a une qui a comme extrémités s et t. Définition orientée sommets : on calcule ψ(s) ψ(t) et on regarde s il est non vide. Exercice : Quelle définition donne un algorithme plus rapide sur un graphe en forme de cercle? Sur le graphe suivant? s x 1 x 2 x 3 x n t 64/136

82 Degré d un sommet Le degré d un sommet s, noté d(s), est le nombre de brins d arêtes ayant s comme extrémité. Une boucle compte deux fois. Exemple : A B C D E F Ici d(a) = 1, d(b) = 3, d(c) = 4, d(d) = 2, d(e) = 0, d(f) = 2. 65/136

83 Un premier théorème Pour un graphe G ayant au moins un sommet, d(s) = 2 E(G) s V(G) 66/136

84 Technique de preuve par induction 1. Vérifier que s V d(s) = 2 E pour un graphe sans arête, 2. Supposer que s V d(s) = 2 E pour n importe quel graphe avec au plus k arêtes, 3. Prouver que si s V d(s) = 2 E est vrai pour n importe quel graphe avec au plus k arêtes, c est aussi vrai pour n importe quel graphe avec k + 1 arêtes. 67/136

85 La preuve du théorème (1/2) Par induction sur le nombre d arêtes dans le graphe. 1. Cas de base La propriété est trivialement vraie pour un graphe avec E = 0, car le degré de chaque sommet du graphe est Hypothèse d induction On suppose que pour un graphe G avec au moins un sommet et au plus k arêtes, s V(G) d(s) = 2 E(G). 68/136

86 La preuve du théorème (2/2) 3. Induction Soit H un graphe à k + 1 arêtes. En supprimant l une des arêtes, disons e entre s 1 et s 2, on obtient un graphe G ayant au plus k arêtes. D après l hypothèse d induction, on a d(s) = 2 E(G). s V(G) Le degré des sommets s 1 et s 2 dans H est 1 de plus que leur degré dans G, donc d(s) = d(s) + 2 = 2( E(G) + 1) s V(H) s V(G) Comme G est obtenu de H en supprimant une arête, on a E(G) + 1 = E(H), et donc finalement d(s) = 2 E(H) s V(H) Nous avons donc prouvé la propriété par induction. 69/136

87 La notion de chaîne Il est souvent nécessaire de savoir si l on peut aller d un sommet à un autre en suivant des arêtes. Exemple d utilité : Est-ce possible de prendre le train pour aller de Bordeaux à Rome? De Bordeaux à Oslo? De Bordeaux à Reykjavik? La notion de chaîne exprime cette idée. 70/136

88 Définition de chaîne (1) Première tentative : (attention : cette définition n est pas bonne). Une chaîne dans un graphe est une suite C = s1, s 2,...,s k de sommets du graphe, telle que i, 1 i < k, il y a une arête entre s i et s i+1. 71/136

89 Problème de la définition S il y a plusieurs arêtes entre deux sommets, on ne sait pas par laquelle il faut passer. Exemple : A a b B 72/136

90 Définition de chaîne (2) Deuxième tentative : (attention : cette définition n est pas bonne). Une chaîne dans un graphe est une suite C = e1, e 2,...,e k d arêtes du graphe, telle que i, 1 i < n, e i et e i+1 partagent un sommet. 73/136

91 Problème de la définition La suite a, b, c dans le graphe suivant sera considérée comme une chaîne : A a B C b c D De plus, on ne sait pas par quel sommet la chaîne commence. 74/136

92 Définition de chaîne (3, la bonne) Une chaîne dans un graphe est une suite C = s 1, e 1, s 2, e 2,...,s k, e k, s k+1 de k + 1 sommets et k arêtes en alternance, telle que i, 1 i k, les extrémités de e i sont s i et s i+1. On dit alors que C est une chaîne entre s 1 et s k+1. Remarque : si k = 0, on obtient une chaîne sans arête C = s 1. 75/136

93 Existence d une chaîne Vérifier s il existe une chaîne entre un sommet s et un sommet t n est pas forcément simple. Pour y arriver, nous allons utiliser une technique pour marquer et démarquer les sommets. Mais il nous faut d abord un peu de théorie. 76/136

94 Chaîne simple Une chaîne C = s1, e 1, s 2, e 2,...,s k, e k, s k+1 est simple si et seulement si i, j [1, k + 1], (i < j et s i = s j ) = (i = 1 et j = k + 1) Autrement dit un sommet figure au plus une fois dans la chaîne. [sauf pour le sommet de début et de fin. S ils sont les mêmes, il s agit d un cycle]. 77/136

95 Théorème Dans un graphe G, s il existe une chaîne entre s V(G) et t V(G), alors il existe une chaîne simple entre s et t. La preuve est constructive. On prend une chaîne non simple et on supprime les cycles. 78/136

96 Preuve Soit C = s1, e 1, s 2, e 2,..., s k, e k, s k+1 la chaîne. Si C est simple, le travail est terminé. Sinon, il y a deux sommets si et s j tels que i, j [1, k + 1], pour lesquels i < j, {i, j} {1, k + 1}, et s i = s j. On écrit donc : C = s 1, e 1,...,s i, e i,..., s j, e j,..., s k, e k, s k+1. On construit C plus courte en supprimant de C la partie e i,..., s j. On obtient alors : C = s 1, e 1,... s i, e j,...,s k, e k, s k+1. 79/136

97 Preuve Soit C = s1, e 1, s 2, e 2,..., s k, e k, s k+1 la chaîne. Si C est simple, le travail est terminé. Sinon, il y a deux sommets si et s j tels que i, j [1, k + 1], pour lesquels i < j, {i, j} {1, k + 1}, et s i = s j. On écrit donc : C = s 1, e 1,...,s i, e i,..., s j, e j,..., s k, e k, s k+1. On construit C plus courte en supprimant de C la partie e i,..., s j. On obtient alors : C = s 1, e 1,... s i, e j,...,s k, e k, s k+1. 79/136

98 Preuve (suite) Il reste à vérifier que C est une chaîne. Chaque arête de la chaîne doit être entourée de ses deux extrémités. C est le cas dans C. On répète le procédé tant que C n est pas simple. [Ou : on fait une preuve par induction sur la longueur de la chaîne.] 80/136

99 Existence d une chaîne entre s et t Voici un algorithme 1. démarquer tous les sommets 2. marquer s 3. tant que t n est pas marqué, 3.1 chercher une arête dont un sommet extrémité est marqué et l autre ne l est pas 3.2 si une telle arête n existe pas, renvoyer la valeur faux 3.3 sinon marquer l extrémité non encore marquée 4. renvoyer la valeur vrai s t 81/136

100 Existence d une chaîne entre s et t Voici un algorithme 1. démarquer tous les sommets 2. marquer s 3. tant que t n est pas marqué, 3.1 chercher une arête dont un sommet extrémité est marqué et l autre ne l est pas 3.2 si une telle arête n existe pas, renvoyer la valeur faux 3.3 sinon marquer l extrémité non encore marquée 4. renvoyer la valeur vrai s t 81/136

101 Existence d une chaîne entre s et t Voici un algorithme 1. démarquer tous les sommets 2. marquer s 3. tant que t n est pas marqué, 3.1 chercher une arête dont un sommet extrémité est marqué et l autre ne l est pas 3.2 si une telle arête n existe pas, renvoyer la valeur faux 3.3 sinon marquer l extrémité non encore marquée 4. renvoyer la valeur vrai s t 81/136

102 Existence d une chaîne entre s et t Voici un algorithme 1. démarquer tous les sommets 2. marquer s 3. tant que t n est pas marqué, 3.1 chercher une arête dont un sommet extrémité est marqué et l autre ne l est pas 3.2 si une telle arête n existe pas, renvoyer la valeur faux 3.3 sinon marquer l extrémité non encore marquée 4. renvoyer la valeur vrai s t 81/136

103 Existence d une chaîne entre s et t Voici un algorithme 1. démarquer tous les sommets 2. marquer s 3. tant que t n est pas marqué, 3.1 chercher une arête dont un sommet extrémité est marqué et l autre ne l est pas 3.2 si une telle arête n existe pas, renvoyer la valeur faux 3.3 sinon marquer l extrémité non encore marquée 4. renvoyer la valeur vrai s t 81/136

104 Existence d une chaîne entre s et t Voici un algorithme 1. démarquer tous les sommets 2. marquer s 3. tant que t n est pas marqué, 3.1 chercher une arête dont un sommet extrémité est marqué et l autre ne l est pas 3.2 si une telle arête n existe pas, renvoyer la valeur faux 3.3 sinon marquer l extrémité non encore marquée 4. renvoyer la valeur vrai s t 81/136

105 Existence d une chaîne entre s et t Voici un algorithme 1. démarquer tous les sommets 2. marquer s 3. tant que t n est pas marqué, 3.1 chercher une arête dont un sommet extrémité est marqué et l autre ne l est pas 3.2 si une telle arête n existe pas, renvoyer la valeur faux 3.3 sinon marquer l extrémité non encore marquée 4. renvoyer la valeur vrai s t 81/136

106 Existence d une chaîne, complexité (définition orientée arêtes) Au pire, cet algorithme passe par chaque arête du graphe pour trouver la première arête dont un sommet extrémité est marqué et l autre ne l est pas, ce qui coûte E. 82/136

107 Existence d une chaîne, complexité (définition orientée arêtes) Au pire, cet algorithme passe par chaque arête du graphe pour trouver la première arête dont un sommet extrémité est marqué et l autre ne l est pas, ce qui coûte E. Ensuite, la 2 ème arête est trouvée au pire en E 1 étapes. Et ainsi de suite. 82/136

108 Existence d une chaîne, complexité (définition orientée arêtes) Au pire, cet algorithme passe par chaque arête du graphe pour trouver la première arête dont un sommet extrémité est marqué et l autre ne l est pas, ce qui coûte E. Ensuite, la 2 ème arête est trouvée au pire en E 1 étapes. Et ainsi de suite. L algorithme s arrête quand tous les sommets ont été marqués (il n y a plus rien à faire!). Donc au pire, à l étape V, tous les sommets ont été marqués. 82/136

109 Existence d une chaîne, complexité (définition orientée arêtes) Au pire, cet algorithme passe par chaque arête du graphe pour trouver la première arête dont un sommet extrémité est marqué et l autre ne l est pas, ce qui coûte E. Ensuite, la 2 ème arête est trouvée au pire en E 1 étapes. Et ainsi de suite. L algorithme s arrête quand tous les sommets ont été marqués (il n y a plus rien à faire!). Donc au pire, à l étape V, tous les sommets ont été marqués. La complexité de cet algorithme est donc au plus : V ( E i) = O( V E ). i=0 82/136

110 Existence d une chaîne, complexité (définition orientée arêtes) Au pire, cet algorithme passe par chaque arête du graphe pour trouver la première arête dont un sommet extrémité est marqué et l autre ne l est pas, ce qui coûte E. Ensuite, la 2 ème arête est trouvée au pire en E 1 étapes. Et ainsi de suite. L algorithme s arrête quand tous les sommets ont été marqués (il n y a plus rien à faire!). Donc au pire, à l étape V, tous les sommets ont été marqués. La complexité de cet algorithme est donc au plus : V ( E i) = O( V E ). i=0 82/136

111 Existence d une chaîne, complexité (définition orientée arêtes) Au pire, cet algorithme passe par chaque arête du graphe pour trouver la première arête dont un sommet extrémité est marqué et l autre ne l est pas, ce qui coûte E. Ensuite, la 2 ème arête est trouvée au pire en E 1 étapes. Et ainsi de suite. L algorithme s arrête quand tous les sommets ont été marqués (il n y a plus rien à faire!). Donc au pire, à l étape V, tous les sommets ont été marqués. La complexité de cet algorithme est donc au plus : V ( E i) = O( V E ). i=0 Remarque Il existe un algorithme de complexité O( V + E ). 82/136

112 Connexité La notion de connexité exprime la possibilité d aller de n importe quel sommet du graphe à n importe quel autre sommet du graphe. Informellement, un graphe est connexe s il est en un seul morceau. Connexe Non connexe Formellement, un graphe G est connexe si et seulement si s, t V(G), il existe une chaîne entre s et t. Nous allons étudier des méthodes efficaces pour déterminer si un graphe est connexe. 83/136

113 Déterminer si un graphe est connexe : approche simple La première idée est toujours d appliquer la définition. 84/136

114 Déterminer si un graphe est connexe : approche simple La première idée est toujours d appliquer la définition. Donc, pour déterminer si un graphe est connexe, vérifier si pour chaque couple (s, t) de sommets, il existe une chaîne entre s et t. 84/136

115 Déterminer si un graphe est connexe : approche simple La première idée est toujours d appliquer la définition. Donc, pour déterminer si un graphe est connexe, vérifier si pour chaque couple (s, t) de sommets, il existe une chaîne entre s et t. Il y a n 2 tels couples, si n = V. 84/136

116 Déterminer si un graphe est connexe : approche simple La première idée est toujours d appliquer la définition. Donc, pour déterminer si un graphe est connexe, vérifier si pour chaque couple (s, t) de sommets, il existe une chaîne entre s et t. Il y a n 2 tels couples, si n = V. Au total, la méthode simple a une complexité O(n3 E ) 84/136

117 Déterminer si un graphe est connexe : approche simple La première idée est toujours d appliquer la définition. Donc, pour déterminer si un graphe est connexe, vérifier si pour chaque couple (s, t) de sommets, il existe une chaîne entre s et t. Il y a n 2 tels couples, si n = V. Au total, la méthode simple a une complexité O(n3 E ) Nous allons montrer qu on peut résoudre le problème en O(n 2 ). 84/136

118 Différence entre O(n 3 ), O(n 2 ) et O(n) Imaginons encore un ordinateur capable d exécuter une instruction élémentaire en 10ns et un graphe de sommets. Exécuter n instructions élémentaires nécessite 1ms, soit 0, 01s. Exécuter n 2 instructions élémentaires nécessite 10 4 s soit 2h45. Exécuter n 3 instructions élémentaires nécessite 321 ans. 85/136

119 Approche plus efficace Theorème Soit G un graphe. On considère les propriétés suivantes : A. G est connexe. B. Pour tout sommet s de G, il existe une chaîne entre s et chacun des sommets de G. C. Il existe un sommet s de G tel qu il existe une chaîne entre s et chacun des sommets de G. Les propriétés A, B et C sont équivalentes, c est-à-dire : A B C. 86/136

120 Preuve (parties A = B et B = C) On suppose que A est vraie, c est-à-dire que G est connexe. On choisit un sommet s de G. Comme G est connexe, pour tout sommet t de G, il existe une chaîne entre s et t. Donc B est vraie. On a donc montré que A = B. Si B est vraie, alors C est aussi vraie (évident) donc B = C. Il reste à montrer que C = A. 87/136

121 Preuve (partie C = A) On suppose que C est vraie : il existe donc un sommet s de G tel qu il existe une chaîne entre s et chacun des sommets de G. Il faut prouver que A est vraie, c est-à-dire que G est connexe. Soient donc x et y deux sommets de G. On veut montrer qu il existe une chaîne entre x et y. 88/136

122 Preuve (partie C = A) On suppose que C est vraie : il existe donc un sommet s de G tel qu il existe une chaîne entre s et chacun des sommets de G. Il faut prouver que A est vraie, c est-à-dire que G est connexe. Soient donc x et y deux sommets de G. On veut montrer qu il existe une chaîne entre x et y. 88/136

123 Preuve (partie C = A) On suppose que C est vraie : il existe donc un sommet s de G tel qu il existe une chaîne entre s et chacun des sommets de G. Il faut prouver que A est vraie, c est-à-dire que G est connexe. Soient donc x et y deux sommets de G. On veut montrer qu il existe une chaîne entre x et y. 88/136

124 Preuve (partie C = A) On suppose que C est vraie : il existe donc un sommet s de G tel qu il existe une chaîne entre s et chacun des sommets de G. Il faut prouver que A est vraie, c est-à-dire que G est connexe. Soient donc x et y deux sommets de G. On veut montrer qu il existe une chaîne entre x et y. x s y 88/136

125 Preuve (partie C = A) On suppose que C est vraie : il existe donc un sommet s de G tel qu il existe une chaîne entre s et chacun des sommets de G. Il faut prouver que A est vraie, c est-à-dire que G est connexe. Soient donc x et y deux sommets de G. On veut montrer qu il existe une chaîne entre x et y. C x 1 C s 2 y On sait qu il existe des chaînes C1 entre s et x, et C 2 entre s et y. 88/136

126 Preuve (partie C = A) On suppose que C est vraie : il existe donc un sommet s de G tel qu il existe une chaîne entre s et chacun des sommets de G. Il faut prouver que A est vraie, c est-à-dire que G est connexe. Soient donc x et y deux sommets de G. On veut montrer qu il existe une chaîne entre x et y. C x s 2 y C 1 On sait qu il existe des chaînes C1 entre s et x, et C 2 entre s et y. En lisant C1 à l envers, on obtient une chaîne C 1 entre x et s. 88/136

127 Preuve (partie C = A) On suppose que C est vraie : il existe donc un sommet s de G tel qu il existe une chaîne entre s et chacun des sommets de G. Il faut prouver que A est vraie, c est-à-dire que G est connexe. Soient donc x et y deux sommets de G. On veut montrer qu il existe une chaîne entre x et y. C x s 2 y C 1 On sait qu il existe des chaînes C1 entre s et x, et C 2 entre s et y. En lisant C1 à l envers, on obtient une chaîne C 1 entre x et s. En recollant la chaîne C1 à C 2, on obtient une chaîne x et y. 88/136

128 Preuve (partie C = A) On suppose que C est vraie : il existe donc un sommet s de G tel qu il existe une chaîne entre s et chacun des sommets de G. Il faut prouver que A est vraie, c est-à-dire que G est connexe. Soient donc x et y deux sommets de G. On veut montrer qu il existe une chaîne entre x et y. C x s 2 y C 1 On sait qu il existe des chaînes C1 entre s et x, et C 2 entre s et y. En lisant C1 à l envers, on obtient une chaîne C 1 entre x et s. En recollant la chaîne C1 à C 2, on obtient une chaîne x et y. Donc A est vraie et A = C. 88/136

129 Un algorithme plus efficace Pour déterminer si un graphe est connexe, on peut donc : Choisir un sommet s arbitraire dans le graphe. Vérifier si pour chaque sommet t du graphe, il existe une chaîne entre s et t. Complexité 1. Il faut donc faire V vérifications. 2. Le coût de chaque vérification est O( V. E ). 3. Au total, la complexité est donc O( V 2. E ). 89/136

130 Un algorithme plus efficace Pour déterminer si un graphe est connexe, on peut donc : Choisir un sommet s arbitraire dans le graphe. Vérifier si pour chaque sommet t du graphe, il existe une chaîne entre s et t. Complexité 1. Il faut donc faire V vérifications. 2. Le coût de chaque vérification est O( V. E ). 3. Au total, la complexité est donc O( V 2. E ). Remarque Si on utilise l algorithme qui teste l existence d une chaîne en O( V ), on obtient un algorithme en O( V 2 ). 89/136

131 Encore une amélioration On observe que l algorithme parcourt la même chaîne plusieurs fois. Dans le graphe suivant : s s s s s il va parcourir entre s 0 et s 1, puis entre s 0 et s 2, refaisant alors le parcours entre s 0 et s 1, puis entre s 0 et s 3, refaisant alors le parcours entre s 0 et s 2, refaisant alors le parcours entre s 0 et s 1, etc. 90/136

132 Méthode finale pour la connexité Voici l algorithme plus efficace. 1. démarquer tous les sommets 2. marquer un sommet arbitraire s 3. chercher une arête dont un sommet extrémité est marqué et l autre ne l est pas 4. tant qu une telle arête existe : marquer l extrémité non encore marquée 5. si tout les sommets sont marqués, renvoyer vrai 6. sinon renvoyer faux Remarque On peut trouver rapidement l arête du point 3, pour que l algorithme prenne un temps O( V + E ) dans le cas le pire. 91/136

133 Méthode finale pour la connexité Exemple L algorithme ressemble à celui de recherche d une chaîne. Déroulement possible de l algorithme sur le graphe suivant : s 92/136

134 Méthode finale pour la connexité Exemple L algorithme ressemble à celui de recherche d une chaîne. Déroulement possible de l algorithme sur le graphe suivant : s 92/136

135 Méthode finale pour la connexité Exemple L algorithme ressemble à celui de recherche d une chaîne. Déroulement possible de l algorithme sur le graphe suivant : s 92/136

136 Méthode finale pour la connexité Exemple L algorithme ressemble à celui de recherche d une chaîne. Déroulement possible de l algorithme sur le graphe suivant : s 92/136

137 Méthode finale pour la connexité Exemple L algorithme ressemble à celui de recherche d une chaîne. Déroulement possible de l algorithme sur le graphe suivant : s 92/136

138 Méthode finale pour la connexité Exemple L algorithme ressemble à celui de recherche d une chaîne. Déroulement possible de l algorithme sur le graphe suivant : s 92/136

139 Méthode finale pour la connexité Exemple L algorithme ressemble à celui de recherche d une chaîne. Déroulement possible de l algorithme sur le graphe suivant : s 92/136

140 Méthode finale pour la connexité Exemple L algorithme ressemble à celui de recherche d une chaîne. Déroulement possible de l algorithme sur le graphe suivant : s 92/136

141 Méthode finale pour la connexité Exemple L algorithme ressemble à celui de recherche d une chaîne. Déroulement possible de l algorithme sur le graphe suivant : s 92/136

142 Méthode finale pour la connexité Exemple L algorithme ressemble à celui de recherche d une chaîne. Déroulement possible de l algorithme sur le graphe suivant : s 92/136

143 Méthode finale pour la connexité Exemple L algorithme ressemble à celui de recherche d une chaîne. Déroulement possible de l algorithme sur le graphe suivant : s 92/136

144 Méthode finale pour la connexité Exemple L algorithme ressemble à celui de recherche d une chaîne. Déroulement possible de l algorithme sur le graphe suivant : s Connexe! 92/136

145 Graphes eulériens Les ponts de la ville de Königsberg au 18 e siècle (maintenant Kaliningrad en Russie) : 93/136

Structures de données non linéaires

Structures de données non linéaires Structures de données non linéaires I. Graphes Définition Un graphe (simple) orienté G est un couple (S, A), où : S est un ensemble dont les éléments sont appelés les sommets. A est un ensemble de couples

Plus en détail

Théorie des Graphes Cours 3: Forêts et Arbres II / Modélisation

Théorie des Graphes Cours 3: Forêts et Arbres II / Modélisation IFIPS S7 - informatique Université Paris-Sud 11 1er semestre 2009/2010 Théorie des Graphes Cours 3: Forêts et Arbres II / 1 Forêts et arbres II Théorème 1.1. Les assertions suivantes sont équivalentes

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

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

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

Arbres binaires de recherche

Arbres binaires de recherche Chapitre 1 Arbres binaires de recherche 1 Les arbre sont très utilisés en informatique, d une part parce que les informations sont souvent hiérarchisées, et peuvent être représentées naturellement sous

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

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

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

I.2: Le test fonctionnel I.2.2 : Le test fonctionnel de logiciel

I.2: Le test fonctionnel I.2.2 : Le test fonctionnel de logiciel I.2: Le test fonctionnel I.2.2 : Le test fonctionnel de logiciel Introduction Notre contexte : pas possible d exprimer toutes les combinaisons de DT. Le test fonctionnel est basé sur la spécification/interface

Plus en détail

Cours 3. La conditionnelle: instructions si et selon Les boucles Comment raisonner sur les boucles: les invariants de boucle

Cours 3. La conditionnelle: instructions si et selon Les boucles Comment raisonner sur les boucles: les invariants de boucle Cours 3 : Instructions qui changent l ordre d exécution séquentiel 1 Cours 3 Instructions qui changent l ordre d exécution séquentiel La conditionnelle: instructions si et selon Les boucles Comment raisonner

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

L2 - Algorithmique et structures de données (Année 2010/2011) Examen (2 heures)

L2 - Algorithmique et structures de données (Année 2010/2011) Examen (2 heures) L2 - lgorithmique et structures de données (nnée 2010/2011) Delacourt, Phan Luong, Poupet xamen (2 heures) Les documents (cours, TD, TP) sont autorisés. Les quatre exercices sont indépendants. À la fin

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

Eteindre. les. lumières MATH EN JEAN 2013-2014. Mme BACHOC. Elèves de seconde, première et terminale scientifiques :

Eteindre. les. lumières MATH EN JEAN 2013-2014. Mme BACHOC. Elèves de seconde, première et terminale scientifiques : MTH EN JEN 2013-2014 Elèves de seconde, première et terminale scientifiques : Lycée Michel Montaigne : HERITEL ôme T S POLLOZE Hélène 1 S SOK Sophie 1 S Eteindre Lycée Sud Médoc : ROSIO Gauthier 2 nd PELGE

Plus en détail

Suites numériques 3. 1 Convergence et limite d une suite

Suites numériques 3. 1 Convergence et limite d une suite Suites numériques 3 1 Convergence et limite d une suite Nous savons que les termes de certaines suites s approchent de plus en plus d une certaine valeur quand n augmente : par exemple, les nombres u n

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

Mathématiques assistées par ordinateur

Mathématiques assistées par ordinateur Mathématiques assistées par ordinateur Chapitre 4 : Racines des polynômes réels et complexes Michael Eisermann Mat249, DLST L2S4, Année 2008-2009 www-fourier.ujf-grenoble.fr/ eiserm/cours # mao Document

Plus en détail

Leçon 6. Savoir compter

Leçon 6. Savoir compter Leçon 6. Savoir compter Cette leçon est une introduction aux questions de dénombrements. Il s agit, d une part, de compter certains objets mathématiques (éléments, parties, applications,...) et, d autre

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

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

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

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

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

Arbres binaires de recherche (ABR) Binary Search Trees (BST)

Arbres binaires de recherche (ABR) Binary Search Trees (BST) LSVIII-BIM Algorithmie, 2015 Arbres binaires de recherche (ABR) Binary Search Trees (BST) I. Arbres binaires 1. Structure 2. Parcours II. Arbres binaires de recherche 1. Définition 2. Opérations sur les

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

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

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

Chapitre 11. Premières Notions sur les fonctions

Chapitre 11. Premières Notions sur les fonctions Chapitre 11 Premières Notions sur les fonctions 1. Exemples Exemple 1 La distance parcourue par une automobile en un temps donné varie en fonction de sa vitesse. Faire deux phrases utilisant les mots suivants.

Plus en détail

Terminale STMG Lycée Jean Vilar 2013/2014. Terminale STMG. O. Lader

Terminale STMG Lycée Jean Vilar 2013/2014. Terminale STMG. O. Lader Terminale STMG O. Lader Table des matières 1 Information chiffrée (4s) 4 1.1 Taux d évolution....................................... 6 1.2 indices............................................. 6 1.3 Racine

Plus en détail

Les arbres binaires de recherche

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

Algorithmique avancée en Python TDs

Algorithmique avancée en Python TDs Algorithmique avancée en Python TDs Denis Robilliard sept. 2014 1 TD 1 Révisions 1. Ecrire un programme qui saisit un entier, et détermine puis affiche si l entier est pair où impair. 2. Ecrire un programme

Plus en détail

Fiche de TD-TP no. 4

Fiche de TD-TP no. 4 Master 1 Informatique Programmation Fonctionnelle, p. 1 Fiche de TD-TP no. 4 Exercice 1. Voici trois façons différentes de définir le type Image : type Image = [[ Int ]] data Image = Image [[ Int ]] newtype

Plus en détail

Que faire en algorithmique en classe de seconde? ElHassan FADILI Lycée Salvador Allende

Que faire en algorithmique en classe de seconde? ElHassan FADILI Lycée Salvador Allende Que faire en algorithmique en classe de seconde? BEGIN Que dit le programme? Algorithmique (objectifs pour le lycée) La démarche algorithmique est, depuis les origines, une composante essentielle de l

Plus en détail

Séance de TD 05 TD05. 1 Exercice 1. 1.1 Question 1 : dessins des ABR avec hauteurs différentes AG51

Séance de TD 05 TD05. 1 Exercice 1. 1.1 Question 1 : dessins des ABR avec hauteurs différentes AG51 Séance de TD 05 1 Exercice 1 1. Dessinez les arbres binaires de recherche de hauteur 2,3,4,5 et 6 pour le même ensemble de clés S = 1,4,5,10,16,17,21. 2. Donnez l algorithme de l opération ArbreRechercher(x,k)

Plus en détail

Architectures Logicielles et Matérielles Travaux Dirigés Circuits

Architectures Logicielles et Matérielles Travaux Dirigés Circuits UNIVERSITE Joseph FOURIER, Grenoble U.F.R. d Informatique et Maths. Appliquées Architectures Logicielles et Matérielles Travaux Dirigés Circuits Rappel : dessins des portes logiques. Déroulement envisagé

Plus en détail

Chapitre 5 : Flot maximal dans un graphe

Chapitre 5 : Flot maximal dans un graphe Graphes et RO TELECOM Nancy A Chapitre 5 : Flot maximal dans un graphe J.-F. Scheid 1 Plan du chapitre I. Définitions 1 Graphe Graphe valué 3 Représentation d un graphe (matrice d incidence, matrice d

Plus en dé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

PARCOURS DU CAVALIER SUR L ÉCHIQUIER

PARCOURS DU CAVALIER SUR L ÉCHIQUIER I05 ÉPREUVE COMMUNE DE TIPE 2011 - Partie D TITRE : PARCOURS DU CAVALIER SUR L ÉCHIQUIER Temps de préparation :.. 2 h 15 minutes Temps de présentation devant les examinateurs :.10 minutes Dialogue avec

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

Travaux dirigés n o 6

Travaux dirigés n o 6 Travaux dirigés n o 6 Lycée Kléber MPSI, Option Info 2014/2015 Exercice 1 (Indexation d un arbre binaire) Ecrire une fonction Caml indexation : ( f, n) arbre_binaire -> (string,string) arbre_binaire qui

Plus en détail

À propos des matrices échelonnées

À propos des matrices échelonnées À propos des matrices échelonnées Antoine Ducros appendice au cours de Géométrie affine et euclidienne dispensé à l Université Paris 6 Année universitaire 2011-2012 Introduction Soit k un corps, soit E

Plus en détail

Mathématiques pour l Informatique Relations binaires Jérôme Gensel

Mathématiques pour l Informatique Relations binaires Jérôme Gensel Master ICA Spécialité IHS Année 2007/2008 Mathématiques pour l Informatique Relations binaires Jérôme Gensel I) Relations binaires 1. Généralités Définition 1 : Une relation binaire d un ensemble E vers

Plus en détail

TP 1. Prise en main du langage Python

TP 1. Prise en main du langage Python TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer

Plus en détail

Fonctions homographiques

Fonctions homographiques Fonctions homographiques On donne ci-dessous deux définitions des fonctions homographiques, et on montre que ces deux définitions sont équivalentes. On décrit la courbe représentative d une fonction homographique.

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

BACCALAUREAT GENERAL MATHÉMATIQUES

BACCALAUREAT GENERAL MATHÉMATIQUES BACCALAUREAT GENERAL FEVRIER 2014 MATHÉMATIQUES SERIE : ES Durée de l épreuve : 3 heures Coefficient : 5 (ES), 4 (L) 7(spe ES) Les calculatrices électroniques de poche sont autorisées, conformement à la

Plus en détail

LIVRE BLANC Décembre 2014

LIVRE BLANC Décembre 2014 PARSING MATCHING EQUALITY SEARCH LIVRE BLANC Décembre 2014 Introduction L analyse des tendances du marché de l emploi correspond à l évidence à une nécessité, surtout en période de tension comme depuis

Plus en détail

Représentation des fonctions booléennes

Représentation des fonctions booléennes Représentation des fonctions booléennes Épreuve pratique d algorithmique et de programmation Juillet 2003 Ce problème est consacré à l étude de deux représentations des fonctions booléennes de N variables

Plus en détail

Introduction à l Algorithmique

Introduction à l Algorithmique Introduction à l Algorithmique N. Jacon 1 Définition et exemples Un algorithme est une procédure de calcul qui prend en entier une valeur ou un ensemble de valeurs et qui donne en sortie une valeur ou

Plus en détail

Cours 1 : Qu est-ce que la programmation?

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

Proposition d activité utilisant l application. Tripatouille. (http://www.malgouyres.fr/tripatouille/)

Proposition d activité utilisant l application. Tripatouille. (http://www.malgouyres.fr/tripatouille/) IREM Clermont-Ferrand Algorithmique au lycée Malika More malika.more@u-clermont1.fr 28 janvier 2011 Proposition d activité utilisant l application Tripatouille (http://www.malgouyres.fr/tripatouille/)

Plus en détail

Algorithmique Travaux Dirigés

Algorithmique Travaux Dirigés Algorithmique Travaux Dirigés Master Technologie et Handicap : Intensifs 1 Corrigé Exercice 1 Affectations 1. Considérons les algorithmes ci-dessous. (a) Quel sera le contenu des variables a, b et éventuellement

Plus en détail

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer Pour commencer Exercice 1 - Ensembles de définition - Première année - 1. Le logarithme est défini si x + y > 0. On trouve donc le demi-plan supérieur délimité par la droite d équation x + y = 0.. 1 xy

Plus en détail

L informatique en BCPST

L informatique en BCPST L informatique en BCPST Présentation générale Sylvain Pelletier Septembre 2014 Sylvain Pelletier L informatique en BCPST Septembre 2014 1 / 20 Informatique, algorithmique, programmation Utiliser la rapidité

Plus en détail

Poker. A rendre pour le 25 avril

Poker. A rendre pour le 25 avril Poker A rendre pour le 25 avril 0 Avant propos 0.1 Notation Les parties sans * sont obligatoires (ne rendez pas un projet qui ne contient pas toutes les fonctions sans *). Celles avec (*) sont moins faciles

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

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

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

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

λ-calcul et typage Qu est-ce qu une fonction?

λ-calcul et typage Qu est-ce qu une fonction? λ-calcul et typage Nicolas Barnier, Pascal Brisset ENAC Avril 2009 Nicolas Barnier, Pascal Brisset (ENAC) λ-calcul et typage Avril 2009 1 / 1 Qu est-ce qu une fonction? Classiquement Pas de notation uniforme/standard

Plus en détail

Marches, permutations et arbres binaires aléatoires

Marches, permutations et arbres binaires aléatoires Marches, permutations et arbres binaires aléatoires Épreuve pratique d algorithmique et de programmation Concours commun des Écoles Normales Supérieures Durée de l épreuve: 4 heures Cœfficient: 4 Juillet

Plus en détail

PROJET INFORMATIQUE RECHERCHE DE SOUS-CHAÎNE DE CARACTERES

PROJET INFORMATIQUE RECHERCHE DE SOUS-CHAÎNE DE CARACTERES PROJET INFORMATIQUE RECHERCHE DE SOUS-CHAÎNE DE CARACTERES I-Présentation Un algorithme de recherche de sous-chaine est un type d'algorithme de recherche qui a pour objectif de trouver une chaîne de caractères

Plus en détail

Date : 18.11.2013 Tangram en carré page

Date : 18.11.2013 Tangram en carré page Date : 18.11.2013 Tangram en carré page Titre : Tangram en carré Numéro de la dernière page : 14 Degrés : 1 e 4 e du Collège Durée : 90 minutes Résumé : Le jeu de Tangram (appelé en chinois les sept planches

Plus en détail

Projet CLANU en 3GE: Compléments d algèbre linéaire numérique

Projet CLANU en 3GE: Compléments d algèbre linéaire numérique Projet CLANU en 3GE: Compléments d algèbre linéaire numérique Année 2008/2009 1 Décomposition QR On rappelle que la multiplication avec une matrice unitaire Q C n n (c est-à-dire Q 1 = Q = Q T ) ne change

Plus en détail

Présentation du langage et premières fonctions

Présentation du langage et premières fonctions 1 Présentation de l interface logicielle Si les langages de haut niveau sont nombreux, nous allons travaillé cette année avec le langage Python, un langage de programmation très en vue sur internet en

Plus en détail

Ensembles et applications. Motivations. Exo7

Ensembles et applications. Motivations. Exo7 o7 nsembles et applications Vidéo partie 1. nsembles Vidéo partie 2. Applications Vidéo partie 3. Injection, surjection, bijection Vidéo partie 4. nsembles finis Vidéo partie 5. Relation d'équivalence

Plus en détail

Évaluation et implémentation des langages

Évaluation et implémentation des langages Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation

Plus en détail

Lois de probabilité à densité Loi normale

Lois de probabilité à densité Loi normale DERNIÈRE IMPRESSIN LE 31 mars 2015 à 14:11 Lois de probabilité à densité Loi normale Table des matières 1 Lois à densité 2 1.1 Introduction................................ 2 1.2 Densité de probabilité

Plus en détail

Structures de données, IMA S6

Structures de données, IMA S6 Structures de données, IMA S6 Arbres Binaires d après un cours de N. Devésa, Polytech Lille. Laure Gonnord http://laure.gonnord.org/pro/teaching/ Laure.Gonnord@polytech-lille.fr Université Lille 1 - Polytech

Plus en détail

Image d un intervalle par une fonction continue

Image 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

Calculer avec Sage. Revision : 417 du 1 er juillet 2010

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

Héritage en java : Calculatrice SDC

Héritage en java : Calculatrice SDC Programmation orientée objet L3 MIAGE Héritage en java : Calculatrice SDC Travail à rendre : le code complet du projet SDC sous forme d une archive tar.gz. L archive comportera trois répertoires : un répertoire

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

Cours d Algorithmique et Complexité

Cours d Algorithmique et Complexité Cours d Algorithmique et Complexité Structures de données (2e suite) Catalin Dima Arbres binaires de recherche Propriété de base des arbres binaires de recherche Soit x un noeud de l arbre. Alors : 1.

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

Cours d Analyse. Fonctions de plusieurs variables

Cours d Analyse. Fonctions de plusieurs variables Cours d Analyse Fonctions de plusieurs variables Licence 1ère année 2007/2008 Nicolas Prioux Université de Marne-la-Vallée Table des matières 1 Notions de géométrie dans l espace et fonctions à deux variables........

Plus en détail

Cours 7 : fonctions recursives, arithmétique binaire, flottants 1

Cours 7 : fonctions recursives, arithmétique binaire, flottants 1 Cours 7 : fonctions recursives, arithmétique binaire, flottants 1 Les types énumérés On peut aussi définir des types qui ont un nombre fini de valeurs (ex: jours de la semaine, couleurs primaires, etc.)

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

Introduction à l étude des Corps Finis

Introduction à l étude des Corps Finis Introduction à l étude des Corps Finis Robert Rolland (Résumé) 1 Introduction La structure de corps fini intervient dans divers domaines des mathématiques, en particulier dans la théorie de Galois sur

Plus en détail

Chaînes de Markov au lycée

Chaînes de Markov au lycée Journées APMEP Metz Atelier P1-32 du dimanche 28 octobre 2012 Louis-Marie BONNEVAL Chaînes de Markov au lycée Andreï Markov (1856-1922) , série S Problème 1 Bonus et malus en assurance automobile Un contrat

Plus en détail

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

LEÇON N 7 : Schéma de Bernoulli et loi binomiale. Exemples.

LEÇON N 7 : Schéma de Bernoulli et loi binomiale. Exemples. LEÇON N 7 : Schéma de Bernoulli et loi binomiale. Exemples. Pré-requis : Probabilités : définition, calculs et probabilités conditionnelles ; Notion de variables aléatoires, et propriétés associées : espérance,

Plus en détail

Les indices à surplus constant

Les indices à surplus constant Les indices à surplus constant Une tentative de généralisation des indices à utilité constante On cherche ici en s inspirant des indices à utilité constante à définir un indice de prix de référence adapté

Plus en détail

Langage C/C++ TD 3-4 : Création dynamique d objets. Hubert Godfroy. 27 novembre 2014

Langage C/C++ TD 3-4 : Création dynamique d objets. Hubert Godfroy. 27 novembre 2014 Langage C/C++ TD 3-4 : Création dynamique d objets Hubert Godfroy 7 novembre 014 1 Tableaux Question 1 : Écrire une fonction prenant un paramètre n et créant un tableau de taille n (contenant des entiers).

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

Une démarche pédagogique pour l apprentissage de l algorithmique

Une démarche pédagogique pour l apprentissage de l algorithmique Une démarche pédagogique pour l apprentissage de l algorithmique Au moment où l enseignement d ISN connaît sa deuxième année de mise en œuvre sur le terrain, force est de constater que les ressources disponibles

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

I. Polynômes de Tchebychev

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

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte Projet d informatique M1BI : Compression et décompression de texte Le but de ce projet est de coder un programme réalisant de la compression et décompression de texte. On se proposera de coder deux algorithmes

Plus en dé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 & Programmation (INF431) Contrôle classant CC2. 25 juin 2014

Algorithmique & Programmation (INF431) Contrôle classant CC2. 25 juin 2014 Algorithmique & Programmation (INF431) Contrôle classant CC2 25 juin 2014 Les parties I, II et III sont indépendantes les unes des autres. Elles peuvent être traitées dans l ordre de votre choix. Elles

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

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique DOMAINE P3.C3.D1. Pratiquer une démarche scientifique et technologique, résoudre des

Plus en détail

3 Approximation de solutions d équations

3 Approximation de solutions d équations 3 Approximation de solutions d équations Une équation scalaire a la forme générale f(x) =0où f est une fonction de IR dans IR. Un système de n équations à n inconnues peut aussi se mettre sous une telle

Plus en détail

Analyse de programmes par interprétation abstraite

Analyse de programmes par interprétation abstraite Analyse de programmes par interprétation abstraite Marc PEGON marc.pegon@ensimag.imag.fr Ensimag - Grenoble INP Encadrants David MONNIAUX Matthieu MOY 1 / 21 Analyse statique : obtenir automatiquement

Plus en détail

Ensimag 2A. Rapport de TER. Application de la Recherche Opérationnelle à la Finance

Ensimag 2A. Rapport de TER. Application de la Recherche Opérationnelle à la Finance Ensimag 2A Rapport de TER Application de la Recherche Opérationnelle à la Finance Elève : Yuefei HUANG Tuteur : Zoltán SZIGETI Mai, 2010 2 Sommaire 1. Introduction... 3 2. Le marché des changes et arbitrage...

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

RÉVISION DE CALCUL NUMÉRIQUE

RÉVISION DE CALCUL NUMÉRIQUE RÉVISION DE CALCUL NUMÉRIQUE. Les ensembles numériques. Propriétés des nombres réels. Ordre des opérations. Nombres premiers. Opérations sur les fractions 7. Puissances entières 0.7 Notation scientifique.8

Plus en détail