このディレクトリの索引

# [1] 授業単元:プログラミング # [2] 問題文(含コード&リンク): # タイピングプログラムを作る。 # プログラムの流れは、英単語1行1個ずつ10個入ったファイルを作り、 # 1.テキストファイル名を入れる # 2.テキストファイルの1行目が表示される # 3.タイピングをする(ミスをするともう1回タイピングさせる) # 4.1行目が終わると、2行目が表示され、またタイピングをする # 5.10問おわったら、かかった時間とミスした回数が出力される テキストファイルを読み込み1行づつタイピングする :- テキストファイルの内容をならびに読み込む(_テキストファイル名,_行ならび), '表示に従ってタイピングをして、その時間を計測する'(_行ならび,_失敗の度数,_かかった時間), writef('かかった時間 %w秒, ミスした回数 %w回\n',[_かかった時間,_失敗の度数]),!. '表示に従ってタイピングをして、その時間を計測する'(_行ならび,_失敗の度数,_かかった時間) :- get_time(TimeA), 表示に従ってタイピングをする(_行ならび,[_,_,_,_,_,_,_,_,_,_],[],_失敗の度数), get_time(TimeB), _かかった時間 is TimeB - TimeA. テキストファイルの内容をならびに読み込む(_テキストファイル名,_行ならび) :- テキストファイル名を入れる(_テキストファイル名), open(_テキストファイル名,read,_入力), findall(_行,( repeat,(at_end_of_stream(_入力),!,close(_入力),fail;行入力(_入力,_行))),_行ならび). テキストファイル名を入れる(_テキストファイル名) :- write('テキストファイル名を入れてください : '), 行入力(user_input,_テキストファイル名). 行入力(_入力,_行) :- read_line_to_codes(_入力,_文字コードならび), atom_codes(_行,_文字コードならび). 表示に従ってタイピングをする(_,[],Lf,_失敗の度数) :- length(Lf,_失敗の度数),!. 表示に従ってタイピングをする(L,Ln,Lf,_失敗の度数) :- '表示に従ってタイピングをする。成功したら次の課題に、失敗したら同じ課題を繰り返すが失敗の度数を上げる。'(L,Ln,Lf,_失敗の度数). '表示に従ってタイピングをする。成功したら次の課題に、失敗したら同じ課題を繰り返すが失敗の度数を上げる。'(L,Ln,Lf,_失敗の度数) :- '表示に従ってタイピングをする。成功したら次の課題に、'(L,Ln,Lf,_失敗の度数),!. '表示に従ってタイピングをする。成功したら次の課題に、失敗したら同じ課題を繰り返すが失敗の度数を上げる。'(L,Ln,Lf,_失敗の度数) :- '失敗したら同じ課題を繰り返すが失敗の度数を上げる。'(L,Ln,Lf,_失敗の度数). '表示に従ってタイピングをする。成功したら次の課題に、'([_表示行|R1],[_|Ln],Lf,_失敗の度数) :- '表示に従ってタイピングをする。'(Ln,_表示行), '表示に従ってタイピングをする。成功したら次の課題に、失敗したら同じ課題を繰り返すが失敗の度数を上げる。'(R1,Ln,Lf,_失敗の度数). '表示に従ってタイピングをする。'([_|Ln],_表示行) :- length([_|Ln],M), writef('%w : %w :: ',[M,_表示行]), 行入力(user_input,_表示行). '失敗したら同じ課題を繰り返すが失敗の度数を上げる。'(L,Ln,Lf,_失敗の度数) :- 表示に従ってタイピングをする(L,Ln,[_|Lf],_失敗の度数),!.