B) Outils d'analyse et composants du langage. deux points de vues complémentaires : outils d'analyse ; composants du langage

Save this PDF as:
 WORD  PNG  TXT  JPG

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

Download "B) Outils d'analyse et composants du langage. deux points de vues complémentaires : outils d'analyse ; composants du langage"

Transcription

1 1 deux points de vues complémentaires : outils d'analyse ; composants du langage B.I) Briques de base ; les expressions bien typées B.II) Simplification de l'analyse ; nommer une expression B.III) Analyse modulaire ; les fonctions B.IV) Analyse par cas ; reconnaissance de motifs part. 1 : types, expressions et fonctions

2 2 B.IV) Analyse par cas et reconnaissance de motifs Considérons un feux tricolore à trois états état 1 : le feux est rouge état 2 : le feux est orange clignotant état 3 : le feux est vert DÉFINITION D'UN ENS feux tricolore déf feux3 = {1, 2, 3} implantation type feux3 = int (* restreint à 1, 2 et 3 *) part. 1 : types, expressions et fonctions

3 3 Expression algébrique affichant la couleur de f:feux3? Solution 1 : Analyse par cas grâce à la composition conditionnelle if f = 1 then "rouge" else if f = 2 then "orange clignotant" else (* nécessairement f = 3 *) "vert" part. 1 : types, expressions et fonctions

4 4 Expression algébrique affichant la couleur de f:feux3? Solution 2 : Analyse par cas grâce à la reconnaissance (ou filtrage) de motifs («pattern matching» en anglais) reconnaître f parmi les motifs suivants : motif 1 reconnu motif 2 reconnu motif 3 reconnu renvoyer "rouge" renvoyer "orange clignotant" renvoyer "vert" part. 1 : types, expressions et fonctions

5 5 Expression algébrique affichant la couleur de f:feux3? Solution 2 : Analyse par cas grâce à la reconnaissance de motifs match f with 1 -> "rouge" 2 -> "orange clignotant" 3 -> "vert" On dit aussi que match... with opére un filtrage part. 1 : types, expressions et fonctions

6 6 NB : composition conditionnelle = cas particulier de filtrage sur motifs booléens if expr_bool then <partie_alors> else <partie_sinon> match expr_bool with true -> <partie_alors> false -> <partie_sinon> part. 1 : types, expressions et fonctions

7 7 Ex : maximum de 2 valeurs if x < y then y else x match x < y with true -> y false -> x On préfèrera la composition conditionnelle au filtrage en cas de motifs booléens! part. 1 : types, expressions et fonctions

8 8 Règles de typage de : match expr with motif1 -> expr1... motifn -> exprn 1) inférence des types de expr, motif1,..., motifn 2) vérification de la compatibilité de ces types 3) inférence des types de expr1,..., exprn 4) vérification de la compatibilité de ces types : T expri 5) type de l'ensemble du filtrage : (match... with) : T expri part. 1 : types, expressions et fonctions

9 9 Exemple : match f with 1 -> "rouge" 2 -> "orange clignotant" 3 -> "vert" 1) inférence des types de f (feux3) et 1, 2, 3 (N) 2) ces types sont compatibles : feux3 est un synonyme du type entier 3) inférence des types de "rouge",..., "vert" (chaîne) 4) vérification de la compatibilité de ces types 5) type de l'ensemble du filtrage : (match... with) : chaîne part. 1 : types, expressions et fonctions

10 10 Contre-exemple : entier correspondant à un caractère Soit c un caractère. Le filtrage suivant n'est pas typable : match '0' <= c && c <= '9' with true -> int_of_char(c) - int_of_char('0') false -> "ce n'est pas un chiffre" This expression has type string but is here used with type int part. 1 : types, expressions et fonctions

11 11 match '0' <= c && c <= '9' with true -> int_of_char c - int_of_char '0' false -> -1 part. 1 : types, expressions et fonctions

12 12 Règles d'évaluation de : match expr with motif1 -> expr1... motifn -> exprn 1) évaluation de expr : val expr 2) évaluation de motif1 : val motif1 3) si val motif1 reconnaît val expr renvoyer expr1 et arrêter, sinon recommencer l'étape 2) avec motif2,... part. 1 : types, expressions et fonctions

13 13 Exemple : let f:feux3 = 2 ;; match f with 1 -> "rouge" 1+1 -> "orange clignotant" 3 -> "vert" 1) évaluation de f donne 2 2) évaluation de 1 donne 1 ; 1 ne reconnaît pas 2 3) évaluation de 1+1 donne 2 ; 2 reconnaît 2 arrêt et renvoi de "orange clignotant" Motif 3 non examiné part. 1 : types, expressions et fonctions

14 14 Regroupement de motifs possible : match f with 1 2 -> freiner() 3 -> continuer() part. 1 : types, expressions et fonctions

15 15 Règle de complétude de : match expr with motif1 -> expr1... motifn -> exprn motif1,..., motifn doivent couvrir tous les cas possibles pour expr On dit que le filtrage doit être exhaustif part. 1 : types, expressions et fonctions

16 16 Attention aux motifs manquants : filtrage non exhaustif Ex : nombres de jours d'un mois de l'année SPÉCIFICATION TYPE MOIS Sémantique les mois de l'année Définition Mois = {1,..., 12 } Implantation type mois = int (* restreint à 1,..., 12 *) part. 1 : types, expressions et fonctions

17 17 SPÉCIFICATION Profil Sémantique Ex et prop NOMBRE DE JOURS D'UN MOIS nbjours : Mois N nbjours (m) est le nombre de jours du mois m dans une année non bissextile (a) nbjours(1) = 31 (b) nbjours(2) = 28 (c) nbjours(4) = 30 part. 1 : types, expressions et fonctions

18 18 RÉALISATION Algorithme Implantation : analyse par cas par reconnaissance de motifs incorrecte bien que correctement typée! type mois = int (* restreint à 1,..., 12 *) let nbjours (m:mois) : int = match m with > > > 28 part. 1 : types, expressions et fonctions

19 19 RÉALISATION Tests : # nbjours(1) = 31 ;; # nbjours(2) = 28 ;; # nbjours(4) = 30 ;; # nbjours(11) = 30 ;; - : bool = true - : bool = true - : bool = true Exception: Match_failure Filtrage non exhaustif : il manque un motif! part. 1 : types, expressions et fonctions

20 20 Implantation correcte : let nbjours (m:mois) : int = match m with > > > 28 part. 1 : types, expressions et fonctions

