1 Introduction. 2 Délimitation du langage utilisé. Expression Logique et Fonctionnelle... Évidemment. 2.1 Données de base du langage

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

Download "1 Introduction. 2 Délimitation du langage utilisé. Expression Logique et Fonctionnelle... Évidemment. 2.1 Données de base du langage"

Transcription

1 1 Univ. Lille1 - Licence info 3ème année Expression Logique et Fonctionnelle... Évidemment Cours n o 3 : Sémantique Ces notes de cours sont très largement inspirées du chapitre 3 du livre Approche fonctionnelle de la programmation de Guy Cousineau et Michel Mauny, Ediscience, 1995, ainsi que du chapitre 2 du livre Introduction à la théorie des langages de programmation de Gilles Dowek et Jean-Jacques Lévy, Ellipses, Introduction But : dénir de façon précise la valeur associée à chaque expression (sémantique du langage). Plusieurs moyens : associer à chaque expression du langage un objet mathématique : sémantique dénotationnelle. réduire les expressions du langage : sémantique par récriture ou encore sémantique opérationnelle. La sémantique par réécriture est une sémantique opérationnelle qui montre comment on obtient la valeur d'une expression. Tandis que la sémantique dénotationnelle est une sémantique déclarative qui montre uniquement quelle est la valeur d'une expression. 2 Délimitation du langage utilisé Nous allons décrire la sémantique par réduction d'un langage fonctionnel ctif qui peut être considéré comme un sous-ensemble limité du langage Caml, et que nous appelerons donc minicaml. 2.1 Données de base du langage Ce langage ne possède que deux types de base : 1. les entiers (int) notés usuellement (en base 10), avec les quatre opérations arithmétiques de base : +,,, /, 2. et les booléens (bool) true et false accompagnés des trois opérateurs logiques de base : && (conjonction), (disjonction) et not (négation). On a aussi les deux opérateurs de comparaison : = et <=. 2.2 Expressions du langage Expressions atomiques Les entiers, les booléens, les variables sont des expressions (atomiques) du langage. Les variables sont désignées par des identicateurs avec les mêmes règles qu'en Caml Expressions composées Expressions arithmétiques Si e 1 et e 2 sont deux expressions du langage, alors (e 1 e 2 ) est aussi une expression, où est l'un des quatre opérateurs arithmétiques. Si e est une expression, alors ( e) est aussi une expression (moins unaire).

2 2 Expressions booléennes Si e 1 et e 2 sont deux expressions du langage, alors (e 1 && e 2 ), (e 1 e 2 ) et (not e 1 ) sont aussi des expressions. Expressions conditionnelles Si e 1, e 2 et e 3 sont trois expressions du langages, alors les mots-clés if, then et else permettent de construire des expressions conditionnelles sous la forme : (if e 1 then e 2 else e 3 ). Expressions fonctionnelles Si e est une expression du langage, et x une variable, alors on peut construire une fonction à l'aide du mot-clé fun avec l'expression (fun x -> e). On nomme parfois abstraction une telle construction. La variable x est nommé paramètre de la fonction, et l'expression e son corps. Enn pour terminer, l'application d'une expression e 1 à une autre ex- Application d'une fonction pression e 2 se note (e 1 e 2 ). 2.3 Déclaration de variables Le langage ore la possibilité de déclarer des variables à l'aide du mot clé let par la forme let x = e, dans laquelle e est une expression du langage, et x un identicateur de variable. Remarque : Cette forme du langage n'est pas une expression, et n'a en conséquence aucune valeur. Elle a simplement pour but de dénir une liaison entre un nom (x) et une valeur (celle de e). 2.4 Grammaire synthétique de notre langage Pour résumer, la table 1 montre une grammaire décrivant les phrases que l'on peut écrire en minicaml. P hrase ::= Declaration Expression Declaration ::= let variable = Expression Expression ::= entier booleen variable (Expr. atomiques) Expr_unaire Expr_binaire (Expr composees) Expr_cond Expr_f onc Expr_appl Expr_unaire ::= ( Op_unaire Expression ) (Expr unaires) Expr_binaire ::= ( Expression Op_binaire Expression ) (Expr binaires) Expr_cond ::= (if Expression then Expression else Expression ) (Expr conditionnelles) Expr_f onc ::= (fun variable -> Expression ) (Expr fonctionnelles) Expr_appl ::= ( Expression Expression ) (Application) Op_unaire ::= - not (Op unaires) Op_binaire ::= + - * / && = <= (Op binaires) Table 1 Grammaire du langage minicaml Exemple 1 : Voici quelques exemples de phrases syntaxiquement correctes écrites en minicaml. ((fun x -> (if (x <= 0) then (- x) else x)) (x + 1))

