Entraînement
Pour voir si vous avez bien compris ce qu’on a expliqué jusque-là, vous pouvez essayer de répondre aux questions suivantes. Vos réponses passeront du vert au rouge si elles sont justes.
ERREUR.
2 + 2
2e3 +. 2.5 *. (float_of_int 4)
'H'
12 > 3 && 7
"Bonjour " ^ "toi" ^ " !"
42 > 12 || 19 > 38
let ajouter x y = x + y
ajouter (* C’est le type de "ajouter" qu’on demande *)
'A' + 3
(* On suppose que ’x’ et ’y’ sont des constantes définies avant,
* mais dont on ne vous donne pas la valeur.
*
* Aussi : cette expression ne donne pas d’erreur de type.
*)
x +. (y *. y)
true) ou fausses (false) ?
42 > 12 || 19 > 38
4 * 5 + 2 = 28
'a' < 'e'
let x = 15
x > 2 && x < 17
"Zoé" > "Alice"
______ pour que resultat vaille 38 ?
let ______ = (2 * x * x) + (3 * x) + 11
let resultat = polynome 3
Si vous voulez vous entraîner encore un peu, voici un vrai exercice.
Réalisez les fonction suivantes :
- Une fonction qui a un flottant
xassocie son cube ; -
Une fonction qui prend trois flottants en arguments :
a,betepsilon, et qui dit siaest égal àbàepsilonprêt. Pour se simplifier la tâche, on considère queasera toujours plus grand queb; -
Une fonction qui prend un caractère et un entier, et qui dit si cette entier est le code ASCII du caractère ou non.
Vous pouvez tester avec
'A'qui a65comme code ASCII.
Proposition de correction
let cube (x : float) : float = x * x * x
let egal (a : float) (b : float) (epsilon : float) : bool =
let diff = a -. b in
diff < epsilon
let est_ascii (c : char) (i : int) : bool =
(int_of_char c) = i
Une fois que vous avez fini, vous pouvez passer à la suite. Si vous n’avez pas eu juste à beaucoup de questions,
le mieux est sans doute de relire le premier chapitre, tout en testant les exemples de code vous-même, et en
en créant de nouveaux vous-même. Si quelque chose ne vous semble pas clair, vous pouvez écrire un mail à
ocaml arobase gelez point xyz pour des explications.