このディレクトリの索引

# [1] 授業単元: 基礎プログラミング # [2] 問題文(含コード&リンク): # いま、要素数Nのならび(リスト)に整数がセットされている。 # # 1) 直前・直後の要素が存在し、それら2つの値の平均よりも大きな値を # 持つ要素をすべて印字する。 # 2) ならびからi番目(i=0,1,2,...,N-1)の要素と、末尾からi番目の要素の値が # 等しいとき、iをを印字する。 # ただし出力される要素位置は重複しないこと。 '直前・直後の配列要素が存在し、それら2つの値の平均よりも大きな値を持つ要素をすべて印字する'(_ならび) :- forall('直前・直後の配列要素が存在し、それら2つの値の平均よりも大きな値を持つ要素を'(_ならび,_現在の要素), すべて印字する(_現在の要素)). '直前・直後の配列要素が存在し、それら2つの値の平均よりも大きな値を持つ要素を'(_ならび,_現在の要素) :- append(_,[_直前の要素,_現在の要素,_直後の要素|_],_ならび), _現在の要素 * 1.0 > (_直前の要素 + _直後の要素) / 2. すべて印字する(_現在の要素) :- writef('%t\n',[_現在の要素]). 'ならびの先頭からi番目(i=0,1,2,...,N-1)の要素と、末尾からi番目の要素の値が等しいとき、それらの要素の添え字のうち小さな方を印字する'(_ならび) :- forall('ならびの先頭からi番目(i=0,1,2,...,N-1)の要素と、末尾からi番目の要素の値が等しいとき、'(_ならび,_i番目,_j番目), それらの要素の添字の小さな方を印字する(_i番目)). 'ならびの先頭からi番目(i=0,1,2,...,N-1)の要素と、末尾からi番目の要素の値が等しいとき、'(_ならび,_i番目) :- 'ならびの先頭からi番目(i=0,1,2,...,N-1)の要素と、'(_ならび,_i番目,_要素の値), '末尾からi番目の要素の値が等しいとき、'(_ならび,_i番目,_j番目,_要素の値), _i番目 =< _j番目. 'ならびの先頭からi番目(i=0,1,2,...,N-1)の要素と、'(_ならび,_i番目,_値) :- append(L1,[_値|_],_ならび), length(L1,_i番目). '末尾からi番目の要素の値が等しいとき、'(_ならび,_i番目,_j番目,_値) :- append(L3,[_値|L4],_ならび), length(L4,_i番目), length(L3,_j番目). それらの要素の添字の小さな方を印字する(_i番目) :- writef('%w\n',[_i番目]).