+++ /dev/null
-let rec int_to_cic n =
- if n < 0 then
- "(Ropp "^int_to_cic (-n)^")"
- else
- match n with
- 0 -> " R0"
- |1 -> " R1"
- |k -> "(Rplus R1 " ^ int_to_cic (n-1) ^")"
-;;
-
-let dimx = ref 3;;
-let dimy = ref 3;;
-let kmax = ref 5;;
-let vl = [|"x";"y";"z";"t";"u";"v";"w";"g";"h";"j";"l";"m";"n";"o";"p";"q";"r";"s";"a";"b";"c";"d"|]
-;;
-
-let nth_inc n =
- vl.(n)
-;;
-
-let preamble () =
- for i = 0 to !dimx do
- print_string ("!"^nth_inc i^":R.");
- done;
- print_string "\n";
-;;
-
-let main () =
- print_string "Immetti m : ";dimy := (read_int ()) - 1;
- print_string "Immetti n : ";dimx := (read_int ()) - 1;
- print_string "Immetti K : ";kmax := (read_int ()) + 1;
- print_string ("Genero un sistema di "^
- string_of_int (!dimy+1)^" disequazioni in "^
- string_of_int (!dimx+1)^" incognite con coefficenti "^string_of_int !kmax^"\n\n");
- Random.self_init ();
- preamble ();
- let max = ref 0 in
- for i=0 to !dimy do
- begin
- print_string "(Rle ";
- for o=0 to !dimx do
- let k = ref ((Random.int !kmax)) in
- if !k > !max then max := !k;
- if i=o then
- k := - !k
- else
- k := !k;
- print_string ("(Rplus (Rmult "^int_to_cic !k^" "^nth_inc o^") ");
- done;
- print_string "(Ropp R1)";
- for o=0 to !dimx do
- print_string (")");
- done;
- print_string (" R0)\n->\n");
- end
- done;
- print_string ("\n\nIl massimo K e' "^string_of_int !max^".\nLa tesi la puoi scegliere tu, ma se ricopi una ipotesi vai tranquillo.\n");
-;;
-
-
-main ();;