Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (* *)
- let rec list_map l f = match l with
- | [] -> []
- | t::q -> (f t)::(list_map q f);;
- let rec list_select l p = match l with
- | [] -> [];
- | t::q -> if (p t) then t::(list_select q p) else (list_select q p);;
- let rec insere l e = match l with
- | [] -> [];
- | t::q -> if e < t then e::(t::q) else t::(insere q e);;
- let rec tri_insertion l = match l with
- | [] -> [];
- | t::q -> insere (tri_insertion q) t;;
- let list_rev l =
- let rec aux z acc = match z with
- | [] -> acc;
- | t::q -> aux q (t::acc);
- in aux l [];;
- (* Entiers et base *)
- let rec puissance x n = match n with
- | 0 -> n;
- | 1 -> x;
- | n -> x * (puissance x (n-1));;
- let rec pgcd p q =
- if p = q then p
- else (
- let rec pgcd_aux a b =
- if (a mod b = 0) then -1
- else
- let p = pgcd_aux b (a mod b) in
- if p = -1 then a mod b else pgcd_aux b (a mod b);
- in max (pgcd_aux p q) (pgcd_aux q p);
- );;
- let base x b =
- let retourne v =
- let r = (make_vect (vect_length v) 0) in
- for i = 0 to vect_length v - 1 do
- r.(i) <- v.((vect_length v) - 1 - i)
- done;
- r;
- in
- let rec aux y c v i =
- v.(i) <- (y mod b);
- if y >= c then aux (y / b) c v (i + 1);
- in let v = (make_vect (int_of_float(floor (log(float_of_int x) /. log(float_of_int b))) + 1) 0)
- in (aux x b v 0) ; retourne v;;
- base 12 10;;
- type 'a vecteur = { mutable l:int; mutable i:int; mutable v: 'a vect };;
- let ajouter_vecteur v e =
- if v.i = v.l - 1 then
- begin
- let r = (make_vect (2 * v.l) 0) in
- for j = 0 to v.l - 1 do
- r.(j) <- v.v.(j);
- done;
- v.v <- r;
- end;
- v.v.(v.i) <- e;
- v.i <- v.i + 1;;
- let supprimer_vecteur v =
- if v.i > 0 then v.i <- v.i - 1 else failwith "Vecteur vide.";;
- let monvecteur = { l = 5; i = 0; v = [|0;0;0;0;0|] } in ajouter_vecteur monvecteur 2;
- ajouter_vecteur monvecteur 3;
- ajouter_vecteur monvecteur 3;
- ajouter_vecteur monvecteur 3;
- ajouter_vecteur monvecteur 3;
- ajouter_vecteur monvecteur 3;
- monvecteur.v;;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement