以下のプログラムは Julia なのだけど,他の言語でも同じ。
function calc(s1, s2)
# 消費支出 s1 円と飲食費 s2 円からエンゲル係数を計算する。
return s2*100/s1
end
function engel()
s1 = Base.prompt("消費支出? ")
s2 = Base.prompt("飲食費? ")
s1 = parse(Float64, s1)
s2 = parse(Float64, s2)
x1 = calc(s1, s2)
if x1 >= 80
println("エンゲル係数は ", round(Int, x1),
" です。飲食費を使いすぎです。")
else
println("エンゲル係数は ", round(Int, x1), " です。")
end
end
まあそれでもいいのですが,こなれたプログラムならこう書くべき。
つまり,同じプログラム片を何回も(2回でも)書かない。
似たプログラム片,変数名などが出てくると,前に出てきたのと同じなのか,少し違うのかが気にかかる。
同じ部分は繰り返さないようにするし,違うところはそれがはっきりわかるように書く。
ついでに,金額は整数と思うのでそのようにしておく。
function engel()
s1 = Base.prompt("消費支出? ")
s2 = Base.prompt("飲食費? ")
s1 = parse(Int, s1)
s2 = parse(Int, s2)
x1 = calc(s1, s2)
print("エンゲル係数は $(round(Int, x1)) です。")
println(x1 >= 80 ? "飲食費を使いすぎです。" : "")
end
なお,一般的に言えば,オンラインの実行時にコンソールからデータを入力するプログラムは書くべきではない。
更に蛇足
本来のエンゲル係数は,貧困度の測定にある。収入が少ないために,必須である食費支出の割合が多くなることを問題とする。飽食の時代では,有り余る収入に贅沢な食生活の割合を測定するものになっているのかなあ?
そんなこともあるので,ソースは明示しない。