# 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>

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

Download "# 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>"

Transcription

1 94 Programmation en OCaml 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 la liste composée d abord des éléments de l1 (dans le même ordre) puis des éléments de l2 (dans le même ordre). Par exemple, concat [1 ; 2] [3 ; 4] doit calculer la liste [1 ; 2 ; 3 ; 4]. Cette liste se met aussi sous la forme 1::[2 ; 3 ; 4], on remarque que c est exactement le résultat de l expression 1::(concat [2] [3 ; 4]), et [2] est le reste de la liste initiale [1 ; 2]. Ceci nous suggère la solution récursive suivante : # 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> # concat ["a"; "b"; "c"] ["d"; "ef"];; - : string list = ["a"; "b"; "c"; "d"; "ef"] # concat [1; 2; 3] [];; - : int list = [1; 2; 3] # let l = [3; 4] in concat l l;; - : int list = [3; 4; 3; 4] Cette fonction est prédéfinie en OCaml : (concat l1 l2) s écrit l2 en utilisant la primitive de OCaml. Elle existe également dans le module List de la bibliothèque standard, sous le nom append Manipulation de listes triées Dans cette partie, nous isolons deux fonctions qui travaillent, non pas avec des listes quelconques, mais avec des listes triées. Une liste est dite triée si ses éléments apparaissent dans la liste dans l ordre croissant (ou décroissant) selon une certaine relation d ordre. De telles listes sont fréquentes : par exemple un dictionnaire, le fichier des élèves d une promotion etc. Nous développons deux opérations, celle de la recherche d un élément dans une liste triée et celle de l insertion d un élément dans une liste triée. La première opération peut bien sûr être réalisée au moyen de la fonction appartient précédente, qui traite de n importe quelle liste, triée ou non. Mais on peut proposer un algorithme plus astucieux et plus efficace en moyenne, qui exploite la caractéristique liste triée. De même, la fonction d insertion reconstruit une liste triée en plaçant le nouvel élément à sa place dans la liste.

2 Listes Recherche d un élément dans une liste triée Lorsque l on recherche un élément dans une liste triée, par exemple un mot dans un dictionnaire, il est alors inutile de poursuivre, non seulement quand on a trouvé l élément recherché, mais aussi quand on a dépassé son emplacement possible, c està-dire quand on a trouvé un élément strictement plus grand. En effet, la liste étant triée dans l ordre croissant, tous les éléments qui suivent sont, eux aussi, plus grands, donc aucune chance de trouver l élément recherché parmi ceux-ci. Par exemple, on arrête de chercher le mot googler, issu du jargon Internet, dans le Petit Larousse 2003, quand on a atteint le mot gopak 1. Ainsi, on écrit la fonction app triée qui recherche un élément dans une liste déjà triée en ordre croissant : # let rec app_triée e l = match l with [] -> false x::l -> e=x (e>x && (app_triée e l ));; val app_triée : a -> a list -> bool = <fun> # app_triée 0 [1; 2; 3];; - : bool = false # app_triée 2 [1; 2; 3];; - : bool = true # app_triée "googler" ["gonze"; "gopak"; "gopura"];; - : bool = false Si la liste n est pas ordonnée selon l ordre croissant, alors app triée peut rendre un résultat incorrect comme le montre l exemple suivant : # app_triée 2 [3; 2; 1];; - : bool = false Insertion dans une liste triée Écrivons à présent la fonction insérer qui insère un élément e «à sa place» dans une liste triée dans l ordre croissant. L expression «à sa place» signifie que la liste résultat est également triée dans l ordre croissant. Par exemple on insère toto entre titi et tutu dans une liste de mots ordonnée selon l ordre alphabétique. L algorithme pour l insertion s appuie sur un raisonnement similaire à celui mis en œuvre pour la recherche dans une liste triée. On s intéresse ici à une liste, l, triée dans 1. gopak : danse folklorique ukrainienne, gopura : pavillon pyramidal des temples hindouistes, dans le sud de l Inde, Le Petit Larousse 2003.

