Advertisement
yannick_degardin

Ocaml TD6

Nov 9th, 2020 (edited)
2,053
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
OCaml 1.31 KB | None | 0 0
  1. (* exo 3 *)
  2. let shift_left(x, y, z : int ref * int ref * int ref) : unit =
  3.     let a : int = !x in
  4.     (
  5.     x := !y ;
  6.     y := !z ;
  7.     z := a
  8.     )
  9. ;;
  10. let shift_right(x, y, z : int ref * int ref * int ref) : unit =
  11.     let a : int = !z in
  12.     (
  13.     z := !y ;
  14.     y := !x ;
  15.     x := a
  16.     )
  17. ;;
  18.  
  19. (* exo 5 *)
  20. let rec print_list(m : int list) : unit =
  21.     if m = []
  22.     then print_newline()
  23.     else
  24.     (
  25.         print_int(fst(m)) ;
  26.         print_string("––-");
  27.         print_list(rem_fst(m))
  28.     )
  29. ;;
  30.  
  31. (* exo 6 *)
  32. let rec starline_aux(k : int) : unit =
  33.     if k = 0
  34.     then print_newline()
  35.     else
  36.     (
  37.         print_char(*) ;
  38.         starline_aux(k-1)
  39.     )
  40. ;;
  41. let starline(k : int) : unit =
  42.     if k < 0
  43.     then failwith "erreur starline : parametre negatif"
  44.     else starline_aux(k)
  45. ;;
  46. let getprintnameage() : unit =
  47.     let forename : string ref = ref " "
  48.     and age : string ref = ref " "
  49.     and len : int ref = ref 0 in
  50.         (
  51.         print_string("quel est votre prenom ?") ;
  52.         print_newline() ;
  53.         forename := read_line() ;
  54.         print_string("quel est votre age ?") ;
  55.         print_newline() ;
  56.         age := string_of_int(read_int()) ;
  57.         len := 6 + String.length(!forename) + String.length(!age) ;
  58.         starline(!len) ;
  59.         print_string("* ") ;
  60.         print_string(!forename) ;
  61.         print_string(", ") ;
  62.         print_string(!age) ;
  63.         print_string(" *") ;
  64.         print_newline() ;
  65.         starline(!len)
  66.         )
  67. ;;
  68.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement