このディレクトリの索引

# 出典 :: C/C++の宿題片付けます 130代目 #758 # [1] 授業単元:基礎プログラミング # [2] 問題文(含コード&リンク): # カエサル暗号(A〜Z)の暗号文を入力して平文を含んだリストを出力しなさい。 # # http://ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9972.txt# アルファベット(['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']). カエサル暗号(_ずらし,_平文,_カエサル暗号文) :- アルファベットをずらす(_ずらし,_アルファベット,_ずれたアルファベット), カエサル暗号変換(_平文,_アルファベット,_ずれたアルファベット,_カエサル暗号文). カエサル復号(_ずらし,_カエサル暗号文,_平文) :- アルファベットをずらす(左方向,_ずらし,_アルファベット,_ずれたアルファベット), カエサル暗号変換(_カエサル暗号文,_ずれたアルファベット,_アルファベット,_平文). カエサル暗号変換(_元の文,_アルファベット,_ずれたアルファベット,_変換された文) :- findall(_変換された文字,( カエサル文字変換(_元の文,_変換された文字)),_変換された文字ならび), atom_chars(_変換された文,_変換された文字ならび). カエサル文字変換(_元の文,_変換された文字) :- sub_atom(_元の文,_,1,_,_文字), 文字変換(_文字,_アルファベット,_ずれたアルファベット,_変換された文字). アルファベットをずらす(_ずらし,_アルファベット,_ずれたアルファベット) :- アルファベット(_アルファベット), ならびの回転(左方向,_ずらし,_アルファベット,_ずれたアルファベット). ならびの回転(左方向,_ずらし,L,L2) :- lenth(L1,_ずらし), append(L1,R,L), append(R,L1,L2). # ならびの回転(右方向,_ずらし,L,L2) :- # lenth(L1,_ずらし), # append(R,L1,L), # append(R,L1,L2). 文字変換(_文字,_アルファベット,_ずれたアルファベット,_変換された文字) :- nth1(_nth1,_アルファベット,_文字), nth1(_nth1,_ずれたアルファベット,_変換された文字).