3 96 Programmation en OCaml l ordre croissant. Si la liste est vide, l insertion se fait sans difficulté : le résultat est la liste singleton contenant le nouvel élément, cette liste résultat est bien évidemment triée. Si la liste est non vide, si son élément de tête est plus grand que l élément à insérer, e, on peut sans conteste placer ce dernier en tête de l, la liste e::l, résultat de l insertion, est bien triée dans l ordre croissant puisque l est triée dans l ordre croissant et que e est plus petit que la tête de l (donc plus petit que tous les éléments de l). Si maintenant, l élément à insérer est plus grand ou égal à la tête de l, on insérera e dans le reste de la liste initiale, qui est, lui-même, une liste triée croissante. Supposons maintenant que l appel récursif insérer e l a produit une liste triée croissante. Ses éléments sont tous plus grands ou égaux à la tête de l, nommée x dans le texte OCaml ci-dessous. Par conséquent, la liste résultat x::(insérer e l ) est triée dans l ordre croissant. Le raisonnement précédent établit que le résultat de l insertion est une liste triée croissante si l argument est une liste triée croissante, il s appuie sur un principe de récurrence concernant les listes. Ce principe logique constitue l outil logique de base dès qu il s agit de démontrer, par exemple, qu un programme manipulant des listes satisfait sa spécification. Le lecteur pourra consulter un ouvrage de logique, [LAL 90] par exemple, pour approfondir ce point. La fonction insérer s écrit de la façon suivante : # let rec insérer e l = match l with [] -> [e] x::l -> if e < x then e::l else x::(insérer e l );; val insérer : a -> a list -> a list = <fun> Appliquons cette fonction sur une liste d entiers, puis sur une liste de chaînes de caractères : # insérer 3 [1; 2; 4];; - : int list = [1; 2; 3; 4] # insérer "googler" ["gonze"; "gopak"; "gopura"];; - : string list = ["gonze"; "googler"; "gopak"; "gopura"] # insérer "dupont" ["dupont"; "milou"; "tintin"; "tournesol"];; - : string list = ["dupont"; "dupont"; "milou"; "tintin"; "tournesol"] Et si l élément est déjà présent, peu importe! Une occurrence supplémentaire est ajoutée à la liste. Encore une fois, si la liste fournie à la fonction insérer n est pas triée dans l ordre croissant, le résultat sera incorrect, comme dans l exemple suivant : # insérer 3 [4; 1; 2];; - : int list = [3; 4; 1; 2]

4 Listes Algorithmes de tri Les listes qui sont fournies à un programme ne sont généralement pas triées. Or, traiter des listes triées accélère notablement la plupart des algorithmes sur les listes. Il est donc important de disposer d algorithmes de transformation d une liste quelconque en une liste triée, que l on appelle un algorithme de tri. Il existe plusieurs méthodes de tri. Nous en présentons trois ci-dessous Tri par insertion L idée générale de cette méthode de tri est d isoler un élément (la tête de la liste par exemple), de trier les autres éléments puis d insérer à sa place l élément isolé. On peut donc utiliser la fonction précédente insérer, pour trier une liste dans l ordre croissant : on prend le premier élément de la liste et on l insère dans le reste de la liste que l on a trié par un appel récursif préalable. Le cas de base est le cas de la liste vide qui est triée d emblée. La fonction de tri par insertion s écrit donc ainsi : # let rec tri_insertion l = match l with [] -> [] x::l -> insérer x (tri_insertion l );; val tri_insertion : a list -> a list = <fun> # tri_insertion [1; 6; 1];; - : int list = [1; 1; 6] # tri_insertion ["milou"; "dupont"; "tintin"; "milou"; "tournesol"; "dupond";];; - : string list = ["dupond"; "dupont"; "milou"; "milou"; "tintin"; "tournesol"] Suivons le calcul de tri insertion [1 ; 6 ; 1], seuls les appels à la fonction récursive tri insertion sont tracés : tri_insertion [1; 6; 1] = insérer 1 (tri_insertion [6; 1]) = insérer 1 (insérer 6 (tri_insertion [1])) = insérer 1 (insérer 6 (insérer 1 (tri_insertion []))) = insérer 1 (insérer 6 (insérer 1 [])) = insérer 1 (insérer 6 [1])) = insérer 1 [1; 6] = [1; 1; 6]

5 98 Programmation en OCaml Tri par sélection Cette méthode consiste à chercher le plus petit élément de la liste, qui se trouvera donc en tête de la liste triée résultat, et de recommencer sur la liste d où l on a retiré cet élément. Nous avons donc besoin d une fonction supprimer qui supprime la première occurrence d un élément donné dans une liste. Nous utiliserons également la fonction min liste, écrite précédemment dans la section 5.4.4, pour déterminer le plus petit élément d une liste. # let rec supprimer e l = match l with [] -> [] x::l -> if x=e then l else x::(supprimer e l );; val supprimer : a -> a list -> a list = <fun> # supprimer 4 [1;4;0;4;8];; - : int list = [1; 0; 4; 8] On peut alors écrire la fonction de tri tri sélection : # let rec tri_sélection l = match l with [] -> [] _ -> let m = min_liste l in let l = supprimer m l in m::(tri_sélection l );; val tri_sélection : a list -> a list = <fun> # tri_sélection [1; 3; 6; 1];; - : int list = [1; 1; 3; 6] # tri_sélection ["milou"; "dupont"; "tintin"; "milou"; "tournesol"; "dupond";];; - : string list = ["dupond"; "dupont"; "milou"; "milou"; "tintin"; "tournesol"] Remarquons que le cas général consiste en un appel récursif sur la liste initiale privée d un de ces éléments, l dans le texte de la fonction (mais ce n est pas son reste comme dans la plupart des fonctions récursives programmées dans ce chapitre). Par conséquent, la taille de la liste l est plus petite que celle de la liste initiale, on se rapproche alors du cas de base. Ceci assure la terminaison de la fonction tri sélection Tri par fusion L idée de cette méthode est de couper la liste en deux parties à peu près égales, puis de trier ces deux sous-listes séparément et enfin de fusionner ces deux listes triées,