3 3 let a = (fun x -> (if (x <= 0) then (- x) else x)) (a (x + 1)) let f = (fun x -> (if (x = 0) then 1 else (x * (f (x - 1))))) 2.5 Variables libres, liées Les expressions peuvent contenir des variables. Lorsque une variable x n'est sous la portée d'aucune construction de la forme fun x ->, on dit qu'elle est libre. Dans le cas contraire, on dit qu'elle est liée. Exemple 2 : Par exemple, dans l'expression (x + 1), la variable x est libre. En revanche dans l'expression (fun x -> (x + 1)), elle est liée. Une même variable peut à la fois être libre est liée dans une même expression, comme dans l'exemple ((fun x -> (x + 1)) (x * 2)), dans lequel l'occurence la plus à droite de x est libre, et la plus à droite est liée. 3 Valeurs des expressions du langage 3.1 Valeurs Les valeurs que peuvent prendre les expressions de notre langage sont de trois sortes : 1. les entiers ; 2. les booléens ; 3. les fonctions. 3.2 Environnement d'évaluation Intuitivement, évaluer une expression comme (3 + 1) ne pose aucun problème : cela donne 4. Aucune information supplémentaire que l'expression n'est nécessaire pour l'évaluer. En revanche, évaluer une expression contenant des variables libres comme (x + 1) nécessite la connaissance d'un environnement d'évaluation. Un environnement d'évaluation est une liste de liaisons, une liaison étant un couple de la forme < x, v > où x est une variable et v une valeur. Nous noterons généralement Env l'environnement dans lequel doit s'évaluer une expression. Dans notre langage, si aucune déclaration n'est faite, comme c'est le cas au tout début d'un programme, l'environnement est vide, autrement dit aucune variable n'y est liée à une valeur Règles dénissant les valeurs des expressions Notations Voici quelques notations utilisées dans la suite pour décrire les valeurs des expressions. La notation Env e v 1. Dans de vrais langages, comme OCaml, l'environnement initial contient de très nombreuses variables.

4 4 signie que l'expression e a pour valeur v dans l'environnement Env. Certaines règles peuvent être décrites sans aucune hypothèse de valeurs de sous-expressions. D'autres en nécessitent. Par souci d'homogénéité, nous les noterons toutes de la même façon sous la forme d'une fraction Hypothèses Conclusion (Nom) dans laquelle le numérateur donne les hypothèses nécessaires à l'évaluation d'une expression, et le dénominateur donne l'énoncé de la valeur de cette expression. À droite de la barre de fraction gure le nom de la règle Expressions atomiques Les expressions atomiques étant par dénition atomiques, c'estàdire insécables, ne contiennent aucune sous-expression. Les règles précisant leur valeur n'ont donc aucune hypothèse sur leurs sousexpressions. La valeur d'un entier littéral n est sa propre valeur, et ceci dans n'importe quel environ- Les entiers nement Env. Env n n (int) Les booléens Comme pour les entiers, la valeur d'un booléen littéral b est sa propre valeur, et ceci dans n'importe quel environnement Env. Env b b (bool) Les variables Pour évaluer la valeur d'une variable, il faut envisager deux cas. 1. La valeur d'une variable x est v dans un environnement Env s'il existe une liaison < x, v > dans Env, et que cette liaison est la plus récente de toutes les liaisons de la variable x dans Env. Env x v (var1) si v, < x, v > Env. Ce que ne précise pas cette règle, c'est quelle liaison < x, v > doit être utilisée s'il en existe plusieurs dans l'environnement. En général, c'est la liaison la plus récente qui l'emporte. Mais cette précision n'est pas susante pour le cas des variables libres dans le corps d'une fonction (liaison statique (comme en Caml), ou dynamique (comme dans certains dialectes Lisp)?). 2. Dans le cas où aucune liaison ne porte sur la variable x dans l'environnement Env, l'expression x n'a pas de valeur. Une façon de noter cela est d'utiliser le symbole pour désigner l'absence de valeur, et la règle s'écrit alors Expressions composées Env x (var2) si v, < x, v > Env. Remarque préliminaire Dans les règles d'évaluation présentées ci-dessous, nous ne tenons pas compte des éventuelles incompatibilités de types. Expressions unaires Env e v Env (op e) v (expr unaire) où v est la valeur de (op v), et op est l'un des deux opérateurs unaires de minicaml : et not. Expressions binaires Env e 1 v 1 Env e 2 v 2 (expr binaire) Env (e 1 op e 2 ) v où v est la valeur de (v 1 op v 2 ) et op l'un des opérateurs binaires de minicaml : +,,, /, && et.