21 21 RÉALISATION Tests : # nbjours 1 = 31 ;; # nbjours 2 = 28 ;; # nbjours 4 = 30 ;; # nbjours 11 = 30 ;; - : bool = true - : bool = true - : bool = true - : bool = true OK part. 1 : types, expressions et fonctions

22 22 Remarque : filtrage non exhaustif normal, et autorisé implantation dégradée de Mois = {1,..., 12} en int avertissement normal de l'interpréteur : # let nbjours (m:mois) : int = match m with > > > 28 Warning: pattern-matching non exhaustive. Example of a value that is not matched: 0 part. 1 : types, expressions et fonctions

23 23 Le motif anonyme : _ = tous les autres motifs Ex : nature d'une lettre minuscule SPÉCIFICATION Profil Ex et prop naturelettre : minuscule string (a) naturelettre('e') = "voyelle" (b) naturelettre('y') = "semi-voyelle" (c) naturelettre('b') = "consonne" part. 1 : types, expressions et fonctions

24 24 Le motif anonyme : _ = tous les autres motifs type minuscule = char (* restreint aux minuscules *) let naturelettre (lettre:minuscule) : string = match lettre with 'a' 'e' 'i' 'o' 'u' -> "voyelle" 'y' 'w' -> "semi-voyelle" _ -> "consonne" # naturelettre 'e' ;; - : string = "voyelle" # naturelettre 'b' ;; - : string = "consonne" part. 1 : types, expressions et fonctions

25 25 ATTENTION à l'utilisation du motif anonyme Revenons à la version incorrecte de nbjours let nbjours (m:mois) : int = match m with > > 30 _ (* février *) -> 28 # nbjours(2) = 28 ;; - : bool = true # nbjours(11) = 30 ;; - : bool = false??? # nbjours(11) ;; - : int = 28!!! part. 1 : types, expressions et fonctions

26 26 Le motif _ rend le filtrage artificiellement exhaustif. L'avertissement (pattern-matching non-exhaustive) de l'interpréteur dispararaît! le programmeur doit assurer l'exhaustivité du filtrage let nbjours (m:mois) : int = match m with > > 30 _ (* février *) -> 28 # nbjours(2) = 28 ;; - : bool = true # nbjours(11) = 30 ;; - : bool = true OK part. 1 : types, expressions et fonctions

27 27 Langages au typage strict et statique (Ocaml,...) : erreurs conceptuelles détectées à la mise au point Langages au typage relâché et/ou dynamique (C, Java, PHP, Pyhton...) : erreurs conceptuelles non détectées ; plantage à l'exécution (core dumped, segmentation fault) chap. 1 : expression fonctionnelle

28 28 C) Modélisation de l'information Pourquoi modéliser? Ex : Pourquoi classer les mots selon leur nature (nom, verbe, article,...)? Pourquoi les définir dans un dictionnaire? Pourquoi les y ranger alphabétiquement? Comment modéliser? en définissant des types de données en définissant des fonctions les manipulant chap. 1 : expression fonctionnelle

29 29 C) Modélisation de l'information C.1) Nommer et définir un nouveau type C.2) Type synonyme C.3) Type énuméré C.4) Type produit C.5) Type somme chap. 1 : expression fonctionnelle

30 30 C) Modélisation de l'information C.1) Nommer et définir un nouveau type Présentation systématique : DÉFINITION MATHÉMATIQUE D'UN ENSEMBLE déf t = DÉFINITION INFORMATIQUE D'UN TYPE type t = (* contrainte *) Exemple : DÉFINITION MATHÉMATIQUE D'UN ENSEMBLE déf texte = séq(caractères) DÉFINITION INFORMATIQUE D'UN TYPE type texte = char list chap. 1 : expression fonctionnelle

31 31 C) Modélisation de l'information C.2) Types synonymes Exemple : DÉFINITIONS MATHÉMATIQUES D'ENSEMBLES déf prix = R* + déf taux = {0,..., 99} DÉFINITIONS INFORMATIQUES DE TYPES type prix = float (* > 0 *) type taux = int (* restreint à 0,..., 99 *) prix est un synonyme de : float (* > 0 *) taux est un synonyme de : int (* restreint à... *) chap. 1 : expression fonctionnelle

32 32 C) Modélisation de l'information SPÉCIFICATION Profil Sémantique Ex et prop PRIX AVEC RÉDUCTION prixréduit : prix x taux prix prixréduit (p,t) correspond à p réduit de t% prixréduit (100, 25) = 75 Profil : prixréduit : prix * taux -> prix beaucoup plus explicite que le profil anonyme : prixréduit : float * int -> float chap. 1 : expression fonctionnelle

33 33 C) Modélisation de l'information RÉALISATION Implantation : PRIX AVEC RÉDUCTION let prixréduit (p,t:prix*taux) : prix = let réduc = p *. (float_of_int t) / in p -. réduc Tests : # let p1:prix = and t1:taux = 25 in prixréduit(p1, p1);; This expression has type prix*prix but is here used with type prix*taux Type prix=float not compatible with type taux=int chap. 1 : expression fonctionnelle

34 34 C) Modélisation de l'information Message d'erreur : This expression has type prix*prix but is here used with type prix*taux Type prix=float not compatible with type taux=int beaucoup plus explicite que le message anonyme : This expression has type float*float but is here used with type float*int chap. 1 : expression fonctionnelle

35 35 C) Modélisation de l'information C.3) Types énumérés Exemple : on appelle enseigne dans un jeu de cartes,,, DÉFINITION MATHÉMATIQUE D'UN ENSEMBLE déf enseigne = {,,, } DÉFINITION INFORMATIQUE D'UN TYPE type enseigne = Pique Trèfle Coeur Carreau ;; chap. 1 : expression fonctionnelle

36 36 C) Modélisation de l'information C.3) Types énumérés enseigne est un ensemble défini par énumération enseigne est un type énuméré Que sont Pique,..., Carreau? pas des chaînes (manque les ") pas des variables (pas de let Pique =...) constantes symboliques # "Pique" ;; - : string = Pique # Pique ;; - : enseigne = Pique chap. 1 : expression fonctionnelle

37 37 C) Modélisation de l'information C.3) Types énumérés Pique,..., Carreau sont de type enseigne Pique,..., Carreau construisent des valeurs de type enseigne Pique,..., Carreau sont des constructeurs de valeurs Propriété : Les constructeurs de valeurs sont uniques : # Pique = Trèfle - : bool = false chap. 1 : expression fonctionnelle

