このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1308749241/736
#  [1] 授業単元:情報処理演習 
#   [2] 問題文:1,元金a円、利率rで何年預けるとした ら目標金額のb円を超えるか。金利は複利計算であ る。 
#   2、元金a円、利率rで、n年預け るとしたら元金、金利の合計はいくらになるか。金 利は複利計算である。for文を用いよ。 
#   

'元金a円、利率rで何年預けるとしたら目標金額のb円を超えるか。金利は複利計算である。'(_元金a円,_利率r,_目標金額b円,_何年) :-
        for(1,_何年,maxint),
        _元金の合計 is truncate(_元金a円 * (1 + _利率r) ^ _何年),
        _元金の合計 > _目標金額b円.

'元金a円、利率rで、n年預けるとしたら元金、金利の合計はいくらになるか。金利は複利計算である。'(_元金a円,_利率r,_n年預ける,_N年後,_元金の合計,_金利の合計) :-
        for(0,_N年後,_n年預ける,_元金a円,_利率r,_元金a円,_元金合計,0,_金利合計).

for(S,_,E,_,_,_,_,_,_) :- S > E,!,fail.
for(N,N,E,_元金a円,_利率r,_元金合計1,_元金合計,_金利合計1,_金利合計) :-
        _元金合計 is truncate(_元金合計1),
        _金利合計 is truccate(_金利合計1).
for(S,N,E,_元金a円,_利率r,_元金合計1,_元金合計,_金利合計1,_金利合計) :-
        S1 is S + 1,
        _元金合計2 is _元金合計1 * (1 + _利率r),
        _金利合計2 is _元金合計2 - _元金a円,
        for(S1,N,E,_元金a円,_利率r,_元金合計2,_元金合計,_金利合計2,_金利合計).