Advertisement
Guest User

Untitled

a guest
Dec 11th, 2019
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
OCaml 2.53 KB | None | 0 0
  1. #use "AP1utilbis.ml" ;;
  2. #use "AP1saisie5.ml" ;;
  3.  
  4. let get_intver(v_min, v_max : int * int) : int =
  5.   let v : int ref = ref 0 and thend : bool ref = ref false in
  6.   (
  7.     while not(!thend)
  8.     do
  9.       print_string("saisissez votre annee de naissance") ;
  10.       v := read_int() ;
  11.      
  12.       if !v < 2003
  13.       then (print_string("Vous etes trop jeune! Revenez l'an prochaine") ; print_newline() ;)
  14.       else
  15.         if !v > 2005
  16.       then (print_string("Vous etes trop trop vieux! Rien a faire la..") ; print_newline() ;);
  17.      
  18.       thend := ( !v >= v_min && !v <= v_max);
  19.            
  20.     done;
  21.    
  22.    !v;
  23.   )
  24. ;;
  25.  
  26. let get_id() : int =
  27.   let v : int ref = ref 0 and thend : bool ref = ref false in
  28.   (
  29.     while not( !thend)
  30.     do
  31.       print_string("saisissez votre numero de licence: ") ;
  32.       v := read_int() ;
  33.       thend := ( !v >= 0) ;
  34.     done ;
  35.     !v ;
  36.   )
  37.   ;;
  38.  
  39. let get_poids() : int =
  40.   let v : int ref = ref 0 and thend : bool ref = ref false in
  41.   (
  42.     while not( !thend)
  43.     do
  44.       print_string("saisissez votre poids: ") ;
  45.       v := read_int() ;
  46.       thend := ( !v >= 0) ;
  47.     done ;
  48.     !v ;
  49.   )
  50.   ;;
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61. type t_judoka = {nom : string ; yob : int ; id : int ; poids : int;};;
  62. (* yob = year of birth, id = identification*)
  63.  
  64. let cat_weight_tab = [|46 ; 50 ; 55 ; 60 ; 66 ; 73 ; 81 ; 90 ; 90|];;
  65. let cat_playerNum_tab = [|0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0|];;
  66.  
  67.  
  68.  
  69.  
  70.  
  71. let get_judoka() : t_judoka =
  72. {nom = "placeholder" ; yob = get_intver(2003, 2005); id = get_id() ; poids = get_poids()}
  73. ;;
  74.  
  75. let cat_num = 9;;
  76.  
  77. let registration_tab() : (int*int) array =
  78.     let v : (int*int) array = arr_make(9, (0,0)) in
  79.     (
  80.       for i = 1 to 9
  81.       do
  82.       v.(i-1) <- (cat_weight_tab.(i-1), cat_playerNum_tab.(i-1));
  83.       done ;  
  84.       v;
  85.     )
  86. ;;
  87.  
  88.  
  89. let registration(b : int) : int * int array =
  90.   let m : t_judoka ref = ref {nom = "0" ; yob = 0; id = 0 ; poids = b}  in
  91.   let pos : int ref = ref 1 in
  92.   (*m :=  get_judoka();*)
  93.  
  94. (
  95.   for i = 1 to 8
  96.      do
  97.         if !m.poids < cat_weight_tab.(i-1)
  98.         then
  99.           pos := !pos
  100.         else
  101.           if !m.poids > cat_weight_tab.(i-1)
  102.           then pos := !pos + 1
  103.           else
  104.             if !m.poids > 90
  105.             then pos := 8;
  106.        
  107.   done ;
  108.   cat_playerNum_tab.(!pos) <- cat_playerNum_tab.(!pos) + 1;
  109.   !pos-1,cat_playerNum_tab;
  110.  
  111. )
  112.  ;;
  113.          
  114.  
  115. let testtab(n : int) : int array =
  116.   for i = 1 to n-1
  117.   do
  118.     registration((rand_int(30, 100)));
  119.   done;
  120.   cat_playerNum_tab;
  121.  ;;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement