Récursivité et Récurrence

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

Download "Récursivité et Récurrence"

Transcription

1 Université Joseph Fourier UFR IMAG Département Licence Sciences et Technologie LICENCE SCIENCES & TECHNOLOGIES 1 re année INF121 ALGORITHMIQUE ET PROGRAMMATION FONCTIONNELLE Récursivité et Récurrence Fonctions récursives Types récursifs Ensembles dénis récursivement Principe de récurrence

2 Table des matières 5 Fonctions récursives sur les entiers Dénition, exécution et terminaison de fonctions récursives Équations récursives et appels récursifs Terminaison du calcul et fonction de Mesure Rédaction d'une preuve de terminaison Implantation en caml Exemple de fonction récursive non calculable Analyse et critique de cette réalisation Fonctions récursives qui retournent plusieurs résultats Fonctions récursives dont la terminaison dépend de plusieurs arguments L'algorithme du pgcd rapide Exemple d'exécution, mesure et preuve de terminaison

3 Chapitre 5 Fonctions récursives sur les entiers 5.1 Dénition, exécution et terminaison de fonctions récursives La dénition d'une fonction récursive se fait en 4 étapes : 1. spécification mathématique : comme au chapître précédent avec la particularité qu'une fonction récursive f est dénie par une suite récurrente. 2. réalisation informatique : a) L'algorithme est donné sous la forme d'un système d'équations dont certaines sont récursives, c'est-à-dire que la valeur de f est dénie en faisant appel à f. b) preuve de terminaison du calcul à l'aide d'une fonction de Mesure, c) implantation en caml Prenons un exemple. SPÉCIFICATION MATHÉMATIQUE Prol puis : Z N Z Sémantique : puis (x, n) est la nème puissance de x. Les puissances de x sont les termes de la suite récurrente (x i ) i N dénie par x 0 = 1 x i = x x i 1 quand i > 0 Exemple puis (3, 2) = 9 Propriétés 1. x Z, puis (x, 0) = 1 2. x Z, n N, puis (x, 2n) = puis (x x, n) 3. x Z, n N, puis (x, 2n + 1) = x puis (x x, n) RÉALISATION INFORMATIQUE Algorithme : La fonction puis est facile à dénir : il sut de traduire les équations de la suite récurrente. Dénition récursive de la fonction par des équations (1) puis (x, 0) = 1 (2) puis (x, i) = x puis (x, i 1) quand i > 0 1

4 5.1.1 Équations récursives et appels récursifs Vous remarquerez que l'équation (2) dénit puis en faisant appel à puis, on dit qu'elle est récursive ou qu'elle fait des appels récursifs. Cela signie que le calcul de puis (x, i) va demander le calcul puis (x, i 1) qui demandera le calcul de puis (x, i 2) et ainsi de suite. Une telle équation a un sens si on peut montrer que cette suite de calcul en cascade va prendre n. appel appelle appelle puis (x, 3) puis (x, 2) puis (x, 1) puis (x, 0) récursif = = = = x puis (x, 2) x puis (x, 1) x puis (x, 0) 1 = x x x 1 }{{} = retour x x 1 retour x = 1 retour n des appels récursifs résulat du calcul Terminaison du calcul et fonction de Mesure Pour montrer la terminaison des calculs en cascade, on donne une fonction mathématique, appelée Mesure, qui estime la distance qui nous sépare de la n du calcul. Cette distance n'est mesurée ni en centimètres, ni en secondes mais en nombre d'appels récursifs. C'est un entier naturel qui indique le nombre maximal 1 d'appels qui restent avant d'atteindre l'appel qui mettra n au calcul. Pour montrer la terminaison du calcul, la fonction Mesure doit prendre exactement les mêmes arguments que puis et doit retourner un entier naturel. Pour montrer la terminaison de puis on doit donc dénir la Mesure en fonction de x et n de sorte qu'elle retourne un entier et qu'elle indique le nombre d'appels restants. SPÉCIFICATION MATHÉMATIQUE Prol Mesure : Z N N Sémantique : Mesure (x, n) est le nombre maximal d'appels récursifs avant la n calcul de puis (x, n). On choisit : Mesure (x, n) def = en prenant soin que le résulat de la mesure appartienne à N. Reprenons les appels récursifs en cascade déclenchés par puis (x, n) et regardons ce que donne la Mesure que nous avons choisie. appel appelle appelle puis (x, 3) puis (x, 2) puis (x, 1) récursif puis (x, 0) Mesure (x, 3) Mesure (x, 2) Mesure (x, 1) Mesure (x, 0) =.. > =.. > =.. > = 0 On constate qu'elle décroît strictement à chaque appel récursif et comme la Mesure donne une valeur dans N, elle ne peut pas décroître indéniment ; elle atteindra forcément 0 et le calcul s'arrêtera Rédaction d'une preuve de terminaison Pour montrer qu'un calcul termine il n'est pas nécessaire de donner une fonction Mesure qui atteint exactement 0 quand le calcul s'arrête. Il sut de trouver une Mesure qui prend des valeurs dans N et qui décroît strictement à chaque appel récursif. La terminaison est garantie puisqu'il est impossible de constuire une suite d'entiers qui soit innie et strictement décroissante. Par ailleurs, il n'est pas nécessaire d'examiner les exécutions de la fonction, il sut de considérer la ou les équations qui sont récursives l'équation (2) dans le cas de puis et de montrer, sur l'équation, que 1 En général il est dicile de donner le nombre exact d'appels récursifs ; par contre il est aisé de déterminer le nombre maximal d'appels. 2

