このディレクトリの索引

# 出典 :: C/C++の宿題片付けます 129代目 #175 # [1] 授業単元:プログラミング # [2] 問題文(含コード&リンク): # # 下に示すように,キーボードから二つの文字列を読み込み,どちらの文字列が # 何文字長いか # を表示するプログラムを作成せよ.なお,二つの文字列が同じ長さならば, # 「二つの文字列は同じ長さです.」と表示させること. # # 文字列A : Good # 文字列B : Morning # 文字列B の方が3 文字長いです. '下に示すように,キーボードから二つの文字列を読み込み,どちらの文字列が 何文字長いか を表示するプログラムを作成せよ.なお,二つの文字列が同じ長さならば 「二つの文字列は同じ長さです.」と表示させること. 文字列A : Good 文字列B : Morning 文字列B の方が3 文字長いです.' :- キーボードから二つの文字列を読み込み(_文字列A,_文字列B), どちらの文字列が何文字長いかを表示する(_文字列A,_文字列B). キーボードから二つの文字列を読み込み(_文字列A,_文字列B) :- 文字列Aを得る(_文字列A), 文字列Bを得る(_文字列B). 文字列Aを得る(_文字列A) :- write('文字列A ? '), 行入力(_文字列A). 文字列Bを得る(_文字列B) :- write('文字列B ? '), 行入力(_文字列B). 行入力(_行) :- read_line_to_codes(current_input,_コードならび), atom_codes(_行,_コードならび). どちらの文字列が何文字長いかを表示する(_文字列A,_文字列B) :- どちらの文字列が何文字長いかを(_文字列A,_文字列B,_長い方の文字列名,_何文字長い), 表示する(_長い方の文字列名,_何文字長い). どちらの文字列が何文字長いかを(_文字列A,_文字列B,_長い方の文字列名,_何文字長い) :- '_文字列Aと_文字列Bの長さの差'(_文字列A,_文字列B,_文字列Aと_文字列Bの長さの差), どちらの文字列が何文字長いかを(_文字列Aと_文字列Bの長さの差,_長い方の文字列名,_何文字長い). '_文字列Aと_文字列Bの長さの差'(_文字列A,_文字列B,_文字列Aと_文字列Bの長さの差) :- ふたつの文字列の長さ(_文字列A,_文字列B,_文字列Aの文字数,_文字列Bの文字数), _文字列Aと_文字列Bの長さの差 is _文字列Aの文字数 - _文字列Bの文字数. ふたつの文字列の長さ(_文字列A,_文字列B,_文字列Aの文字数,_文字列Bの文字数) :- atom_length(_文字列A,_文字列Aの文字数), atom_length(_文字列B,_文字列Bの文字数). どちらの文字列が何文字長いかを(_文字列Aと_文字列Bの長さの差,_長い方の文字列名,_何文字長い) :- '_文字列Aと_文字列Bの長さの差が負数になるときは'(_文字列Aと_文字列Bの長さの差,_長い方の文字列名,_何文字長い). どちらの文字列が何文字長いかを(_文字列Aと_文字列Bの長さの差,_長い方の文字列名,_何文字長い) :- '_文字列Aと_文字列Bの長さの差が正数になるときは'(_文字列Aと_文字列Bの長さの差,_長い方の文字列名,_何文字長い). どちらの文字列が何文字長いかを(_文字列Aと_文字列Bの長さの差,_長い方の文字列名,_何文字長い) :- '_文字列Aと_文字列Bの長さの差が0になるときは'(_文字列Aと_文字列Bの長さの差,_長い方の文字列名,_何文字長い). '_文字列Aと_文字列Bの長さの差が負数になるときは'(_文字列Aと_文字列Bの長さの差,文字列B,_何文字長い) :- _文字列Aと_文字列Bの長さの差 < 0, _何文字長い is abs(_文字列Aと_文字列Bの長さの差). '_文字列Aと_文字列Bの長さの差が正数になるときは'(_文字列Aと_文字列Bの長さの差,文字列A,_文字列Aと_文字列Bの長さの差) :- _文字列Aと_文字列Bの長さの差 > 0. '_文字列Aと_文字列Bの長さの差が0になるときは'(0,'二つの文字列は同じ長さです.',0). 表示する(_表示文字列,0) :- writef('%w\n',[_表示文字列]),!. 表示する(_長い方の文字列名,_何文字長い) :- writef('%wの方が、%w文字長い。\n',[_長い方の文字列名,_何文字長い]).