5 5 Expressions conditionnelles valeur que prend la condition. Pour les expressions conditionnelles nous avons deux règles selon la Env e 1 true Env e 2 v 2 (expr cond1) Env (if e 1 then e 2 else e 3 ) v 2 et Env e 1 false Env e 3 v 3 (expr cond2) Env (if e 1 then e 2 else e 3 ) v 3 Expressions fonctionnelles Les fonctions sont des valeurs. Elles s'évaluent en elle-même. Env (fun x -> e) (fun x -> e) (fun) Il faut toutefois préciser cette règle. En eet quelle est la valeur de la fonction (fun x -> (x + y)) dans le corps de laquelle apparaît une variable libre y? Si on nomme f cette fonction, quelle est la valeur que doit prendre un appel comme (f 2)? Autrement dit, comment doit-on calculer (2 + y)? Plusieurs points de vue sont possibles : la valeur de la variable libre y doit être cherchée dans l'environnement courant au moment de la déclaration de la fonction f. C'est le point de vue adopté par Caml, comme le montre la session qui suit # let y = 1 ;; val y : int = 1 # let f = function x -> x + y ;; val f : int -> int = <fun> # f 2 ;; - : int = 3 # let y = 5 ;; val y : int = 5 # f 2 ;; - : int = 3 la valeur de la variable libre y doit être cherchée dans l'environnement courant au moment de l'appel à la fonction f. C'est le point de vue adopté par Scheme par exemple. Voici une session avec l'interpréteur scm de Scheme : > (define y 1) #<unspecified> > (define f (lambda (x) (+ x y))) #<unspecified> > (f 2) 3 > (define y 5) #<unspecified> > (f 2) 7 Dans le premier cas (Caml), il est nécessaire d'inclure en plus de la valeur la fonction, l'environnement dans lequel elle a été introduite. C'est ce qu'on appelle une fermeture. Et l'évaluation des variables libres de la fonction lorsqu'on l'applique se fait dans l'environnement courant lors de la déclaration de la fonction. Env (fun x -> e) <Env,(fun x -> e)> (fun) Dans le second cas (Scheme), l'évaluation des variables libres se fait dans l'environnement courant lors de l'application de la fonction. Le point de vue que nous adopterons pour minicaml est le second (celui adopté par Scheme).

6 6 Substitution L'application est l'expression qui a la règle la plus compliquée. Elle repose sur la notion de substitution. On note e 1 [x e 2 ] l'expression obtenue en remplaçant toutes les occurrences libres de la variable x dans e 1 par l'expression e 2. Si x est une variable, et e une expression quelconque, x[x e] = e. Si y est une variable autre que x, Susbtitution dans une application y[x e] = y. (e 1 e 2 )[x e] = (e 1 [x e] e 2 [x e]). Substitution dans le corps d'une fonction (1) (fun x -> e 1 )[x e] =(fun x -> e 1 ). Substitution dans le corps d'une fonction (2) (fun y -> e 1 )[x e] =(fun y -> e 1 [x e]). Exemple 3 : 1. (y + (x y))[x (fun x -> x)] = (y + ((fun x -> x) y)). 2. (x + ((fun x -> x) y))[x (2 y)] = ((2 y) + ((fun x -> x) y)). Attention aux conits de noms : Si on ne fait pas attention, des conits de noms peuvent apparaître. Par exemple, la substitution (fun y -> (x y))[x (2 y)] ne doit pas donner (fun y -> ((2 y) y)) car la variable y qui est libre dans l'expression (2 y) entre sous la portée de l'abstraction. Pour obtenir une substitution correcte, il faut préalablement renommer le paramètre y de l'expression fonctionnelle, et on a alors (fun z -> (x z))[x (2 y)] = (fun z -> ((2 y) z)). Application Env e 1 (fun x -> e) Env e 2 v 2 Env e[x v 2 ] v (appl) Env (e 1 e 2 ) v Exemple 4 : Voici la preuve en appliquant les règles dénies ci-dessus que l'expression ((fun x -> (x + 1)) (x * 2)) a pour valeur 7 dans l'environnement Env = [< x, 3 >]. Env (fun x -> (x + 1)) (fun x -> (x + 1)) (fonc) (int) Env 2 2 Env 2 2 Env (x * 2) 6 Env ((fun x -> (x + 1)) (x * 2)) 7 (var1) (mult) (int) Env 6 6 Env 1 1 Env (6 + 1) 7 (appl) (int) (add) 4 Évaluation des expressions Nous avons décrit par des règles quelles sont les valeurs des expressions qui ont une valeur et quelles sont les valeurs de ces expressions. Il s'agit maintenant de décrire comment on peut calculer la valeur d'une expression si elle en a une. C'est la sémantique opérationnelle. La sémantique opérationnelle que nous allons présenter est une sémantique par réduction de termes (encore appelée sémantique opérationnelle à petits pas).

7 7 4.1 Évaluation vue comme une réécriture Évaluer une expression c'est établir une suite de transformations conduisant de cette expression à sa valeur. Chaque transformation est appelée une réduction. La valeur d'une expression e est une expression e obtenue à partir de e par réductions qu'on ne peut plus réduire. Exemple 5 : L'évaluation de l'expression e = (3 + 4) (4 + 1) peut s'eectuer en trois réductions successives : (3 + 4) (4 + 1) (3 + 5) On comprend intuitivement que la dernière expression obtenue (35) ne peut plus être réduite. C'est la valeur de e. Dans cette évaluation, la première réduction c'est la sous-expression (4 + 1) qui a été arbitrairement réduite. On aurait pu envisager de commencer par réduire la sous-expression gauche de e : (3 + 4) (4 + 1) 7 (4 + 1) Deux propriétés sont requises pour de tels calculs : Finitude : tous les calculs se terminent. Cohérence : tous les calculs conduisent au même résultat. En l'absence de calculs innis, la cohérence est assurée dès lors que les règles de réécriture forment un système conuent. La conuence d'un système de réécriture est la propriété que ce système possède si, dès qu'une expression e peut se réduire en une étape en deux expressions e 1 et e 2 distinctes, alors il existe une troisième expression e 3 telle que les deux expressions e 2 et e 3 se réduisent (en éventuellement plusieurs étapes) en e 3. La gure 1 illustre cette propriété de conuence requise. e e 1 e 2 e 3 Figure 1 Propriété de conuence d'une réduction En présence de fonctions récursives la propriété de nitude des réductions n'est plus assurée, et la conuence n'implique pas la cohérence des calculs. En revanche elle implique une propriété aaiblie : Cohérence faible : tous les calculs qui se terminent conduisent au même résultat. 4.2 Redex Intuitivement, réduire une expression c'est s'approcher de sa valeur. Voici quelques exemples de telles réductions. 1. L'expression (3 + 4) se réduit en 7 en une seule étape de réduction qui consiste à eectuer l'addition. 2. L'expression (if true then e1 else e2) se réduit en e1 en une seule étape. L'expression obtenue après cette étape peut éventuellement encore être réduite. 3. L'expression ((fun x -> (x + 1)) 4) se réduit en une seule étape en (4 + 1). Les expressions composées de l'une des formes