5 chaque appel récursif fait décroître strictement la mesure. Voici comment on rédige une telle preuve de terminaison : TERMINAISON On dénit Mesure (x, n) def =.. Preuve de terminaison : (i) Les arguments de la fonction sont la fonction (ii) Justions que la mesure choisie retourne des valeurs dans.... : Mesure (x, n) =.. et n N d'après le prol de la fonction puis : Z n N Z (iii) Montrons que la mesure à appel : Pour (ii), on considère uniquement les équations qui comportent des : Seule l'équation (2) est récursive et on doit donc montrer : Équation (2) appel initial puis (x, i) = appel récursif quand i > 0 Mesure (x, i) = i donc Mesure (x, i) > Mesure (x, ) > = vraie pour tout i ok > Mesure (x, ) Implantation en caml Maintenant que nous sommes sûr que les équations récursives dénissent un calcul qui termine nous pouvons les traduire en caml et demander à la machine d'eectuer les calculs. L'exécution du calcul va engendrer des appels récursifs en cascade mais nous sommes assurés que cette cascade d'appels va prendre n tôt ou tard. Implantation 1, par traduction des équations récursives On utilise le ltrage sur (x, n) pour déterminer si on est dans le cas de l'équation (1) ou de l'équation (2). let... (puis : int * nat -> int) = function (x,n) -> match (x,n) with partie optionnelle (x,0) -> 1 (* équation 1 *) (x,i) when i>0 -> x * puis(x,i-1) (* équation 2 *) 3

6 Implantation 2, même traduction mais en notation abbrégée let rec (puis : int * nat -> int) = function (x,0) -> 1 (* équation 1 *) (x,i) when i>0 -> x * puis(x,i-1) (* équation 2 *) Remarque Nous redonnons ci-dessous le prol et les équations de la fonction puissance an de soulignez la proximité de la fonction écrite en caml et de sa description mathématique. Prenez le temps de comparer l'implantation 2 avec le prol et les équations ci-dessous. Prol puis : Z N Z Dénition récursive de la fonction par des équations (1) puis (x, 0) = 1 (2) puis (x, i) = x puis (x, i 1) quand i > 0 Conclusion Pour bien programmer en caml il faut dénir ses fonctions mathématiquement par des équations récursives ; ensuite la traduction est quasi immédiate. 5.2 Exemple de fonction récursive non calculable SPÉCIFICATION MATHÉMATIQUE Prol puis : Z N Z Sémantique : puis (x, n) est la nème puissance de x. Les puissances de x sont les termes de la suite récurrente (x i ) i N dénie par x 0 = 1 x i = xi+1 x RÉALISATION INFORMATIQUE Algorithme : On dénit la fonction puis par traduction des équations de la suite récurrente. Dénition récursive de la fonction par des équations (1) puis (x, 0) = 1 (2) puis (x, i) = puis (x, i + 1)/x quand i > 0 Implantation : On traduit les équations récursives en caml let rec (puis : int * nat -> int) = function (x,0) -> 1 (x,i) when i>0 -> puis(x,i+1) / x Analyse et critique de cette réalisation Cette fonction est parfaitement dénie, correctement typée et elle est acceptée par caml. Mais... Question : que ce passe-t'il si on essaie de l'exécuter, par exemple en demandant de calculerpuis (3, 2) Elle ne pas puisque puis (x, 2) appelle puis (x,.. ) appelle puis (x,.. ) appelle... 4

7 Nous avons bien suivi toutes les étapes de conception d'une fonction récursive, toutes sauf une : nous avons négligé la preuve de terminaison et le calcul ne termine pas. Nous avons donné une dénition correcte du point de vue mathématique mais incorrecte du point de vue informatique car non calculable. 5.3 Fonctions récursives qui retournent plusieurs résultats La division euclidienne de a par b doit rendre deux résultats : le quotient de la division et le reste. Elle retourne donc un couple (reste, quotient). SPÉCIFICATION MATHÉMATIQUE Prol div : N N N N Sémantique : div (a, b) = (q, r) est le résultat de la division euclidienne de a par b, c'est-à-dire que les entiers q et r sont tels que a = b q + r avec r < b Exemples 1. div (14, 3) = (4, 2) car 5 = et.. < 3 2. div (5, 7) = (0, 4) car 5 = et.. < 7 Propriétés 1. div (a, a) = (..,.. ) car a = et.. <.. 2. div (1, 1) = (..,.. ) car 1 = et.. <.. 3. div (1, b) = (..,.. ) car 1 = et.. <.. quand b > 1 4. div (a, 0) = car a =.. q + r avec r <.. n'est pas C'est pour cela qu'on impose la contrainte b RÉALISATION INFORMATIQUE Algorithme : Tant qu'il nous reste dans a une quantité susante pour prendre b, on retranche b de a, c'est-à-dire qu'on prend une fois de plus b de a et donc le quotient augmente d'une unité. Lorsqu'on ne peut plus retrancher b de a (parce que a < b) alors le reste de la division euclidienne c'est a. Dénition récursive de la fonction reste par des équations (1) reste(a, b) =.. quand a < b (2) reste(a, b) = reste(...., b) quand a b Dénition récursive de la fonction quotient par des équations (1 ) quotient(a, b) =.. quand a < b (2 ) quotient(a, b) = 1 + quotient( , b) quand a b 5

