いろんな言語で宿題 第五編at TECHいろんな言語で宿題 第五編 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト150:デフォルトの名無しさん 10/06/29 10:14:46 >>144 % Prolog '多項式の次数nと係数a,(i=0,1・・・・,n)を入力し、その多項式f(x)=a_nx^n+a_n-1x^n-1+・・・+a_2x^2+a_1x+a_0とその微分の多項式f'(x)を出力する' (_n,_係数ならび) :- findall(S,( append(L0,[A|R],_係数ならび), length(R,N), 項文字列の生成(A,N)), L1), 多項式に整形(L1,L2), concat_atom(L2,_多項式). 項文字列の生成(0,_,'') :- !. 項文字列の生成(A,0,S) :- write_formatted_atom('%t',[A],S),!. 項文字列の生成(A,1,S) :- A > 1,write_formatted_atom('%tx',[A],S),!. 項文字列の生成(1,1,x) :- !. 項文字列の生成(A,N,S) :- write_formatted_atom('%tx^%t',[A,N],S),!. 多項式に整形(L1,_多項式) :- 加減算符号を付加(L1,L2), 先頭項のプラスは削除(L2,L3), concat_atom(L3,_多項式),!. 加減算符号を付加([],[]) :- !. 加減算符号を付加([A|R1],[A|R2]) :- sub_atom(A,0,1,_,'-'),加減算符号を付加(R1,R2,!. 加減算符号を付加([A|R1],['+',A|R2]) :- 加減算符号を付加(R1,R2),!. 先頭項のプラスは除去(['+'|L],L) :- !. 先頭項のプラスは除去(L,L). 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch