落書きノート

ふと自分が気になった事を書いてます

OCamlで問題を解く

この言語で普通のプログラムを作ろうと思うと、慣れてないせいだと思うんですけど、簡単な問題でも時間かかりますね。まあ、こんな感じです。だいぶ間違いや無駄がなくなって来ました。

open Printf;;
print_string "1からnまでの和を求めます。\n";;
let answer = ref 0;;
print_string "nの値 : ";;
let n = read_int();;
for i = 1 to n do
  answer := !answer + i;
  if i <> n then
    printf "%d + " i
  else
    printf "%d " i
done;;
printf "= %d\n" !answer;;



open Printf;;
print_string "何cmから : ";;
let from_h = read_int();;
print_string "何cmまで : ";;
let to_h = read_int();;
print_string "何cmごと : ";;
let step = read_int();;
printf "身長\t標準体重\n";;
printf "----------------\n";;
let rec main height = printf "%3d\t%3.1f\n" height ((float_of_int (height - 100)) *. 0.9);
                      if height = to_h then
                        ()
                      else
                        main (height + step);;
main from_h;;


print_string "何個*を表示しますか : ";;
let n = read_int();;
let rec main s = if s = n then
                   begin
                     print_string "*\n";
                     ()
                   end
                 else if s mod 5 = 0 then
                   begin
                     print_string "*\n";
                     main (s + 1)
                   end
                 else
                   begin
                     print_string "*";
                     main (s + 1)
                   end;;
main 1;;

解きながら学ぶJava 入門編

解きながら学ぶJava 入門編