8 Dénition de la fonction div par des équations div (a, b) = ( (a, b), reste(..,..)) quand a 0, b > 0 Implantation 1 type nat = int (* >= 0 *) type natpos = int (* >0 *) let rec (quotient : nat * natpos -> nat) = function (a,b) when..>=0 &&..>0 -> if... then 0 else.. + quotient(...,b) let rec (reste : nat * natpos -> nat) = function (a,b) when a b... -> if... then r else reste(...,b) let (div : nat * natpos -> nat * nat) = function (a,b) &&... -> ( quotient...,...(a,b) ) RÉALISATION INFORMATIQUE autre version qui regroupe les fonctions quotient et reste Algorithme : On calcule le reste et le quotient simultanément. Dénition récursive de la fonction reste par des équations (1 ) quotient-reste(a, b, q, r) = (q, r) quand r < b (2 ) quotient-reste(a, b, q, r) = quotient-reste(a, b,.. +..,....) quand r b Dénition de la fonction div par des équations div (a, b) = quotient-reste(a, b, q, r) avec r = a et q = 0 }{{} quand a 0, b > 0 valeurs iniitiales de r et q Implantation autre version let rec (quotient_reste : nat * natpos * nat * nat -> nat * nat) = function (a,b,q,r) when... -> if (r<b) then (q,r) else quotient_reste(..,..,q..1,r..b) let (div : nat * natpos -> nat * nat) = function (a,b) when... -> let r=.. and q=.. in quotient_reste(a,b,q,r) 6

9 Exercice Rédigez les preuves de terminaison des fonctions reste, quotient et quotient - reste. TERMINAISON de la fonction reste On dénit Mesure (a, b) def =.. Preuve de terminaison : (i) Les arguments de la fonction sont la fonction (ii) Justions que la mesure choisie retourne des valeurs dans.... : Mesure (a, b) =.. N puisque.. N d'après le prol de la fonction reste (iii) Montrons que la mesure à appel : Pour (ii), on considère uniquement les équations qui comportent des : Seule l'équation (2) est récursive et on doit montrer : Équation (2) appel initial reste(a, b) = appel récursif reste( ,..) quand a > b Mesure (a, b) > Mesure ( ,..) =.. donc Mesure (a, b) > = ok > Mesure ( ,..) si b... 0 La condition b n'est pas dénie pour b = 0. est nécessaire pour garantir la terminaison. Voilà pourquoi la division TERMINAISON de la fonction quotient - reste On dénit Mesure (a, b,..,.. ) def =.. Preuve de terminaison : (i) Les arguments de la fonction sont la fonction (ii) Justions que la mesure choisie retourne des valeurs dans.... : Mesure (a, b,..,.. ) =.. N puisque.. N d'après le prol de la fonction quotient-reste (iii) Montrons que la mesure à appel : 7

10 Pour (ii), on considère uniquement les équations qui comportent des : Seule l'équation (2) est récursive et on doit montrer : Équation (2) appel initial quotient-reste(a, b, q, r) = appel récursif quotient-reste(..,..,.. +..,....) Mesure (a, b, q, r) > Mesure (a,.., , ) =.. donc Mesure (a, b, q, r) > = ok > Mesure (.., b, q......, r..... ) si Là encore, la condition est nécessaire pour garantir la terminaison. Voilà pourquoi on impose b Fonctions récursives dont la terminaison dépend de plusieurs arguments Calcul rapide du PGCD exercice du partiel 2009 (0 min, 6 pt) Le but de cette partie est d'écrire un algorithme de calcul rapide du pgcd (plus grand diviseur commun) de deux entiers et d'étudier la terminaison de l'algorithme. définition (PGCD) L'entier positif p est le pgcd des entiers a et b si il satisfait les 3 conditions : 1. p divise a 2. p divise b 3. tout autre diviseur q de a et de b est inférieur à p Q1. (0 min, 1 pt) On donne ci-dessous des dénitions de 3 fonctions qui seront utiles pour dénir ensuite la fonction pgcd. On suppose que la fonction pair est déjà implantée. Complétez les dénitions ci-dessous. SPÉCIFICATION MATHÉMATIQUE du pair Prol pair : Z Sémantique : pair (n) vaut vrai si n est divisible par 2 SPÉCIFICATION MATHÉMATIQUE du prédicat impair Prol impair : Sémantique : impair (n) vaut vrai si n n'est pas divisible par 2 8

11 RÉALISATION INFORMATIQUE Implantation let (impair :... ) =... -> not... SPÉCIFICATION MATHÉMATIQUE Prol dist : Z Z.... Sémantique : dist (a, b) est la distance qui sépare les nombres a et b Exemple 1. dist (5, 8) = 3 2. dist (15, 12) = 3 3. dist (0, 1) = 1 4. dist ( 2, 0) = 2 5. dist ( 2, 3) = 5 6. dist ( 7, 5) = 2 Propriétés 1. a, b Z, a b = dist(a, b) si a... b 2. a, b Z, a b = dist(a, b) si RÉALISATION INFORMATIQUE Implantation let (dist :...) =... -> let d =... in if L'algorithme du pgcd rapide SPÉCIFICATION MATHÉMATIQUE Prol pgcdr : N N N Sémantique : pgcdr (a, b) est le plus grand des nombres qui divise à la fois a et b. Exemples 1. pgcdr (5, 12) = 1 en eet 5 et 12 n'ont pas de diviseur commun non nul autre que 1 2. pgcdr (8, 6) = 2 en eet 8 = 2 4 et 6 = pgcdr (24, 16) = 8 en eet 24 = 3 8 et 16 = 2 8 donc 8 est le plus grand diviseur commun de 24 et 16 L'exercice consiste à traduire chacune des remarques ci-dessous sous la forme d'une équation qui dénit l'algorithme de calcul rapide du pgcd d'un couple d'entiers (a, b). 9

12 Q2. (0 min, 1.5 pt) Complétez les pointillés dans les remarques suivantes : RÉALISATION INFORMATIQUE Algorithme : Dans le cas où l'un des deux nombres a, b vaut 1 alors le pgcd vaut... Dans le cas où les nombres sont consécutifs (soit a = n et b = n + 1 ou bien b = n et a = n + 1), le pgcd de a et b vaut 1. Si les deux nombres a et b sont égaux alors le pgcd est Si a est pair et b est impair alors le pgcd(a, b) est égal au pgcd de b et de a/2. Réciproquement, si a est impair et b pair alors le pgcd(a, b) est égal au pgcd de et de Si les deux nombres sont pairs, ils sont donc chacun divisibles par deux. Que peut-on alors dire du pgcd de a et b Si les deux nombres sont impairs et a > b, les diviseurs communs à a et b sont forcément des diviseurs de ; donc le pgcd de a et b est égal au pgcd de a b et de b. Si les deux nombres sont impairs et si a < b, les diviseurs communs à a et b sont forcément des diviseurs de b a ; donc le pgcd de a et b est égal au pgcd de et de... Q3. (0 min, 1.5 pt) À partir des remarques précédentes, complétez les équations de l'algorithme. RÉALISATION INFORMATIQUE Dénition récursive de la fonction par des équations (1) pgcdr (a, b) =.. si (2) pgcdr (a, b) = a si (3) pgcdr (a, b) = pgcdr (.., ) si (4) pgcdr (a, b) = si (5) pgcdr (a, b) = pgcdr ( , ) si (6) pgcdr (a, b) = pgcdr ( ,..) si (7) pgcdr (a, b) = pgcdr (.., ) si Exemple d'exécution, mesure et preuve de terminaison Q4. (0 min, 2 pt) Complétez les appels récursifs engendrés par l'appel pgcdr (44, 37) en indiquant à chaque étape l'équation utilisée. Ensuite, donnez une fonction Mesure à valeur dans N qui décroit 10

13 strictement à chaque appel récursif et vériez qu'elle décroît eectivement sur la séquence d'appels récursifs engendrés par pgcdr (44, 37). Mesure (a, b) def = pgcdr (44, 37) Mesure (44, 37) =.... d'après (.. ) = > pgcdr (22,.... ) Mesure (22,.... ) =.... d'après (.. ) = > pgcdr (...., 37) Mesure (...., 37) =.... d'après (.. ) = > pgcdr (...., 26) Mesure (...., 26) =.... d'après (.. ) = > pgcdr (11,.... ) Mesure (11,.... ) =.... d'après (.. ) = > pgcdr (....,.. ) Mesure (....,.. ) =.... d'après (.. ) = > pgcdr (....,.. ) Mesure (....,.. ) =.... d'après (.. ) =.. Exercice Rédigez la preuve de terminaison pour les équations récursives (3) et (6). TERMINAISON On dénit Mesure (a, b) def = Preuve de terminaison : (i) Les arguments de la fonction sont la fonction (ii) Justions que la mesure choisie retourne des valeurs dans.... : Mesure (a, b) = pgcdr N puisque a N et b N d'après le prol de la fonction 11

14 (iii) Montrons que la mesure à appel : Pour (ii), on considère uniquement les équations qui comportent des : Pour l'équation récursive (3) on doit montrer : Équation (3) appel initial pgcdr (a, b) = appel récursif quand impair (.. ) pair (..) Mesure (a, b) = donc Mesure (a, b) > Mesure (a, ) > = ok > Mesure (a, ) si b.. Notez que b > 0 ne sut pas pour garantir la décroissance stricte car lorsque b = 1 on a b/2 vaut 0. Il faut que b... Heureusement c'est le cas car b et que b est Pour l'équation récursive (6) on doit montrer : Équation (6) appel initial pgcdr (..,..) = appel récursif Mesure (a, b) = donc Mesure (a, b) > Mesure ( ,..) > = =.. ok > Mesure ( ,..) si b La décroissance stricte est garantie puisque b

Problème : Calcul d'échéanciers de prêt bancaire (15 pt)

Problème : Calcul d'échéanciers de prêt bancaire (15 pt) Problème : Calcul d'échéanciers de prêt bancaire (15 pt) 1 Principe d'un prêt bancaire et dénitions Lorsque vous empruntez de l'argent dans une banque, cet argent (appelé capital) vous est loué. Chaque

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

Correction Code nécessaire à la compilation : let bs ="\\" let nl = "\n" ;; let appliquer = List.map ;; (* affichage d'un noeud *)

Correction Code nécessaire à la compilation : let bs =\\ let nl = \n ;; let appliquer = List.map ;; (* affichage d'un noeud *) Correction Code nécessaire à la compilation : let bs ="\\" let nl = "\n" let appliquer = List.map (* affichage d'un noeud *) let (noeud_vers_ch : int -> string) = function n -> "fib(" ^ (string_of_int

Plus en détail

Peut-on tout programmer?

Peut-on tout programmer? Chapitre 8 Peut-on tout programmer? 8.1 Que peut-on programmer? Vous voici au terme de votre initiation à la programmation. Vous avez vu comment représenter des données de plus en plus structurées à partir

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

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

Examen Médian - 1 heure 30

Examen Médian - 1 heure 30 NF01 - Automne 2014 Examen Médian - 1 heure 30 Polycopié papier autorisé, autres documents interdits Calculatrices, téléphones, traducteurs et ordinateurs interdits! Utilisez trois copies séparées, une

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

length : A N add : Z Z Z (n 1, n 2 ) n 1 + n 2

length : A N add : Z Z Z (n 1, n 2 ) n 1 + n 2 1 Univ. Lille1 - Licence info 3ème année 2013-2014 Expression Logique et Fonctionnelle... Évidemment Cours n o 1 : Introduction à la programmation fonctionnelle 1 Introduction La programmation fonctionnelle

Plus en détail

I. Introduction aux fonctions : les fonctions standards

I. Introduction aux fonctions : les fonctions standards Chapitre 3 : Les fonctions en C++ I. Introduction aux fonctions : les fonctions standards A. Notion de Fonction Imaginons que dans un programme, vous ayez besoin de calculer une racine carrée. Rappelons

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

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

Vers l'ordinateur quantique

Vers l'ordinateur quantique Cours A&G Vers l'ordinateur quantique Données innies On a vu dans les chapîtres précédents qu'un automate permet de représenter de manière nie (et même compacte) une innité de données. En eet, un automate

Plus en détail

6. Les différents types de démonstrations

6. Les différents types de démonstrations LES DIFFÉRENTS TYPES DE DÉMONSTRATIONS 33 6. Les différents types de démonstrations 6.1. Un peu de logique En mathématiques, une démonstration est un raisonnement qui permet, à partir de certains axiomes,

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

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

DEVOIR MAISON : THEME : LES CLES DE CONTROLE. I. La clé des codes barres

DEVOIR MAISON : THEME : LES CLES DE CONTROLE. I. La clé des codes barres DEVOIR MAISON : THEME : LES CLES DE CONTROLE I. La clé des codes barres Le code U.P.C. (Universal Product Code) utilise des nombres de treize chiffres pour désigner un produit de consommation. Les douze

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

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

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

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

L ALGORITHMIQUE. Algorithme

L ALGORITHMIQUE. Algorithme L ALGORITHMIQUE Inspirée par l informatique, cette démarche permet de résoudre beaucoup de problèmes. Quelques algorithmes ont été vus en 3 ième et cette année, au cours de leçons, nous verrons quelques

Plus en détail

La question est : dans 450 combien de fois 23. L opération est donc la division. Le diviseur. Le quotient

La question est : dans 450 combien de fois 23. L opération est donc la division. Le diviseur. Le quotient par un nombre entier I La division euclidienne : le quotient est entier Faire l activité division. Exemple Sur une étagère de 4mm de large, combien peut on ranger de livres de mm d épaisseur? La question

Plus en détail

Définition : On obtient les nombres entiers en ajoutant ou retranchant des unités à zéro.

Définition : On obtient les nombres entiers en ajoutant ou retranchant des unités à zéro. Chapitre : Les nombres rationnels Programme officiel BO du 8/08/08 Connaissances : Diviseurs communs à deux entiers, PGCD. Fractions irréductibles. Opérations sur les nombres relatifs en écriture fractionnaire.

Plus en détail

chapitre 4 Nombres de Catalan

chapitre 4 Nombres de Catalan chapitre 4 Nombres de Catalan I Dénitions Dénition 1 La suite de Catalan (C n ) n est la suite dénie par C 0 = 1 et, pour tout n N, C n+1 = C k C n k. Exemple 2 On trouve rapidement C 0 = 1, C 1 = 1, C

Plus en détail

Cours de Programmation 2

Cours de Programmation 2 Cours de Programmation 2 Programmation à moyenne et large échelle 1. Programmation modulaire 2. Programmation orientée objet 3. Programmation concurrente, distribuée 4. Programmation monadique 5. Les programmes

Plus en détail

Pourquoi l apprentissage?

Pourquoi l apprentissage? Pourquoi l apprentissage? Les SE sont basés sur la possibilité d extraire la connaissance d un expert sous forme de règles. Dépend fortement de la capacité à extraire et formaliser ces connaissances. Apprentissage

Plus en détail

Vérification de programmes et de preuves Première partie. décrire des algorithmes

Vérification de programmes et de preuves Première partie. décrire des algorithmes Vérification de programmes et de preuves Première partie. décrire des algorithmes Yves Bertot September 2012 1 Motivating introduction A partir des années 1940, il a été compris que l on pouvait utiliser

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

1. Structure d'un programme FORTRAN 95

1. Structure d'un programme FORTRAN 95 FORTRAN se caractérise par la nécessité de compiler les scripts, c'est à dire transformer du texte en binaire.(transforme un fichier de texte en.f95 en un executable (non lisible par un éditeur) en.exe.)

Plus en détail

Axiomatique de N, construction de Z

Axiomatique de N, construction de Z Axiomatique de N, construction de Z Table des matières 1 Axiomatique de N 2 1.1 Axiomatique ordinale.................................. 2 1.2 Propriété fondamentale : Le principe de récurrence.................

Plus en détail

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun> 94 Programmation en OCaml 5.4.8. Concaténation de deux listes Définissons maintenant la fonction concat qui met bout à bout deux listes. Ainsi, si l1 et l2 sont deux listes quelconques, concat l1 l2 constitue

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

Couples de variables aléatoires discrètes

Couples de variables aléatoires discrètes Couples de variables aléatoires discrètes ECE Lycée Carnot mai Dans ce dernier chapitre de probabilités de l'année, nous allons introduire l'étude de couples de variables aléatoires, c'est-à-dire l'étude

Plus en détail

2. RAPPEL DES TECHNIQUES DE CALCUL DANS R

2. RAPPEL DES TECHNIQUES DE CALCUL DANS R 2. RAPPEL DES TECHNIQUES DE CALCUL DANS R Dans la mesure où les résultats de ce chapitre devraient normalement être bien connus, il n'est rappelé que les formules les plus intéressantes; les justications

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

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Sub CalculAnnuite() Const TITRE As String = Calcul d'annuité de remboursement d'un emprunt TD1 : traduction en Visual BASIC des exemples du cours sur les structures de contrôle de l'exécution page 1 'TRADUCTION EN VBA DES EXEMPLES ALGORITHMIQUES SUR LES STRUCTURES 'DE CONTROLE DE L'EXECUTION

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

NOTATIONS PRÉLIMINAIRES

NOTATIONS PRÉLIMINAIRES Pour le Jeudi 14 Octobre 2010 NOTATIONS Soit V un espace vectoriel réel ; l'espace vectoriel des endomorphismes de l'espace vectoriel V est désigné par L(V ). Soit f un endomorphisme de l'espace vectoriel

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

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

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

COURS ALGORITHMIE. Mathématiques. Le monde merveilleux des algorithmes!! Croyez-moi, vous allez les adorer. Julien Bordas T.S 3

COURS ALGORITHMIE. Mathématiques. Le monde merveilleux des algorithmes!! Croyez-moi, vous allez les adorer. Julien Bordas T.S 3 Mathématiques COURS ALGORITHMIE Le monde merveilleux des algorithmes!! Croyez-moi, vous allez les adorer Julien Bordas T.S 3 La Nativité Mathématiques A qui s adresse ce cours? COURS ALGORITHMIE Ce cours

Plus en détail

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation : Algorithmique et programmation : STRUCTURES DE DONNÉES A. Structure et enregistrement 1) Définition et rôle des structures de données en programmation 1.1) Définition : En informatique, une structure de

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

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

THEME : CLES DE CONTROLE. Division euclidienne

THEME : CLES DE CONTROLE. Division euclidienne THEME : CLES DE CONTROLE Division euclidienne Soit à diviser 12 par 3. Nous pouvons écrire : 12 12 : 3 = 4 ou 12 3 = 4 ou = 4 3 Si par contre, il est demandé de calculer le quotient de 12 par 7, la division

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

Algorithmes et Programmes. Introduction à l informatiquel. Cycle de vie d'un programme (d'un logiciel) Cycle de vie d'un programme (d'un logiciel)

