CORRECTION INF121 : Contrôle continu (2h00) Mars Exercice 1 : Typage et valeur d une expression (15 points)
|
|
- Tiphaine Dubé
- il y a 6 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
Plus en détailClasses 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# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>
94 Programmation en OCaml 5.4.8. Concaténation de deux listes Définissons maintenant la fonction concat qui met bout à bout deux listes. Ainsi, si l1 et l2 sont deux listes quelconques, concat l1 l2 constitue
Plus en détailAlgorithmique 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étailTP 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étailRappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme
Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes treinen@pps.univ-paris-diderot.fr 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation
Plus en détailINF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies
INF 232: Langages et Automates Travaux Dirigés Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies Année Académique 2013-2014 Année Académique 2013-2014 UNIVERSITÉ JOSEPH
Plus en détailSTAGE 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étailIN 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étaillength : 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étailCours de Programmation 2
Cours de Programmation 2 Programmation à moyenne et large échelle 1. Programmation modulaire 2. Programmation orientée objet 3. Programmation concurrente, distribuée 4. Programmation monadique 5. Les programmes
Plus en détailÉléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if
Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike
Plus en détailmodules & 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étailTP3 : 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étail1/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étailSolutions 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 (
Plus en détailPrincipes 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
Plus en détailSNT4U16 - 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 : mathias.gauduchon@univ-amu.fr, melika.baklouti@univ-amu.fr, xavier.giraud@univ-amu.fr,
Plus en détailCorrection 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étailOCL - 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étailMachines 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étailAnalyse 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
Plus en détailVé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étailLes 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étailProblè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étailCours 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étailUEO11 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étailInitiation à 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étailCapacité 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
Plus en détail1 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étailExpression 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
Plus en détailCours 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étailExercices 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étailCours 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étailObjets 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
Plus en détailintroduction 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
Plus en détailEPREUVE 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
Plus en détailProbabilité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
Plus en détailExceptions. 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
Plus en détailINITIATION AU LANGAGE C SUR PIC DE MICROSHIP
COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par
Plus en détailThéorie des Graphes Cours 3: Forêts et Arbres II / Modélisation
IFIPS S7 - informatique Université Paris-Sud 11 1er semestre 2009/2010 Théorie des Graphes Cours 3: Forêts et Arbres II / 1 Forêts et arbres II Théorème 1.1. Les assertions suivantes sont équivalentes
Plus en détailPrésentation du langage et premières fonctions
1 Présentation de l interface logicielle Si les langages de haut niveau sont nombreux, nous allons travaillé cette année avec le langage Python, un langage de programmation très en vue sur internet en
Plus en détailCALCUL 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
Plus en détailCoefficients 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
Plus en détailIntroduction à 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
Plus en détailS 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
Plus en détailEnseignement 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:
Plus en détail1. 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
Plus en détailL 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é
Plus en détailIntroduction 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
Plus en détailRepré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étailCorrigé 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étailProbabilités sur un univers fini
[http://mp.cpgedupuydelome.fr] édité le 7 août 204 Enoncés Probabilités sur un univers fini Evènements et langage ensembliste A quelle condition sur (a, b, c, d) ]0, [ 4 existe-t-il une probabilité P sur
Plus en détailLa question est : dans 450 combien de fois 23. L opération est donc la division. Le diviseur. Le quotient
par un nombre entier I La division euclidienne : le quotient est entier Faire l activité division. Exemple Sur une étagère de 4mm de large, combien peut on ranger de livres de mm d épaisseur? La question
Plus en détailLes 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
Plus en détailLimites 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étailAlgorithmique 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étailLambda-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
Plus en détailLicence 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étailAlgorithmes et Programmes. Introduction à l informatiquel. Cycle de vie d'un programme (d'un logiciel) Cycle de vie d'un programme (d'un logiciel)
Algorithmes et Programmes Introduction à l informatiquel! Vie d'un programme! Algorithme! Programmation : le langage! Exécution et test des programmes Chapitre : Algorithmes et Programmes 2 Cycle de vie
Plus en détailTP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface
Plus en détailINF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février 2014 17:30 à 20:30
Examen intra 20 février 2014 17:30 à 20:30 Nom, prénom : Code permanent : Répondez directement sur le questionnaire. Question #1 5% Quelle influence peut avoir le typage dynamique sur la maintenabilité
Plus en détailQu 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
Plus en détailprogression 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
Plus en détailLes 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
Plus en détailS 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
Plus en détailProgrammation. 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
Plus en détailChapitre 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],
Plus en détail2 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)
Plus en détailTable des matières. Introduction
Table des matières 1 Formalisation des virus informatiques 2 1.1 Les machines de Turing........................ 2 1.2 Formalisation de Fred Cohen..................... 2 1.2.1 Définition d un virus informatique..............
Plus en détailLicence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter
Plus en détailDe 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
Plus en détailCours 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
Plus en détailProgrammation C++ (débutant)/instructions for, while et do...while
Programmation C++ (débutant)/instructions for, while et do...while 1 Programmation C++ (débutant)/instructions for, while et do...while Le cours du chapitre 4 : le for, while et do...while La notion de
Plus en détailGenie 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é
Plus en détailALGORITHMIQUE ET PROGRAMMATION En C
Objectifs ALGORITHMIQUE ET PROGRAMMATION Une façon de raisonner Automatiser la résolution de problèmes Maîtriser les concepts de l algorithmique Pas faire des spécialistes d un langage Pierre TELLIER 2
Plus en détailStructurer 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
Plus en détailINTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores
INTRODUCTION AUX SYSTEMES D EXPLOITATION TD2 Exclusion mutuelle / Sémaphores Exclusion mutuelle / Sémaphores - 0.1 - S O M M A I R E 1. GENERALITES SUR LES SEMAPHORES... 1 1.1. PRESENTATION... 1 1.2. UN
Plus en détailDé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étailMON 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
Plus en détailCours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr
. Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le
Plus en détailProgrammation 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
Plus en détailLes 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
Plus en détailCours de C++ François Laroussinie. 2 novembre 2005. Dept. d Informatique, ENS de Cachan
Cours de C++ François Laroussinie Dept. d Informatique, ENS de Cachan 2 novembre 2005 Première partie I Introduction Introduction Introduction Algorithme et programmation Algorithme: méthode pour résoudre
Plus en détailLambda! 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
Plus en détailCORRECTION EXERCICES ALGORITHME 1
CORRECTION 1 Mr KHATORY (GIM 1 A) 1 Ecrire un algorithme permettant de résoudre une équation du second degré. Afficher les solutions! 2 2 b b 4ac ax bx c 0; solution: x 2a Solution: ALGORITHME seconddegré
Plus en détailGé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
Plus en détailDé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étailPremiers 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étailTD3: 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étailExamen 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étailSeconde 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étailQuelques algorithmes simples dont l analyse n est pas si simple
Quelques algorithmes simples dont l analyse n est pas si simple Michel Habib habib@liafa.jussieu.fr http://www.liafa.jussieu.fr/~habib Algorithmique Avancée M1 Bioinformatique, Octobre 2008 Plan Histoire
Plus en détailLes 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
Plus en détailCours d algorithmique pour la classe de 2nde
Cours d algorithmique pour la classe de 2nde F.Gaudon 10 août 2009 Table des matières 1 Avant la programmation 2 1.1 Qu est ce qu un algorithme?................................. 2 1.2 Qu est ce qu un langage
Plus en détailCours 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
Plus en détailRAPPELS 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
Plus en détailChap 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-
Plus en détail