8 8 x où x est une variable ; (n1 n2), où n1 et n2 sont des nombres entiers, et l'un des quatre opérateurs arithmétiques ; (b1 && b2), (b1 b2) et (not b1 ) où b1 et b2 sont des booléens ; (x1 = x2) et (x1 <= x2) où x1 et x2 sont soit deux entiers soit deux booléens ; (if b then e1 else e2)) où b est un booléen et e1 et e2 deux expressions ; et ((fun x -> e1) e2) où e1 et e2 sont deux expressions sont appelés radicaux ou plus souvent redex (pour reducible ex pression). Les expressions qui ne sont pas des radicaux sont des dites irréductibles. 4.3 β-réduction On peut dénir une relation binaire sur les expressions notée e 1 e 2, qui se lit e 1 se réduit (ou se réécrit) en e 2. La règle essentielle dénissant la réduction des radicaux est celle concernant l'application, et on la nomme β-réduction. ((fun x -> e 1 ) e 2 ) e 1 [x e 2 ]. Exemple 6 : On veut calculer la valeur de l'expression ((fun x -> (x + x)) (3 * 4)) par réduction en appliquant successivement les règles ci-dessus jusqu'à obtenir un terme irreductible. Voici une telle succesion de réductions (les redex réduits à chaque étape sont soulignés) : ((fun x -> (x + x)) (3 4)) ((fun x -> (x + x)) 12) ( ) Stratégies d'évaluations Reprenons l'évaluation de l'expression de l'exemple 6. Au lieu de réduire d'abord la sous-expression (3 * 4), on aurait pu utiliser en priorité la règle de réduction d'une application, et une première réduction aurait alors amené à ce qui peut se poursuivre en ((fun x -> (x + x)) (3 * 4)) ((3 * 4) + (3 *4)) ((3 * 4) + 12) ( ) 24. Comme on le voit, il n'y a pas unicité du calcul de la valeur d'une expression. On appelle stratégie d'évaluation toute procédure déterministe xant pour chaque type d'expression la réduction à appliquer. Nous allons envisager deux stratégies : 1. la stratégie par valeur ; 2. et la stratégie par nom ou stratégie paresseuse (lazy evaluation). 5.1 Stratégie par valeurs C'est la stratégie la plus courante en particulier celle suivie par Caml. Dans cette stratégie, les arguments des applications de fonctions sont évalués avant d'être transmis à la fonction. Plus généralement les sous-expressions d'une expression composée sont évaluées d'abord. Donc dans une expression de la forme (e1 e2), on calcule d'abord les valeurs respectives f et v de e1 et e2, puis on réduit par β-réduction l'expression (f v).

9 9 Inconvénients de cette stratégie 1. Possibilité de faire des calculs inutiles : par exemple ((fun x -> 5) (3 * 4)) ((fun x -> 5) 12) 5. L'expression (3 * 4) a été inutilement évaluée. 2. Plus grave, supposons déclarée la fonction fact let fact = (fun n -> (if (n = 0) then 1 else (n * (fact (n - 1))))) Le calcul de (fact 1) donne alors naissance à un calcul inni (fact 1) ((fun n -> (if (n = 0) then 1 else (n * (fact (n - 1))))) 1) (if (1 = 0) then 1 else (1 * (fact (1-1)))) (if (1 = 0) then 1 else (1 * (fact 0))) (if (1 = 0) then 1 else (1 * ((fun n -> (if (n = 0) then 1 else (n * (fact (n - 1))))) 0)))... Ce dernier exemple montre que la stratégie par valeurs rend impossible de concevoir une expression conditionnelle comme une fonction à trois arguments. Car il est nécessaire dans une expression conditionnelle de geler l'évaluation des deux derniers arguments en attendant de voir quelle est la valeur du premier argument. 5.2 Stratégie par nom ou paresseuse Dans la stratégie par nom, la réduction d'une application d'une fonction à un argument s'eectue en passant l'expression argument à la fonction sans l'avoir évalué auparavant. (fact 1) ((fun n -> (if (n = 0) then 1 else (n * (fact (n - 1))))) 1) (if (1 = 0) then 1 else (1 * (fact (1-1)))) (if false then 1 else (1 * (fact (1-1)))) (1 * (fact (1-1))) (1 * ((fun n -> (if (n = 0) then 1 else (n * (fact (n - 1))))) (1-1))) (1 * (if ((1-1) = 0) then 1 else ((1-1) * (fact ((1-1) - 1))))) (1 * (if (0 = 0) then 1 else ((1-1) * (fact ((1-1) - 1))))) (1 * (if true then 1 else ((1-1) * (fact ((1-1) - 1))))) (1 * 1) 1. Inconvénient de la stratégie par nom Possibilité de dupliquer des calculs. Par exemple dans l'évaluation de l'expression ((fun x -> (x + x)) (fact 5)), le calcul de (fact 5) est eectué deux fois.

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

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

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

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

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

