85 lines
1.9 KiB
OCaml
85 lines
1.9 KiB
OCaml
(* Exercice 1 *)
|
|
(*1)*)
|
|
() ;;
|
|
(*2)*)
|
|
let c2() = 2;;
|
|
(*3)*)
|
|
let rien a = ();;
|
|
(*4)*)
|
|
let hello() = print_string "Hello World !\n";;
|
|
|
|
(*Exercice 2*)
|
|
|
|
let rec itere f n a = match n with
|
|
| 0 -> a
|
|
| _ -> f (itere f (n-1) a);;
|
|
itere sin 3000 1.;;
|
|
|
|
(* Exercice 3*)
|
|
(*1) : La fonction List.length retourne la longueur d'une liste.*)
|
|
let rec longueur liste = match liste with
|
|
| [] -> 0
|
|
| _ -> (longueur (List.tl liste)) + 1;;
|
|
|
|
longueur [1;2;3];;
|
|
(*2) : La fonction List.map applique une fonction à chaque élément d'une liste.*)
|
|
let rec mapper f liste = match liste with
|
|
| [] -> []
|
|
| _ -> (f (List.hd liste))::(mapper f (List.tl liste));;
|
|
|
|
mapper sin [1.;2.;3.];;
|
|
(*3)*)
|
|
|
|
|
|
let rec concatener listes = match longueur listes with
|
|
| 0 -> []
|
|
| 1 -> List.hd listes
|
|
| 2 -> (List.hd listes)@(List.hd (List.tl listes))
|
|
| _ -> concatener ([(List.hd listes)@(List.hd (List.tl listes))]@(List.tl (List.tl listes)));;
|
|
concatener [[1;2;3];[2;1;3];[4;5;1;3];[1]];;
|
|
concatener [];;
|
|
List.concat [];;
|
|
|
|
(* exercice 4*)
|
|
|
|
|
|
|
|
let rec recherche_dichomotique a v =
|
|
if Array.length v = 0 then false
|
|
else if a = v.((Array.length v)/2) then true
|
|
else if a < v.((Array.length v)/2)
|
|
then recherche_dichomotique a (Array.sub v 0 ((Array.length v)/2))
|
|
else recherche_dichomotique a (Array.sub v ((Array.length v)/2+1) ((Array.length v)/2));;
|
|
|
|
|
|
|
|
|
|
(*Exercice 5*)
|
|
let est_phermier n = (*on prend un n >=2*)
|
|
let t = ref true in
|
|
if n = 2 then ()
|
|
else for i = 2 to n/2 do
|
|
if (n mod i) = 0 then t := false
|
|
done ;
|
|
!t;;
|
|
|
|
est_phermier 17;;
|
|
est_phermier 14;;
|
|
|
|
|
|
let est_vrm_phermier n = (* on prend aussi un n >=2*)
|
|
let t = ref true and i = ref 2 in
|
|
while !i <=(n/2) && !t do
|
|
if (n mod !i) = 0 then t := false;
|
|
i := !i + 1
|
|
done;
|
|
!t;;
|
|
|
|
|
|
est_vrm_phermier 17;;
|
|
est_vrm_phermier 17;;
|
|
est_vrm_phermier 14;;
|
|
est_vrm_phermier 14;;
|
|
est_vrm_phermier 17;;
|
|
est_vrm_phermier 13;;
|