Algorithmes et Programmes. Introduction à l informatiquel. Cycle de vie d'un programme (d'un logiciel) Cycle de vie d'un programme (d'un logiciel) Algorithmes et Programmes Introduction à l informatiquel! Vie d'un programme! Algorithme! Programmation : le langage! Exécution et test des programmes Chapitre : Algorithmes et Programmes 2 Cycle de vie

Plus en détail

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies INF 232: Langages et Automates Travaux Dirigés Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies Année Académique 2013-2014 Année Académique 2013-2014 UNIVERSITÉ JOSEPH

Plus en détail

Théorie de la Programmation

Théorie de la Programmation Théorie de la Programmation http://perso.ens-lyon.fr/daniel.hirschkoff/thpr hop Programmation, Théorie de la programmation Langages de programmation I il existe de nombreux langages de programmation I

Plus en détail

Système binaire. Algèbre booléenne

Système binaire. Algèbre booléenne Algèbre booléenne Système binaire Système digital qui emploie des signaux à deux valeurs uniques En général, les digits employés sont 0 et 1, qu'on appelle bits (binary digits) Avantages: on peut utiliser

Plus en détail

Découverte du tableur CellSheet

Découverte du tableur CellSheet Découverte du tableur CellSheet l application pour TI-83 Plus et TI-84 Plus. Réalisé par Guy Juge Professeur de mathématiques et formateur IUFM de l académie de Caen Pour l équipe des formateurs T 3 Teachers