38 38 C) Modélisation de l'information C.3) Types énumérés Analyse par cas des valeurs d'un type énuméré : expression conditionnelle ou filtrage Exemple : SPÉCIFICATION Profil Sémantique Ex et prop Couleur d'une enseigne couleurens : enseigne string couleurens (e) est la couleur de e (couleurens ) = "rouge" chap. 1 : expression fonctionnelle

39 39 C) Modélisation de l'information C.3) Types énumérés RÉALISATION Couleur d'une enseigne Algorithme 1 : analyse par cas par composition conditionnelle Implantation 1 : let couleurens1 (e:enseigne) : string = if e=carreau e=coeur then "rouge" else (* nécessairement, e=pique ou Trèfle *) "noir" chap. 1 : expression fonctionnelle

40 40 C) Modélisation de l'information C.3) Types énumérés RÉALISATION Couleur d'une enseigne Algorithme 2 : Implantation 2 : analyse par cas par filtrage let couleurens2 (e:enseigne) : string = match e with Carreau Coeur -> "rouge" Pique Trèfle -> "noir" chap. 1 : expression fonctionnelle

41 41 C) Modélisation de l'information C.3) Types énumérés Exercice : amélioration de la modélisation des cartes Q0) Définir un type énuméré modélisant la couleur des enseignes Q1) Donner la nouvelle spécification de couleurens Q2) Donner la nouvelle réalisation de couleurens chap. 1 : expression fonctionnelle

42 42 C) Modélisation de l'information C.1) Nommer et définir un nouveau type C.2) Type synonyme C.3) Type énuméré C.4) Type produit C.5) Type somme chap. 1 : expression fonctionnelle

43 43 C) Modélisation de l'information Rappels Math Info produit cart. d'ens. : produit cart. de types : E 1 x... x E n où E 1,..., E n ensembles t 1 *... * t n où t 1,..., t n types éléments d'un produit : vecteurs (e 1,..., e n ) E 1 x... x E n éléments d'un produit : nuplets e 1,..., e n : t 1 *... * t n chap. 1 : expression fonctionnelle

44 44 C) Modélisation de l'information Exemple : modélisation d'un jeu de 32 cartes Chaque carte d'un jeu de 32 : appartient à une enseigne (,,, ) est une petite (ex : 7 de, 10 de ) ou un honneur (ex : roi de, as de ) chap. 1 : expression fonctionnelle

45 45 C) Modélisation de l'information DÉFINITIONS MATH D'ENSEMBLES déf enseigne = {,,, } déf petite = { 7, 8, 9, 10 } x enseigne déf énumération énumération (intervalle) honneur = { As, Roi, Dame, Valet } x enseigne produits énumération chap. 1 : expression fonctionnelle

46 46 C) Modélisation de l'information déf enseigne = {,,, } déf petite = { 7, 8, 9, 10 } x enseigne déf honneur = { As, Roi, Dame, Valet } x enseigne Exo : Nature des éléments de petite et honneur? couples Énumérer les éléments de petite : { (7, ),..., (10, ), (7, ),..., (10, ), (7, ),..., (10, ), (7, ),..., (10, ) } Point commun entre petite et honneur? type de la 2 ème composante : enseigne Ex : (Roi, ) et (9, ) chap. 1 : expression fonctionnelle

47 47 C) Modélisation de l'information DÉFINITIONS INFO DE TYPES type énuméré type enseigne = Pique Trèfle Coeur Carreau type petite = int (* restreint à 7, 8, 9, 10 *) * enseigne (* Nommage de l'énumération {As,Roi,Dame,Valet}: *) type tête = As Roi Dame Valet type honneur = tête * enseigne type produit type intervalle chap. 1 : expression fonctionnelle

48 48 C) Modélisation de l'information Exo 1 : Chaque joueur détient exactement 5 cartes tout au long du jeu. Q1) Définir une constante QFRC modélisant la quinte flush royale à cœur (poker) : Q2) QFRC? Q3) Implantation? chap. 1 : expression fonctionnelle

49 49 C) Modélisation de l'information Q1) DÉF DE CONSTANTE QFRC = ( (As, ), (Roi, ), (Dame, ), (Valet, ), (10, ) ) Q2) QFRC honneur 4 x petite Q3) IMPLANTATION let cst_qfrc : honneur*honneur*honneur*honneur*petite = ( (As,Coeur), (Roi,Coeur), (Dame,Coeur), (Valet,Coeur), (10,Coeur) ) chap. 1 : expression fonctionnelle

50 50 C) Modélisation de l'information Limitation modélisation cartes par types produit Fonction f s'appliquant sur des petites et des honneurs : f : petite t (t type quelconque), ou bien f : honneur t? f : (honneur U petite) t!?! chap. 1 : expression fonctionnelle

51 51 C) Modélisation de l'information nécessité d'un nouveau type carte réunissant petites et honneurs type carte : union des types petite et honneur On parle de type somme. chap. 1 : expression fonctionnelle

52 52 C) Modélisation de l'information C.1) Nommer et définir un nouveau type C.2) Type synonyme C.3) Type énuméré C.4) Type produit C.5) Type somme chap. 1 : expression fonctionnelle

INF121: Algorithmique et Programmation Fonctionnelle

INF121: Algorithmique et Programmation Fonctionnelle INF121: Algorithmique et Programmation Fonctionnelle Cours 1: Identificateurs, types de base et fonctions Année 2013-2014 Identificateurs La notion d identificateur Un concept fondamental dans les langages

Plus en détail

Introduction à OCAML

Introduction à OCAML Introduction à OCAML Plan L interpréteur intéractif Ocaml Les types de base, et leurs opérations : int, float, char, string, bool Les n-uplets Conditionnelles : if... then... else et match... with... Déclarations

Plus en détail

Algorithmique - Programmation 1. Cours 4

Algorithmique - Programmation 1. Cours 4 Algorithmique - Programmation 1 Cours 4 Université Henri Poincaré CESS Epinal Automne 2008 1/ 23 Plan Rappels : Types en Caml Rappels: Types en Caml Polymorphisme Le filtrage Le type produit cartésien

Plus en détail

Programmation fonctionnelle avec OCaml

Programmation fonctionnelle avec OCaml Programmation fonctionnelle avec OCaml 1ère séance, 19 février 2015 6 séances de 1h30 de cours et 3h de TP 3 projets avec soutenance D autres transparents sont disponibles avec vidéo (intranet) Samuel

Plus en détail

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

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

