CORRECTION INF121 : Contrôle continu (2h00) Mars Exercice 1 : Typage et valeur d une expression (15 points)
|
|
|
- Tiphaine Dubé
- il y a 8 ans
- Total affichages :
Transcription
1 CORRECTION INF121 : Contrôle continu (2h00) Mars 2012 Documents autorisés : Uniquement une feuille A4 recto-verso de notes personnelles manuscrites. Notes : Vous répondrez aux exercices et au problème dans l ordre qui vous convient. Le total des points de chaque question correspond au nombres de minutes nécessaires pour résoudre la question. Les questions difficiles sont marquées par des étoiles (**). Vous pouvez admettre le résultat d une question, et l utiliser dans la suite. Rappel : Définir une fonction signifie : 1. Profil 2. Sémantique 3. Exemples 1. Si elle est récursive : Terminaison 2. Code OCaml Exercice 1 : Typage et valeur d une expression (15 points) Rappel : fst (a,b) = a et snd (a,b) = b Pour chaque phrase OCaml, indiquez le type du résultat et sa valeur. Si une expression est mal typée, indiquez le et justifiez. On donnera également le type des fonctions f et g. 1. (3 points) snd (2,true) && false - : bool = false 2. (3 points) let a = (1,2) in fst (a,2) - : int * int = (1, 2) 3. (3 points) fst (3,2 mod 2 = 0) : int = 4 4. (3 points) let f (x : int) : int = (x mod 10, x / 10) in f (snd (f 123)) let f (x : int) : int = (x mod 10, x / 10) in f (snd (f 123));; ^^^^^^^^^^^^^^^^^^ Error: This expression has type int * int but an expression was expected of type int 5. (3 points) let g (x : float) : float float = (x,x) in g (g 2.) let g (x : float) : float * float = (x,x) in g (g 2.);; ^^^^^^ Error: This expression has type float * float but an expression was expected of type float 1
2 Exercice 2 : Fonctions récursives (35 points) 1. (10 points) Définir une fonction récursive qui prend deux entiers a et b et calcule la somme de tous les entiers entre a et b, a et b compris, ainsi la somme entre a et a vaut a. Nous supposons que a b. (a) Profil : somme : Z Z Z (b) Sémantique : calcule la somme de tous les entiers entre a et b. (c) Exemples : somme 0 10 = 55 somme = 165 somme ( 4) 3 = 4 : somme a a = a somme a b = a + somme (a+1) b Terminaison : Nous exhibons une mesure m sur les paramètres de la fonction récursive. Par exemple m(a, b) = b a Nous montrons que cette mesure décroit à chaque appel récursif. let rec somme (a:int) (b:int):int = if a = b then a else a + somme (a+1) b;; m(a, b) = b a > m(a + 1, b) = b (a + 1) = b a 1 2. (6 points) (*) Donner la réalisation d une autre solution qui effectuera la récursion sur l autre argument. let rec sommedown (a:int) (b:int):int = if a = b then a else b + sommedown (a) (b-1);; 3. (7 points) Écrire une fonction non récursive qui effectue le même calcul, en utilisant uniquement des additions, soustractions, multiplications et divisions. Nous supposons que a b. let sommesimple (a:int) (b:int):int = Ou let sommesimplebis (a:int) (b:int):int = (b*(b+1) - a*(a-1))/2;; a*(b-a+1) + (b-a)*(b-a+1)/2;; 4. Complexité : (2 points) Donner le nombre total d appels récursifs faits dans la fonction écrite à la question 1. b-a appels récursifs et un appel non récursif (2 points) Compter le nombre d opérations effectuées dans la fonction écrite à la question 3. 2 multiplications + 1 division + 1 addition + 2 soustractions (4 points) Considérons que les additions, soustractions, multiplications et divisions coûtent le même temps. Quel est l algorithme qui est le plus rapide? Nous avons sommesimple : 6 opérations et somme : (b-a)*2 (ou (b-a)*3+1 en comptant = comme une soustraction) opérations. Donc si (b-a) < 3 (ou (b-a) < 5/3), c est-à-dire si la somme porte sur plus de 4 (ou 3) nombres alors l algorithme somme est plus rapide, sinon c est l algorithme sommesimple. 2
3 (4 points) Considérons que chaque addition, soustraction prend t fois moins de temps que chaque multiplication ou division. Déterminer la valeur de t pour que l algorithme 1 soit plus rapide moins que celui de la fonction demandée à la question 3. Soit m le nombre de * ou / et p le nombre de + ou - dans la formule simple. Nous avons sommesimple : m+pt et somme : (b-a)*2t (ou (b-a) +1 en comptant = comme une soustraction). somme est plus rapide si 2 (b-a) < m+pt (ou 3 (b-a) + 1 < m+pt) d où pt > 2 (b-a) -m et t > (2 (b-a) - m) / p) (ou pt > 3 (b-a) - (m+1) et t > (3 (b-a) - (m+1)) / p) Pour la formule (y (y+1) - x (x-1))/2 on a m=p=3 : t > 2/3 (b-a) -1 (ou t > b-a -4/3) Exercise 3 : Jouons au Tarot (75 points) Un jeu de tarot comporte 78 cartes à jouer : Cinquante-six cartes réparties en quatorze cartes des quatre couleurs traditionnelles : pique, cœur, carreau et trèfle. La différence avec un jeu traditionnel de 52 cartes est le cavalier, figure s intercalant entre la dame et le valet. Dans l ordre décroissant de force et de valeur, on trouve donc : + les honneurs : Roi, Dame, Cavalier et Valet + les petites : 10, 9, 8, 7, 6, 5, 4, 3, 2, 1. Le 1 est la plus petite carte du paquet contrairement à ce qui se pratique dans de nombreux jeux où l As est plus fort que le Roi. Vingt et une cartes portant un numéro : ce sont les atouts (ou tarots) qui ont priorité sur les couleurs. Le numéro indique la force de chaque atout, du plus fort, le 21, au plus faible, le 1. L «excuse», une carte marquée d une étoile et représentant un joueur de mandoline. Il s agit d une sorte de joker. a) Modélisation (7 points) Nous définissons les types suivants : type dos = Petite of int Valet Cavalier Dame Roi;; type couleur = Trefle Pique Carreau Coeur ;; type carte = Atout of int Excuse Normale of dos couleur ;; type carteliste = Nil Cons of carte carteliste;; Nous définissons le type main qui modélise l ensemble des cartes en possession d un joueur, par type main = carteliste. Nous définissons le type pli qui représente l ensemble des cartes gagnées à chaque tour de jeu par type pli = carteliste. Notre modélisation doit être valable pour 3, 4 ou 5 joueurs. 1. (7 points) Représentez en OCaml (dans votre type) la main contenant les cartes suivantes : «valet de pique», «9 d atout», «excuse», «roi de carreau», «9 de coeur», «21 d atout». let main = Cons( Normale(Valet,Pique), Cons( Atout(9), 3
4 Cons( Excuse, Cons( Normale(Roi,Carreau), Cons( Normale(Petite(9),Coeur), Cons( Atout(21),Nil))))));; b) Points (40 points) À la fin de la partie, on compte les points contenus dans les plis (i.e., les cartes prises par un groupe de joueur). On omet de nombreuses règles subtiles du tarot ici, pour se concentrer sur l essentiel. Chaque carte vaut un nombre précis de point, donné par la règle suivante : Atout 1, Excuse et Atout 21 : 4.5 points Roi : 4.5 points Dame : 3.5 points Cavalier : 2.5 points Valet : 1.5 points Toute autre carte : 0.5 points 1. (2 points) Combien de points compte la main donnée à la question a)1)? (2 points) Combien de points compte le pli qui est composé des cartes valet de pique, douze d atout, excuse et roi de carreau? (6 points) Définir une fonction valeur: carte float, qui à une carte associe son nombre de points. (a) Profil : valeur: carte float (b) Sémantique : A une carte associe son nombre de points. (c) Exemples : valeur Excuse = 4.5 valeur Roi = 4.5 (a) Code OCaml let valeur (c:carte): float = match c with Excuse -> 4.5 Atout (1) -> 4.5 Atout (21) -> 4.5 Normale (Roi,_) -> 4.5 Normale (Dame,_) -> 3.5 Normale (Cavalier,_) -> 2.5 Normale (Valet,_) -> 1.5 _ -> 0.5 ;; 4. (7 points) Définir la fonction compte: pli float, qui compte les points contenus dans un pli. (a) Profil : compte: pli float (b) Sémantique : compte les points contenus dans un pli. (c) Exemples : compte(main) = 16 : compte(nil) = 0. compte(cons(t, q)) = valeur(t) +.compte(q) let rec compte (l:pli):float = match l with Nil -> 0. Cons(t,q) -> valeur t +. compte q ;; 4
5 5. (10 points) Nous considérons le type suivant : type pliliste = Nil Cons of pli pliliste;; Définir une fonction veriftotal: pliliste bool, qui vérifie que le total des points de la liste des plis passés en paramètre est bien 91 points. Vous pouvez réutiliser la fonction compte de la question précédente et toute autre fonction intermédiaire que vous jugerez nécessaire. (a) Profil : veriftotal: pliliste bool (b) Sémantique : vérifie que le total des points de la liste des plis passés en paramètre est bien 91 points. Pour cela nous introduisons une fonction récursive qui calcule la somme des points d une liste et nous testons si le résultat est bien 91. (c) Exemples : veriftotal(main) = false sommepointspli(n il) = 0. sommepointspli(cons(t, q)) = compte(t) +.sommepointspli(q) let veriftotal (p: pli liste) : bool = let rec sommepointspli (l: pli liste) : float = Nil -> 0. Cons(t,q) -> compte t +. sommepointspli q in sommepointspli p = 91. ;; match l with 6. (6 points) Définir une fonction nbatout: main int, qui compte le nombre d atouts contenus dans une main passée en paramètre. (a) Profil : nbatout: main int (b) Sémantique : compte le nombre d atouts contenus dans une main passée en paramètre. (c) Exemples : nbatout(main) = 3 nbatout(nil) = 0. nbatout(cons(t, q)) = 1 + nbatout(q) let rec nbatout (l:main):int = match l with Nil -> 0 Cons(t,q) -> match t with Atout(_) -> 1+ nbatout q _ -> nbatout q;; 7. (7 points) Si un joueur possède plus de 10 atouts dans sa main intiale, il peut obtenir des points bonus, nous dirons qu il a une poignée. Plus précisément une simple poignée correspond à au moins 10 Atouts et au plus 12 Atouts et une prime de 20 points, une double poignée correspond à au moins 13 Atouts et au plus 14 et une prime de 30 points et une triple poignée correspond à au moins 15 Atouts et à une prime de 40 points. Définir la fonction pointbonus: main float, qui détermine en fonction de la main d un joueur le nombre de points bonus attribués en fonction de son nombre d atouts. Vous devrez réutiliser la fonction nbatout de la question précédente. 5
6 1. Profil : pointbonus: main float 2. Sémantique : détermine en fonction de la main d un joueur le nombre de points bonus attribués en fonction de son nombre d atouts 3. Exemples : pointbonus(main) = 0 1. Code OCaml let pointbonus (m: main) : float = let nba = nbatout m in if nba >= 15 then 40. else if nba >=13 then 30. else if nba >= 10 then 20. else 0.;; c) Vérification (28 points) Afin de détecter les éventuels tricheurs nous allons vérifier que les cartes ne sont jouées qu une seule fois. 1. (8 points) Définir une fonction appart : carte pli bool qui détermine si une carte donnée appartient à un pli. (a) Profil : appart : carte pli bool (b) Sémantique : détermine si une carte donnée appartient à un pli. (c) Exemples : appartexcusemain = true : appart(c, Nil) = false appart(c, Cons(t, q)) = true si c = t sinon appartcq let rec appart (c:carte) (p:pli) : bool = match p with Nil -> false Cons(t,q) -> if t = c then true else appart c q;; 2. (8 points) Définir une fonction oter : carte main main qui supprime toute les occurrences d une carte donnée dans une main. (a) Profil : oter : carte main main (b) Sémantique : supprime toute les occurrences d une carte donnée dans une main. (c) Exemples : oter Excuse main = Cons( Normale(Valet,Pique), Cons( Atout(9), Cons( Normale(Roi,Carreau), Cons( Normale(Petite(9),Coeur), Cons( Atout(21),Nil)))));; otercnil = Nil oterccons(x, r) = r si c = x sinon Cons(x, (oter(c)(r)) 6
7 let rec oter (c:carte) (p:pli) : pli = match p with Nil -> Nil Cons(t,q) -> if t = c then oter c q else Cons(t,oter c q);; 3. (12 points) Définir une fonction unicite : main bool qui détermine si une main ne contient pas deux fois la même carte. Vous pouvez utiliser la fonction appart. (a) Profil : unicite : main bool (b) Sémantique : détermine si une main ne contient pas deux fois la même carte (c) Exemples : unicite(main) = true unicite(nil) = true unicite(cons(t, q)) = false si t apprtient a q sinon unicite(q) let rec unicite2 (p:pli) : bool = match p with Nil -> true Cons(t,q) -> if appart t q then false else unicite2 d) Jeu de la carte (***) BONUS (20 points) Définir une fonction qui détermine étant donné un pli d au moins une carte, la carte qui l emporte. Vous pouvez d abord définir des fonctions intermédiaires avant de répondre à cette question. Nous indiquons les règles élémentaires du tarot permettant de déterminer qui emporte un pli. Si la première carte est un atout, c est l atout le plus fort présent dans le pli qui l emporte. Si la première carte détermine la couleur jouée, alors c est l atout le plus fort présent dans le pli qui l emporte, sinon s il n y a pas d atout, c est la plus forte carte de la couleur jouée qui l emporte. Si la première carte d un pli est l excuse, c est la carte suivante qui détermine la couleur jouée. Rappel Soit un type défini par type alphabet = A B C;; alors A>B>C. Nous donnons uniquement le code OCaml let rec quigagne (p:pli) : carte = let rec plusgrand (x:int) (p:pli): int = match p with Nil -> x Cons (Atout(y),q) -> if y>x then plusgrand y q else plusgrand x q Cons (t,q) -> plusgrand x q in let rec contientatout (p:pli) = match p with Nil -> false Cons (Atout(y),q) -> true Cons (t,q) -> contientatout q in let rec plusgrandcouleur (d:dos) (p:pli) (c:couleur):carte = match p with Nil -> Normale(d,c) Cons(Normale(ddo,coul),q) -> if (sup ddo d)&&(coul=c) q;; 7
8 then plusgrandcouleur ddo q c else plusgrandcouleur d q c Cons (t,q) -> plusgrandcouleur d q c in match p with Nil -> failwith "pli vide" Cons(first, reste) -> match first with Excuse -> quigagne reste Atout(x) -> Atout(plusgrand x reste) Normale(d,c) -> if contientatout(reste) then Atout(plusgrand 0 reste) else plusgrandcouleur d reste c ;; 8
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
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.
# 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
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
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
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 [email protected] 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation
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
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
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
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
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
É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
modules & compilation
Programmation fonctionnelle avec OCaml 3ème séance, 19 mars 2015 modules & compilation [email protected] http ://www.loria.fr/ shornus/ocaml/ Modules Un module regroupe un ensemble de définitions
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
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
Solutions du chapitre 4
Solutions du chapitre 4 Structures de contrôle: première partie 4.9 Identifiez et corrigez les erreurs (il peut y en avoir plus d une par segment de code) de chacune des proposition suivantes: a) if (
Principes des langages de programmation INF 321. Eric Goubault
Principes des langages de programmation INF 321 Eric Goubault 24 mars 2014 2 Table des matières 1 Introduction 7 2 Programmation impérative 11 2.1 Variables et types........................... 11 2.2 Codage
SNT4U16 - Initiation à la programmation 2014-2015. TD - Dynamique de POP III - Fichiers sources
SNT4U16 - Initiation à la programmation Licence SVT 2 ème année 2014-2015 TD - Dynamique de POP III - Fichiers sources contacts : [email protected], [email protected], [email protected],
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
OCL - Object Constraint Language
OCL - Object Constraint Language Laëtitia Matignon [email protected] Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object
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
Analyse de sécurité de logiciels système par typage statique
Contexte Modélisation Expérimentation Conclusion Analyse de sécurité de logiciels système par typage statique Application au noyau Linux Étienne Millon UPMC/LIP6 Airbus Group Innovations Sous la direction
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
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
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
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
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
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
Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34
Capacité d un canal Second Théorème de Shannon Théorie de l information 1/34 Plan du cours 1. Canaux discrets sans mémoire, exemples ; 2. Capacité ; 3. Canaux symétriques ; 4. Codage de canal ; 5. Second
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
Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e
P r o b l é m a t i q u e OCL : O b j e c t C o n s t r a i n t L a n g u a g e Le langage de contraintes d UML Les différents diagrammes d UML permettent d exprimer certaines contraintes graphiquement
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
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,
Cours 1 : La compilation
/38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas [email protected] PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà
Objets et Programmation. origine des langages orientés-objet
Objets et Programmation origine des langages orientés-objet modularité, encapsulation objets, classes, messages exemples en Java héritage, liaison dynamique G. Falquet, Th. Estier CUI Université de Genève
introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives
introduction Chapitre 5 Images récursives http ://univ-tln.fr/~papini/sources/flocon.htm Récursivité http://www.poulain.org/fractales/index.html Image qui se contient elle-même 1 Exemples mathématiques
EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE
EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0
Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12
Probabilités. I - Rappel : trois exemples. Exemple 1 : Dans une classe de 25 élèves, il y a 16 filles. Tous les élèves sont blonds ou bruns. Parmi les filles, 6 sont blondes. Parmi les garçons, 3 sont
Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;
CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe
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
Théorie des Graphes Cours 3: Forêts et Arbres II / Modélisation
IFIPS S7 - informatique Université Paris-Sud 11 1er semestre 2009/2010 Théorie des Graphes Cours 3: Forêts et Arbres II / 1 Forêts et arbres II Théorème 1.1. Les assertions suivantes sont équivalentes
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
CALCUL DES PROBABILITES
CALCUL DES PROBABILITES Exemple On lance une pièce de monnaie une fois. Ensemble des événements élémentaires: E = pile, face. La chance pour obtenir pile vaut 50 %, pour obtenir face vaut aussi 50 %. Les
Coefficients binomiaux
Probabilités L2 Exercices Chapitre 2 Coefficients binomiaux 1 ( ) On appelle chemin une suite de segments de longueur 1, dirigés soit vers le haut, soit vers la droite 1 Dénombrer tous les chemins allant
Introduction à la Programmation Parallèle: MPI
Introduction à la Programmation Parallèle: MPI Frédéric Gava et Gaétan Hains L.A.C.L Laboratoire d Algorithmique, Complexité et Logique Cours du M2 SSI option PSSR Plan 1 Modèle de programmation 2 3 4
S initier aux probabilités simples «Question de chance!»
«Question de chance!» 29-11 Niveau 1 Entraînement 1 Objectifs - S entraîner à activer la rapidité du balayage visuel. - Réactiver le comptage par addition jusqu à 20. - Développer le raisonnement relatif
Enseignement secondaire technique
Enseignement secondaire technique Régime technique Division technique générale Cycle moyen Informatique 11TG Nombre de leçons: 2.0 Nombre minimal de devoirs: - Langue véhiculaire: / Remarque générale:
1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.
1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this
L exclusion mutuelle distribuée
L exclusion mutuelle distribuée L algorithme de L Amport L algorithme est basé sur 2 concepts : L estampillage des messages La distribution d une file d attente sur l ensemble des sites du système distribué
Introduction au langage C
Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les
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
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
Probabilités sur un univers fini
[http://mp.cpgedupuydelome.fr] édité le 7 août 204 Enoncés Probabilités sur un univers fini Evènements et langage ensembliste A quelle condition sur (a, b, c, d) ]0, [ 4 existe-t-il une probabilité P sur
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
Les chaînes de caractères
Les chaînes de caractères Dans un programme informatique, les chaînes de caractères servent à stocker les informations non numériques comme par exemple une liste de nom de personne ou des adresses. Il
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,
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
Lambda-calcul et langages fonctionnels
Lambda-calcul et langages fonctionnels Jean Goubault-Larrecq Abstract Ceci est la version 4 de la première partie du cours de lambda-calcul, datant du 02 juin 2014. La version 3 datait du 28 janvier 2011
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.
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
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
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é
Qu est-ce qu une probabilité?
Chapitre 1 Qu est-ce qu une probabilité? 1 Modéliser une expérience dont on ne peut prédire le résultat 1.1 Ensemble fondamental d une expérience aléatoire Une expérience aléatoire est une expérience dont
progression premiere et terminale
progression premiere et terminale s.2 s.3 valette SEQUENCE Séance Objectif Contenu du cours Compétences Savoirs 1 1. Le bilan comportemental Identifier les objectifs de la connaissance de soi Utiliser
Les BRMS Business Rules Management System. Groupe GENITECH
Les BRMS Business Rules Management System 1 Présentations Emmanuel Bonnet ebonnet (at) genigraph.fr Responsable Dpt Conseil Consultant, Expert BRMS Formateur IBM/Ilog JRules / JBoss Rules Génigraph SSII
S initier aux probabilités simples «Question de chance!»
«Question de chance!» 29-11 Niveau 1 Entraînement 1 Objectifs - S entraîner à activer la rapidité du balayage visuel. - Réactiver le comptage par addition jusqu à 20. - Développer le raisonnement relatif
Programmation. fonctionnelle, impérative, logique et orientée objet
Programmation fonctionnelle, impérative, logique et orientée objet Introduction Les langages de programmation permettent de décrire des calculs de façon plus abstraite qu'un programme machine. Les programmes
Chapitre 10. Les interfaces Comparable et Comparator 1
Chapitre 10: Les interfaces Comparable et Comparator 1/5 Chapitre 10 Les interfaces Comparable et Comparator 1 1 Ce chapitre a été extrait du document "Objets, Algorithmes, Patterns" de [René Lalement],
2 Comment fonctionne un ordinateur, dans les grandes lignes
Programmation 1 Cours n 1 GB3, 2 nd semestre 2014-2015 Cours de Python Gilles Bernot Les notes de cours et les feuilles de TD sont disponibles (avec un peu de retard par rapport au déroulement du cours)
Table des matières. Introduction
Table des matières 1 Formalisation des virus informatiques 2 1.1 Les machines de Turing........................ 2 1.2 Formalisation de Fred Cohen..................... 2 1.2.1 Définition d un virus informatique..............
Licence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter
De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que
Introduction. On suppose connus les ensembles N (des entiers naturels), Z des entiers relatifs et Q (des nombres rationnels). On s est rendu compte, depuis l antiquité, que l on ne peut pas tout mesurer
Cours de Systèmes d Exploitation
Licence d informatique Synchronisation et Communication inter-processus Hafid Bourzoufi Université de Valenciennes - ISTV Introduction Les processus concurrents s exécutant dans le système d exploitation
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
Genie Logiciel Avancé Projet :Gestion d une chaîne hotelier low cost
Institut Galilée Vivien Boyi-Banga INFO 2 Genie Logiciel Avancé Projet :Gestion d une chaîne hotelier low cost Enseignant : M.Feiz Année 2009-2010 1. Définir la borne de notre système Le système est composé
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
Structurer ses données : les tableaux. Introduction à la programmation
Structurer ses données : les tableaux Introduction à la programmation Plan du document Introduction Introduire la notion de type Types primitifs Types composés Tableaux de type primitif Page 2 Notion de
INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores
INTRODUCTION AUX SYSTEMES D EXPLOITATION TD2 Exclusion mutuelle / Sémaphores Exclusion mutuelle / Sémaphores - 0.1 - S O M M A I R E 1. GENERALITES SUR LES SEMAPHORES... 1 1.1. PRESENTATION... 1 1.2. UN
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.
MON LIVRET DE COMPETENCES EN LANGUE (Socle commun) Niveau A1/A2 / B1
Nom : Prénom :.. MON LIVRET DE COMPETENCES EN LANGUE (Socle commun) Niveau A1/A2 / B1 Récapitulatif pour la validation du Diplôme National du Brevet (Attestation du Niveau A2 en Langue Vivante) : ACTIVITES
Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. [email protected]
. Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 [email protected] LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le
Programmation en Caml pour Débutants
Programmation en Caml pour Débutants Arthur Charguéraud 6 Ju 2005 Ceci est une version léaire imprimable du cours, mais il est fortement conseillé d utiliser la version teractive, sur laquelle la plupart
Les processus 2/54. Qu est-ce qu un processus? 3(6)/54. Se souvenir 1(1)/54. Le système de fichiers (exemple du disque dur)
Se souvenir 1(1)/54 Le système de fichiers (exemple du disque dur) Qu est-ce qu un processus? 3(3)/54 Les caches (inodes et blocks) Accès à un fichier : double indirection Compteurs de références : Les
Cours de C++ François Laroussinie. 2 novembre 2005. Dept. d Informatique, ENS de Cachan
Cours de C++ François Laroussinie Dept. d Informatique, ENS de Cachan 2 novembre 2005 Première partie I Introduction Introduction Introduction Algorithme et programmation Algorithme: méthode pour résoudre
Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée
Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée forax at univ-mlv dot fr - ParisJUG Java.next() - Mars 2012 What Else? Lambda == Inner class? Java a des lambdas depuis la version 1.1 Exemple utilisant
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é
Génie Logiciel avec Ada. 4 février 2013
Génie Logiciel 4 février 2013 Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires I. Principes II. Notions propres à la POO I. Principes Chapitre
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
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.
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
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
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
Quelques algorithmes simples dont l analyse n est pas si simple
Quelques algorithmes simples dont l analyse n est pas si simple Michel Habib [email protected] http://www.liafa.jussieu.fr/~habib Algorithmique Avancée M1 Bioinformatique, Octobre 2008 Plan Histoire
Les processus légers : threads. Système L3, 2014-2015 1/31
Les processus légers : threads Système L3, 2014-2015 1/31 Les threads Les threads sont des processus légers exécutés à l intérieur d un processus L exécution des threads est concurrente Il existe toujours
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
Cours 7 : Utilisation de modules sous python
Cours 7 : Utilisation de modules sous python 2013/2014 Utilisation d un module Importer un module Exemple : le module random Importer un module Exemple : le module random Importer un module Un module est
RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)
CLASSE RACINE Object ancêtre de toutes les classes RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION) définit donc des méthodes héritées par toutes
Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1
Chap 4: Analyse syntaxique 1 III- L'analyse syntaxique: 1- Le rôle d'un analyseur syntaxique 2- Grammaires non contextuelles 3- Ecriture d'une grammaire 4- Les méthodes d'analyse 5- L'analyse LL(1) 6-