Plus en détail

Programmation Objet - Cours II

Programmation Objet - Cours II Programmation Objet - Cours II - Exercices - Page 1 Programmation Objet - Cours II Exercices Auteur : E.Thirion - Dernière mise à jour : 05/07/2015 Les exercices suivants sont en majorité des projets à

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

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février 2014 17:30 à 20:30

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février 2014 17:30 à 20:30 Examen intra 20 février 2014 17:30 à 20:30 Nom, prénom : Code permanent : Répondez directement sur le questionnaire. Question #1 5% Quelle influence peut avoir le typage dynamique sur la maintenabilité

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

1 Définition et premières propriétés des congruences

1 Définition et premières propriétés des congruences Université Paris 13, Institut Galilée Département de Mathématiques Licence 2ème année Informatique 2013-2014 Cours de Mathématiques pour l Informatique Des nombres aux structures Sylviane R. Schwer Leçon

Plus en détail

avec des nombres entiers

avec des nombres entiers Calculer avec des nombres entiers Effectuez les calculs suivants.. + 9 + 9. Calculez. 9 9 Calculez le quotient et le rest. : : : : 0 :. : : 9 : : 9 0 : 0. 9 9 0 9. Calculez. 9 0 9. : : 0 : 9 : :. : : 0

Plus en détail

