open Printf (*versão 1 - cálculo com base na lista dos coeficientes *) let rec horner_list x lv acc = match lv with [] -> acc el::li -> horner_list x li (x *. acc +. el) (* um exemplo *) let x = read_float () let () = let res = horner_list x [3.0;0.0;5.0;0.0;1.0] 0.0 in (printf "%.3f\n" res) (* versão 2 - com calculo a medida da leitura dos coeficientes *) let rec horner2 gr x n pi = if n> gr then pi else let v = read_float () in let p = x*.pi +. v in horner2 gr x (n+1) p let () = (*ler grau e o polinámio relacionado *) let grau = read_int () in let p_x= horner2 grau x 0 0.0 in (printf "%.3f\n" p_x)
This document was generated using caml2html