6 Listes 99 c est-à-dire de regrouper les éléments de ces deux listes triées en une seule liste triée. Par exemple, les listes triées [3 ; 5 ; 6 ; 7 ; 8 ; 9] et [1 ; 2 ; 4 ; 7 ; 10 ; 11] se fusionnent en la liste [1 ; 2 ; 3 ; 4 ; 5 ; 6 ; 7 ; 7 ; 8 ; 9 ; 10 ; 11]. La réalisation de cette méthode de tri nécessite donc l écriture de trois fonctions : diviser liste qui coupe une liste en deux, fusion qui fusionne deux listes triées, et enfin tri fusion qui trie une liste dans l ordre croissant. L objectif de la fonction diviser liste est de fournir, à partir d une liste, deux sous-listes dont la taille est la moitié de la taille de la liste initiale. La façon dont les éléments de la liste initiale sont répartis dans les sous-listes importe peu. Nous choisissons de séparer les éléments de position paire de ceux de position impaire. La fonction va donc calculer un couple de deux sous-listes (l1, l2) où l1 contient les éléments placés dans la liste initiale à une place impaire tandis que l2 contient les éléments placés dans la liste initiale à une place paire. La fonction fait apparaître trois cas. La liste initiale est vide : coupée en deux, elle donne deux listes vides. La liste initiale ne contient qu un seul élément : elle se coupe en elle-même et la liste vide. La liste a au moins deux éléments x1 en tête (place impaire) et x2 en deuxième position (place paire), le résultat s obtient en coupant en deux selon la même méthode la liste des autres éléments de la liste (diviser liste l ) et en plaçant x1 et x2 en tête de chacune des deux sous-listes obtenues par l appel récursif. On écrit donc : # let rec diviser_liste l = match l with [] -> ([], []) [x] -> ([x], []) x1::x2::l -> let (l1, l2) = diviser_liste l in (x1::l1, x2::l2);; val diviser_liste : a list -> a list * a list = <fun> Écrivons à présent la fonction de fusion de deux listes triées : # let rec fusion l1 l2 = match (l1, l2) with ([], []) -> [] ([], _) -> l2 (_, []) -> l1 (x1::l 1, x2::l 2) -> if x1 < x2 then x1::(fusion l 1 (x2::l 2)) else x2::(fusion (x1::l 1) l 2);; val fusion : a list -> a list -> a list = <fun> Le cas général de la fonction fusion consiste à interclasser les éléments des deux listes déjà triées dans l ordre croissant, les uns par rapport aux autres. En effet, si x1 (resp. x2) est le plus petit élément de l1 (resp. l2) et si x1 est plus petit que x2, alors

7 100 Programmation en OCaml x1 sera plus petit que tous les éléments réunis de l1 et l2, on peut donc sans conteste placer x1 en tête de la liste résultat de la fusion. Il reste ensuite à placer les autres éléments de l1 (la sous-liste l 1) par rapport aux éléments de l2. Un raisonnement symétrique s applique dans le cas où x1 x2. L étude de la terminaison de la fonction fusion se fait en considérant, non pas l un des deux arguments, mais le couple formé par les deux arguments. En effet, à chaque appel récursif, l une des deux listes perd son premier élément. Au bout d un nombre fini d appels récursifs, on peut assurer que l un des deux arguments sera la liste vide, ce qui établit la terminaison de la fonction. La fonction tri fusion est la traduction directe de la spécification informelle énoncée en début de paragraphe couper la liste en deux, trier les deux sous-listes puis fusionner. # let rec tri_fusion l = match l with [] -> [] [x] -> [x] _ -> let (l1, l2) = diviser_liste l in fusion (tri_fusion l1) (tri_fusion l2);; val tri_fusion : a list -> a list = <fun> # tri_fusion [1; 3; 6; 1];; - : int list = [1; 1; 3; 6] # tri_fusion ["milou"; "dupont"; "tintin"; "milou"; "tournesol"; "dupond";];; - : string list = ["dupond"; "dupont"; "milou"; "milou"; "tintin"; "tournesol"] Le schéma de récursivité de la fonction tri fusion diffère de celui de la plupart des fonctions récursives programmées dans ce chapitre. Le cas général consiste en un appel récursif où les deux listes, passées en argument, sont des «moitiés» de la liste initiale, différentes de celle-ci (le cas général est une liste comprenant au moins deux éléments). Par conséquent, la taille de chacune de ces deux «moitiés» est plus petite que celle de la liste initiale, on se rapproche alors des cas de base. Nous venons ainsi de montrer la terminaison de la fonction tri fusion, certes d une manière très intuitive.

