いろんな言語で宿題 第四編 at TECH
[2ch|▼Menu]
38:デフォルトの名無しさん
10/03/16 15:37:01
>>37 (>>36) 訂正
% Prolog 'Whitespace'/2の定義を間違えた。それから述語名を入れ替えます。
pgmファイルヘッダの読み取り(_pgmファイル,_マジックナンバー,_画像の幅方向サイズ,_画像の高さサイズ,画像の最大階調レベル) :-
   open(_pgmファイル,read,Input,[type(binary)]),
   pgmヘッダ(Input,_マジックナンバー,_画像の幅方向サイズ,_画像の高さサイズ,画像の最大階調レベル),
   close(Input),!.

pgmファイルヘッダ(Input,_マジックナンバー,_画像の幅方向サイズ,_画像の高さサイズ,画像の最大階調レベル) :-
   マジックナンバー(Input,_マジックナンバー),
   画像の幅方向サイズ(Input,_画像の幅方向サイズ),
   画像の幅方向サイズ(Input,_画像の幅方向サイズ),
   画像の高さサイズ(Input,_画像の高さサイズ),!.

マジックナンバー(Input,_マジックナンバー) :-
   findall(Y,(repeat,get_byte(Input,X),('Whitespace'(X),!,fail;char_code(Y,X))),L),
   concat_atom(L,_マジックナンバー),!.

画像の幅方向サイズ(Input,_画像の幅方向サイズ) :-
   findall(X,(repeat,get_byte(Input,X),('Whitespace'(X),!,fail;true)),L),
   number_codes(_画像の幅方向サイズ,L),!.

画像の高さサイズ(Input,_画像の高さサイズ) :-
   findall(X,(repeat,get_byte(Input,X),('Whitespace'(X),!,fail;true)),L),
   number_codes(_画像の高さサイズ,L),!.

画像の最大階調レベル(Input,_画像の最大階調レベル) :-
   findall(X,(repeat,get_byte(Input,X),('Whitespace'(X),!,fail;true)),L),
   number_codes(_画像の最大階調レベル,L),!.

'Whitespace'(X) :- X < 48.
'Whitespace'(X) :- X > 57.



次ページ
続きを表示
1を表示
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5499日前に更新/23 KB
担当:undef