Correction Code nécessaire à la compilation : let bs ="\\" let nl = "\n" ;; let appliquer = List.map ;; (* affichage d'un noeud *)
|
|
- Marie-Claude Bonin
- il y a 9 ans
- Total affichages :
Transcription
1 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 n) ^ ")" Étude expérimentale de la complexité de la fonction de Fibonacci (24 pt) L'objectif de ce problème est d'étudier le nombre d'appels récursifs eectués lors du calcul des nombres de Fibonacci. C'est un exemple classique qui montre qu'une fonction mal écrite peu engendrer un nombre gigantesque d'appels récursifs inutiles. Pour le voir, nous allons demander à la fonction de Fibonacci de construire l'arbre de ses appels récursifs. Dans la seconde partie du problème nous acherons cet arbre et dans la troisième partie nous écrirons une version plus ecace de la fonction de Fibonacci. Première partie du problème (8 pt) 1 Commençons par dénir la fonction de Fibonacci Q1. (1 pt) Donnez la réalisation de la fonction b qui prend en paramètre un entier n et retourne le n ieme nombre de Fibonacci. Prol b : N N Sémantique : b(n) est le n ieme terme de la suite de Fibonacci (u n ) n N dénie par u 0 = 1 u 1 = 1 u n = u n 1 + u n 2 Dénition récursive de la fonction par des équations (1) b( 0 ) = 1 (2) b( 1 ) = 1 (3) b( n ) = b(n 1) + b(n 2) pour n 2
2 Correction let rec (fib : int -> int) = function 0 -> 1 1 -> 1 n -> fib(n-1) + fib(n-2) Q2. (1 pt) Rédigez la preuve de terminaison de la fonction b. TERMINAISON preuve : (i) On dénit la fonction Mesure ( n ) def = n Justions que la mesure choisie retourne des valeurs dans N: n N (ii) Montrons que la mesure décroit strictement à chaque appel récursif. Pour (ii), on repère les équations qui comportent des appels récursifs et on prouve la décroissance de la mesure pour chaque appel récursif. Rédigez la preuve de terminaison ici (2) b(n) appelle b(n 1) Mesure (n) = n? < Mesure (n 1) ok < = n 1 (2) b(n) appelle aussi b(n 2) Mesure (n) = n? < Mesure (n 2) ok < = n 2 Q3. (.75 pt) Indiquez les appels récursifs engendrés par b(4) sous la forme d'un arbre. Utilisez l'espace libre pour prolonger les branches de l'arbre si nécessaire. b(5) appelle appelle b(4) b(3) appelle appelle appelle appelle b(3) b(2) b(2) b(1)
3 2 Dénition de l'arbre des appels récursifs Les appels récursifs engendrés par b(x) pour x 2 seront représentés sous la forme d'un arbre ar(ag, x, ad) où ar signigie Appel Récursif le n ud x indique qu'il s'agit du calcul de b(x) et qu'il a nécessité les appels récursifs rangés dans les arbres ag et ad ag est l'arbre des appels récursifs engendrés par b( x 1 ) ad est l'arbre des appels récursifs engendrés par b( x 2 ) Q4. (0.5 pt) Complétez les remarques précédentes et suivantes, ainsi que la dénition du type Abar (Arbre Binaire d'appels Récursifs). L'arbre des appels récursifs de la fonction de Fibonacci est un arbre binaire puisque la fonction fait deux appels récursifs. Lorsque le calcul de b(x) n'engendre pas d'appel récursif son arbre d'appel est représenté par rd(x) où rd signie Résultat Direct et x indique qu'il s'agit du calcul de b(x). Q5. (1 pt) Donnez la représentation à l'aide des constructeurs rd et ar de l'arbre d'appels de b(0) : rd(0) l'arbre d'appels de b(2) : ar( 2, rd(0) ) puis complétez la dénition de Abar. rd(1), DÉFINITION MATHÉMATIQUE D'UN ENSEMBLE déf Abar = { av(x) x {0, 1} } { ar(ag, x, ad) x N, ag, ad Abar } DÉFINITION INFORMATIQUE D'UN TYPE type nat = int (* >=0 *) type abar = Av RD of nat AR of abar * nat * abar Q6. (1.5 pt) Complétez la dénition de la fonction calcul-de-b qui calcule le terme de la suite de Fibonacci et construit simultanément l'arbre des appels récursifs de la fonction b. Prol calcul-de-b : N N Abar Sémantique : calcul-de-b(n) est un couple constitué du n ieme nombre de Fibonacci et de l'arbre des appels récursifs engendrés par le calcul de u n. Exemples 1. calcul-de-b(0) = ( (1, rd(0) ) 2. calcul-de-b(1) = ( (1, rd(1) )
4 3. calcul-de-b(2) = ( 2, ar(rd(1), 2, rd(0)) ) let rec (calcul_de_fib : int -> int * abar) = function 0 -> (1, RD(0) ) 1 -> (1, RD(1)) n -> let (r1,a1) = calcul_de_fib(n-1) and (r2,a2) = calcul_de_fib(n-2) in (r1+r2, AR(a1, n, a2) ) 3 Étude de l'arbre des appels récursifs On dispose maintenant d'une fonction calcul-de-b qui construit l'arbre d'appels récursifs de b. On aimerait par exemple compter le nombre de fois où le calcul de b(x) a demandé de calculer b(k). Pour cela on a besoin de compter le nombre d'apparitions d'un n ud dans un Abar. Q7. (1.5 pt) Complétez la fonction nb-occ qui compte le nombre d'apparitions du n ud k dans un Abar. Prol nb-occ : Z Abar N Sémantique : nb-occ(k, a) est le nombre d'occurences du n ud k dans l'arbre d'appel a Dénition récursive de la fonction par des équations (1) nb-occ( k, rd(n) ) = 0 si n k (1 ) nb-occ( k, rd(n) ) = 1 si n = k (2) nb-occ( k, ar(ag, n, ad) ) = nb-occ(k, ag) + nb-occ(k, ad) si n k (2 ) nb-occ( k, ar(ag, n, ad) ) = 1 + nb-occ(k, ag) + nb-occ(k, ad) si n = k bonus de 0.25 pour la factorisation du if ou pour une solution qui rend 1 sans appel récursif dans le cas AR(ag,n,ad) où n=k let rec (nb_occ : int * abar -> nat) = function (k,a) -> match a with Av -> 0 RD(n) -> if n=k then 1 else 0 AR(ag,n,ad) ->
5 (if n=k then 1 else 0) + nb_occ (k,ag) + nb_occ (k,ad)
6 Q8. (0.75 pt) a) À l'aide des fonctions calcul-de-b et nb-occ, donnez l'expression Ocaml qui permet de connaître le nombre de fois qu'est demandé le calcul de b(1) dans le calcul de b(121). let (_,a) = calcul_de_fib(121) in nb_occ(1,a) Le tableau suivant donne en fonction de n le nombre d'appels à b(1) dans le calcul de b(n). b) Complétez les premières cases du tableau nombre d'appels à b(1) dans le calcul de b(n) n n nombre d'appels à b(1) dans le calcul de b(n)
7 Seconde partie du problème (12 pt) 4 Achage de l'arbre des appels récursifs L'objectif de cette partie est de réaliser une fonction d'achage d'un arbre d'appel sous la forme suivante, avec les valeurs des appels à la place des (-). Notre objectif est d'acher un arbre fib(_) / \ fib(_) fib(_) / \ / \ fib(_) fib(_) fib(_) fib(_) / \ / \ / \ fib(_) fib(_) fib(_) fib(_) fib(_) fib(_) / \ fib(_) fib(_) ar(ag, n, ad) sous la forme fib(n) / \ ag ad et d'appliquer le même principe au sous-arbre gauche ag et au sous-arbre droit ad. Pour obtenir ce résultat nous devrons 1. transformer le sous-arbre ag en colonne de ligne colg 2. placer le symbole / centré au dessus de cette colonne colg 3. transformer le sous-arbre ad en colonne de ligne cold 4. placer le symbole \ centré au dessus de cette colonne cold 5. coller les colonnes obtenues aux étapes 2 et 4 (opération notée sur le schéma) 6. placer le titre fib(n) centré au dessous des deux colonnes collées an d'obtenir la colonne correspondant à l'arbre ar(ag, n, ad). Le principe de transformation d'un arbre en colonne est résumé par le schéma ci-après : (les êches indiquent que le titre doit être centré). "fib(n)" "/" sous arbre gauche } {{ } colg "\" sous arbre droit } {{ } cold Pour mettre en uvre ce principe nous allons dénir un type Colonne et des opérations de manipulations des colonnes. On décide représenter une colonne de ligne
8 "abcdefgh" "ijklmnop" "qrstuvwx" "yz" par une séquence de chaîne de caractère [ "abcdefgh" ; "ijklmnop" ; "qrstuvwx" ; "yz" ] Q9. (0.5 pt) Complétez la dénition du type Colonne. DÉFINITION MATHÉMATIQUE D'UN ENSEMBLE déf Colonne = Séq (Chaîne) DÉFINITION INFORMATIQUE D'UN TYPE type colonne = string list et indiquez l'opérateur qui permet d'ajouter une ligne au dessus d'une colonne :: Justiez votre réponse : ajouter une ligne en haut d'une colonne c'est ajouter une chaîne de caractère à gauche d'une séquence Q10. (1 pt) Utilisez l'opérateur Ocaml ( ˆ ) : Chaîne Chaîne Chaîne pour réaliser la fonction espace spéciée ainsi : Prol espace : Z Chaîne Sémantique : espace(n) est la chaînes de caractère consitutée de n espaces. Propriété n 0, espace(n) = "" Correction Dénition récursive de la fonction par des équations (1) espace( n ) = "" si n 0 (2) espace( n ) = " " ˆ espace(n 1) si n > 0 let rec (espace : int -> string) = function n -> if (n<=0) then "" else " " ^ (espace (n-1)) Q11. (1 pt) Utilisez la fonction length prédénie en Ocaml pour réaliser la fonction largeur. Prol length : Chaîne Séq (Élt) N Sémantique : length(ch) est la longueur de la chaîne ch, c'est-à-dire le nombre de caractères qu'elle contient. Notez que la fonction length s'applique aussi bien aux chaînes de caractère qu'aux séquences.
9 Prol largeur : Colonne N Sémantique : largeur(col) est la largeur de la colonne. Précisons que les lignes de la colonne n'ont pas nécessairement la même longueur. Algorithme : La largeur d'une colonne est la longueur de sa ligne la plus longue. Dénition récursive de la fonction par des équations (1) largeur( [ ] ) = 0 (2) largeur( ch :: s ) = max(length(ch), largeur(s)) ou bien length(ch) si length(ch) > largeur(s) largeur(s) sinon Correction let rec (largeur : colonne -> int) = function [] -> 0 ch::s -> max (String.length ch) (largeur s) Q12. (1 pt) Complétez la réalisation de la fonction titrer qui permet de placer un titre centré au sommet d'une colonne. Prol titrer : Chaîne Colonne Colonne Sémantique : titrer(titre, col) place le titre centré au haut de la colonne. Exemple titrer "titre", "abcdefghijklmnopqrs" "abcdefghijklmnopqrs" "abcdefghijklmnopqrs" "abcdef" = " titre" "abcdefghijklmnopqrs" "abcdefghijklmnopqrs" "abcdefghijklmnopqrs" "abcdef" Algorithme : Notons lc la largeur de la colonne et lt la taille du titre alors le nombre ne d'espaces qu'on doit ajouter à gauche du titre est : ne = lc lt 2 let (titrer : string * colonne -> colonne) = function (titre,col) -> let lc = largeur col in let lt = String.length titre in let ne = (lc - lt)/2 in ((espace ne) ^ titre) :: col
10 Q13. (0.5 pt) Donnez la réalisation en Ocaml de la fonction compléter-chaine. Prol compléter-chaine : N Chaîne Chaîne Sémantique : compléter-chaine(l, ch) est une chaîne de caractère de taille l constituée de ch suivie d'espaces Exemples 1. compléter-chaine(5, "ab") = "ab " 2. compléter-chaine(5, "abcde") = "abcde" 3. compléter-chaine(5, "") = " " let (completer_chaine : nat * string -> string) = function (larg,ch) -> let lch = (String.length ch) in ch ^ (espace (larg-lch)) Q14. (1 pt) Complétez la spécication de la fonction appliquer. Prol appliquer : (T 1 T 2 ) Séq (T 1 ) Séq ( T 2 ) Sémantique : appliquer f [e 1 ; e 2 ;... ; e n ] = [f(e 1 ) ; f(e 2 ) ;... ; f(e n )] Exemples On rappelle que (f unction x e) est une fonction qui à x associe la valeur de l'expression e. 1. appliquer (function x 2 x + 1) [0; 1; 2; 3] = [1 ; 3 ; 5 ; 7] 2. appliquer (f unction x (x, x x) ) [0; 3; 2; 5; 1] = [ (0, 0) ; (3, 9) ; (2, 4) ; (5, 25) ; (1, 1) ] 3. appliquer (f unction (x, y) y) [ (0, 0); (3, 9), (2, 4); (5, 25); (1, 1) ] = [0; 9; 4; 25; 1] Ajuster une colonne en ajoutant des espaces en n de lignes On appelle colonne ajustée une colonne dont toutes les lignes ont la même taille. On dénit ColonneAjustée comme l'ensemble des couples constitués d'une colonne et de sa largeur.
11 Q15. (0.25 pt) Complétez la déntion de type. DÉFINITION MATHÉMATIQUE D'UN ENSEMBLE déf ColonneAjustée = Colonne N DÉFINITION INFORMATIQUE D'UN TYPE type colonne_ajustée = colonne * nat Q16. (1.25 pt) Utilisez les fonctions appliquer et compléter-chaine pour réaliser en Ocaml la fonction ajuster-colonne qui complète les lignes d'une colonne par des espaces en n de ligne an que toutes les lignes aient la même taille. Prol ajuster-colonne : Colonne ColonneAjustée Sémantique : ajuster-colonne(col) est la colonne ajustée correspondant à col Exemple ajuster-colonne "abcdef" "abc" "abcdefgh" = "abcdef " "abc " "abcdefgh", 8 "a" "a " Algorithme : On rappelle qu'une colonne est une séquence de chaîne de caractère et qu'on peut donc utiliser la fonction appliquer avec les colonnes. let (ajuster_colonne : colonne -> colonne_ajustée) = function col -> let l = largeur col in let colaj = appliquer (fun ch -> completer_chaine (l,ch)) col in (colaj, l) Q17. (1.5 pt) Complétez la réalisation de la fonction coller qui prend en paramètre deux colonnes déjà ajustées et qui les colle ligne à ligne. Vous pouvez évidemment utiliser des fonctions écrites précédemment. Prol coller : ColonneAjustée ColonneAjustée Colonne Sémantique : coller(caj 1, caj 2 ) est la colonne ajustée obtenue en collant ligne par ligne la colonne ajustée caj 1 à la colonne ajustée caj 2. Précisons que les colonnes sont ajustées, par contre elles n'ont pas nécessairement le même nombre de ligne.
12 Exemples Vous remarquerez dans les exemples que les deux colonnes doivent être séparées par un espace. 1. coller 2. coller (( "abcdef" "abcdef" "ab " ( ( "abcdef" "ab ", 6 ), ( ) (, 6, "gh " "ghij" "ghi " "ligne 1" "ligne 2" "ligne 3", 4 )), 7 )) = "abcdef gh " "abcdef ghij" "ab ghi " = "abcdef ligne 1" "ab ligne 2" " ligne 3" Dénition récursive de la fonction par des équations (1) coller( ( [ ], l 1 ), ( [ ], l 2 ) ) = [ ] (2) coller( (ch 1 :: s 1, l 1 ), (ch 2 :: s 2, l 2 ) ) = (ch 1 ˆ " " ˆ ch 2 ) :: coller((s 1, l 1 ), (s 2, l 2 )) (3) coller( ([ ], l 1 ), (ch 2 :: s 2, l 2 ) ) = (espace(l 1 ) ˆ " " ˆ ch 2 ) :: coller(([ ], l 1 ), (s 2, l 2 )) (4) coller( (ch 1 :: s 1, l 1 ), (ch 2 :: s 2, l 2 ) ) = (ch 1 ˆ " " ˆ espace(l 2 )) :: coller((s 1, l 1 ), ([ ], l 2 )) Correction let rec (coller : colonne_ajustée * colonne_ajustée -> colonne) = function ((col1,l1),(col2,l2)) -> match (col1,col2) with ([],[]) -> [] (ch1::s1, ch2::s2) -> (ch1 ^ " " ^ ch2) :: (coller ((s1,l1),(s2,l2))) ([],ch2::s2) -> ((espace l1) ^ " " ^ ch2) :: (coller (([],l1),(s2,l2))) (ch1::s1,[]) -> (ch1 ^ " " ^ (espace l2)) :: (coller ((s1,l1),([],l2))) Q18. (0.5 pt) Complétez la réalisation Ocaml de la fonction coller-colonne. Prol coller-colonne : Colonne Colonne Colonne Sémantique : coller-colonne(col 1, col 2 ) est la colonne obtenue en collant les colonnes col 1 et col 2 après ajustement. Exemple coller-colonne ( "abcdef" "ab ", "ligne 1" "ligne 2" "ligne 3" ) = "abcdef ligne 1" "ab ligne 2" " ligne 3"
13 let (coller_colonne : colonne * colonne -> colonne) = function (col1,col2) -> coller (ajuster_colonne col1, ajuster_colonne col2) On dispose maintenant de toutes les fonctions nécessaires pour réaliser la fonction arbre-vers-colonne qui applique le principe présenté en Section?? pour transformer un arbre d'appel en colonne. Q19. (1.5 pt) Utilisez les fonctions des questions précédentes pour réaliser la fonction arbre-vers-colonne. Prol arbre-vers-colonne : Abar Colonne Sémantique : arbre-vers-colonne(a) est la colonne correspondant à l'arbre a construite selon le principe de la Section??. Dénition récursive de la fonction par des équations (1) arbre-vers-colonne( rd(n) ) = [titre] où titre = "fib(" ˆ string-of-int(n) ˆ ")" (2) arbre-vers-colonne( ar(ag, n, ad) ) = titrer( titre, coller-colonne(colg, cold) ) où colg = titrer( "/", arbre-vers-colonne(ag) ) où cold = titrer( "\\", arbre-vers-colonne(ag) ) où titre = "fib(" ˆ string-of-int(n) ˆ ")" Correction let rec (arbre_vers_colonne : abar -> colonne) = function RD(n) -> [ noeud_vers_ch n ] AR(ag,n,ad) -> let colg = arbre_vers_colonne ag in let cold = arbre_vers_colonne ad in let colgt = titrer ("/",colg) in let coldt = titrer (bs,cold) in let colgd = coller_colonne (colgt, coldt) in titrer (noeud_vers_ch n, colgd) Q20. (0.75 pt) Complétez la réalisation Ocaml de la fonction colonne-vers-chaîne.
14 Prol colonne-vers-chaîne : Colonne Chaîne Sémantique : colonne-vers-chaîne(col) est la chaîne de caractère construite par concaténation des lignes de la colonne en introduisant un saut de ligne entre les lignes. Algorithme : On obtient un saut de lignes en ajoutant le caractère \n en n de ligne. let rec (colonne_vers_chaine : colonne -> string) = function [] -> "" ch::s -> ch ^ nl ^ (colonne_vers_chaine s) Q21. (1 pt) Dénissez une fonction qui transforme un arbre en chaîne de caractère et donnez ensuite l'expression Ocaml qui permet d'acher à l'écran la chaîne de caractère qui correspond à l'arbre des appels de b(121). Prol arbre-vers-chaîne : Abar Chaîne Sémantique : arbre-vers-chaîne(a) est la chaînes de caractère correspondant à la mise en colonne de l'arbre a let rec (arbre_vers_chaine : abar -> string) = function a -> colonne_vers_chaine (arbre_vers_colonne a) (* let (r,a) = calcul_de_fib(121) in print_string (arbre_vers_chaine(a)) *)
15 Troisième partie du problème (4 pt) 5 Compter les appels engendrés par b(n) sans construire l'arbre d'appels L'arbre des appels est très utile pour comprendre comment se déroule l'évaluation de la fonction b ; en revanche il n'est pas nécessaire si on souhaite juste compter le nombre total d'appels récursifs engendrés par b(n). Pour eectuer ce décompte nous allons dénir la fonction nb-total-appel-de-b. Q22. (1.5 pt) Complétez la dénition de la fonction nb-total-appel-de-b. Prol nb-total-appel-de-b : N N N Sémantique : nb-total-appel-de-b(n) = (u n, nb) où u n est le n ieme terme de la suite de Fibonacci et nb le nombre total d'appels engendrés par l'appel à b(n) Dénition récursive de la fonction par des équations (1) nb-total-appel-de-b( 0 ) = (1, 1) (2) nb-total-appel-de-b( 0 ) = (1, 1) (3) nb-total-appel-de-b( 0 ) = (u n 1 + u n 2, nb 1 + nb 2 ) si où (u n 1, nb 1 ) = nb-total-appel-de-b(n 1) où (u n 2, nb 2 ) = nb-total-appel-de-b(n 2) n 2 Correction let rec (nb_appel_de_fib : nat -> nat * nat) = function 0 -> (1,1) 1 -> (1,1) n -> let (u_n_1, nb1) = nb_appel_de_fib(n-1) in let (u_n_2, nb2) = nb_appel_de_fib(n-2) in (u_n_2 + u_n_1, nb1 + nb_2) Coïncidence : D'après les équations récursives que pouvez-vous dire du nombre d'appels qu'engendre l'appel b(n)? Justiez votre réponse : C'est exactement le nombre de Fibonnacci puisque la fonction nb-total-appel-de-b retourne un couple dont les deux membres sont égaux d'après les équations). 6 Une version plus ecace de Fibonacci Q23. (2.5 pt) Complétez la dénition de la fonction b2 qui calcule les termes de la suite de Fibonacci sans faire de double appel récursif et montrez la terminaison de la fonction b2.
16 Prol b2 : N N N Sémantique : b2(n) = (u n, u n+1 ) où u n et u n+1 sont les n ieme et n + 1 ieme termes de la suite de Fibonacci. Dénition récursive de la fonction par des équations (1) b2(0) = (1, 1) (2) b2(n) = (u n, u n + u n 1 ) où (u n 1, u n ) = b2(n 1) let rec (fib2 : int -> int * int) = function 0 -> (1,1) n -> let (u_n_1,u_n) = fib2(n-1) in (u_n, u_n + u_n_1) TERMINAISON On dénit la fonction Mesure ( n ) def = n preuve : (i) Justions que la mesure choisie retourne des valeurs dans N: n N (ii) Montrons que la mesure décroit strictement à chaque appel récursif. Pour (ii), on repère les équations qui comportent des appels récursifs et on prouve la décroissance de la mesure pour chaque appel récursif. (2) f ib2(n) appelle f ib2(n 1) Mesure (n) = n? < Mesure (n 1) ok < = n 1
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étailRecherche 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étailchapitre 4 Nombres de Catalan
chapitre 4 Nombres de Catalan I Dénitions Dénition 1 La suite de Catalan (C n ) n est la suite dénie par C 0 = 1 et, pour tout n N, C n+1 = C k C n k. Exemple 2 On trouve rapidement C 0 = 1, C 1 = 1, C
Plus en détail# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>
94 Programmation en OCaml 5.4.8. Concaténation de deux listes Définissons maintenant la fonction concat qui met bout à bout deux listes. Ainsi, si l1 et l2 sont deux listes quelconques, concat l1 l2 constitue
Plus en détailVers 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étaillength : A N add : Z Z Z (n 1, n 2 ) n 1 + n 2
1 Univ. Lille1 - Licence info 3ème année 2013-2014 Expression Logique et Fonctionnelle... Évidemment Cours n o 1 : Introduction à la programmation fonctionnelle 1 Introduction La programmation fonctionnelle
Plus en détailCours 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étailFeuille TD n 1 Exercices d algorithmique éléments de correction
Master Sciences, Technologies, Santé Mention Mathématiques, spécialité Enseignement des mathématiques Algorithmique et graphes, thèmes du second degré Feuille TD n 1 Exercices d algorithmique éléments
Plus en détailProjet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte
Projet d informatique M1BI : Compression et décompression de texte Le but de ce projet est de coder un programme réalisant de la compression et décompression de texte. On se proposera de coder deux algorithmes
Plus en détailPlan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml
OCL Object Constraint Language Le langage de contraintes d'uml Plan 1. Introduction 2. Les principaux concepts d'ocl Object Constraint Language 1 Object Constraint Language 2 Exemple: une application bancaire
Plus en détailLes structures de données. Rajae El Ouazzani
Les structures de données Rajae El Ouazzani Les arbres 2 1- Définition de l arborescence Une arborescence est une collection de nœuds reliés entre eux par des arcs. La collection peut être vide, cad l
Plus en détailDate : 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étailArbres 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étailAlgorithmes d'apprentissage
Algorithmes d'apprentissage 1 Agents qui apprennent à partir d'exemples La problématique : prise de décision automatisée à partir d'un ensemble d'exemples Diagnostic médical Réponse à une demande de prêt
Plus en détailTravaux 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étailReprésentation d un entier en base b
Représentation d un entier en base b 13 octobre 2012 1 Prérequis Les bases de la programmation en langage sont supposées avoir été travaillées L écriture en base b d un entier est ainsi défini à partir
Plus en détailPour 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étailRappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme
Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes treinen@pps.univ-paris-diderot.fr 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation
Plus en détailPrésentation du langage et premières fonctions
1 Présentation de l interface logicielle Si les langages de haut niveau sont nombreux, nous allons travaillé cette année avec le langage Python, un langage de programmation très en vue sur internet en
Plus en détailTP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface
Plus en détailBACCALAUREAT GENERAL MATHÉMATIQUES
BACCALAUREAT GENERAL FEVRIER 2014 MATHÉMATIQUES SERIE : ES Durée de l épreuve : 3 heures Coefficient : 5 (ES), 4 (L) 7(spe ES) Les calculatrices électroniques de poche sont autorisées, conformement à la
Plus en détailInitiation à 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étailINF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies
INF 232: Langages et Automates Travaux Dirigés Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies Année Académique 2013-2014 Année Académique 2013-2014 UNIVERSITÉ JOSEPH
Plus en détailRaisonnement 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étailINF601 : Algorithme et Structure de données
Cours 2 : TDA Arbre Binaire B. Jacob IC2/LIUM 27 février 2010 Plan 1 Introuction 2 Primitives u TDA Arbin 3 Réalisations u TDA Arbin par cellules chaînées par cellules contiguës par curseurs (faux pointeurs)
Plus en détailt 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre :
Terminale STSS 2 012 2 013 Pourcentages Synthèse 1) Définition : Calculer t % d'un nombre, c'est multiplier ce nombre par t 100. 2) Exemples de calcul : a) Calcul d un pourcentage : Un article coûtant
Plus en détail"! "#$ $ $ ""! %#& """! '& ( ")! )*+
! "! "#$ $ $ ""! %#& """! '& ( ")! )*+ "! "#$ $ $ ""! %#& """! '& ( ")! )*+, ## $ *$-./ 0 - ## 1( $. - (/$ #,-".2 + -".234-5..'"6..6 $37 89-%:56.#&(#. +6$../.4. ;-37 /. .?.@A&.!)B
Plus en détailAlgorithmes de recherche
Algorithmes de recherche 1 Résolution de problèmes par recherche On représente un problème par un espace d'états (arbre/graphe). Chaque état est une conguration possible du problème. Résoudre le problème
Plus en détailApplication 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étailI. 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étailPlan du cours : Zippers. Des fonctions sur les listes avec position. Des fonctions sur les listes avec position
Plan du cours : Le problème : naviguer efficacement une structure de données Ce qui ne marche pas Ce qui marche : les de Huet Exemples Comment dériver des pour tout type de données Pour en savoir plus
Plus en détailAlgorithmique et Programmation, IMA
Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions
Plus en détail1. 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étailPROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES
Leçon 11 PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES Dans cette leçon, nous retrouvons le problème d ordonnancement déjà vu mais en ajoutant la prise en compte de contraintes portant sur les ressources.
Plus en détailRapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/2011. 1.1 Présentation. 1.2 Ressources
Master Maths Finances 2010/2011 Data Mining janvier 2011 RapidMiner 1 Introduction 1.1 Présentation RapidMiner est un logiciel open source et gratuit dédié au data mining. Il contient de nombreux outils
Plus en détailConception de circuits numériques et architecture des ordinateurs
Conception de circuits numériques et architecture des ordinateurs Frédéric Pétrot Année universitaire 2014-2015 Structure du cours C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 Codage des nombres en base 2, logique
Plus en détailV- Manipulations de nombres en binaire
1 V- Manipulations de nombres en binaire L ordinateur est constitué de milliards de transistors qui travaillent comme des interrupteurs électriques, soit ouverts soit fermés. Soit la ligne est activée,
Plus en détailInitiation à la programmation en Python
I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de
Plus en détailChapitre 11. Séries de Fourier. Nous supposons connues les formules donnant les coefficients de Fourier d une fonction 2 - périodique :
Chapitre Chapitre. Séries de Fourier Nous supposons connues les formules donnant les coefficients de Fourier d une fonction - périodique : c c a0 f x dx c an f xcosnxdx c c bn f xsinn x dx c L objet de
Plus en détailChap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1
Chap 4: Analyse syntaxique 1 III- L'analyse syntaxique: 1- Le rôle d'un analyseur syntaxique 2- Grammaires non contextuelles 3- Ecriture d'une grammaire 4- Les méthodes d'analyse 5- L'analyse LL(1) 6-
Plus en détailLes arbres binaires de recherche
Institut Galilée Année 2010-2011 Algorithmique et arbres L2 TD 6 Les arbres binaires de recherche Type en C des arbres binaires (également utilisé pour les ABR) : typedef struct noeud_s { struct noeud_s
Plus en détailCours 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étailPeut-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«Aucune investigation humaine ne peut être qualifiée de science véritable si elle ne peut être démontrée mathématiquement.
«Aucune investigation humaine ne peut être qualifiée de science véritable si elle ne peut être démontrée mathématiquement.» Léonard de Vinci MATHEMATIQUES Les mathématiques revêtaient un caractère particulier
Plus en détailExo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.
Eo7 Calculs de déterminants Fiche corrigée par Arnaud Bodin Eercice Calculer les déterminants des matrices suivantes : Correction Vidéo ( ) 0 6 7 3 4 5 8 4 5 6 0 3 4 5 5 6 7 0 3 5 4 3 0 3 0 0 3 0 0 0 3
Plus en détailCompléments de documentation Scilab : affichage de texte et formatage de nombres
Université des Sciences et Technologies de Lille U.F.R. de Mathématiques Pures et Appliquées Agrégation externe Année 2002-2003 Compléments de documentation Scilab : affichage de texte et formatage de
Plus en détailPrénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004
Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)
Plus en détailCouples 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étailProgrammation C++ (débutant)/instructions for, while et do...while
Programmation C++ (débutant)/instructions for, while et do...while 1 Programmation C++ (débutant)/instructions for, while et do...while Le cours du chapitre 4 : le for, while et do...while La notion de
Plus en détailComplexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation
Complexité Objectifs des calculs de complexité : - pouvoir prévoir le temps d'exécution d'un algorithme - pouvoir comparer deux algorithmes réalisant le même traitement Exemples : - si on lance le calcul
Plus en détailÉléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if
Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike
Plus en détailCH.6 Propriétés des langages non contextuels
CH.6 Propriétés des langages non contetuels 6.1 Le lemme de pompage 6.2 Les propriétés de fermeture 6.3 Les problèmes de décidabilité 6.4 Les langages non contetuels déterministes utomates ch6 1 6.1 Le
Plus en détail3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes
PLAN CYCLE DE VIE D'UN LOGICIEL EXPRESSION DES BESOINS SPÉCIFICATIONS DU LOGICIEL CONCEPTION DU LOGICIEL LA PROGRAMMATION TESTS ET MISE AU POINT DOCUMENTATION CONCLUSION C.Crochepeyre Génie Logiciel Diapason
Plus en détailChapitre 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étailAnalyse tarifaire en ligne (TAO) de l'omc
Analyse tarifaire en ligne (TAO) de l'omc L'analyse tarifaire en ligne (TAO) permet d'effectuer des recherches et d'analyser les données tarifaires conservées dans deux bases de données de l'omc, à savoir
Plus en détailCorrigé des TD 1 à 5
Corrigé des TD 1 à 5 1 Premier Contact 1.1 Somme des n premiers entiers 1 (* Somme des n premiers entiers *) 2 program somme_entiers; n, i, somme: integer; 8 (* saisie du nombre n *) write( Saisissez un
Plus en détailDécouverte du tableur CellSheet
Découverte du tableur CellSheet l application pour TI-83 Plus et TI-84 Plus. Réalisé par Guy Juge Professeur de mathématiques et formateur IUFM de l académie de Caen Pour l équipe des formateurs T 3 Teachers
Plus en détailVérification de programmes et de preuves Première partie. décrire des algorithmes
Vérification de programmes et de preuves Première partie. décrire des algorithmes Yves Bertot September 2012 1 Motivating introduction A partir des années 1940, il a été compris que l on pouvait utiliser
Plus en détailResolution limit in community detection
Introduction Plan 2006 Introduction Plan Introduction Introduction Plan Introduction Point de départ : un graphe et des sous-graphes. But : quantifier le fait que les sous-graphes choisis sont des modules.
Plus en détailManuel M O D U L E D I M P O R T A T I O N
Manuel M O D U L E D I M P O R T A T I O N 1 Fonctionnement général Le module d importation de Wings a comme but de lire et d importer les données des clients, fournisseurs, produits et stock, ainsi que
Plus en détailMODE 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étailLicence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...
Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez
Plus en détailINITIATION AU LANGAGE C SUR PIC DE MICROSHIP
COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par
Plus en détailSOMMAIRE. 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étailExercices du Cours de la programmation linéaire donné par le Dr. Ali DERBALA
75. Un plombier connaît la disposition de trois tuyaux sous des dalles ( voir figure ci dessous ) et il lui suffit de découvrir une partie de chacun d eux pour pouvoir y poser les robinets. Il cherche
Plus en détailPlus courts chemins, programmation dynamique
1 Plus courts chemins, programmation dynamique 1. Plus courts chemins à partir d un sommet 2. Plus courts chemins entre tous les sommets 3. Semi-anneau 4. Programmation dynamique 5. Applications à la bio-informatique
Plus en détailTP3 : Manipulation et implantation de systèmes de fichiers 1
École Normale Supérieure Systèmes et réseaux Année 2012-2013 TP3 : Manipulation et implantation de systèmes de fichiers 1 1 Répertoire de travail courant Le but de l exercice est d écrire une commande
Plus en détailINSERER DES OBJETS - LE RUBAN INSERTION... 3 TABLEAUX
TABLE DES MATIERES Livret Utilisateur Excel 2007 Niveau 2 INSERER DES OBJETS - LE RUBAN INSERTION... 3 TABLEAUX... 4 Les tableaux croisés dynamiques... 4 Création d un tableau croisé... 5 Comparer des
Plus en détail2. 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étailAnnée Universitaire 2009/2010 Session 2 de Printemps
Année Universitaire 2009/2010 Session 2 de Printemps DISVE Licence PARCOURS : CSB4 & CSB6 UE : INF 159, Bases de données Épreuve : INF 159 EX Date : Mardi 22 juin 2010 Heure : 8 heures 30 Durée : 1 heure
Plus en détailMIS 102 Initiation à l Informatique
MIS 102 Initiation à l Informatique Responsables et cours : Cyril Gavoille Catherine Pannier Matthias Robine Marc Zeitoun Planning : 6 séances de cours 5 séances de TD (2h40) 4 séances de TP (2h40) + environ
Plus en détailL'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étailLE 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étailOrdonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1
CHAPTER 1 Ordonnancement 1.1. Étude de cas Ordonnancement de tâches avec contraintes de précédences 1.1.1. Exemple : construction d'une maison. Exercice. On veut construire une maison, ce qui consiste
Plus en détail1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions
Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 4 : Fonctions La construction de fonctions dans un langage de programmation permet aux
Plus en détailTraitement 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étailCours 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étailEXCEL PERFECTIONNEMENT SERVICE INFORMATIQUE. Version 1.0 30/11/05
EXCEL PERFECTIONNEMENT Version 1.0 30/11/05 SERVICE INFORMATIQUE TABLE DES MATIERES 1RAPPELS...3 1.1RACCOURCIS CLAVIER & SOURIS... 3 1.2NAVIGUER DANS UNE FEUILLE ET UN CLASSEUR... 3 1.3PERSONNALISER LA
Plus en détailCours de Programmation 2
Cours de Programmation 2 Programmation à moyenne et large échelle 1. Programmation modulaire 2. Programmation orientée objet 3. Programmation concurrente, distribuée 4. Programmation monadique 5. Les programmes
Plus en détailSuivant 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étailLibreOffice Calc : introduction aux tableaux croisés dynamiques
Fiche logiciel LibreOffice Calc 3.x Tableur Niveau LibreOffice Calc : introduction aux tableaux croisés dynamiques Un tableau croisé dynamique (appelé Pilote de données dans LibreOffice) est un tableau
Plus en détailCentre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :
Algorithmique et programmation : STRUCTURES DE DONNÉES A. Structure et enregistrement 1) Définition et rôle des structures de données en programmation 1.1) Définition : En informatique, une structure de
Plus en détailFormats d images. 1 Introduction
Formats d images 1 Introduction Lorsque nous utilisons un ordinateur ou un smartphone l écran constitue un élément principal de l interaction avec la machine. Les images sont donc au cœur de l utilisation
Plus en détailUniversité Paris-Dauphine DUMI2E 1ère année, 2009-2010. Applications
Université Paris-Dauphine DUMI2E 1ère année, 2009-2010 Applications 1 Introduction Une fonction f (plus précisément, une fonction réelle d une variable réelle) est une règle qui associe à tout réel x au
Plus en détailSimulation de variables aléatoires
Chapter 1 Simulation de variables aléatoires Références: [F] Fishman, A first course in Monte Carlo, chap 3. [B] Bouleau, Probabilités de l ingénieur, chap 4. [R] Rubinstein, Simulation and Monte Carlo
Plus en détailManuel Utilisateur. Module CAISSE
Manuel Utilisateur Module CAISSE Table des matières 1 Démarrer la caisse... 1 2 Recherche, favoris, raccourcis... 3 2.1 Recherche générale et recherche par IMEI... 3 2.2 Raccourcis famille... 7 2.3 Favoris...
Plus en détailDurée de L épreuve : 2 heures. Barème : Exercice n 4 : 1 ) 1 point 2 ) 2 points 3 ) 1 point
03 Mai 2013 Collège Oasis Durée de L épreuve : 2 heures. apple Le sujet comporte 4 pages et est présenté en livret ; apple La calculatrice est autorisée ; apple 4 points sont attribués à la qualité de
Plus en détailLogique binaire. Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des circuits électroniques.
Logique binaire I. L'algèbre de Boole L'algèbre de Boole est la partie des mathématiques, de la logique et de l'électronique qui s'intéresse aux opérations et aux fonctions sur les variables logiques.
Plus en détailSeconde et première Exercices de révision sur les probabilités Corrigé
I_ L'univers. _ On lance simultanément deux dés indiscernables donc il n'y a pas d'ordre. Il y a répétition, les dbles. On note une issue en écrivant le plus grand chiffre puis le plus petit. 32 signifie
Plus en détailmodules & compilation
Programmation fonctionnelle avec OCaml 3ème séance, 19 mars 2015 modules & compilation samuel.hornus@inria.fr http ://www.loria.fr/ shornus/ocaml/ Modules Un module regroupe un ensemble de définitions
Plus en détailGestion mémoire et Représentation intermédiaire
Gestion mémoire et Représentation intermédiaire Pablo de Oliveira March 23, 2015 I Gestion Memoire Variables locales Les variables locales sont stockées: Soit dans un registre,
Plus en détailLes chaînes de caractères
Les chaînes de caractères Dans un programme informatique, les chaînes de caractères servent à stocker les informations non numériques comme par exemple une liste de nom de personne ou des adresses. Il
Plus en détailChapitre 10. Les interfaces Comparable et Comparator 1
Chapitre 10: Les interfaces Comparable et Comparator 1/5 Chapitre 10 Les interfaces Comparable et Comparator 1 1 Ce chapitre a été extrait du document "Objets, Algorithmes, Patterns" de [René Lalement],
Plus en détailSolutions du chapitre 4
Solutions du chapitre 4 Structures de contrôle: première partie 4.9 Identifiez et corrigez les erreurs (il peut y en avoir plus d une par segment de code) de chacune des proposition suivantes: a) if (
Plus en détailGéométrie dans l espace Produit scalaire et équations
Chapitre 11. 2ème partie Géométrie dans l espace Produit scalaire et équations Terminale S Ce que dit le programme : CONTENUS CAPACITÉS ATTENDUES COMMENTAIRES 2ème partie Produit scalaire Produit scalaire
Plus en détailDéfinitions. Numéro à préciser. (Durée : )
Numéro à préciser (Durée : ) On étudie dans ce problème l ordre lexicographique pour les mots sur un alphabet fini et plusieurs constructions des cycles de De Bruijn. Les trois parties sont largement indépendantes.
Plus en détailSystème binaire. Algèbre booléenne
Algèbre booléenne Système binaire Système digital qui emploie des signaux à deux valeurs uniques En général, les digits employés sont 0 et 1, qu'on appelle bits (binary digits) Avantages: on peut utiliser
Plus en détailAxiomatique de N, construction de Z
Axiomatique de N, construction de Z Table des matières 1 Axiomatique de N 2 1.1 Axiomatique ordinale.................................. 2 1.2 Propriété fondamentale : Le principe de récurrence.................
Plus en détailIntroduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes.
Introduction L'objectif de mon TIPE est la reconnaissance de sons ou de notes de musique à l'aide d'un réseau de neurones. Ce réseau doit être capable d'apprendre à distinguer les exemples présentés puis
Plus en détailChapitre 7. Récurrences
Chapitre 7 Récurrences 333 Plan 1. Introduction 2. Applications 3. Classification des récurrences 4. Résolution de récurrences 5. Résumé et comparaisons Lectures conseillées : I MCS, chapitre 20. I Rosen,
Plus en détail