8 Listes Sélection Insertion Fusion Comparaison des tris sur les listes Temps en secondes Nombre d éléments Figure 5.3. Comparaison des tris sur les listes Comparaison de ces différentes méthodes de tri Voici un test effectué pour ces trois méthodes de tri sur une liste 2 de 1 000, puis 2 000, puis 4 000, puis et ainsi de suite jusqu à entiers. Méthode Temps (en secondes) pour une liste de longueur (en milliers) Insertion Sélection Fusion La figure 5.3 correspond à un relevé précis pour des listes de à entiers. 2. Les éléments de la liste sont tirés au hasard par la fonction int du module Random et on itère un nombre suffisant de fois l algorithme de tri pour mesurer un temps raisonnablement fiable, c est-à-dire au moins de l ordre de quelques secondes, que l on divise ensuite par le nombre d itérations bien entendu

9 102 Programmation en OCaml 2 Tri par fusion sur les listes 1.5 Temps en secondes Nombre d éléments Figure 5.4. Le tri fusion Les courbes 3 des tris par sélection et insertion s envolent au-dessus de la courbe du tri par fusion qui est collée à l axe des abscisses. Le tri fusion 4 est beaucoup plus rapide que les deux autres. En outre, plus la liste est longue, plus l écart est important. Par exemple, pour éléments le rapport des temps entre le tri par insertion et le tri par fusion est d environ 165, alors que pour éléments il est d environ 950. En revanche, le rapport des temps entre le tri par insertion et le tri par sélection est à peu près constant, entre 1 et 2. Le tri par fusion rejoint la catégorie des algorithmes dichotomiques de résolution puisqu il résout le problème en le décomposant en deux sous-problèmes similaires de taille moitié (comme l algorithme de calcul de la fonction puissance). Cela s avère une fois de plus une méthode efficace. La figure 5.4 présente plus en détail le comportement du tri par fusion. Les irrégularités y sont peu importantes et peu fréquentes. La scission de la liste prend le même temps quelle que soit la liste, mais le temps nécessité par la fusion de deux 3. Obtenues avec l outil xgraphic 4. Le tri sort du module List est un tri fusion 2 à 2,5 fois plus rapide que celui que nous proposons ici, mais il est écrit de façon beaucoup plus astucieuse. Pour en savoir plus, on pourra lire le code source du module List dans la distribution de OCaml

10 Listes 103 listes peut varier selon que tous les éléments d une liste sont plus grands que ceux de l autre ou bien si la fusion entremêle successivement un élément de chacune des deux listes comme les doigts des deux mains. Par exemple, trions trois listes de éléments composées : 1) des entiers de 1 à rangés dans cet ordre ; 2) des entiers de à 1 rangés dans cet ordre ; 3) des entiers rangés ainsi [ ; ; ; ;... ; ; 1]. Le tri de la première liste nécessite 3.21 secondes, la deuxième 3.11 secondes et la troisième 2.79 secondes. La différence de temps entre les deux premières listes est négligeable, ce sont les listes pour lesquelles la fusion consiste à entremêler les souslistes. En revanche la troisième liste nécessite significativement moins de temps pour le tri car la fusion consiste à faire passer tous les éléments de la première liste devant ceux de la seconde donc il n y a pas analyse et reconstruction de la seconde liste. Le tri par insertion présente des sauts plus importants et cela tient au comportement de la fonction insérer sur la liste. Selon que la liste est déjà triée ou bien triée dans l ordre inverse, on va tout de suite passer dans le cas de base de la fonction récursive ou bien au contraire parcourir toute la liste pour aller ajouter l élément en fin de liste. Si la liste aléatoire du test présente des zones importantes triées dans un sens ou dans l autre, on obtient alors un changement significatif de la courbe. Le tableau ci-dessous montre l impact de l ordre de la liste initiale sur le temps de tri par insertion : Nombre d éléments Liste triée Liste en épi Liste aléatoire moyennée Liste triée en ordre inverse La liste en épi est de la forme [1 ; n ; 2 ; n-1 ;... ; n/2 ; n/2+1]. Le test de la liste aléatoire moyennée consiste à tirer 10 listes aléatoires, à les trier et à diviser le temps obtenu par 10. En revanche le tri par sélection est insensible à la forme de la liste. Pour une analyse plus précise de ces phénomènes, il est nécessaire de se reporter à l analyse de complexité d un cours d algorithmique, mais nous avons pu montrer ici qu une expérimentation soigneuse permet de toucher du doigt bien des phénomènes.

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

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

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

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

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

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée. ANALYSE 5 points Exercice 1 : Léonie souhaite acheter un lecteur MP3. Le prix affiché (49 ) dépasse largement la somme dont elle dispose. Elle décide donc d économiser régulièrement. Elle a relevé qu elle

