いろんな言語で宿題 ..
[2ch|▼Menu]
39:デフォルトの名無しさん
10/03/16 16:26:48
スレリンク(tech板:921番)
# [1] 授業単元:Unix プログラミング
# [2] 問題文(含コード&リンク):時間昇降順で表示するwhoをC/C++で書きなさい。

40:デフォルトの名無しさん
10/03/17 08:37:27
>>39
% Prolog

時間昇降順で表示するwho(_昇降順) :-
   shs(who,L),
   時間昇降順で表示するwho(L,L1),
   wrln(L1).

時間昇降順で表示するwho(_昇降順,L,_時間昇降順who) :-
   findall([_時刻,_行],(member(L1,L),時刻を取り出す(_行,_時刻)),_時刻を先頭に付加したwho),
   昇降順に整列(_昇降順,_時刻を先頭に付加したwho,_時間昇降順who).

時刻を取り出す(_行,_時刻) :-
   split(_行,[' '],L1),
   append(L2,[_分秒|L3],L1),
   sub_atom(_分秒,_,1,_,':'),
   last(L2,_年月日),
   sub_atom(_年月日,_,1,_,'-'),
   concat_atom([B,' ',A],_時刻),!.

昇降順に整列(昇順,_時刻を先頭に付加したwho,_時間昇降順who) :-
   整列(_時刻を先頭に付加したwho,_整列した時刻を先頭に付加したwho),
   findall(_行,member([_,_行],_整列した時刻を先頭に付加したwho),_時間昇降順who).

昇降順に整列(降順,_時刻を先頭に付加したwho,_時間昇降順who) :-
   整列(_時刻を先頭に付加したwho,_整列した時刻を先頭に付加したwho),
   reverse(_整列した時刻を先頭に付加したwho,_整列しかつ反転した時刻を先頭に付加したwho),
   findall(_行,member([_,_行],_整列しかつ反転した時刻を先頭に付加したwho),_時間昇降順who).

41:デフォルトの名無しさん
10/03/17 10:42:58
>>32
% Prolog (その一)

キーワード数の上位10位までを表示 :-
   findall([M,N],カウンタカウンタ(M,N),L1),
   sort(L1,L2),
   reverse(L2,L3),
   上位10位まで(L3,L),
   キーワード数の上位10位までを表示(L).

キーワード数の上位10位までを表示([]) :- !.
キーワード数の上位10位までを表示([M|R]) :-
   キーワードカウンタ(_キーワード,M),
   キーワード表示(_キーワード),
   fail.
キーワード数の上位10位までを表示(R).

キーワード表示(_キーワード) :-
   キーワード(ID,_キーワード),
   write_formatted('%t,%t\n',[ID,_キーワード]).

上位10位まで([],_,[]) :- !.
上位10位まで(_,Count,[]) :- Count >= 10,!.
上位10位まで([[M,N]|R1],Count1,[M|R2]) :-
   Count2 is Count1 + N,
   上位10位まで(R1,Count2,R2).


42:デフォルトの名無しさん
10/03/17 10:43:55
>>32
% Prolog (その二)

キーワードカウンタを準備する :-
   abolish(キーワードカウンタ/2),
   キーワード(Id,_キーワード),
   キーワードカウンタ((+),_キーワード),
   fail.
キーワードカウンタを準備する.

キーワードカウンタ((+),_キーワード) :-
   retract(キーワードカウンタ(_キーワード,_現在のカウント)),
   _加算されたカウント is _現在のカウント + 1,
   カウンタカウンタの更新((-),_現在のカウント)
   カウンタカウンタの更新((+),_加算されたカウント),
   asserta(キーワードカウンタ(_キーワード,_加算されたカウント)),!.
キーワードカウンタ((+),キーワード) :-
   asserta(キーワードカウンタ(_キーワード,1)),
   カウンタカウンタの更新((+),1),!.

カウンタカウンタの更新((+),M) :-
   retract(カウンタカウンタ(M,N)),
   N2 is N + 1,
   asserta(カウンタカウンタ(M,N2)),!.
カウンタカウンタの更新((+),M) :- asserta(カウンタカウンタ(M,1)).
カウンタカウンタの更新((-),M) :-
   retract(カウンタカウンタ(M,N)),
   N1 is N - 1,
   asserta(カウンタカウンタ(M,N1)),!.


43:デフォルトの名無しさん
10/03/18 07:04:37
スレリンク(tech板:945番)
# Bairstow Samples  名無しさん - 2010/03/17(Wed) 19:00 No.10560 10560.zip
# [1] 授業単元: 数値解析
# [2] 問題文(含コード&リンク): n=10の多項式をベアストウ法(Bairstow’s Method)により解析するプログラムを書くこと。
# N=coefficients r,s= initial value
# 繰り返しの際にはじめのr,s,b,cと△r、△s、エラーの値をプリントする。一定の値に集中するまで続ける。
# (Convergence)一点に集まった値がでたら、次は二次公式をするために同様の作動を繰り返す。この時rとsは自動的に割り出されなければならない。ルーツが見つかるまで全てのプロセスを繰り返す。



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

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