このディレクトリの索引

# 出典 :: C/C++の宿題片付けます 130代目 #993 # [1] 授業単元:c言語 # [2] 問題文 # 課題文1 # 文字を一文字入力して、文字コードが一個次の文字を表示するプログラムを作成せよ。 # # 課題文2 # 文字を一文字入力して、入力文字が a-z の範囲のときのみ、次のアルファベットを表示すプログラムを作成せよ。 # ただし、zを入力した場合は a を表示し、a-z以外の文字を入力した場合は # 入力した文字をそのまま表示すること。 # 例: aを入力 → b を出力 bを入力 → c を出力 zを入力 → a を出力 # 3を入力 → 3 を出力 $を入力 → $ を出力 Aを入力 → A を出力 # # 課題文3 # 文字を一文字入力して、入力された文字が、英字の小文字であるか、英字の大文字であるか、 # 数字であるか、それ以外の文字であるか判別して、判別結果を表示する # プログラムを作成せよ。 '課題文1 文字を一文字入力して、文字コードが一個次の文字を表示する' :- '文字を一文字入力して、'(_文字), '文字コードが一個次の文字を表示する'(_文字). '文字を一文字入力して、'(_文字) :- write('一文字入力してください: '), get_char(_文字). '文字コードが一個次の文字を表示する'(_文字) :- '文字コードが一個次の文字を'(_文字,_次の文字), 表示する(_次の文字). '文字コードが一個次の文字を'(_文字,_次の文字) :- char_code(_文字,_文字コード), 次の文字コードを得る(_文字コード,_次の文字コード), char_code(_次の文字,_次の文字コード). 次の文字コードを得る(_文字コード,_次の文字コード) :- _次の文字コード is _文字コード + 1. 表示する(_次の文字) :- writef('次の文字は"%w"です\n',[_次の文字]). '課題文2 文字を一文字入力して、入力文字が a-z の範囲のときのみ、次のアルファベットを表示する' :- '文字を一文字入力して、'(_文字), '入力文字が a-z の範囲のときのみ、次のアルファベットを表示する'(_文字). '入力文字が a-z の範囲のときのみ、次のアルファベットを表示する'(_文字) :- forall(' 入力文字が a-z の範囲のときのみ、'(_文字,N), '次のアルファベットを表示する'(N)). '入力文字が a-z の範囲のときのみ、'(_文字,N) :- nth1(N,[a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z],_文字). '次のアルファベットを表示する'(N) :- '次のアルファベットを'(N,_表示文字), 表示する(_表示文字). '次のアルファベットを'(N,_表示文字) :- ならびの左回転([a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z],L1), nth1(N,L1,_表示文字),!. 表示する(_表示文字) :- writef('課題文2の答えは"%t"です\n',[_表示文字]). '課題文3 文字を一文字入力して、入力された文字が、英字の小文字であるか、英字の大文字であるか、数字であるか、それ以外の文字であるか判別して、判別結果を表示する' :- '文字を一文字入力して、'(_文字), '入力された文字が、英字の小文字であるか、英字の大文字であるか、数字であるか、それ以外の文字であるか判別して、'(_文字,_文字種別), 判別結果を表示する'(_文字種別). '入力された文字が、英字の小文字であるか、英字の大文字であるか、数字であるか、それ以外の文字であるか判別して、'(_文字,_文字種別) :- cahr_code(_文字,_文字コード), 課題文3_文字種判別(_文字コード,_文字種別). 課題文3_文字種判別(C,英小文字) :- C>=97,C=<122,!. 課題文3_文字種判別(C,英大文字) :- C>=65,C=<90,!. 課題文3_文字種判別(C,数字) :- C>=48,C=<57,!. 課題文3_文字種判別(_,それ以外の文字). '判別結果を表示する'(_文字種別) :- writef('文字種別は%tです\n',[_文字種別]). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ならびの左回転(_リスト,_ひとつ左回転したリスト) :- length(_リスト,_限界回転数), ならびの左回転(_限界回転数,_リスト,_ひとつ左回転したリスト). ならびの左回転(N,[A|R],L) :- N > 0, append(R,[A],L). ならびの左回転(N,[A|R],L) :- N > 0, M is N-1, append(R,[A],L2), ならびの左回転(M,L2,L).