Plus en détail

TP3 : Manipulation et implantation de systèmes de fichiers 1

TP3 : Manipulation et implantation de systèmes de fichiers 1 École Normale Supérieure Systèmes et réseaux Année 2012-2013 TP3 : Manipulation et implantation de systèmes de fichiers 1 1 Répertoire de travail courant Le but de l exercice est d écrire une commande

Plus en détail

Classes et Objets en Ocaml.

Classes et Objets en Ocaml. Classes et Objets en Ocaml. Didier Rémy 2001-2002 http://cristal.inria.fr/ remy/mot/2/ http://www.enseignement.polytechnique.fr/profs/informatique/didier.remy/mot/2/ Cours Exercices Slide 1 1. Objets 2.

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

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

Utilisation d objets : String et ArrayList

Utilisation d objets : String et ArrayList Chapitre 6 Utilisation d objets : String et ArrayList Dans ce chapitre, nous allons aborder l utilisation d objets de deux classes prédéfinies de Java d usage très courant. La première, nous l utilisons

Plus en détail

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs) Modularité Extensions Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs) généricité modules de première classe : peuvent être

Plus en détail

Quelques Algorithmes simples

Quelques Algorithmes simples Quelques Algorithmes simples Irène Guessarian ig@liafa.jussieu.fr 10 janvier 2012 Je remercie Patrick Cegielski de son aide efficace pour la programmation Java ; la section sur le codage de Huffman a été

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

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

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

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot Chapitre 5 Arithmétique binaire L es codes sont manipulés au quotidien sans qu on s en rende compte, et leur compréhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabétique,

Plus en détail

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

Groupe symétrique. Chapitre II. 1 Définitions et généralités

Groupe symétrique. Chapitre II. 1 Définitions et généralités Chapitre II Groupe symétrique 1 Définitions et généralités Définition. Soient n et X l ensemble 1,..., n. On appelle permutation de X toute application bijective f : X X. On note S n l ensemble des permutations

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

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

Les algorithmes de base du graphisme

Les algorithmes de base du graphisme Les algorithmes de base du graphisme Table des matières 1 Traçage 2 1.1 Segments de droites......................... 2 1.1.1 Algorithmes simples.................... 3 1.1.2 Algorithmes de Bresenham (1965).............

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

Premiers Pas en Programmation Objet : les Classes et les Objets

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

Plus en détail

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

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

Baccalauréat ES/L Métropole La Réunion 13 septembre 2013 Corrigé

Baccalauréat ES/L Métropole La Réunion 13 septembre 2013 Corrigé Baccalauréat S/L Métropole La Réunion 13 septembre 2013 Corrigé A. P. M.. P. XRCIC 1 Commun à tous les candidats Partie A 1. L arbre de probabilité correspondant aux données du problème est : 0,3 0,6 H

Plus en détail

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme Chapitre 3 Quelques fonctions usuelles 1 Fonctions logarithme et eponentielle 1.1 La fonction logarithme Définition 1.1 La fonction 7! 1/ est continue sur ]0, +1[. Elle admet donc des primitives sur cet

Plus en détail

Seconde Généralités sur les fonctions Exercices. Notion de fonction.

Seconde Généralités sur les fonctions Exercices. Notion de fonction. Seconde Généralités sur les fonctions Exercices Notion de fonction. Exercice. Une fonction définie par une formule. On considère la fonction f définie sur R par = x + x. a) Calculer les images de, 0 et

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

RÉALISATION DE GRAPHIQUES AVEC OPENOFFICE.ORG 2.3

RÉALISATION DE GRAPHIQUES AVEC OPENOFFICE.ORG 2.3 RÉALISATION DE GRAPHIQUES AVEC OPENOFFICE.ORG 2.3 Pour construire un graphique : On lance l assistant graphique à l aide du menu Insérer è Diagramme en ayant sélectionné au préalable une cellule vide dans

Plus en détail

