このディレクトリの索引

# 出典 :: C/C++の宿題片付けます 132代目 #88 # [1] 授業単元:文字を利用したプログラム # [2] 問題文(含コード&リンク): http://ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10130.txt # [5] その他の制限:リンクにある演習E5(1)を参考に # よろしくお願いします。 # # 課題内容 # #【課題に取り組む前の準備】 # # 自分の名前の名字をローマ字表記したとき,先頭に来るアルファベットを小文字で表そう. # (山崎の場合,ローマ字表記で「yamazaki」なので,先頭の文字は「y」) # # 【問題】 # # 以下のように初期値が定義された文字列abcがある.この文字列のうち, # 課題に取り組む前の準備で記入したアルファベットの1つ後ろの文字だけ # 表示するプログラムを作成せよ. # (たとえば,山崎(yamazaki) の場合「'y'」の1 つ後ろの文字「'z'」を表示する) # ただし,文字列の初期値や指定するアルファベットがかわっても実行できる # プログラムにすること. # (例えば,「自分の名字の先頭はy だからprintf("z");って書いておけばいいや」ってのは×) # # char abc[]="abcdefghijklmnopqrstuvwxyz!"; % % abc の持ち方が仕様の字面どおりの定義だと :- dynamic(課題に取り組む前の準備で記入したアルファベット/1). '【課題に取り組む前の準備】' :- abolish(課題に取り組む前の準備で記入したアルファベット/1), '自分の名前の名字をローマ字表記したとき,先頭に来るアルファベットを小文字で表そう.'. '自分の名前の名字をローマ字表記したとき,先頭に来るアルファベットを小文字で表そう.' :- 自分の名前(_自分の名前), sub_atom(_自分の名前,0,1,_,_先頭に来るアルファベット), assertz(課題に取り組む前の準備で記入したアルファベット(_先頭に来るアルファベット)). abc('abcdefghijklmnopqrstuvwxyz!'). 自分の名前('ozaki'). :- '【課題に取り組む前の準備】'. アルファベットの1つ後ろの文字だけ表示 :- abc(_文字列の初期値), 課題に取り組む前の準備で記入したアルファベット(_課題に取り組む前の準備で記入したアルファベット), 課題に取り組む前の準備で記入したアルファベットの1つ後ろの文字だけ表示する(_文字列の初期値,_課題に取り組む前の準備で記入したアルファベット). 課題に取り組む前の準備で記入したアルファベットの1つ後ろの文字だけ表示する(_文字列の初期値,_課題に取り組む前の準備で記入したアルファベット) :- 課題に取り組む前の準備で記入したアルファベットの1つ後ろの文字だけ(_文字列の初期値,_課題に取り組む前の準備で記入したアルファベット,_1つ後ろの文字), 表示する(_1つ後ろの文字). 課題に取り組む前の準備で記入したアルファベットの1つ後ろの文字だけ(_文字列の初期値,_課題に取り組む前の準備で記入したアルファベット,_1つ後ろの文字) :- sub_atom(_文字列の初期値,_,1,R,_課題に取り組む前の準備で記入したアルファベット), '1つ後ろの文字だけ'(_文字列の初期値,R,_1つ後ろの文字). '1つ後ろの文字だけ'(_文字列の初期値,R,_1つ後ろの文字) :- succ(R_1,R), sub_atom(_文字列の初期値,_,1,R_1,_1つ後ろの文字). 表示する(_1つ後ろの文字) :- writef('%w\n',[_1つ後ろの文字]).