OCL - Object Constraint Language

OCL - Object Constraint Language OCL - Object Constraint Language Laëtitia Matignon laetitia.matignon@univ-lyon1.fr Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object

Plus en détail

Chapitre 1 : Évolution COURS

Chapitre 1 : Évolution COURS Chapitre 1 : Évolution COURS OBJECTIFS DU CHAPITRE Savoir déterminer le taux d évolution, le coefficient multiplicateur et l indice en base d une évolution. Connaître les liens entre ces notions et savoir

Plus en détail

Programmation avec Xcas ou Python

Programmation avec Xcas ou Python Programmation avec Xcas ou Python G. Aldon - J. Germoni - J.-M. Mény IREM de Lyon Mars 2012 GA, JG, JMM (IREM de Lyon) programmer xcas python Mars 2012 1 / 20 Éditeur Xcas Environnement Le texte d un programme

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

Le chiffre est le signe, le nombre est la valeur.

Le chiffre est le signe, le nombre est la valeur. Extrait de cours de maths de 6e Chapitre 1 : Les nombres et les opérations I) Chiffre et nombre 1.1 La numération décimale En mathématique, un chiffre est un signe utilisé pour l'écriture des nombres.

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

Développements limités. Notion de développement limité

Développements limités. Notion de développement limité MT12 - ch2 Page 1/8 Développements limités Dans tout ce chapitre, I désigne un intervalle de R non vide et non réduit à un point. I Notion de développement limité Dans tout ce paragraphe, a désigne un