ÉPREUVE COMMUNE DE TIPE 2008 - Partie D

ÉPREUVE COMMUNE DE TIPE 2008 - Partie D ÉPREUVE COMMUNE DE TIPE 2008 - Partie D TITRE : Les Fonctions de Hachage Temps de préparation :.. 2 h 15 minutes Temps de présentation devant le jury :.10 minutes Entretien avec le jury :..10 minutes GUIDE

Plus en détail

Les structures de données. Rajae El Ouazzani

Les structures de données. Rajae El Ouazzani Les structures de données Rajae El Ouazzani Les arbres 2 1- Définition de l arborescence Une arborescence est une collection de nœuds reliés entre eux par des arcs. La collection peut être vide, cad l

Plus en détail

Exercice 3 (5 points) A(x) = 1-e -0039' -0 156e- 0,039x A '() -'-,..--,-,--,------:-- X = (l_e-0,039x)2

Exercice 3 (5 points) A(x) = 1-e -0039' -0 156e- 0,039x A '() -'-,..--,-,--,------:-- X = (l_e-0,039x)2 Les parties A et B sont indépendantes. Partie A Exercice 3 (5 points) Commun à tous les candidats On considère la fonction A définie sur l'intervalle [1 ; + 00 [ par A(x) = 1-e -0039' ' x 1. Calculer la

Plus en détail

Correction du baccalauréat ES/L Métropole 20 juin 2014

Correction du baccalauréat ES/L Métropole 20 juin 2014 Correction du baccalauréat ES/L Métropole 0 juin 014 Exercice 1 1. c.. c. 3. c. 4. d. 5. a. P A (B)=1 P A (B)=1 0,3=0,7 D après la formule des probabilités totales : P(B)=P(A B)+P(A B)=0,6 0,3+(1 0,6)

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

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

Projet de programmation (IK3) : TP n 1 Correction

Projet de programmation (IK3) : TP n 1 Correction Projet de programmation (IK3) : TP n 1 Correction Semaine du 20 septembre 2010 1 Entrées/sorties, types de bases et structures de contrôle Tests et types de bases Tests et types de bases (entiers) public

Plus en détail

EXCEL PERFECTIONNEMENT SERVICE INFORMATIQUE. Version 1.0 30/11/05

EXCEL PERFECTIONNEMENT SERVICE INFORMATIQUE. Version 1.0 30/11/05 EXCEL PERFECTIONNEMENT Version 1.0 30/11/05 SERVICE INFORMATIQUE TABLE DES MATIERES 1RAPPELS...3 1.1RACCOURCIS CLAVIER & SOURIS... 3 1.2NAVIGUER DANS UNE FEUILLE ET UN CLASSEUR... 3 1.3PERSONNALISER LA

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

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

Fonctions homographiques

Fonctions homographiques Seconde-Fonctions homographiques-cours Mai 0 Fonctions homographiques Introduction Voir le TP Géogébra. La fonction inverse. Définition Considérons la fonction f définie par f() =. Alors :. f est définie

Plus en détail

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB Ce document, écrit par des animateurs de l IREM de Besançon, a pour objectif de présenter quelques unes des fonctions du logiciel Scilab, celles qui sont spécifiques

Plus en détail

Bien lire l énoncé 2 fois avant de continuer - Méthodes et/ou Explications Réponses. Antécédents d un nombre par une fonction

Bien lire l énoncé 2 fois avant de continuer - Méthodes et/ou Explications Réponses. Antécédents d un nombre par une fonction Antécédents d un nombre par une fonction 1) Par lecture graphique Méthode / Explications : Pour déterminer le ou les antécédents d un nombre a donné, on trace la droite (d) d équation. On lit les abscisses

Plus en détail

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux. UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases

Plus en détail

Initiation à l algorithmique

Initiation à l algorithmique Informatique S1 Initiation à l algorithmique procédures et fonctions 2. Appel d une fonction Jacques TISSEAU Ecole Nationale d Ingénieurs de Brest Technopôle Brest-Iroise CS 73862-29238 Brest cedex 3 -

Plus en détail

Primaire. analyse a priori. Lucie Passaplan et Sébastien Toninato 1

Primaire. analyse a priori. Lucie Passaplan et Sébastien Toninato 1 Primaire l ESCALIER Une activité sur les multiples et diviseurs en fin de primaire Lucie Passaplan et Sébastien Toninato 1 Dans le but d observer les stratégies usitées dans la résolution d un problème

Plus en détail

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé Baccalauréat S ntilles-guyane 11 septembre 14 Corrigé EXERCICE 1 6 points Commun à tous les candidats Une entreprise de jouets en peluche souhaite commercialiser un nouveau produit et à cette fin, effectue

Plus en détail

RECUPEREZ DES FICHIERS SUPPRIMES AVEC RECUVA

RECUPEREZ DES FICHIERS SUPPRIMES AVEC RECUVA RECUPEREZ DES FICHIERS SUPPRIMES AVEC RECUVA INTRODUCTION Ce logiciel gratuit peut vous aider à récupérer des fichiers que vous auriez malencontreusement effacés en vidant la corbeille par exemple. Il

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

Fonction inverse Fonctions homographiques

Fonction inverse Fonctions homographiques Fonction inverse Fonctions homographiques Année scolaire 203/204 Table des matières Fonction inverse 2. Définition Parité............................................ 2.2 Variations Courbe représentative...................................

Plus en détail

Limites finies en un point

Limites finies en un point 8 Limites finies en un point Pour ce chapitre, sauf précision contraire, I désigne une partie non vide de R et f une fonction définie sur I et à valeurs réelles ou complees. Là encore, les fonctions usuelles,

Plus en détail

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications A. Optimisation sans contrainte.... Généralités.... Condition nécessaire et condition suffisante

Plus en détail

TD3: tableaux avancées, première classe et chaînes

TD3: tableaux avancées, première classe et chaînes TD3: tableaux avancées, première classe et chaînes de caractères 1 Lestableaux 1.1 Élémentsthéoriques Déclaration des tableaux Pour la déclaration des tableaux, deux notations sont possibles. La première

Plus en détail

C f tracée ci- contre est la représentation graphique d une

C f tracée ci- contre est la représentation graphique d une TLES1 DEVOIR A LA MAISON N 7 La courbe C f tracée ci- contre est la représentation graphique d une fonction f définie et dérivable sur R. On note f ' la fonction dérivée de f. La tangente T à la courbe

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

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

Une ergonomie intuitive

Une ergonomie intuitive Une ergonomie intuitive Les solutions de la ligne PME offrent une interface de travail proche des usages quotidiens en informatique. Leur ergonomie intuitive facilite la prise en main du logiciel. Une

Plus en détail

Architecture des Systèmes d Information Architecture des Systèmes d Information

Architecture des Systèmes d Information Architecture des Systèmes d Information Plan... Tableaux et tris I3 - Algorithmique et programmation 1 Rappels Nicol Delestre 2 Tableaux à n dimensions 3 Initiation aux tris Tableaux - v2.0.1 1 / 27 Tableaux - v2.0.1 2 / 27 Rappels : tableau

Plus en détail

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004 Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)