Plus en détail

APPLICATION. Définition des classes : On va définir - une classe carte - une classe piledecartes - une classe joueur

APPLICATION. Définition des classes : On va définir - une classe carte - une classe piledecartes - une classe joueur APPLICATION On souhaite écrire un programme qui permet à l utilisateur de jouer au jeu de cartes 21. Principe : L utilisateur reçoit une carte à la fois et après chaque carte il décide s il continue ou

Plus en détail

Projet de Programmation Fonctionnelle

Projet de Programmation Fonctionnelle Projet de Programmation Fonctionnelle L objectif de ce projet est de concevoir, en Objective Caml, un évaluateur pour le langage mini-ml (un sous ensemble du langage Objective Caml). Votre programme devra

Plus en détail

Introduction à l algorithmique et à la programmation 2013-2014. Cyril Nicaud Cyril.Nicaud@univ-mlv.fr. Cours 1 / 5

Introduction à l algorithmique et à la programmation 2013-2014. Cyril Nicaud Cyril.Nicaud@univ-mlv.fr. Cours 1 / 5 Introduction à l algorithmique et à la programmation IUT 1ère année 2013-2014 Cyril Nicaud Cyril.Nicaud@univ-mlv.fr Cours 1 / 5 Déroulement du cours Organisation : 5 séances de 2h de cours 10 séances de

Plus en détail

Algorithmique - Programmation 1. Cours 3

Algorithmique - Programmation 1. Cours 3 Algorithmique - Programmation 1 Cours 3 Université Henri Poincaré CESS Epinal Automne 2008 1/ 25 Plan Typage de fonctions Typage de fonctions Le type caractère Le type chaîne de caractères Fonctions récursives

Plus en détail

Les types somme. 1 Préparation du TP. 2 Interface du module Carte. Algorithmes et Programmation Impérative 2. 2.1 Les types de donnees

Les types somme. 1 Préparation du TP. 2 Interface du module Carte. Algorithmes et Programmation Impérative 2. 2.1 Les types de donnees Univ. Lille1 - Licence Informatique 2ème année 2014-15 Algorithmes et Programmation Impérative 2 Les types somme 1 Préparation du TP Dans le prochain TP, vous allez réaliser un programme de jeu de poker

Plus en détail

Algorithmique - Programmation 1. Cours 1

Algorithmique - Programmation 1. Cours 1 Algorithmique - Programmation 1 Cours 1 Université Henri Poincaré CESS Epinal Automne 2008 1/ 24 Plan Introduction Introduction A propos d AP1 Quelques concepts de base Premiers pas avec Caml Le branchement

Plus en détail

TD n 4. Rappel. Filtrage. 1/ Remplace une alternative : if expression = valeur then expression1 else expression2;;

TD n 4. Rappel. Filtrage. 1/ Remplace une alternative : if expression = valeur then expression1 else expression2;; TD n 4 Rappel Filtrage 1/ Remplace une alternative : if expression = valeur then expression1 else expression2;; match expression = valeur with true -> expression1 false -> expression2;; ici le filtre est

Plus en détail

Recherche dans un tableau

Recherche dans un tableau Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6

Plus en détail

INF121: Algorithmique et Programmation Fonctionnelle

INF121: Algorithmique et Programmation Fonctionnelle INF121: Algorithmique et Programmation Fonctionnelle Cours 3: Compléments sur les Types Année 2013-2014 Rappel des épisodes précédents Types de base : Type Opérations Constantes bool not, &&, true, false

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

INF121: Algorithmique et Programmation Fonctionnelle

INF121: Algorithmique et Programmation Fonctionnelle INF121: Algorithmique et Programmation Fonctionnelle Cours 3: Compléments sur les Types Année 2015-2016 Rappel des épisodes précédents Types de base : Type Opérations Constantes bool not, &&, true, false

Plus en détail

TP Compilation Analyse lexicale

TP Compilation Analyse lexicale TP Compilation Analyse lexicale Eric Ramat ramat@lisic.univ-littoral.fr 9 mai 2014 Durée : 6 heures 1 Introduction Le but de cet TP est de vous donner les bases nécessaires afin de pouvoir écrire votre

Plus en détail

C.P.G.E - Meknès Langage Python 3 Haouati Abdelali

C.P.G.E - Meknès Langage Python 3 Haouati Abdelali 3. Langage Python 3 2 a. Introduction Présentation du langage Python : Python est un langage portable, dynamique, extensible, gratuit, qui permet (sans l imposer) une approche modulaire et orientée objet

Plus en détail

Cours numéro 6 : Les types somme

Cours numéro 6 : Les types somme LI213 Types et Structures de données Licence d Informatique Université Paris 6 Introduction aux types somme On sait représenter toute sorte d agrégations de données. Mais toutes ces agrégations n utilisent,

Plus en détail

Programmation objet en Java.

Programmation objet en Java. Programmation objet en Java. Didier Rémy 2001-2002 http://cristal.inria.fr/ remy/mot/7/ http://www.enseignement.polytechnique.fr/profs/informatique/didier.remy/mot/7/ Cours Exercices Slide 1 1. Classes,

Plus en détail

Programmation en Python - Cours 2 : Premiers programmes

Programmation en Python - Cours 2 : Premiers programmes Programmation en Python - Cours 2 : Premiers programmes 2013/2014 Diverses utilisations de python Utilisation en mode interactif Ecriture d un programme python Saisie de données par l utilisateur : input(),

Plus en détail

Tableaux (introduction) et types de base

Tableaux (introduction) et types de base Tableaux (introduction) et types de base A. Motivation..................................................... 4 B. Les tableaux.................................................... 5 C. Construction des tableaux.......................................

Plus en détail

Algorithmique - Programmation 1. Cours 2

Algorithmique - Programmation 1. Cours 2 Algorithmique - Programmation 1 Cours 2 Université Henri Poincaré CESS Epinal Automne 2008 1/ 21 Plan Rappel: Caml en mode interactif Rappel: Caml en mode interactif Rappel: les types de base 2/ 21 Rappel:

Plus en détail

Formation au langage Caml Claude Marché Ralf Treinen

Formation au langage Caml Claude Marché Ralf Treinen Université Paris-Sud Centre d Orsay Formation au langage Caml Claude Marché Ralf Treinen Adresses des auteurs: Claude Marché L.R.I., Bâtiment 490 Université Paris-Sud 91405 Orsay cedex France Tél : 01

Plus en détail

InitProg par l exemple

