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
x
associe son cube ; -
Une fonction qui prend trois flottants en arguments :
a
,b
etepsilon
, et qui dit sia
est égal àb
àepsilon
prêt. Pour se simplifier la tâche, on considère quea
sera 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 a65
comme 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.