Plus en détail

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

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en

Plus en détail

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2 éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........

Plus en détail

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS Mémento Ouvrir TI-Nspire CAS. Voici la barre d outils : L insertion d une page, d une activité, d une page où l application est choisie, pourra

Plus en détail

Fluctuation d une fréquence selon les échantillons - Probabilités

Fluctuation d une fréquence selon les échantillons - Probabilités Fluctuation d une fréquence selon les échantillons - Probabilités C H A P I T R E 3 JE DOIS SAVOIR Calculer une fréquence JE VAIS ÊTRE C APABLE DE Expérimenter la prise d échantillons aléatoires de taille

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

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

I. Ensemble de définition d'une fonction

I. Ensemble de définition d'une fonction Chapitre 2 Généralités sur les fonctions Fonctions de références et fonctions associées Ce que dit le programme : Étude de fonctions Fonctions de référence x x et x x Connaître les variations de ces deux

Plus en détail

Correction du Baccalauréat S Amérique du Nord mai 2007

Correction du Baccalauréat S Amérique du Nord mai 2007 Correction du Baccalauréat S Amérique du Nord mai 7 EXERCICE points. Le plan (P) a une pour équation cartésienne : x+y z+ =. Les coordonnées de H vérifient cette équation donc H appartient à (P) et A n

Plus en détail

1 TD 2 : Construction d'une chier Acrobat et envoi par email

1 TD 2 : Construction d'une chier Acrobat et envoi par email 1 TD 2 : Construction d'une chier Acrobat et envoi par email (correction page??) Un professeur de maths a instauré une coutume lors de la dernière séance de la semaine. Le vendredi est consacré à la correction

Plus en détail

Les deux points les plus proches

