このディレクトリの索引
#  [1] 授業単元: プログラム言語基礎 
#  [2] 問題文(含コード&リンク):n個の整数を入力し、入力した値の中で奇数と偶数の個数を表示せよ 
#  [3] 環境 
#   [3.1] OS: Windows 
#   [3.2] コンパイラ名とバージョン: borland 2,31 
#   [3.3] 言語: C 
#  [4] 期限: 今日の17時まで 
#  [5] その他の制限: まだ習い始めて間もないです。 
#  
#  #include  
#  
#  void main(void) 
#  { 
#  int x; 
#  
#  printf("x = "); 
#  scanf("%d",&x); 
#  if(x%2 !=0) 
#  { 
#  printf("\n xは奇数"); 
#  } 
#  else{ 
#  printf("\n xは偶数"); 
#  } 
#  } 
#  これを応用して作れだそうです。 
#  
#  どうかよろしくお願いします 

'n個の整数を入力し、入力した値の中で奇数と偶数の個数を表示せよ'(_n個) :-
        rawmode,
        'n個の整数を入力し、入力した値の中で奇数と偶数の個数を表示せよ'(_n個,0,0),
        norawmode.

'n個の整数を入力し、入力した値の中で奇数と偶数の個数を表示せよ'(0,_,_) :- !.
'n個の整数を入力し、入力した値の中で奇数と偶数の個数を表示せよ'(N,_奇数の個数_1,_偶数の個数_1) :-
        '整数を入力し、入力した値の中で奇数と偶数の個数を表示'(_奇数の個数_1,_偶数の個数_1,_奇数の個数_2,_偶数の個数_2),
        N_1 is N - 1,
        'n個の整数を入力し、入力した値の中で奇数と偶数の個数を表示せよ'(N_1,_奇数の個数_2,_偶数の個数_2).

'整数を入力し、入力した値の中で奇数と偶数の個数を表示'(_奇数の個数_1,_偶数の個数_1,_奇数の個数_2,_偶数の個数_2) :-
        整数を得る(整数,_整数),
        奇数または偶数の頻度を更新(_整数,_奇数の個数_1,_偶数の個数_1,_奇数の個数_2,_偶数の個数_2),
        writef('現在までの 奇数の個数=%t, 偶数の個数=%t \n',[_奇数の個数_2,_偶数の個数_2]).

奇数または偶数の頻度を更新(_整数,_奇数の個数_1,_偶数の個数_1,_奇数の個数_1,_偶数の個数_2) :-
        0 is _整数 mod 2,
        _偶数の個数_2 is _偶数の個数_1 + 1,!.
奇数または偶数の頻度を更新(_整数,_奇数の個数_1,_偶数の個数_1,_奇数の個数_2,_偶数の個数_1) :-
        \+(0 is _整数 mod 2),
        _奇数の個数_2 is _奇数の個数_1 + 1.