Plus en détail

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

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

Plus en détail

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

Cours 1 : La compilation

Cours 1 : La compilation /38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà

Plus en détail

choisir H 1 quand H 0 est vraie - fausse alarme

choisir H 1 quand H 0 est vraie - fausse alarme étection et Estimation GEL-64943 Hiver 5 Tests Neyman-Pearson Règles de Bayes: coûts connus min π R ( ) + ( π ) R ( ) { } Règles Minimax: coûts connus min max R ( ), R ( ) Règles Neyman Pearson: coûts

Plus en détail

Vers l'ordinateur quantique

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

Plus en détail

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

CHAPITRE VIII : Les circuits avec résistances ohmiques

CHAPITRE VIII : Les circuits avec résistances ohmiques CHAPITRE VIII : Les circuits avec résistances ohmiques VIII. 1 Ce chapitre porte sur les courants et les différences de potentiel dans les circuits. VIII.1 : Les résistances en série et en parallèle On

Plus en détail

Cours Informatique Master STEP

Cours Informatique Master STEP Cours Informatique Master STEP Bases de la programmation: Compilateurs/logiciels Algorithmique et structure d'un programme Programmation en langage structuré (Fortran 90) Variables, expressions, instructions

Plus en détail

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

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des

Plus en détail

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

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

Plus en détail

Classes et Objets en Ocaml.

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

Plus en détail

Bases de programmation. Cours 5. Structurer les données

Bases de programmation. Cours 5. Structurer les données Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et

Plus en détail

Cours de Programmation 2

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

Plus en détail

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C Haute Ecole d Ingénierie et de Gestion Du Canton du Vaud MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C Programmation en mode simulation 1. DOCUMENTS DE RÉFÉRENCE...

Plus en détail

Série TD 3. Exercice 4.1. Exercice 4.2 Cet algorithme est destiné à prédire l'avenir, et il doit être infaillible! Exercice 4.3. Exercice 4.

Série TD 3. Exercice 4.1. Exercice 4.2 Cet algorithme est destiné à prédire l'avenir, et il doit être infaillible! Exercice 4.3. Exercice 4. Série TD 3 Exercice 4.1 Formulez un algorithme équivalent à l algorithme suivant : Si Tutu > Toto + 4 OU Tata = OK Alors Tutu Tutu + 1 Tutu Tutu 1 ; Exercice 4.2 Cet algorithme est destiné à prédire l'avenir,

Plus en détail

OPÉRATIONS SUR LES FRACTIONS

OPÉRATIONS SUR LES FRACTIONS OPÉRATIONS SUR LES FRACTIONS Sommaire 1. Composantes d'une fraction... 1. Fractions équivalentes... 1. Simplification d'une fraction... 4. Règle d'addition et soustraction de fractions... 5. Règle de multiplication

Plus en détail

LE PROBLEME DU PLUS COURT CHEMIN

LE PROBLEME DU PLUS COURT CHEMIN LE PROBLEME DU PLUS COURT CHEMIN Dans cette leçon nous définissons le modèle de plus court chemin, présentons des exemples d'application et proposons un algorithme de résolution dans le cas où les longueurs

Plus en détail

Réalisabilité et extraction de programmes

Réalisabilité et extraction de programmes Mercredi 9 mars 2005 Extraction de programme: qu'est-ce que c'est? Extraire à partir d'une preuve un entier x N tel que A(x). π x N A(x) (un témoin) (En fait, on n'extrait pas un entier, mais un programme

Plus en détail

Algorithmique et Programmation, IMA

Algorithmique et Programmation, IMA Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions

Plus en détail

D'UN THÉORÈME NOUVEAU

