Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (* *)
- (* Exercice 1 *)
- (* *)
- print_string "Exercice 1: \n";;
- type date = {
- jour: int;
- mois: int;
- annee: int
- };;
- let creer_date (sjour:int) (smois:int) (sannee:int) = {
- jour = sjour;
- mois = smois;
- annee = sannee
- };;
- type produit = {
- nom: string;
- prix: float;
- sdate: date
- };;
- let creer_produit (snom:string) (sprix:float) (sdate:date) = {
- nom = snom;
- prix = sprix;
- sdate = sdate
- };;
- let fromage=(creer_produit "Fromage" 2.57 (creer_date 23 5 2015));;
- let validite_produit (produit:produit) =
- if produit.sdate.annee >= 2015 then
- if produit.sdate.mois < 5 then
- false
- else
- if produit.sdate.mois = 5 then
- if produit.sdate.jour < 30 then
- false
- else
- true
- else
- true
- else
- false;;
- let acheter (produit:produit) (q:int) =
- if (validite_produit produit) = true then
- produit.prix *. (float_of_int q)
- else
- 0.0;;
- let fromageMangeable=(creer_produit "Fromage" 2.57 (creer_date 23 6 2015));;
- print_string ("Prix de 4 fromages pourris: " ^ string_of_float (acheter fromage 4)^"€ (Invendables)\n");;
- print_string ("Prix de 4 fromages encore bons: " ^ string_of_float (acheter fromageMangeable 4)^"€\n");;
- (* Renvoie true si le produit est vieux de plus de X mois *)
- let anciennete (produit:produit) (mois:int) =
- if produit.sdate.annee >= 2015 then
- if produit.sdate.mois < (11-mois) then
- true
- else
- if produit.sdate.mois = (11-mois) then
- if produit.sdate.jour < 30 then
- true
- else
- false
- else
- false
- else
- true;;
- let reduction (p:produit) (q:int) =
- let facture = (acheter p q) in
- if facture > 0.0 then
- if (anciennete p 3) && (q > 5) then
- 0.9 *. facture
- else
- facture
- else
- 0.0;;
- print_newline();;
- print_string ("En promo: 6 fromages un peu vieux pour "^(string_of_float (reduction fromageMangeable 6))^"€\n");;
- print_string ("Prix normal: 6 fromages un peu vieux pour "^(string_of_float (acheter fromageMangeable 6))^"€\n");;
- print_string ("En promo: 6 fromages pourris pour "^(string_of_float (reduction fromage 6))^"€ (invendables)\n");;
- (* *)
- (* Exercice 2 *)
- (* *)
- print_string("\nExercice 2\n")
- type intervalle = {
- min:float;
- max:float
- };;
- let creer_inter (a:float) (b:float) = {
- min=a;
- max=b
- };;
- let rec pi n a b =
- if n=0 then
- a
- else
- let m = (a +. b) /. 2.0 in
- if (sin m) < 0.0 then
- pi (n-1) a m
- else
- pi (n-1) m b;;
- print_string("Pi~=" ^ string_of_float (pi 20 2.0 4.0));;
- print_newline();;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement