このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1294061094/238
#  [1] 授業単元:プログラミング演習  
#  [2] 問題文(含コード&リンク) 
#  問題1 キーボードから演算記号と2つの整数値を入力し、演算結果を終了の指示があるまで演算を繰返し行うプログラムを作成しなさい。 
#  <作成条件>  
#   ̄藥擦蓮∪或遙欧弔髪藥撒号を引数とするcalc関数を定義して行い、演算結果を戻り値として返すこと。  
#  演算記号として’e’が入力された場合はプログラムの繰返しを終了すること。  
#  1藥撒号は、加減乗除(+、−、*、/)を使用し、それ以外の文字が入力された場合は、警告メッセージを表示し、再度演算記号の入力をすること。 
#  <実行結果>  
#  演算記号(+,-,*,/)を入力してください  
#  op = +  
#  整数を2つ入力してください  
#  num1 = 5  
#  num2 = 10  
#  5 + 10 = 15  
#  演算記号(+,-,*,/)を入力してください  
#  op = /  
#  整数を2つ入力してください  
#  num1 = 8  
#  num2 = 3  
#  8 / 3 = 2  
#  演算記号(+,-,*,/)を入力してください  
#  op = e  
#  終了します 
#  問題2 キーボードから入力された3つの整数の合計を求めるプログラムを作成せよ。 

ただし、 以下の条件を満してプログラムを作成すること。 
#  キーボードからの入力はmain関数内で行う。3つの値の合計の計算はadd関数内で行う。main関数からadd関数を呼び出す。合計値を関数の戻り値として受け取り、main関数内で表示する。 
#  

'キーボードから演算記号と2つの整数値を入力し、演算結果を終了の指示があるまで演算を繰返し行う' :-
        write('演算記号(+,-,*,/)を入力してください  '),
        write('op = '),
        get_line(Line),
        'キーボードから演算記号と2つの整数値を入力し、演算結果を終了の指示があるまで演算を繰返し行う'(Line),
        write('終了します\n').

'キーボードから演算記号と2つの整数値を入力し、演算結果を終了の指示があるまで演算を繰返し行う'(e) :- !.
'キーボードから演算記号と2つの整数値を入力し、演算結果を終了の指示があるまで演算を繰返し行う'(_演算子) :-
        write(整数を入力してください  '),
        write('num1 = '),
        get_integer(_num1),
        write('num2 = '),
        get_integer(_num2),
        calc(_演算子,_num1,_num2,_値),
        write_formatted('%t %t %t = %t\n',[_num1,_演算子,_num2,_値]),
        write('演算記号(+,-,*,/)を入力してください  '),
        write('op = '),
        get_line(_演算子2),
        'キーボードから演算記号と2つの整数値を入力し、演算結果を終了の指示があるまで演算を繰返し行う'(_演算子2).

calc(/,_num1,_num2,_値) :-
        _値 is _num1 // _num2,!.
calc(*,_num1,_num2,_値) :-
        _値 is _num1 * _num2,!.
calc(+,_num1,_num2,_値) :-
        _値 is _num1 + _num2,!.
calc(-,_num1,_num2,_値) :-
        _値 is _num1 - _num2,!.

'キーボードから入力された3つの整数の合計を求めるプログラムを作成せよ。 

ただし、 以下の条件を満してプログラムを作成すること。 キーボードからの入力はmain関数内で行う。3つの値の合計の計算はadd関数内で行う。main関数からadd関数を呼び出す。合計値を関数の戻り値として受け取り、main関数内で表示する' :-
        program.

program :-
        write('値1 = '),
        get_integer(_値1),
        write('値2 = '),
        get_integer(_値2),
        write('値3 = '),
        get_integer(_値3),
        add(_値1,_値2,_値3,_値),
        write_formatted('%t + %t + %t = %t\n',[_値1,_値2,_値3,_値]).

add(_値1,_値2,_値3,_値) :-
        _値 is _値1 + _値2 + _値3.