D'UN THÉORÈME NOUVEAU DÉMONSTRATION D'UN THÉORÈME NOUVEAU CONCERNANT LES NOMBRES PREMIERS 1. (Nouveaux Mémoires de l'académie royale des Sciences et Belles-Lettres de Berlin, année 1771.) 1. Je viens de trouver, dans un excellent

Plus en détail

Couples de variables aléatoires discrètes

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

Plus en détail

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail

2. RAPPEL DES TECHNIQUES DE CALCUL DANS R

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

Plus en détail

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes Langage SQL (1) Sébastien Limet Denys Duchier IUT Orléans 4 septembre 2007 Notions de base qu est-ce qu une base de données? SGBD différents type de bases de données quelques systèmes existants Définition

Plus en détail

Principes des langages de programmation INF 321. Eric Goubault

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

Plus en détail

Date : 18.11.2013 Tangram en carré page

Date : 18.11.2013 Tangram en carré page Date : 18.11.2013 Tangram en carré page Titre : Tangram en carré Numéro de la dernière page : 14 Degrés : 1 e 4 e du Collège Durée : 90 minutes Résumé : Le jeu de Tangram (appelé en chinois les sept planches

Plus en détail

1. Structure d'un programme FORTRAN 95

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

Plus en détail

Raisonnement par récurrence Suites numériques

Raisonnement par récurrence Suites numériques Chapitre 1 Raisonnement par récurrence Suites numériques Terminale S Ce que dit le programme : CONTENUS CAPACITÉS ATTENDUES COMMENTAIRES Raisonnement par récurrence. Limite finie ou infinie d une suite.

Plus en détail

BANQUES DE DONNÉES PÉDAGOGIQUES

BANQUES DE DONNÉES PÉDAGOGIQUES 223 Daniel BURET, Jean-Claude BLANCHARD. HISTORIQUE L'EPI a entrepris en 1989 de créer des bases d'énoncés mathématiques destinées aux enseignants pour la production de documents et accompagnées d'un outil

Plus en détail

Peut-on tout programmer?

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

Plus en détail

STAGE IREM 0- Premiers pas en Python

STAGE IREM 0- Premiers pas en Python Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer

Plus en détail

Programmation. fonctionnelle, impérative, logique et orientée objet

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

Plus en détail

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

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

Plus en détail

I. Introduction aux fonctions : les fonctions standards

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

Plus en détail

Chapitre 10. Les interfaces Comparable et Comparator 1

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],

Plus en détail

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie Chapitre I : Les bases du C++ Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie du logiciel, et ce depuis

Plus en détail

Examen Médian - 1 heure 30

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

Plus en détail

1. Création d'un état... 2. 2. Création d'un état Instantané Colonnes... 3. 3. Création d'un état Instantané Tableau... 4

1. Création d'un état... 2. 2. Création d'un état Instantané Colonnes... 3. 3. Création d'un état Instantané Tableau... 4 1. Création d'un état... 2 2. Création d'un état Instantané Colonnes... 3 3. Création d'un état Instantané Tableau... 4 4. Création d'un état avec plusieurs tables... 9 5. Modifier la structure d'un état...11

Plus en détail

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

Plus en détail

Application 1- VBA : Test de comportements d'investissements

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

Plus en détail

6. Les différents types de démonstrations

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

Plus en détail

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un

Plus en détail

Conventions d écriture et outils de mise au point

Conventions d écriture et outils de mise au point Logiciel de base Première année par alternance Responsable : Christophe Rippert Christophe.Rippert@Grenoble-INP.fr Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette

Plus en détail

ALGORITHMIQUE ET PROGRAMMATION En C

ALGORITHMIQUE ET PROGRAMMATION En C Objectifs ALGORITHMIQUE ET PROGRAMMATION Une façon de raisonner Automatiser la résolution de problèmes Maîtriser les concepts de l algorithmique Pas faire des spécialistes d un langage Pierre TELLIER 2

Plus en détail

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

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

Plus en détail

Programmation C++ (débutant)/instructions for, while et do...while

Programmation C++ (débutant)/instructions for, while et do...while Programmation C++ (débutant)/instructions for, while et do...while 1 Programmation C++ (débutant)/instructions for, while et do...while Le cours du chapitre 4 : le for, while et do...while La notion de

Plus en détail

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

Algorithmique et programmation : les bases (VBA) Corrigé

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

Plus en détail

FctsAffines.nb 1. Mathématiques, 1-ère année Edition 2007-2008. Fonctions affines

FctsAffines.nb 1. Mathématiques, 1-ère année Edition 2007-2008. Fonctions affines FctsAffines.nb 1 Mathématiques, 1-ère année Edition 2007-2008 Fonctions affines Supports de cours de mathématiques de degré secondaire II, lien hpertete vers la page mère http://www.deleze.name/marcel/sec2/inde.html

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

Chapitre 1 : Introduction aux bases de données

Chapitre 1 : Introduction aux bases de données Chapitre 1 : Introduction aux bases de données Les Bases de Données occupent aujourd'hui une place de plus en plus importante dans les systèmes informatiques. Les Systèmes de Gestion de Bases de Données

Plus en détail

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

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

Plus en détail

Initiation à l algorithmique

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

Plus en détail

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

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

Plus en détail

Chapitre 2 Devine mon nombre!

Chapitre 2 Devine mon nombre! Python 3 : objectif jeux Chapitre 2 Chapitre 2 Devine mon nombre! 2.1. Thèmes abordés dans ce chapitre commentaires modules externes, import variables boucle while condition : if... elif... else la fonction

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

Cours d initiation à la programmation en C++ Johann Cuenin

Cours d initiation à la programmation en C++ Johann Cuenin Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................

Plus en détail

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Mars 2002 Pour Irène et Marie Legal Notice Copyright c 2002 Patrick Cégielski Université

Plus en détail

Représentation d un entier en base b

Représentation d un entier en base b Représentation d un entier en base b 13 octobre 2012 1 Prérequis Les bases de la programmation en langage sont supposées avoir été travaillées L écriture en base b d un entier est ainsi défini à partir

Plus en détail

Impact des robots d indexation sur le cache de second niveau de SPIP IMBERTI Christophe - SG/SPSSI/CP2I/DO Ouest 06/06/2012 mis à jour le 05/07/2012

Impact des robots d indexation sur le cache de second niveau de SPIP IMBERTI Christophe - SG/SPSSI/CP2I/DO Ouest 06/06/2012 mis à jour le 05/07/2012 Impact des robots d indexation sur le cache de second niveau de SPIP IMBERTI Christophe - SG/SPSSI/CP2I/DO Ouest 06/06/2012 mis à jour le 05/07/2012 SOMMAIRE 1. LE CONSTAT... 2 2. L EXPLICATION... 2 3.

Plus en détail

http://cri.univ-lille1.fr Sauvegarde et restauration d'un système d'exploitation Clonezilla

http://cri.univ-lille1.fr Sauvegarde et restauration d'un système d'exploitation Clonezilla http://cri.univ-lille1.fr Sauvegarde et restauration d'un système d'exploitation Clonezilla Version 1.0 Septembre 2011 SOMMAIRE 1. Introduction 3 2. Définitions 3 3. Principes généraux 3 4. Clonezilla

Plus en détail

Pourquoi l apprentissage?

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

Plus en détail

Par combien de zéros se termine N!?

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

Plus en détail

Initiation à la programmation en Python

Initiation à la programmation en Python I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de

Plus en détail

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

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

Plus en détail

SOMMAIRE. Travailler avec les requêtes... 3

SOMMAIRE. Travailler avec les requêtes... 3 Access Les requêtes SOMMAIRE Travailler avec les requêtes... 3 A) Créer une requête sélection en mode QBE... 3 B) Exécuter une requête à partir du mode Modifier (QBE)... 3 C) Passer du mode Feuille de