Les deux points les plus proches MPSI Option Informatique Année 2001, Deuxième TP Caml Vcent Simonet (http://cristal.ria.fr/~simonet/) Les eux pots les plus proches Lors e cette séance, nous allons nous téresser au problème suivant :

Plus en détail

Machines virtuelles fonctionnelles (suite) Compilation ML Java

Machines virtuelles fonctionnelles (suite) Compilation ML Java Machines virtuelles fonctionnelles (suite) Compilation ML Java Cours de Compilation Avancée (MI190) Benjamin Canou Université Pierre et Maire Curie Année 2011/2012 Semaine 3 Machines virtuelles fonctionnelles

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

Découverte de Python

Découverte de Python Découverte de Python Python est un des langages informatiques au programme des concours à partir de la session 2015. Ce tutoriel vous permettra de vous mettre à peu près à niveau de ce qui a été fait en

Plus en détail

Résolution de systèmes linéaires par des méthodes directes

Résolution de systèmes linéaires par des méthodes directes Résolution de systèmes linéaires par des méthodes directes J. Erhel Janvier 2014 1 Inverse d une matrice carrée et systèmes linéaires Ce paragraphe a pour objet les matrices carrées et les systèmes linéaires.

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

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

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation

Plus en détail

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin. Exo7 Matrice d une application linéaire Corrections d Arnaud odin. Exercice Soit R muni de la base canonique = ( i, j). Soit f : R R la projection sur l axe des abscisses R i parallèlement à R( i + j).

Plus en détail

modules & compilation

modules & compilation Programmation fonctionnelle avec OCaml 3ème séance, 19 mars 2015 modules & compilation samuel.hornus@inria.fr http ://www.loria.fr/ shornus/ocaml/ Modules Un module regroupe un ensemble de définitions

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

Infolettre #18 : Les graphiques avec Excel 2010

Infolettre #18 : Les graphiques avec Excel 2010 Infolettre #18 : Les graphiques avec Excel 2010 Table des matières Introduction... 1 Hourra! Le retour du double-clic... 1 Modifier le graphique... 4 Onglet Création... 4 L onglet Disposition... 7 Onglet

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

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

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

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

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

Fiche pour les étudiants «Comment répondre à une question à développement?»

Fiche pour les étudiants «Comment répondre à une question à développement?» VOLUME 11, NO 1 AUTOMNE 2012 Cégep de Rimouski Développement pédagogique Annexe 2 du Pédagotrucs no 40 Fiche pour les étudiants «Comment répondre à une question à développement?» Voici un guide qui t aidera

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

Objets Combinatoires élementaires

Objets Combinatoires élementaires Objets Combinatoires élementaires 0-0 Permutations Arrangements Permutations pour un multi-ensemble mots sous-ensemble à k éléments (Problème du choix) Compositions LE2I 04 1 Permutations Supposons que

Plus en détail

Comment tracer une droite représentative d'une fonction et méthode de calcul de l'équation d'une droite.

Comment tracer une droite représentative d'une fonction et méthode de calcul de l'équation d'une droite. Comment tracer une droite représentative d'une fonction et méthode de calcul de l'équation d'une droite. Introduction : Avant de commencer, il est nécessaire de prendre connaissance des trois types de

Plus en détail

POKER ET PROBABILITÉ

POKER ET PROBABILITÉ POKER ET PROBABILITÉ Le poker est un jeu de cartes où la chance intervient mais derrière la chance il y a aussi des mathématiques et plus précisément des probabilités, voici une copie d'écran d'une main

Plus en détail

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

Baccalauréat ES/L Amérique du Sud 21 novembre 2013 Baccalauréat ES/L Amérique du Sud 21 novembre 2013 A. P. M. E. P. EXERCICE 1 Commun à tous les candidats 5 points Une entreprise informatique produit et vend des clés USB. La vente de ces clés est réalisée

Plus en détail

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

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

Adama MBODJI MBODJ.SYSTEM

Adama MBODJI MBODJ.SYSTEM MBODJ.SYSTEM Tableaux & vecteurs Algorithmes de tris Chaînes de caractères Listes linéaires Piles & Files Arbres Fichiers Je dédie cet ouvrage à mon père Souleymane MBODJI 2 Dédicace... 2 Sommaire... 3

Plus en détail

Comment Définir une Plage de données Pour Utiliser Fonctions de Filtres et de Tris

Comment Définir une Plage de données Pour Utiliser Fonctions de Filtres et de Tris Comment Définir une Plage de données Pour Utiliser Fonctions de Filtres et de Tris Diffusé par Le Projet Documentation OpenOffice.org Table des matières 1. Définir les plages...3 2. Sélectionner une plage...4

Plus en détail

EXPLOITATIONS PEDAGOGIQUES DU TABLEUR EN STG

EXPLOITATIONS PEDAGOGIQUES DU TABLEUR EN STG Exploitations pédagogiques du tableur en STG Académie de Créteil 2006 1 EXPLOITATIONS PEDAGOGIQUES DU TABLEUR EN STG Commission inter-irem lycées techniques contact : dutarte@club-internet.fr La maquette

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

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez

Plus en détail

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

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

Plus en détail