InitProg par l exemple InitProg par l exemple Martin Monperrus 16 décembre 2011 Ce cument illustre avec des programmes Ocamlcartes et Ocaml le polycopié du cours Initiation à la programmation (InitProg) de l Université Lille

Plus en détail

Langage Élémentaire Algorithmique Spécifications du langage

Langage Élémentaire Algorithmique Spécifications du langage Langage Élémentaire Algorithmique Spécifications du langage Lionel Clément Version provisoire Novembre 2012 Le but de ce projet est de livrer un compilateur pour un langage élémentaire algorithmique (Léa).

Plus en détail

USTL - Licence ST-A 1ère année 2005-2006 Initiation à la programmation. CTD : Variables et types de données

USTL - Licence ST-A 1ère année 2005-2006 Initiation à la programmation. CTD : Variables et types de données USTL - Licence ST-A 1ère année 2005-2006 Initiation à la programmation 1 Motivation 1.1 Un problème CTD : Variables et types de données État initial : Tas 1 un nombre quelconque de cartes, les autres tas

Plus en détail

Compte en banque : Exemple de conception et implantation par raffinement successif

Compte en banque : Exemple de conception et implantation par raffinement successif Compte en banque : Exemple de conception et implantation par raffinement successif 11 octobre 2014 1 Énoncé On veut écrire un programme qui fait la mise à jour de votre compte en banque. Le programme traite

Plus en détail

Concours 2015 Épreuve d Informatique Filière : MP Durée de l épreuve : 3 heures. L utilisation d une calculatrice est autorisée.

Concours 2015 Épreuve d Informatique Filière : MP Durée de l épreuve : 3 heures. L utilisation d une calculatrice est autorisée. A 2015 INFO. MP École des Ponts ParisTech, SUPAERO (ISAE), ENSTA ParisTech, Télécom ParisTech, Mines ParisTech, Mines de Saint-étienne, Mines Nancy, Télécom Bretagne, ENSAE ParisTech (filière MP), École

Plus en détail

Induction sur les arbres

Induction sur les arbres Induction sur les arbres Planning Motivations Comment définir les arbres? Équations récursives sur les arbres Complexité de fonctions sur les arbres Recherche dans un arbre binaire de recherche Recherche

Plus en détail

S. Laporte C# mode console DAIGL TS1

S. Laporte C# mode console DAIGL TS1 Bases du langage C# I. C# en mode console (mode texte) Avantages par rapport au mode graphique (Application Windows): - C'est un mode plus proche de l'approche algorithmique (pas de notions de composants,

Plus en détail

INF121: Algorithmique et Programmation Fonctionnelle

INF121: Algorithmique et Programmation Fonctionnelle INF121: Algorithmique et Programmation Fonctionnelle Cours 4: Fonctions récursives Année 2013-2014 Les précédents épisodes de INF 121 Types de base : Type Opérations Constantes bool not, &&, true, false

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

Jeu Simon: analyse. La partie est perdue, on a eu une erreur ou un dépassement du temps limite : musique

Jeu Simon: analyse. La partie est perdue, on a eu une erreur ou un dépassement du temps limite : musique Jeu Simon: analyse 1 Algorithme du jeu : Effectuer un tirage de la séquence des couleurs (20 éléments, 3 couleurs) Répéter Afficher la séquence des couleurs et émission des notes associées Répéter Entrée

Plus en détail

InitProg Python par l exemple

InitProg Python par l exemple InitProg Python par l exemple Martin Monperrus 26 octobre 2012 Ce document illustre le polycopié du cours Initiation à la programmation (InitProg) de l Université Lille 1 avec quelques programmes Python

Plus en détail

Listes de personnes et calculatrice polonaise inverse en Java

Listes de personnes et calculatrice polonaise inverse en Java Listes de personnes et calculatrice polonaise inverse en Java Université Paris Sud Motivation Le but de cet exercice est de manipuler les listes chaînées et les piles et de voir leur application en analyse

Plus en détail

LICENCE SCIENCES & TECHNOLOGIES 1 re ANNÉE UE INF121 ALGORITHMIQUE ET PROGRAMMATION FONCTIONNELLE

LICENCE SCIENCES & TECHNOLOGIES 1 re ANNÉE UE INF121 ALGORITHMIQUE ET PROGRAMMATION FONCTIONNELLE Université Joseph Fourier UFR IMA LICENCE SCIENCES & TECHNOLOGIES 1 re ANNÉE Département Licence Sciences et Technologie UE INF121 ALGORITHMIQUE ET PROGRAMMATION FONCTIONNELLE Devoir maison - Dénition

Plus en détail

NFP119 : corrigé feuille d exercices 2

NFP119 : corrigé feuille d exercices 2 NFP119 : corrigé feuille d exercices 2 María-Virginia Aponte 10 octobre 2013 Exercice 1 1. Testez cette fonction en Ocaml pour les appels suivants : sommen(0), sommen(-1), sommen(1), sommen(3). L appel

Plus en détail

CHAPITRE 3 : Types de base, Opérateurs et Expressions

CHAPITRE 3 : Types de base, Opérateurs et Expressions CHAPITRE 3 : Types de base, Opérateurs et Expressions 1. Types simples Un type définit l'ensemble des valeurs que peut prendre une variable, le nombre d'octets à réserver en mémoire et les opérateurs que

Plus en détail

Introduction aux listes. Cours numéro 5 : Les listes LI213 Types et Structures de données. Les listes simplement chaînées