Plus en détail

Initiation à la programmation OEF pour Wims (exercices).

Initiation à la programmation OEF pour Wims (exercices). page 1 sur 9 Initiation à la programmation OEF pour Wims (exercices). Les titres des différentes parties de ce document, en grisé, sont donnés en référence au document Wims «DocAide Exercices OEF» rédigé

Plus en détail

GOL-502 Industrie de services. Travaux Pratique / Devoir #7

GOL-502 Industrie de services. Travaux Pratique / Devoir #7 GOL-502 Industrie de services Travaux Pratique / Devoir #7 Version 2012 Modélisation à l'aide du langage UML 1) Diagramme de cas d'utilisation 2) Diagramme de classes 3) Diagramme de séquence 4) Diagramme

Plus en détail

modélisation solide et dessin technique

modélisation solide et dessin technique CHAPITRE 1 modélisation solide et dessin technique Les sciences graphiques regroupent un ensemble de techniques graphiques utilisées quotidiennement par les ingénieurs pour exprimer des idées, concevoir

Plus en détail

ACTIVITÉ DE PROGRAMMATION

ACTIVITÉ DE PROGRAMMATION ACTIVITÉ DE PROGRAMMATION The purpose of the Implementation Process is to realize a specified system element. ISO/IEC 12207 Sébastien Adam Une introduction 2 Introduction Ø Contenu Utilité de l ordinateur,

Plus en détail

Baccalauréat technologique

Baccalauréat technologique Baccalauréat technologique Épreuve relative aux enseignements technologiques transversaux, épreuve de projet en enseignement spécifique à la spécialité et épreuve d'enseignement technologique en langue

Plus en détail

L'instruction if permet d'exécuter des instructions différentes selon qu'une condition est vraie ou fausse. Sa forme de base est la suivante:

L'instruction if permet d'exécuter des instructions différentes selon qu'une condition est vraie ou fausse. Sa forme de base est la suivante: 420-183 Programmation 1 8. Les structures conditionnelles Dans l'écriture de tout programme informatique, une des premières nécessités que nous rencontrons est de pouvoir faire des choix. Dans une application

Plus en détail

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

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

Plus en détail

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique

Plus en détail

Dans la série LES TUTORIELS LIBRES présentés par le site FRAMASOFT. Compression - Décompression avec 7-Zip. Georges Silva

Dans la série LES TUTORIELS LIBRES présentés par le site FRAMASOFT. Compression - Décompression avec 7-Zip. Georges Silva Dans la série LES TUTORIELS LIBRES présentés par le site FRAMASOFT Compression - Décompression avec 7-Zip Georges Silva Logiciel : 7-Zip site : http://www.7-zip.org Niveau : Débutant Auteur : Georges Silva

Plus en détail

MODE D'EMPLOI DE LA CALCULATRICE POUR LES COURTS SÉJOURS DANS L'ESPACE SCHENGEN

MODE D'EMPLOI DE LA CALCULATRICE POUR LES COURTS SÉJOURS DANS L'ESPACE SCHENGEN MODE D'EMPLOI DE LA CALCULATRICE POUR LES COURTS SÉJOURS DANS L'ESPACE SCHENGEN 1. Introduction Le règlement (UE) n 610/2013 du 26 juin 2013 a modifié la convention d'application de l'accord de Schengen,

