このディレクトリの索引
このディレクトリの索引

http://pc12.2ch.net/test/read.cgi/tech/1255709298/490
#  [1] プログラミング  
#  [2] double型の引数を2つ持ち、2つの引数の積の絶対値を返す、  
#  double型の戻値を持つ関数 absmul() を作成した上で、動作の  
#  確認の出来るプログラムとして作成せよ。という問題と  
#   
#  標準入力からの入力に対して、アルファベットを全て空白文字  
#  に変更して出力するプログラムを作成せよ 

%

absmul(_浮動小数点数_1,_浮動小数点数_2,_答え) :-
    Y is _浮動小数点数_1 * _浮動小数点数_2,
    絶対値(Y,_答え).

絶対値(X,X) :- X >= 0.0.
絶対値(Y,X) :- Y < 0.0,X is -1 * Y.

test_absmul :-
    二つの浮動小数点数を得ます(_浮動小数点数_1,_浮動小数点数_2),
    write('(1)と(2)の積の絶対値としてあなたが考える答えも入れてください : '),
    get_float(_浮動小数点数_3),
    absmul(_浮動小数点数_1,_浮動小数点数_2,_答え),
    test_absmul_診断(_答え,_浮動小数点数_3,_診断),
    write_formatted('absmulを使った計算では解は%t あなたの答えは%tでした\n',[_
浮動小数点数_3,_答え]),
    write_formatted('ふたつは%t!!\n',[_診断]).

二つの浮動小数点数を得ます(_浮動小数点数_1,_浮動小数点数_2) :-
    write('浮動小数点数(1) を入れてください : '),
    get_float(_浮動小数点数_1),
    write('浮動小数点数(2) を入れてください : '),
    get_float(_浮動小数点数_2).

test_absmul_診断(F,F,一致しています).
test_absmul_診断(F1,F2,二値は一致しません) :- \+(F1=F2).

%%

アルファベット(尾崎).
アルファベット(u).

標準入力からの入力に対して、アルファベットを全て空白文字に変更してを出力する :-
    'stty raw',
    get_char(A),
    アルファベットを全て空白文字に変更してを出力する(A,''),
    'stty -raw'.

アルファベットを全て空白文字に変更してを出力する(end_of_file,B) :-
    アルファベットとして存在する(B),
    write(' '),!.
アルファベットを全て空白文字に変更してを出力する(end_of_file,B) :-
    \+(アルファベットとして存在する(A)),!.
アルファベットを全て空白文字に変更してを出力する(A,B) :-
    アルファベットとして存在する(B),
    write(' '),
    アルファベットを全て空白文字に変更してを出力する(A,''),!.
アルファベットを全て空白文字に変更してを出力する(A,B) :-
    アルファベットとして存在する(A),
    write(' '),
    get_char(C),
    アルファベットを全て空白文字に変更してを出力する(C,''),!.
アルファベットを全て空白文字に変更してを出力する(A,B) :-
    atom_concat(A,B,C),
    get_char(D),
    アルファベットを全て空白文字に変更してを出力する(D,C).