Plus en détail

CH.6 Propriétés des langages non contextuels

CH.6 Propriétés des langages non contextuels CH.6 Propriétés des langages non contetuels 6.1 Le lemme de pompage 6.2 Les propriétés de fermeture 6.3 Les problèmes de décidabilité 6.4 Les langages non contetuels déterministes utomates ch6 1 6.1 Le

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

1.6- Génération de nombres aléatoires

1.6- Génération de nombres aléatoires 1.6- Génération de nombres aléatoires 1- Le générateur aléatoire disponible en C++ 2 Création d'un générateur aléatoire uniforme sur un intervalle 3- Génération de valeurs aléatoires selon une loi normale

Plus en détail

Introduction a l'algorithmique des objets partages. Robert Cori. Antoine Petit. Lifac, ENS Cachan, 94235 Cachan Cedex. Resume

Introduction a l'algorithmique des objets partages. Robert Cori. Antoine Petit. Lifac, ENS Cachan, 94235 Cachan Cedex. Resume Introduction a l'algorithmique des objets partages Bernadette Charron{Bost Robert Cori Lix, Ecole Polytechnique, 91128 Palaiseau Cedex, France, charron@lix.polytechnique.fr cori@lix.polytechnique.fr Antoine

Plus en détail

Application 1- VBA : Test de comportements d'investissements

Application 1- VBA : Test de comportements d'investissements Application 1- VBA : Test de comportements d'investissements Notions mobilisées Chapitres 1 à 5 du cours - Exemple de récupération de cours en ligne 1ère approche des objets (feuilles et classeurs). Corps

Plus en détail

OPTIMISATION À UNE VARIABLE

OPTIMISATION À UNE VARIABLE OPTIMISATION À UNE VARIABLE Sommaire 1. Optimum locaux d'une fonction... 1 1.1. Maximum local... 1 1.2. Minimum local... 1 1.3. Points stationnaires et points critiques... 2 1.4. Recherche d'un optimum

Plus en détail

Les suites numériques

Les suites numériques Chapitre 3 Term. STMG Les suites numériques Ce que dit le programme : Suites arithmétiques et géométriques CONTENUS CAPACITÉS ATTENDUES COMMENTAIRES Suites arithmétiques et géométriques Expression du terme

Plus en détail

Cours d arithmétique Première partie

Cours d arithmétique Première partie Cours d arithmétique Première partie Pierre Bornsztein Xavier Caruso Pierre Nolin Mehdi Tibouchi Décembre 2004 Ce document est la première partie d un cours d arithmétique écrit pour les élèves préparant

Plus en détail

Structures algébriques

Structures algébriques Structures algébriques 1. Lois de composition s Soit E un ensemble. Une loi de composition interne sur E est une application de E E dans E. Soient E et F deux ensembles. Une loi de composition externe

Plus en détail

108y= 1 où x et y sont des entiers

108y= 1 où x et y sont des entiers Polynésie Juin 202 Série S Exercice Partie A On considère l équation ( ) relatifs E :x y= où x et y sont des entiers Vérifier que le couple ( ;3 ) est solution de cette équation 2 Déterminer l ensemble

Plus en détail

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes. Les Triggers SQL Didier DONSEZ Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.fr 1 Sommaire Motivations Trigger Ordre Trigger Ligne Condition Trigger

Plus en détail

Gestion mémoire et Représentation intermédiaire

Gestion mémoire et Représentation intermédiaire Gestion mémoire et Représentation intermédiaire Pablo de Oliveira March 23, 2015 I Gestion Memoire Variables locales Les variables locales sont stockées: Soit dans un registre,

Plus en détail

Java Licence Professionnelle 2009-2010. Cours 7 : Classes et méthodes abstraites

Java Licence Professionnelle 2009-2010. Cours 7 : Classes et méthodes abstraites Java Licence Professionnelle 2009-2010 Cours 7 : Classes et méthodes abstraites 1 Java Classes et méthodes abstraites - Le mécanisme des classes abstraites permet de définir des comportements (méthodes)

Plus en détail

Fonctions de plusieurs variables : dérivés partielles, diérentielle. Fonctions composées. Fonctions de classe C 1. Exemples

Fonctions de plusieurs variables : dérivés partielles, diérentielle. Fonctions composées. Fonctions de classe C 1. Exemples 45 Fonctions de plusieurs variables : dérivés partielles, diérentielle. Fonctions composées. Fonctions de classe C 1. Exemples Les espaces vectoriels considérés sont réels, non réduits au vecteur nul et

Plus en détail

IUT de Laval Année Universitaire 2008/2009. Fiche 1. - Logique -

IUT de Laval Année Universitaire 2008/2009. Fiche 1. - Logique - IUT de Laval Année Universitaire 2008/2009 Département Informatique, 1ère année Mathématiques Discrètes Fiche 1 - Logique - 1 Logique Propositionnelle 1.1 Introduction Exercice 1 : Le professeur Leblond

Plus en détail

Enoncé et corrigé du brevet des collèges dans les académies d Aix- Marseille, Montpellier, Nice Corse et Toulouse en 2000. Énoncé.

Enoncé et corrigé du brevet des collèges dans les académies d Aix- Marseille, Montpellier, Nice Corse et Toulouse en 2000. Énoncé. Enoncé et corrigé du brevet des collèges dans les académies d Aix- Marseille, Montpellier, Nice Corse et Toulouse en 2000. Énoncé. I- ACTIVITES NUMERIQUES (12 points) Exercice 1 (3 points) On considère

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

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml OCL Object Constraint Language Le langage de contraintes d'uml Plan 1. Introduction 2. Les principaux concepts d'ocl Object Constraint Language 1 Object Constraint Language 2 Exemple: une application bancaire

Plus en détail

Cours Programmation Système

Cours Programmation Système Cours Programmation Système Filière SMI Semestre S6 El Mostafa DAOUDI Département de Mathématiques et d Informatique, Faculté des Sciences Université Mohammed Premier Oujda m.daoudi@fso.ump.ma Février

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

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

Par combien de zéros se termine N!?

Par combien de zéros se termine N!? La recherche à l'école page 79 Par combien de zéros se termine N!? par d es co llèg es An dré Do ucet de Nanterre et Victor Hugo de Noisy le Grand en seignants : Danielle Buteau, Martine Brunstein, Marie-Christine

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

Algorithmique et programmation : les bases (VBA) Corrigé

Algorithmique et programmation : les bases (VBA) Corrigé PAD INPT ALGORITHMIQUE ET PROGRAMMATION 1 Cours VBA, Semaine 1 mai juin 2006 Corrigé Résumé Ce document décrit l écriture dans le langage VBA des éléments vus en algorithmique. Table des matières 1 Pourquoi

Plus en détail

CORRECTION EXERCICES ALGORITHME 1

CORRECTION EXERCICES ALGORITHME 1 CORRECTION 1 Mr KHATORY (GIM 1 A) 1 Ecrire un algorithme permettant de résoudre une équation du second degré. Afficher les solutions! 2 2 b b 4ac ax bx c 0; solution: x 2a Solution: ALGORITHME seconddegré

Plus en détail

Continuité en un point

Continuité en un point DOCUMENT 4 Continuité en un point En général, D f désigne l ensemble de définition de la fonction f et on supposera toujours que cet ensemble est inclus dans R. Toutes les fonctions considérées sont à

Plus en détail

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES Leçon 11 PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES Dans cette leçon, nous retrouvons le problème d ordonnancement déjà vu mais en ajoutant la prise en compte de contraintes portant sur les ressources.

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

Texte Agrégation limitée par diffusion interne

Texte Agrégation limitée par diffusion interne Page n 1. Texte Agrégation limitée par diffusion interne 1 Le phénomène observé Un fût de déchets radioactifs est enterré secrètement dans le Cantal. Au bout de quelques années, il devient poreux et laisse

Plus en détail

Cours Fonctions de deux variables

Cours Fonctions de deux variables Cours Fonctions de deux variables par Pierre Veuillez 1 Support théorique 1.1 Représentation Plan et espace : Grâce à un repère cartésien ( ) O, i, j du plan, les couples (x, y) de R 2 peuvent être représenté

Plus en détail

Calculateur quantique: factorisation des entiers

Calculateur quantique: factorisation des entiers Calculateur quantique: factorisation des entiers Plan Introduction Difficulté de la factorisation des entiers Cryptographie et la factorisation Exemple RSA L'informatique quantique L'algorithme quantique

Plus en détail

Logiciel de Base. I. Représentation des nombres

Logiciel de Base. I. Représentation des nombres Logiciel de Base (A1-06/07) Léon Mugwaneza ESIL/Dépt. Informatique (bureau A118) mugwaneza@univmed.fr I. Représentation des nombres Codage et représentation de l'information Information externe formats

Plus en détail