Plus en détail

Chapitre 1 I:\ Soyez courageux!

Chapitre 1 I:\ Soyez courageux! Chapitre 1 I:\ Soyez courageux! Pour ne rien vous cacher, le langage d'assembleur (souvent désigné sous le terme "Assembleur", bien que ce soit un abus de langage, puisque "Assembleur" désigne le logiciel

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

Traitement de texte : Quelques rappels de quelques notions de base

Traitement de texte : Quelques rappels de quelques notions de base Traitement de texte : Quelques rappels de quelques notions de base 1 Quelques rappels sur le fonctionnement du clavier Voici quelques rappels, ou quelques appels (selon un de mes profs, quelque chose qui

Plus en détail

Les suites numériques

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

Plus en détail

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE 2 ème partie : REQUÊTES Sommaire 1. Les REQUÊTES...2 1.1 Créer une requête simple...2 1.1.1 Requête de création de listage ouvrages...2 1.1.2 Procédure de

Plus en détail

Chapitre 10 Arithmétique réelle

Chapitre 10 Arithmétique réelle Chapitre 10 Arithmétique réelle Jean Privat Université du Québec à Montréal INF2170 Organisation des ordinateurs et assembleur Automne 2013 Jean Privat (UQAM) 10 Arithmétique réelle INF2170 Automne 2013

Plus en détail

Calculons avec Albert!

Calculons avec Albert! Calculons avec Albert! Par : Guy Lefebvre, 1257 rue Principale, St-Prime, G8J 1V2, 418-251-2170 Guillaume Rainville, 610 8 e rue, St-Prime, G8J 1P6, 418-251-8290 Résumé : Lefebvre G. et Rainville G., 2001,

Plus en détail

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Logiciel Libre Cours 3 Fondements: Génie Logiciel Logiciel Libre Cours 3 Fondements: Génie Logiciel Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/

Plus en détail

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Seance 2: Complétion du code de jeu. (durée max: 2h) Mot clé const et pointeurs: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Implémentez jeu_recupere_piece

Plus en détail

1. Introduction... 2. 2. Création d'une macro autonome... 2. 3. Exécuter la macro pas à pas... 5. 4. Modifier une macro... 5

1. Introduction... 2. 2. Création d'une macro autonome... 2. 3. Exécuter la macro pas à pas... 5. 4. Modifier une macro... 5 1. Introduction... 2 2. Création d'une macro autonome... 2 3. Exécuter la macro pas à pas... 5 4. Modifier une macro... 5 5. Création d'une macro associée à un formulaire... 6 6. Exécuter des actions en

Plus en détail

Chapitre 4 Pierre, papier, ciseaux

Chapitre 4 Pierre, papier, ciseaux Python 3 : objectif jeux Chapitre 4 Chapitre 4 Pierre, papier, ciseaux (version graphique) 4.1. Thèmes abordés dans ce chapitre Le module tkinter : Label, Button Fenêtre Événements Réceptionnaire d'événements

Plus en détail

Arbres binaires de recherche

Arbres binaires de recherche 1 arbre des comparaisons 2 recherche dichotomique l'arbre est recalculé à chaque recherche 2 5 3 4 7 9 1 6 1 2 3 4 5 6 7 9 10 conserver la structure d'arbre au lieu de la reconstruire arbre binaire de

Plus en détail

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS = 7 10 1 + 5 10 2 + 2 10 3

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS = 7 10 1 + 5 10 2 + 2 10 3 8 Systèmes de numération INTRODUCTION SYSTÈMES DE NUMÉRATION POSITIONNELS Dans un système positionnel, le nombre de symboles est fixe On représente par un symbole chaque chiffre inférieur à la base, incluant

Plus en détail

Représentation des Nombres

Représentation des Nombres Chapitre 5 Représentation des Nombres 5. Representation des entiers 5.. Principe des représentations en base b Base L entier écrit 344 correspond a 3 mille + 4 cent + dix + 4. Plus généralement a n a n...

Plus en détail

Compte-rendu de projet de Système de gestion de base de données

Compte-rendu de projet de Système de gestion de base de données Compte-rendu de projet de Système de gestion de base de données Création et utilisation d'un index de jointure LAMBERT VELLER Sylvain M1 STIC Université de Bourgogne 2010-2011 Reponsable : Mr Thierry Grison

Plus en détail

Glossaire des nombres

Glossaire des nombres Glossaire des nombres Numérisation et sens du nombre (4-6) Imprimeur de la Reine pour l'ontario, 008 Nombre : Objet mathématique qui représente une valeur numérique. Le chiffre est le symbole utilisé pour

Plus en détail

Java Licence Professionnelle CISII, 2009-10

Java Licence Professionnelle CISII, 2009-10 Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation

Plus en détail

LES DÉTERMINANTS DE MATRICES

LES DÉTERMINANTS DE MATRICES LES DÉTERMINANTS DE MATRICES Sommaire Utilité... 1 1 Rappel Définition et composantes d'une matrice... 1 2 Le déterminant d'une matrice... 2 3 Calcul du déterminant pour une matrice... 2 4 Exercice...

Plus en détail