Introduction aux listes. Cours numéro 5 : Les listes LI213 Types et Structures de données. Les listes simplement chaînées Introduction aux s LI Types et Structures de données Liste : définition Collection ordonnée d éléments [x ;...; x n ] (au moins) accessibles l un après l autre de x jusqu à x n. Exemple : dans la [ ; ;5

Plus en détail

Examen de Programmation I

Examen de Programmation I Examen de Programmation I Sciences et Technologies du Vivant, Semestre 1 Mercredi 22 décembre 2010 1. N oubliez pas de mettre vos NOM et PRÉNOM sur toutes vos copies. 2. Merci de garder la donnée. 3. Vous

Plus en détail

Les tableaux (ou vecteurs) (1/3) Cours numéro 3: Programmation impérative LI213 Types et Structures de données. Les tableaux (3/3) Les tableaux (2/3)

Les tableaux (ou vecteurs) (1/3) Cours numéro 3: Programmation impérative LI213 Types et Structures de données. Les tableaux (3/3) Les tableaux (2/3) Les tableaux (ou vecteurs) (1/3) Le type tableau est une des réponses à la question : LI213 Types et Structures de données Licence d Informatique Université Paris 6 comment agréger un très grand nombre

Plus en détail

Expressions, types et variables en Python

Expressions, types et variables en Python Expressions, types et variables en Python 2015-08-26 1 Expressions Les valeurs désignent les données manipulées par un algorithme ou une fonction. Une valeur peut ainsi être : un nombre, un caractère,

Plus en détail

Épreuve d informatique 2011

Épreuve d informatique 2011 A 2011 INFO. MP ÉCOLE NATIONALE DES PONTS ET CHAUSSÉES, ÉCOLES NATIONALES SUPÉRIEURES DE L AÉRONAUTIQUE ET DE L ESPACE, DE TECHNIQUES AVANCÉES, DES TÉLÉCOMMUNICATIONS, DES MINES DE PARIS, DES MINES DE

Plus en détail

OCaml caml.inria.fr «Pourquoi c'est (presque ;-) le meilleur langage du monde»

OCaml caml.inria.fr «Pourquoi c'est (presque ;-) le meilleur langage du monde» OCaml caml.inria.fr «Pourquoi c'est (presque ;-) le meilleur langage du monde» Jeudi 7 avril 2005 David Mentré OCaml en quelques mots OCaml est un langage de programmation : fortement typé, à typage polymorphe

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

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes treinen@pps.univ-paris-diderot.fr 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation

Plus en détail

TP n o 9 - Tables de hachage

TP n o 9 - Tables de hachage L2 - Algorithmique et structures de données (Année 2011/2012) Delacourt, Phan Luong, Poupet TP n o 9 - Tables de hachage Exercice 1. En python En python les tables de hachage sont appelées dictionnaires.

Plus en détail

Programmation en VBA

Programmation en VBA Programmation en VBA Présentation de Visual Basic Visual Basic : Basic : dérivé du langage Basic (Biginner s All purpose Symbolic Instruction Code) des années 60 Visual : dessin et aperçu de l interface

Plus en détail

Types de données en Java, comparaison avec Caml

Types de données en Java, comparaison avec Caml Types de données en Java, comparaison avec Caml par Denis Monasse, Lycée Louis le Grand 9 mai 2001 1 Les types élémentaires En Java, on dispose bien entendu des types élémentaires habituels : entiers,

Plus en détail

Introduction à la Programmation 1

Introduction à la Programmation 1 Introduction à la Programmation 1 Séance de cours/td Université Paris-Diderot Objectifs: Découverte du type String. Comprendre qu il y a des types différents. Maîtriser les expressions booléennes dans

Plus en détail

Expressions rationnelles, automates, analyse lexicale

Expressions rationnelles, automates, analyse lexicale Chapitre 2 Expressions rationnelles, automates, analyse lexicale L analyse lexicale est la première phase d un compilateur ou d un interprète : elle consiste à identifier et à catégoriser les différents

Plus en détail

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 SHERLOCK 7 Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 Cette note montre comment intégrer un script Java dans une investigation Sherlock et les différents aspects de Java script. S T E M M E R I M A G I N

Plus en détail

ISN TP 3 : «Premiers pas en programmation» 18/06/2015

ISN TP 3 : «Premiers pas en programmation» 18/06/2015 ISN TP 3 : «Premiers pas en programmation» 18/06/2015 Cette année, nous allons développer des programmes dans un langage de programmation qui s appelle Python. Nous allons travailler dans un environnement

Plus en détail

3 Pseudo-code et algorithmes 26

3 Pseudo-code et algorithmes 26 TABLE DES MATIÈRES 1 Introduction à la programmation 1 1.1 Programme et langage de programmation 2 1.2 Étapes du développement des programmes 2 1.3 Notion d'algorithme 6 2 Notions de base 9 2.1 Constantes

Plus en détail

Informatique Chapitre 4: Types et typages

Informatique Chapitre 4: Types et typages Informatique Chapitre 4: Types et typages Booléens et listes Jérôme DIDIER 8/10/2014 Objectifs du cours Compétences visées Savoir que les variables peuvent avoir plusieurs types et les connaitre ; Type

Plus en détail

Arbres de segments. Plan. Arbres de segments. Arbres de sélection Listes à saut Compléments de Java Dictionnaires Automates. Solution.

Arbres de segments. Plan. Arbres de segments. Arbres de sélection Listes à saut Compléments de Java Dictionnaires Automates. Solution. Plan Arbres de segments Arbres de segments Arbres de sélection Listes à saut Compléments de Java Dictionnaires Automates Problème : Chercher, dans un ensemble d intervalles de la droite réelle, les intervalles

Plus en détail

Ricco Rakotomalala http://eric.univ-lyon2.fr/~ricco/cours/cours_programmation_python.html. R.R. Université Lyon 2

Ricco Rakotomalala http://eric.univ-lyon2.fr/~ricco/cours/cours_programmation_python.html. R.R. Université Lyon 2 Ricco Rakotomalala http://eric.univ-lyon2.fr/~ricco/cours/cours_programmation_python.html 1 Généralités sur la programmation ALGORITHMIE - PROGRAMMATION 2 Algorithmie vs. Programmation Algorithmie Programme

Plus en détail

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

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

Plus en détail

Listes et arbres binaires

Listes et arbres binaires Des structures de données dynamiques Listes, Listes ordonnées Arbres binaires, arbre binaires de recherche Listes chaînées Utile si le nombre d éléments n est pas connu à l avance et évolue beaucoup. Permet

Plus en détail

Corrigé des exercices sur les tableaux

Corrigé des exercices sur les tableaux Corrigé des exercices sur les tableaux Exercice 4.1.1 tableau d entiers Dans cet exercice, on va travailler avec un tableau d entiers initialisé : int[] tab = {12, 15, 13, 10, 8, 9, 13, 14; Question 1

Plus en détail

Les types utilisateurs (VBA) Corrigé

Les types utilisateurs (VBA) Corrigé PAD INPT ALGORITHMIQUE ET PROGRAMMATION 1 Cours VBA, Semaine 2 avril mai 2013 Corrigé Résumé Ce document décrit comment traduire en VBA les types utilisateur du langage algorithmique. Table des matières

Plus en détail

CORRECTION INF121 : Contrôle continu (2h00) Mars Exercice 1 : Typage et valeur d une expression (15 points)

CORRECTION INF121 : Contrôle continu (2h00) Mars Exercice 1 : Typage et valeur d une expression (15 points) 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

Plus en détail

Exercices dirigés séance n 2 - corrigé

Exercices dirigés séance n 2 - corrigé Exercices dirigés séance n 2 - corrigé Exercice 1 : volume d'un cylindre Ecrire un programme qui saisit le rayon et la longueur d'un cylindre puis calcule et affiche son volume. On utilisera les formules

Plus en détail

Université Laval Faculté des sciences et de génie Département d'informatique et de génie logiciel IFT-3101. Travail pratique #2

Université Laval Faculté des sciences et de génie Département d'informatique et de génie logiciel IFT-3101. Travail pratique #2 Université Laval Faculté des sciences et de génie Département d'informatique et de génie logiciel IFT-3101 Danny Dubé Hiver 2014 Version : 11 avril Questions Travail pratique #2 Traduction orientée-syntaxe

Plus en détail

Programmation avancée en C

Programmation avancée en C Département Informatique Nom : Prénom : Année scolaire : 2007 2008 Date : 23 juin 2008 Module INF446 Session de juin Programmation avancée en C Contrôle de connaissance 1 de 45 minutes ÅERCI de répondre

Plus en détail

Qualité logicielle, tests, débogage

Qualité logicielle, tests, débogage Qualité logicielle, tests, débogage A. Accro aux tests? Une introduction au test logiciel................ 4 Pourquoi le test logiciel? Des tests, pour gagner du temps! Pour aller plus loin Les objectifs

Plus en détail

petite référence de Caml

petite référence de Caml petite référence de Caml version du document : 2 (rentrée 1996) Alain Bèges & Laurent Chéno lycées Champollion (Grenoble) & Louis-le-Grand (Paris) Table des matières 1 Types de base 2 1.1 Unit... 2 1.2

Plus en détail

Variables, types simples, expressions et instructions simples

Variables, types simples, expressions et instructions simples 2.2 - Chap. 05 Variables, types simples, expressions et instructions simples 1 / 5 Variables, types simples, expressions et instructions simples 1 Variable de types simples 1.1 Notion de variable Une variable

Plus en détail

Analyse Combinatoire

Analyse Combinatoire Analyse Combinatoire Rappels Symboles Combinatoires Tirage de p parmi n éléments avec remise sans remise ordre important Bn p n p A p n n! pn pq! ordre non-important - Cn p n! pn pq!p! Coefficients Binomiaux

Plus en détail

Algorithmique et Analyse d Algorithmes

Algorithmique et Analyse d Algorithmes Algorithmique et Analyse d Algorithmes L3 Info Cours 5 : Structures de données linéaires Benjamin Wack 2015-2016 1 / 37 La dernière fois Logique de Hoare Dichotomie Aujourd hui Type Abstrait de Données

Plus en détail

Algorithmique et Programmation, IMA 3

Algorithmique et Programmation, IMA 3 Algorithmique et Programmation, IMA 3 Cours 4 : Vecteurs/Tableaux Université Lille 1 - Polytech Lille Vecteurs et Tableaux Algorithmes sur les tableaux d entiers Algorithmes de mots Tableaux2d - Matrices

Plus en détail

Série notée Sujet 1. Règles et recommandations : Instructions ÉC O L E P O L Y T E C H N IQ U E FÉ DÉR A L E D E L A U S A N N E

Série notée Sujet 1. Règles et recommandations : Instructions ÉC O L E P O L Y T E C H N IQ U E FÉ DÉR A L E D E L A U S A N N E EIDGENÖSSISCHE TECHNISCHE HOCHSCHULE LAUSANNE POLITECNICO FEDERALE LOSANNA SWISS FEDERAL INSTITUTE OF TECHNOLOGY LAUSANNE Faculté Informatique et Communication Cours Informatique II (SV) Jamila Sam ÉC

Plus en détail

Langage de Programmation 2 (LP2)

Langage de Programmation 2 (LP2) Langage de Programmation 2 (LP2) RICM3 Cours 2 : Preuve et récurrence structurelle Pascal Lafourcade Polytech 2010-2011 1 / 51 La dernière fois Programmation fonctionnelle Types et opérateurs de base (int,

Plus en détail

TP n o 7 : Types récursifs et arbres

TP n o 7 : Types récursifs et arbres TP n o 7 : Types récursifs et arbres Pour sauver un arbre, mangez un castor Henri Prades 1 Types sommes en CAML Nous avons rencontré les types de base en CAML (unit, bool, int, float, char, string) ainsi

Plus en détail

DS Java 1. 19 novembre 2005

DS Java 1. 19 novembre 2005 DS Java 1 19 novembre 2005 Durée : 2 heures. Documents (notes et polycopiés) autorisés. La rigueur et la propreté seront prises en compte dans l évaluation. Le barème est indicatif. Vous rédigerez vos

Plus en détail

Polytechnique. Épreuve d Informatique 1998

Polytechnique. Épreuve d Informatique 1998 Polytechnique Épreuve d Informatique 1998 Corrigé rédigé par Martine Lannaud, Lycée Chaptal, Paris Pour toute remarque ou correction martine.lannaud@prepas.org Motifs et automates Question 1. Quelques

Plus en détail

Programmation en Python - Cours 2 : Premiers programmes. MPSI - Lycée Thiers

Programmation en Python - Cours 2 : Premiers programmes. MPSI - Lycée Thiers Programmation en Python - Cours 2 : Premiers programmes Diverses utilisations de python Utilisation en mode interactif Ecriture d un programme python Utilisation en mode interactif Ecriture d un programme

Plus en détail

TD n 1 - Tests de couverture en langage C

TD n 1 - Tests de couverture en langage C ENSEIRB Année 201-2014 ème année IT06 TD n 1 - Tests de couverture en langage C Résumé : Cette feuille compare les différentes techniques de test structurel et fonctionnel, ainsi que les aspects du test

Plus en détail

Université Mohammed Premier Année universitaire 2011-2012. Correction de l examen écrit de la session ordinaire 18 Février 2012

Université Mohammed Premier Année universitaire 2011-2012. Correction de l examen écrit de la session ordinaire 18 Février 2012 Université Mohammed Premier Année universitaire 2011-2012 Faculté des Sciences Filière SMI Département de Mathématiques Module : POO Java et d Informatique Semestre : S5 Correction de l examen écrit de

Plus en détail

Compilation séparée. Compilation séparée. ENSIIE: Programmation avancée, Compilation séparée, Modularité, Spécifications algébriques 1

Compilation séparée. Compilation séparée. ENSIIE: Programmation avancée, Compilation séparée, Modularité, Spécifications algébriques 1 Compilation séparée Compilation séparée ENSIIE: Programmation avancée, Compilation séparée, Modularité, Spécifications algébriques 1 Compilation séparée Modularité GCC : 4 millions de lignes de code Noyau

Plus en détail

Programmation fonctionnelle : correction feuille d exercices 1

Programmation fonctionnelle : correction feuille d exercices 1 Programmation fonctionnelle : correction feuille d exercices 1 María-Virginia Aponte 28 février 2011 Exercice 1 Expressions Chacune des phrases Ocaml dans cet exercice est une expression. Rappel : Cela

Plus en détail

Arbres binaires et codage de Huffman

Arbres binaires et codage de Huffman MP Option Informatique Premier TP Caml Jeudi 8 octobre 2009 Arbres baires et codage de Huffman 1 Arbres baires Soit E un ensemble non vide. On défit la notion d arbre baire étiqueté (aux feuilles) par

Plus en détail

Python langage de programmation

Python langage de programmation Initiation à la programmation avec Python langage de programmation Valérie Bellynck (2009), d après un diaporama d Alain Bozzi (2008), lui-même venant de celui de Bob Cordeau (2008) 1 Langage de Programmation

Plus en détail

Cours No 3 : Identificateurs, Fonctions, Premières Structures de contrôle.

Cours No 3 : Identificateurs, Fonctions, Premières Structures de contrôle. Université Montpellier-II UFR des Sciences - Département Informatique - Licence Informatique UE GLIN302 - Programmation Applicative et Récursive Cours No 3 : Identificateurs, Fonctions, Premières Structures

Plus en détail

Exercice 1 (API Java)

Exercice 1 (API Java) Programmation orientée objet TP 3 L2 MPCIE API Java, Paquetages Exercice 1 (API Java) 1. Écrire la classe Ensemble comme étant une collection d'éléments ne contenant pas de doublon. Elle sera donc implémentée

Plus en détail

Correction langage Java

Correction langage Java MINISTÈRE DE L ÉCOLOGIE, DU DÉVELOPPEMENT DURABLE, DES TRANSPORTS ET DU LOGEMENT EXAMEN PROFESSIONNEL DE VÉRIFICATION D APTIDUDE AUX FONCTIONS DE PROGRAMMEUR Session 2010 Correction langage Java Langage:

Plus en détail

Programmation fonctionnelle

Programmation fonctionnelle Programmation fonctionnelle avancée Notes de cours Mise à niveau 1 9 septembre 2015 Sylvain Conchon sylvain.conchon@lri.fr /59 1 Structure du cours Le cours est à la fois : Une introduction à la programmation

Plus en détail

Plan du cours. Syntaxe abstraite. Actions sémantiques Exemple : Analyseur d expressions arithmétiques Arbres de syntaxe.

Plan du cours. Syntaxe abstraite. Actions sémantiques Exemple : Analyseur d expressions arithmétiques Arbres de syntaxe. Plan du cours Syntaxe abstraite Martin Odersky 21 et 22 novembre 2005 version 1.0 1 2 3 Syntaxe abstraite Martin Odersky 1 de 31 Syntaxe abstraite Martin Odersky 2 de 31 Un analyseur syntaxique fait généralement

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

1. Lecture / Ecriture

1. Lecture / Ecriture IUT Arles Info 1 ère année - Module AP (Algorithmique) TD 2 Algo 1. Lecture / Ecriture Exercice I : Quels résultats produira ce programme : Variables val, double : numériques Val 231 Double val * 2 Ecrire

Plus en détail

TP Interface graphique et C++ numéro 1

TP Interface graphique et C++ numéro 1 TP Interface graphique et C++ numéro 1 Master IGC - 1 re année année 2010-2011 Ce premier TP a pour objectif de vous familiariser avec le compilateur C++, les entréessorties du langage et l utilisation

Plus en détail

Devoir surveillé d'informatique UE INF121 durée : 2h00

Devoir surveillé d'informatique UE INF121 durée : 2h00 Devoir surveillé d'informatique UE INF121 durée : 2h00 Répondez sur le sujet. Ne vous ez pas à la taille des pointillés : la taille des pointillés ne correspond pas forcément à la taille de la réponse.

Plus en détail

Série 2 Premiers programmes

Série 2 Premiers programmes Licence pro. GTSBD 2013-2014 Structures de données, langage Python Série 2 Premiers programmes Programmes avec des affectations, des lectures et des écritures Exo 2.1 Le problème de la machine qui rend

Plus en détail

Utilitaires méconnus de StrataFrame

Utilitaires méconnus de StrataFrame Utilitaires méconnus de StrataFrame Voici quelques classes d utilitaires, parmi ceux qui se trouvent dans le NameSpace MicroFour.StrataFrame.Tools. Cette liste n est pas exhaustive, et les regroupements

Plus en détail

Eléments de syntaxe du langage Java

Eléments de syntaxe du langage Java c jan. 2014, v3.0 Java Eléments de syntaxe du langage Java Sébastien Jean Le but de ce document est de présenter es éléments de syntaxe du langage Java : les types primitifs, les opérateurs arithmétiques

Plus en détail

Ch. 1 : Bases de programmation en Visual Basic

Ch. 1 : Bases de programmation en Visual Basic Ch. 1 : Bases de programmation en Visual Basic 1 1 Variables 1.1 Définition Les variables permettent de stocker en mémoire des données. Elles sont représentées par des lettres ou des groupements de lettres

Plus en détail

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

MANUEL DE RÉFÉRENCE DU LANGAGE CAML

MANUEL DE RÉFÉRENCE DU LANGAGE CAML Xavier Leroy Pierre Weis MANUEL DE RÉFÉRENCE DU LANGAGE CAML Copyright 1992, 1993, 2009 Pierre Weis et Xavier Leroy. Ce texte est distribué sous les termes de la licence Creative Commons BY-NC-SA. Le texte

Plus en détail

Programmation VBA. Identificateurs. Types de base. Déclaration d une variable. Commentaires. Activer l onglet Développeur (Excel)

Programmation VBA. Identificateurs. Types de base. Déclaration d une variable. Commentaires. Activer l onglet Développeur (Excel) Activer l onglet Développeur (Excel) Programmation VBA Michel Reid Cliquez sur le bouton Office (coin supérieur gauche) Cliquez sur le bouton Options Excel Dans la section Standard, cochez la case Afficher

Plus en détail