[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 02/02 05:23 / Filesize : 462 KB / Number-of Response : 749
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

いろんな言語で宿題スレ 第三編



1 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 09:57:19 ]
第二編も512Kbyte越えで終了しました。
前スレで未解決な課題は順次このスレにコピーします。

136 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 04:26:43 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/536
# [1] 授業単元: C++
# [2] 問題文(含コード&リンク):
#   課題1資料 ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10318.txt
#   課題1    ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10319.txt
#   課題1応用 ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10320.txt
# 京都市の区ごとの人口(人)と面積(平方キロメートル)が記述されているデータ(kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10318.txt)がある。
# 区の名前,人口,面積のデータを格納しなさい。
# 人口についてソートした結果,面積についてソートした結果を出力する。
#
# 区の名前,人口,面積のてデータを格納し,格納したデータを調べて以下の情報を出力するプログラムを作成しなさい。
# 人口が最大の区と最小の区の、名前と人口。
# 面積が最大の区と最小の区の、名前と面積。
# 人口密度が最大の区と最小の区の、名前と人口密度。
# Kita 124306 94.92
# Kamigyo 83082 7.11
# Sakyo 168133 246.88
# Nakagyo 100145 7.38
# Higashiyama 41659 7.46
# Yamashina 136769 28.78
# Shimogyo 74897 6.82
# Minami 97877 15.78
# Ukyo 201819 291.95
# Nishikyo 155973 59.20
# Fushimi 284812 61.62

137 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 06:56:21 ]
>>136
% Prolog
'京都市の区ごとの人口(人)と面積(平方キロメートル)が記述されているデータがある'('ime.nu/ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10318.txt').

区の名前,人口,面積のデータを格納する :-
  '京都市の区ごとの人口(人)と面積(平方キロメートル)が記述されているデータがある'(_ウェブサイト),
  get_split_lines(_ウェブサイト,[' '],Lines),
  member([_区の名前,_人口,_面積],Lines),
  assertz('京都市の区ごとの人口と面積のデータ'(_区の名前,_人口,_面積)),
  fail.
区の名前,人口,面積のデータを格納する.

人口についてソートする(_整列されたデータならび) :-
  findall([_人口,_区の名前,_人口,_面積],'京都市の区ごとの人口と面積のデータ'(_区の名前,_人口,_面積),L),
  sort(L,L1),
  降順に並べ直しながら鍵項目の削除する(L1,[],_整列されたデータならび).

面積についてソートする(_整列されたデータならび) :-
  findall([_面積,_区の名前,_人口,_面積],'京都市の区ごとの人口と面積のデータ'(_区の名前,_人口,_面積),L),
  sort(L,L1),
  降順に並べ直しながら鍵項目の削除する(L1,[],_整列されたデータならび).

降順に並べ直しながら鍵項目を削除する([],X,X) :- !.
降順に並べ直しながら鍵項目を削除する([[_|L]|R],Y,X) :-
  降順に並べ直しながら鍵項目を削除する(R,[L|Y],X).

138 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 06:58:38 ]
>>137 (>>136) 改行してはいけないところで折り返してしまった。
% Prolog

'京都市の区ごとの人口(人)と面積(平方キロメートル)が記述されているデータがある'('ime.nu/ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10318.txt').


139 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 07:00:53 ]
>>138
どうしても、ダメだね。勝手に改行が入ってしまう。"ある"の後の改行は
ないことにして下さい。

140 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 07:14:48 ]
>>137 訂正
% Prolog Lines -> _区の名前・人口・面積ならび

区の名前,人口,面積のデータを格納する :-
  '京都市の区ごとの人口(人)と面積(平方キロメートル)が記述されているデータがある'(_ウェブサイト),
  get_split_lines(_ウェブサイト,[' '],_区の名前・人口・面積ならび),
  member([_区の名前,_人口,_面積],_区の名前・人口・面積ならび),
  assertz('京都市の区ごとの人口と面積のデータ'(_区の名前,_人口,_面積)),
  fail.
区の名前,人口,面積のデータを格納する.


141 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 08:14:28 ]
>>136
% Prolog

人口が最大の区と最小の区の、名前と人口(_人口が最大の区の名前,_人口が最大の区の人口,_人口が最小の区の名前,_人口が最小の区の人口) :-
  findmax([_人口,_区の名前],京都市の区ごとの人口と面積のデータ(_区の名前,_人口,_),[_人口が最大の区の人口,_人口が最大の区の名前),
  findmin([_人口,_区の名前],京都市の区ごとの人口と面積のデータ(_区の名前,_人口,_),[_人口が最小の区の人口,_人口が最小の区の名前).

面積が最大の区と最小の区の、名前と面積(_面積が最大の区の名前,_面積が最大の区の面積,_面積が最小の区の名前,_面積が最小の区の面積) :-
  findmax([_面積,_区の名前],京都市の区ごとの人口と面積のデータ(_区の名前,_,_面積),[_面積が最大の区の面積,_面積が最大の区の名前),
  findmin([_面積,_区の名前],京都市の区ごとの人口と面積のデータ(_区の名前,_,_面積),[_面積が最小の区の面積,_面積が最小の区の名前).

人口密度が最大の区と最小の区の、名前と人口密度(_人口密度が最大の区の名前,_人口密度が最大の区の人口密度,_人口密度が最小の区の名前,_人口密度が最小の区の人口密度) :-
  findmax([_人口密度,_区の名前],(京都市の区ごとの人口と面積のデータ'(_区の名前,_人口,_面積),_人口密度 is _人口 / _面積),[_人口密度が最大の区の人口密度,_人口密度が最大の区の名前),
  findmin([_人口密度,_区の名前],(京都市の区ごとの人口と面積のデータ'(_区の名前,_人口,_面積),_人口密度 is _人口 / _面積),[_人口密度が最小の区の人口密度,_人口密度が最小の区の名前).

142 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 08:38:12 ]
>>141
ほとんどの場合これで済ませてしまいますが、本当は正しくない。
これだと、同一の人口、面積、人口密度が生じた時、名前の小さいまたは大きいもの
が採られてしまいます。正しい処理は、

人口が最大の区と最小の区の、名前と人口(_人口が最大の区の名前,_人口が最大の区の人口,_人口が最小の区の名前,_人口が最小の区の人口) :-
  findmax(_人口,京都市の区ごとの人口と面積のデータ(_,_人口,_),_最大の人口),
  findall([_区の名前,_最大の人口],京都市の区ごとの人口と面積のデータ(_区の名前,_最大の人口,_),L1),
  findmin(_人口,京都市の区ごとの人口と面積のデータ(_,_人口,_),_最小の人口),
  findall([_区の名前,_最小の人口],京都市の区ごとの人口と面積のデータ(_区の名前,_最小の人口,_),L2),
  member([_人口が最大の区の名前,_人口が最大の区の人口],L1),
  member([_人口が最小の区の名前,_人口が最小の区の人口],L2).

% なら、人口が同一の区があっても正しく解が得られます。




143 名前:デフォルトの名無しさん mailto:sage [2010/01/02(土) 13:54:46 ]
pc12.2ch.net/test/read.cgi/tech/1197620454/553
# (問題)
# 社員データを一元管理するためのサーバークライアントシステムを作れ
# 要求仕様)
# 管理するデータは社員番号、氏名、所属、入社年月日
# クライアントから追加、削除、修正が行えること
# 管理データはCSV形式で保存すること


144 名前:デフォルトの名無しさん mailto:sage [2010/01/02(土) 22:13:02 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/557
# [1] 授業単元: 情報数学
# [2] 問題文(含コード&リンク):
# オイラー級数を用いて、πの近似値を求めよ。



145 名前:デフォルトの名無しさん mailto:sage [2010/01/02(土) 22:21:57 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/545
# [1] 授業単元:基礎プログラミング実習
# [2] 問題文(含コード&リンク):ime.nu/kansai2channeler.hp.infoseek.co.j
p/cgi-bin/joyful/img/10325.txt
# Step 3. 不偏分散を求める次の関数を定義する.
# float variance(float data[], int n) .この関数は,data[]配列に入っている
# n個のデータの不偏分散を求め,関数値としてその不偏分散値を返す.
# なお,不偏分散の計算に必要な平均値は,関数average()を呼び出して求めること.


146 名前:デフォルトの名無しさん mailto:sage [2010/01/02(土) 22:24:19 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/546
# [1] 授業単元: プログラミング応用
# [2] 問題文(含コード&リンク):
# 任意の奇数n(nは15以下)を入力しn×nの魔方陣を出力する。
# そして、作成した魔方陣の縦、横、斜めの合計値も同時に出力せよ。
# ただし、1は必ず一番左の列の真ん中に置くこと。
# (例)
# n=3の時
#           15
#   6  7  2 15
#   1  5  9 15
#   8  3  4 15
#  15 15 15 15



147 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 06:34:05 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/547
# [1] 授業単元: 情報数学
# [2] 問題文(含コード&リンク):
#
# 問)同時整数関係を見つけるプログラムを考えなさい。
# 整数の解を求めるプログラムと、複素数の解を求めるプログラムを考え、
#  それを組み合わせることで両方の解を同時に求め示すプログラムについて考えなさい。


148 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 06:39:51 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/545
# [1] 授業単元:基礎プログラミング実習
# [2] 問題文(含コード&リンク):ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10325.txt
# 一問目
#
# Step 1. scanf()を用いてfloat型の値を入力し,それを順番にdata[]配列に格納する.
# このdata[]配列は関数の呼び出し側で宣言するものとし,宣言した配列の要素数(入力可能なデータの最大個数)をmaxとして関数を呼び出すものとする.
# また,この関数は,データ入力数が最大のmax個に達するか,負値が入力されるまでデータ入力を繰り返すものとする.

149 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 06:43:39 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/545
# [1] 授業単元:基礎プログラミング実習
# [2] 問題文(含コード&リンク):ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10325.txt
# Step 2. 平均値を求める次の関数を定義する. float average(float data[], int n)
# この関数は, data[]配列に入っているn個のデータの平均値を求め,関数値としてその平均値を返す.

150 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 07:01:06 ]
pc12.2ch.net/test/read.cgi/tech/1248012902/692
# 【 課題 】キーワードからクロスワードを完成させる
# ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/867.zip
# 【 形態 】Javaアプリケーション(main()で開始
# <template>
#
# ■2□■■
# 1■□□□
# □□□■■
# 4■□□■
# ■□□3□
#
# <縦のかぎワード>
# コオリ
# ニホンカミ
# モモ
#
# <横のかぎワード>
# ウニ
# オデン
# ホクロ
# アミモノ
# カモ

151 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 07:45:45 ]
pc11.2ch.net/test/read.cgi/db/1252492296/381
# 弁護士の名前(name)とその人の所属法律事務所の名称(ofic)から成るテーブルがあるとして、
# 法律事務所は弁護士がひとりしかいないところから300人以上いるところまでさまざまなので、
# 「所属する弁護士の数が多い事務所トップ10」 の事務所名と人数を select一発で表示させるには
# どうすればいい?
#


152 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 19:57:09 ]
>>151
% Prolog は集約は得意としない。その場でこの述語を考えるのは負担が大きいので、
% 以下のような準備が必要だろう。SQLのcount(*)を解決する処理だが。

集約_数_逆順ならび([],L,L) :- !.
集約_数_逆順ならび([A|R1],L1,L) :-
  \+(member([_,A],L1)),
  集約_数_計測(A,R1,L2,1,Count),
  逆順整列([Count,A],L1,L3),
  集約_数_逆順ならび(L2,L3,L),!.

集約_数_計測(_,[],[],Count,Count) :- !.
集約_数_計測(A,[A|R1],L2,Count1,Count) :-
  Count2 is Count1 + 1,
  集約_数_計測(A,R1,L2,Count2,Count),!.
集約_数_計測(A,[B|R1],[B|R2],Count1,Count) :-
  \+(A = B),
  集約_数_計測(A,R1,R2,Count1,Count),!.

逆順整列(L,[],[L]) :- !.
逆順整列(L,[L1|R1],[L,L1|R1]) :-
  L @>= L1,!.
逆順整列(L,[L1|R1],[L1|R2]) :-
  逆順整列(L,R1,R2).

153 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 23:45:33 ]
>>151
使用言語:J
ofic=:;:'b a b b a a c d g h c x r t a d c g j u y w q'
]ofic=:ofic,;:'g v c f g v a d e x n u y t y r t a s w'
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|b|a|b|b|a|a|c|d|g|h|c|x|r|t|a|d|c|g|j|u|y|w|q|g|v|c|f|g|v|a|d|e|x|n|u|y|t|y|r|t|a|s|w|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
10{.\:~(~.,.~<@#/.~)ofic
+-+-+
|6|a|
+-+-+
|4|g|
+-+-+
|4|c|
+-+-+
|3|y|
+-+-+
|3|t|
+-+-+
|3|d|
+-+-+
|3|b|
+-+-+
|2|x|
+-+-+
|2|w|
+-+-+
|2|v|
+-+-+

154 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 05:15:18 ]
>>152 (>>151)
% Prolog 逆順ではなかった。降順だね。

集約_数_降順ならび([],L,L) :- !.
集約_数_降順ならび([A|R1],L1,L) :-
  \+(member([_,A],L1)),
  集約_数_計測(A,R1,L2,1,Count),
  降順整列([Count,A],L1,L3),
  集約_数_降順ならび(L2,L3,L),!.

集約_数_計測(_,[],[],Count,Count) :- !.
集約_数_計測(A,[A|R1],L2,Count1,Count) :-
  Count2 is Count1 + 1,
  集約_数_計測(A,R1,L2,Count2,Count),!.
集約_数_計測(A,[B|R1],[B|R2],Count1,Count) :-
  \+(A = B),
  集約_数_計測(A,R1,R2,Count1,Count),!.

降順整列(L,[],[L]) :- !.
降順整列(L,[L1|R1],[L,L1|R1]) :-
  L @>= L1,!.
降順整列(L,[L1|R1],[L1|R2]) :-
  降順整列(L,R1,R2).



155 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 05:37:34 ]
>>151
% Prolog

所属する弁護士の数が多い事務所トップ10(L) :-
  findall(_所属法律事務所,弁護士所属(_弁護士の名前,_所属法律事務所),L1),
  集約_数_降順ならび(L1,[],L2),
  length(L,10),
  append(L,_,L2).


156 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 07:10:58 ]
>>147
同時整数関係 -> 同次整数関係

であるとの訂正が出題スレに載っていました。


157 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 07:18:35 ]
>>151
使用言語:Io

Io> ofic:="b a b b a a c d g h c x r t a d c g j u y w q"
Io> ofic=ofic .. "g v c f g v a d e x n u y t y r t a s w"
Io> ofic=ofic split

Io> ofic uniqueCount sortBy(block(x,y,x at(1)>y at(1)))slice(0,10)
==> list(list("a", 6), list("c", 4), list("b", 3), list("d", 3), list("g", 3),
list("y", 3), list("t", 3), list("v", 2), list("r", 2), list("w", 2))

158 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 07:28:00 ]
>>109
% Prolog 出題から離れますが、2次元のリストの指定された列を取り出すユーティリティは

全ての行に対して位置指定により列を選択する(_,[],[]) :- !.
全ての行に対して位置指定により列を選択する(_選択する列位置ならび,[_行|R1],[L|R2
]) :-
  列の選択(_選択する列位置ならび,_行,L),
  全ての行に対して位置指定により列を選択する(_選択する列位置ならび,R1,R2).

列の選択([],_,[]) :- !.
列の選択([_列位置|R1],_行,[A|R2]) :-
  integer(_列位置),
  list_nth(_列位置,_行,A),
  列の選択(R1,_行,R2),!.
列の選択([A|R1],_行,R2) :-
  \+(integer(A)),
  B は A,
  integer(B),
  列の選択([B|R1],_行,R2),!.
列の選択([A|R1],_行,[B|R2]) :-
  \+(integer(A)),
  B は A,
  \+(integer(B)),
  列の選択(R1,_行,R2),!.

159 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 08:04:41 ]
>>158
list_nthは使わないで、第一引数を先にソートしてからやった方がいいと思う。


160 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 08:08:27 ]
>>159
列の選択の第二・三節で変な事をやっているので、ソートできないw

161 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 08:13:24 ]
そういうことか。それにしても危なっかしい仕様だな。


162 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 09:34:39 ]
>>12
使用言語:Scala

scala> def f1(n:Int):Int={var r=0;var a=n;while(a>0){r=10*r+a%10;a/=10};r}
f1: (Int)Int

scala> f1(987654321)
res72: Int = 123456789

scala> def f2(n:Int):Int={n.toString.reverse.toInt}
f2: (Int)Int

scala> f2(987654321)
res73: Int = 123456789

163 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 11:40:11 ]
>>144
使用言語:J

%:6*+/%2^~>:i.1000000
3.14159

164 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 12:24:50 ]
>>144
使用言語:Io

Io> r:=0;for(i,1,1000000,r=r+1/(i*i));(r*6)sqrt
==> 3.1415916986605086



165 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 16:24:30 ]
>>159
>>160 のような呑気なレスをつけてしまったが、取り出す順序が勝手に変わって
しまっては、後でmember/2などで取り出す時どうすればいいのかな?

166 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 17:10:15 ]
pc11.2ch.net/test/read.cgi/db/1252492296/377
#
# Aテーブル
# aaa|ddd
#
# Bテーブル
# aaa|bbb
#
# Cテーブル
# bbb|ccc
#
# Aテーブルに対して、カラムaaaでBテーブルが紐づき、
# Bテーブルに対して、カラムbbbでCテーブルが紐づくとします。
# (つまり、Aテーブルのレコード1件は、Bテーブルを経由してCテーブルのレコード1件と紐づく)
# ここで、A.ddd = 'X'のとき、C.ccc = 'Y'に更新したいのですが
# 下記の文であってますでしょうか?
# また、もっと効率のいい方法はありますでしょうか?
#
# update C set C.ccc = 'Y' where C.bbb in
# ( select B.bbb from B where B.aaa in
#  ( select A.aaa from A where A.ddd = 'X')
#  ( select A.aaa from A where A.ddd = 'X')
# )

167 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 17:17:02 ]
>>166
% Prolog

?- 'A'(A,'X'),'B'(A,B),(retract('C'(B,_)),fail;assertz('C'(B,'Y'))).

168 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 18:03:23 ]
>>167 (>>166)
% prolog (retract('C'(B,_)),fail;assertz('C'(B,'Y'))) の部分を

update(P,Q) :-
  functor(P,F,A),
  functor(Q,F,A),
  ( retract(P),fail;assertz(Q)).

が定義されているとして、

?- 'A'(A,'X'),'B'(A,B),update('C'(B,_),'C'(B,'Y')).

169 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 19:30:52 ]
pc12.2ch.net/test/read.cgi/tech/1248012902/695
# ime.nu/www1.axfc.net/uploader/Img/so/69253.jpg
# ime.nu/www1.axfc.net/uploader/Img/so/69254jpg
# 問題
# 次の画面のように、サーバとクライアントでの間で文字列を送り合う
# プログラムを作れ(サーバとクライアント両方とも)
#
# 【クライアント】      【サーバ】
# サーバのアドレスは     ポートは
# 202.48.53.27        12345
# ポートは          名前は
# 12345            syou
# 名前は           aikawa>Hello
# aikawa           syou>Hello
# aikawa>Hello
# syou>Hello
# aikawa>
#
# ただし、以下の条件を満たすようにすること
# クライアントでquitが入力された場合、クライアントは接続を切りプログラムを
# 終了し、サーバは接続が切れたら、次のクライアントの接続を待つ。
# サーバでquitが入力された場合、サーバは接続を切り、次のクライアントの
# 接続を待ち、クライアントは接続が切られたらプログラムを終了する
# エンターキーのみが入力された場合は、文字列を送らずもう一度文字列を
# 入力させて、その文字列を送るようにする

170 名前:デフォルトの名無しさん mailto:sage [2010/01/05(火) 00:05:28 ]
>>144
使用言語:Scilab

-->sqrt(6*sum(1.0 ./((1:1000000)^2)))
ans =

3.1415917

171 名前:デフォルトの名無しさん mailto:sage [2010/01/05(火) 07:52:32 ]
>>144
使用言語:Haskell

Prelude> sqrt $ 6*(sum[1/(x*x)|x<-[1..1000000]])
*** Exception: stack overflow

Prelude> sqrt $ 6*(sum[1/(x*x)|x<-[1..500000]])
3.141590743731832

172 名前:デフォルトの名無しさん mailto:sage [2010/01/05(火) 11:56:40 ]
>>151
使用言語:R

> ofic <- "b a b b a a c d g h c x r t a d c g j u y w q"
> ofic <- paste(ofic,"g v c f g v a d e x n u y t y r t a s w")
> ofic <- unlist(strsplit(ofic," "))

> head(sort(table(ofic),T),10)
ofic
a c g b d t y r u v
6 4 4 3 3 3 3 2 2 2

173 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 10:09:29 ]
>>116
% Prolog データ入力部分は省略

カードの合計が一致するまででたらめにN回以内交換する(0,_,_,_,_,[]) :- !,fail.
カードの合計が一致するまででたらめにN回以内交換する(N,AL,BL,AL,BL,[]) :-
  加算(AL,Sum1),
  加算(BL,Sum2),
  Sum1 = Sum2.
カードの合計が一致するまででたらめにN回以内交換する(N,AL,BL,X,Y,[[A,B,AL,BL]|Z]) :-
  RA is (random mod 3) + 1,
  RB is (random mod 3) + 1,
  ならびの回転(左方向,RA,AL,[A|R1]),
  ならびの回転(左方向,RB,BL,[B|R2]),
  N1 is N - 1,
  カードの合計が一致するまででたらめにN回以内交換する(N1,[B|R1],[A|R2],X,Y,Z).


174 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 15:52:03 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/572
# [1] 授業単元: 5元:プログラミング演習III
# 問題(5)
# 実行するとカラーダイヤログを表示し、選択したカラーをクリップボードに
# 送る処理を記述せよ



175 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 20:05:10 ]
>>174
使用言語:なでしこ

「#{HEX(色選択)}」をコピー

176 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 20:33:14 ]
>>174
使用言語:J

wd 'clipcopy "',(":3{.". wd 'mbcolor'),'"'

177 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 07:18:22 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/575
# [1]C言語入門
# [2]2つの複素数の和と積を計算して表示するプログラムを作成せよ。
# 構造体complexを定義し、和の複素数を返すadd関数、積の複素数を返すmul関数、複素数を表示するprint関数をそれぞれ作成し
# mainでは2つの複素数をキーボードから読み込み、関数を呼ぶ。
# 虚数部にはiを付加せよ。

178 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 07:29:05 ]
pc11.2ch.net/test/read.cgi/db/1252492296/393
# SELECT文について質問です。
# テストデータ
# 名前 |1回目点数|2回目点数|
# ----+--------+--------|
# 田中 | 100    | 90     |
# 鈴木 | 80      | 80     |
#
# 成績マスタ
# 成績 | 点数 |
# ----+-------|
# A   | 100   |
# B   |  90   |
# C   |  80   |
# ・欲しい結果
# 名前 |成績(1回目)|成績(2回目)|
# ----+---------+---------|
# 田中 | A     | B     |
# 鈴木 | C     | C     |
# ・説明 2TABLEを連結してSELECTしたいのですが、テストデータの点数を
# 下に、成績マスタから(1回目)と(2回目)の値をひっぱってくるには
# どう書けばよいでしょうか。


179 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 07:41:15 ]
>>178
% Prolog 引数を順に処理する場合、それぞれ副目標を明示的に立てる。

テストデータ(田中,100,90).
テストデータ(鈴木,80,80).

成績マスタ('A',100).
成績マスタ('B',90).
成績マスタ('C',80).

欲しい結果(_欲しい結果) :-
  findall([_氏名,_一回目成績,_二回目成績],欲しい結果(_氏名,_一回目成績,_二回目成績),_欲しい結果).

欲しい結果(_氏名,_一回目成績,_二回目成績) :-
  テストデータ(_氏名,_一回目点数,_二回目点数),
  成績マスタ(_一回目成績,_一回目点数),
  成績マスタ(_二回目成績,_二回目点数).

180 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 09:43:07 ]
>>178
% Prolog 元スレでpc11.2ch.net/test/read.cgi/db/1252492296/393
% 成績マスタは以下のような範囲型にしたかったのではないか、との指摘があった。

テストデータ(田中,100,90).
テストデータ(鈴木,80,80).

成績マスタ('A',91,100).
成績マスタ('B',81,90).
成績マスタ('C',71,80).

欲しい結果(_欲しい結果) :-
  findall([_氏名,_一回目成績,_二回目成績],欲しい結果(_氏名,_一回目成績,_二回
目成績),_欲しい結果).

欲しい結果(_氏名,_一回目成績,_二回目成績) :-
  テストデータ(_氏名,_一回目点数,_二回目点数),
  成績マスタ(_一回目成績,_点数下限1,_点数上限1),
  _一回目成績 >= _点数下限1,
  _一回目成績 =< _点数上限1,
  成績マスタ(_二回目成績,_点数下限2,_点数上限2),
  _二回目成績 >= _点数下限2,
  _二回目成績 =< _点数上限2.

181 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 09:49:26 ]
>>180 (>>178)
% Prolog このような場合、RDBからは遠くなるが、

テストデータ(田中,100,90).
テストデータ(鈴木,80,80).

成績マスタ('A',_点数) :- _点数 >= 91,_点数 =< 100.
成績マスタ('B',_点数) :- _点数 >= 81,_点数 =< 90.
成績マスタ('C',_点数) :- _点数 >= 71,_点数 =< 80.

欲しい結果(_欲しい結果) :-
  findall([_氏名,_一回目成績,_二回目成績],欲しい結果(_氏名,_一回目成績,_二回目成績),_欲しい結果).

欲しい結果(_氏名,_一回目成績,_二回目成績) :-
  テストデータ(_氏名,_一回目点数,_二回目点数),
  成績マスタ(_一回目成績,_一回目点数),
  成績マスタ(_二回目成績,_二回目点数).

% の方がPrologの特性を生かしたコードといえるだろう。

182 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 13:10:38 ]
>>177
使用言語:J

add=:dyad def 'x+y'
mul=:dyad def '(-/x*y),+/y*|.x'
print=:monad def 'smoutput (":y),''i'' '

a=: 1 2
b=: 3 4

print a add b
4 6i
print a mul b
_5 10i

NB.標準サポートの複素数の場合
datatype 1j2
complex
1j2 + 3j4
4j6
1j2 * 3j4
_5j10

183 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 16:55:46 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/582
# 【質問テンプレ】
# [1] 授業単元:セミナー
# [2] 問題文(含コード&リンク):∫(x=0,4)∫(y=0,3)∫(x=0,2) 4*x^3 + x*y^2 + 5*y + y*z + 6*z dz dy dx
#  を解くプログラムを書け

184 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 18:27:21 ]
>>183
使用言語:maxima

(%i1) integrate(integrate(integrate(4*x^3+x*y^2+5*y+y*z+6*z,z,0,2),y,0,3),x,0,4);
(%o1) 2040

x= が2回出てきますが、2回目のx= は勝手にz= と解釈しました。



185 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 20:30:55 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/588
# [1] 授業単元: 情報プログラム
#
# [2] 問題文(含コード&リンク):
#   次の関数の積分を、台形公式を使って求めたい。
#   ただし、積分区間は(0,2)きざみ幅はh=0.01とする。
#   f(x)=(4-x2)1/2
#
#  ※台形公式は積分区間を(a,b)とすると n=(b-a)/h
# S=h*{1/2(f(a))+f(b))+f(a+h)+f(a+2h)+…+f(a+(n-1)h}となる。
#


186 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 05:28:41 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/604
# [1] 授業単元: 演習チャレンジ問題
# [2] 問題文(含コード&リンク):
# あるint型配列array[256]の中身をランダムシャッフルしたい。
# 0〜127の範囲の値を被らずに出す乱数関数randEx(Seed, i)を作成せよ。(iは0〜127)
# ※Seedを変えることにより、異なるパターンのランダム列が出るようにする。
# ※array[i]とarray[128+randEx(Seed, i)]をスワップすることで並列計算において一気にシャッフルするのが目的です。
# ※「スワップするかしないか」の部分は別なので考えなくて良いです。

187 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 07:53:39 ]
pc11.2ch.net/test/read.cgi/db/1252492296/397
# 基本的なことで申し訳ないんですけど、
# あるテーブルから特定のデータが1件でも存在するかどうかの判断をしたいのですが 、
# COUNT()はテーブル内の全部のレコードを検索してしまうので、もっと高速でスマー トな方法は無いか存じないでしょうか。
#



188 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 08:03:41 ]
>>187
% Prolog (!)に意味があります。

あるテーブルから特定のデータが1件でも存在するかどうかの判断する(Q) :- call(Q),!.

189 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 08:08:37 ]
>>187
% Prolog テーブル名,引数ならびとして与えられたら、

あるテーブルから特定のデータが1件でも存在するかどうかの判断する(_テーブル名,_引数ならび) :-
  Q =.. [_テーブル名|_引数ならび],
  call(Q),!.

190 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 08:14:23 ]
>>187
% Prolog >>189は単位節データベースの自然なコードだが、条件が付加されていて、
% そこに副作用を生じる目標が記述されている懸念がある場合は、clause/2を使う。

あるテーブルから特定のデータが1件でも存在するかどうかの判断する(_テーブル名,_引数ならび) :-
  Q =.. [_テーブル名|_引数ならび],
  clause(Q,_),!.

191 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 08:31:47 ]
>>187
% Prolog >>190にさらに条件を付加したい場合は、_条件として引数の条件、あるいは
% 引数と引数の関係を記述します。

あるテーブルから特定のデータが1件でも存在するかどうかの判断する(_テーブル名,_引数ならび,_条件) :-
  Q =.. [_テーブル名|_引数ならび],
  clause(Q,_),
  call(_条件),!.

192 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 10:54:08 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/606
# プログラミングの問題なんですが、if文と繰り返し(for,whileのいずれか)を利用して次の問題を作成します。
#
# 米ドル紙幣としては次のような紙幣とコインがある。
# 100ドル、50ドル、20ドル、10ドル、5ドル、2ドル、1ドル
# 50セント、25セント、10セント、5セント、1セント
#
# 問題は、キーボードから日本円を入力し、まずドルに変換した後ドルを最適な紙幣とコインに振り分けるプログラムを作成しなさい。但し1ドルを92.69円として換算しなさい。そして、日本円が0円の時にプログラムを終了する。

193 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 11:02:14 ]
>>186
使用言語:J

randEx=:dyad def 'y{?~128[(9!:1)x'
123 randEx 0
126
123 randEx 1
57
8 16 $ 123 randEx i.128
126 57 86 113 124 79 46 115 67 27 101 54 70 4 30 5
62 98 31 121 11 9 119 50 75 89 71 117 68 74 108 81
22 47 34 102 55 3 48 105 96 122 52 110 85 88 14 58
116 84 1 82 118 20 39 44 19 41 28 93 16 78 92 87
17 104 6 123 109 23 40 100 91 73 24 111 106 38 80 94
83 56 60 33 42 15 66 13 72 64 32 8 103 77 29 112
18 76 25 10 125 127 65 51 37 43 97 0 35 36 120 45
2 90 26 12 99 114 21 63 7 95 59 69 61 107 49 53
321 randEx 0
116
321 randEx 1
46
8 16 $ 321 randEx i.128
116 46 112 67 45 53 9 7 106 114 82 3 20 86 77 110
113 42 1 29 117 18 93 58 38 52 90 15 79 97 25 50
99 49 27 51 126 89 111 16 115 119 4 39 19 76 54 118
0 108 65 125 47 55 63 14 88 103 73 48 30 23 59 87
5 33 101 36 91 12 22 95 24 43 74 37 69 26 28 57
68 94 11 32 122 92 100 66 104 34 123 17 75 13 40 2
60 56 70 98 64 62 84 80 109 35 85 121 105 61 102 44
8 71 96 124 107 41 83 21 127 10 120 78 6 31 72 81

194 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 16:35:48 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/620
# [1] 授業単元: プログラミング演習
# [2] 問題文(含コード&リンク):掃き出し法。
#   0,1のみを成分にもつn次正方行列Aが2重リストとしてある。Aにmod2の行基本変形を施して、階段行列に変形するプログラム




195 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 17:20:51 ]
>>183
使用言語:Yacas

In> Integrate(x,0,4)Integrate(y,0,3)Integrate(z,0,2)4*x^3+x*y^2+5*y+y*z+6*z
Out> 2040

196 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 18:26:58 ]
>>183
使用言語:Axiom

(8) -> integrate(integrate(integrate(4*x^3+x*y^2+5*y+y*z+6*z,z=0..2),y=0..3),x=0..4)

(8) 2040

197 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 23:10:58 ]
>>192
使用言語:J

a=:10000 50000 20000 1000 500 200 100 50 25 10 5 1
b=:<;._1' 100$ 50$ 20$ 10$ 5$ 2$ 1$ 50C 25C 10C 5C 1C'
f=:}:@;@(((}:@>@{.,(0,{.@>@}.)#:{:@>@{.);}.@>@{:)^:(#@>@}.))
g=:3 :'((b#~*),.;/@-.&0)f a;~<.y%0.9269'

g 1980
+---+-+
|10$|2|
+---+-+
|1$ |1|
+---+-+
|25C|1|
+---+-+
|10C|1|
+---+-+
|1C |1|
+---+-+

198 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 23:18:24 ]
>>197
テーブルのデータ間違えました。訂正します。

> a=:10000 50000 20000 1000 500 200 100 50 25 10 5 1

a=:10000 5000 2000 1000 500 200 100 50 25 10 5 1

199 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 23:36:00 ]
>>171
foldl' 使えば

Prelude> :m +Data.List
Prelude Data.List> sqrt $ 6*(foldl' (+) 0 [1/(x*x)|x<-[1..1000000]])
3.14159169866051

200 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 08:09:47 ]
>>199

foldl' というは知らなかったので、調べてみたら、

第9回 Haskellはなぜ遅いと思われているのか - 本物のプログラマはHaskellを使う:ITpro
itpro.nikkeibp.co.jp/article/COLUMN/20070403/267180/?ST=develop&P=1

に sum でスタックオーバーフローする例がのっていました。
正直、まだよくわかっていません。
どうして sum の定義にこの foldl' の方を使わないのかな。
なんか他に問題がでてくるのかな。

201 名前:デフォルトの名無しさん [2010/01/09(土) 21:09:52 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/633
# [1]授業単元:プログラミング2
# [2]問題文:2つの最大50桁の実数を入力し、その和・差・積を求めるプログラム

202 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 04:48:39 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/636
# [1] 授業単元:数値計算
# [2] 問題文(含コード&リンク): ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10342.txt
#
# 3元連立非線形方程式
#
# x_1^2 + x_2^2 + x_3^2 - 4 = 0
# x_1^2 - 2x_1 + x_2^2 + x_3 - 2 = 0
# x_1^2 + sin^2x_2 + x_3^2 - 3 = 0
#
# を解くNewton法のC++のプログラムをつくり、領域 0 < x_1,x_2,x_3 < 2 にある解を求めよ
# ただし、Jacobianの計算に必要となる偏導関数は数値微分により計算し、連立1次方程式の解法には
# Gaussの消去法あるいはLU分解法を用いること

203 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 04:54:14 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/637
# [1] 授業単元:コンピュターグラフィック
# [2] 問題文(含コード&リンク):
# 1次元配列を2次元配列に・2次元配列を1次元配列に変換する二つのモジュール
# ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10343.txt
#
# int Conv_1Dto2D(unsigned char *src, unsigned char dest[][X_SIZE])
# /*機能 : src を dest に格納する。戻り値は格納した要素数
# src: ソースとなる 1 次元配列
# dest: 格納先となる 2 次元配列
# */
#
# int Conv_2Dto1D(unsigned char src[][X_SIZE], unsigned char *dest)
# /*機能 : src を dest に格納する。戻り値は格納した要素数
# src: ソースとなる 2 次元配列
# dest: 格納先となる 1 次元配列
# */



204 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 04:55:40 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/639
# [1] アルゴリズム
#
# [2] 自然数の数列を入力し
# 数列内にあるnよりも大きい数と小さい数が
# nの前後にそれぞれ一つ以上ある場合、そのnを出力する。
#
# フローチャートは以下です。
#
#     順数列の入力
#     ↓      ↓
# 数列数が5以上 4以下→終了(4以下のときどれも除外できないので)
#     ↓
# 数列の中で最大最小の値と
# 最初と最後に入力した値は除外できる。
#     ↓
# 残りの数値に前後に大小の値が一つ以上あれば除外
#     ↓
# 残った値を表示して終了




205 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 04:59:12 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/644
# [1]授業単元:プログラミング2
# [2]問題文:次のような10×10の半角文字+を碁盤の目として、一対コンピュータで五目並べ
#      をするプログラムを作成せよ。碁石を表す文字は、半角の@,0を用いよ。
#
#    abcdefghij
# a++++++++++
# b++++++++++
# c+++++@++++
# d++++++0+++
# e++++++++++
# f++++++++++
# g++++++++++
# h++++++++++
# i++++++++++
# j++++++++++
# @の場所は、cf , 0の場所は、dg とあらわす
#
# ・人とコンピュータのどちらかが先手になるか選択できる
# ・先手の33を禁止する
# ・勝敗の判定ができる。(置く場所がなくなったら引き分けとする)
# ・コンピュータは人が3と4を作った場合、それを止める場所におく
# ・すでに石がおいてある場所に人が石を置こうとした場合、再入力を促す。

206 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 05:04:02 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/645
# [1] 授業単元:プログラミング実習a
# [2] 問題文(含コード&リンク): ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10346.txt
#
# 実行例のとおりに,自分で五つの問題文を入力して練習するタイピング練習ソフトを
# 作成せよ.ただし,問題文は入力した五つの中から10題がランダムに出題されるものと
# し,最後に正解数を表示すること.
#
# 実行例 (下線部はユーザーの入力)
#
# 20文字までの問題文を五つ入れてください
#
# 1つ目の問題文:abcdefghijkl
#
# 2つ目の問題文:January
#
# 3つ目の問題文:xxyyzz0368GST
#
# 4つ目の問題文:MondayFriday
#
# 5つ目の問題文:qwerty.uiop,RTYU



207 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 05:08:37 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/640
# [1] 授業単元:Cプログラミング
# [2] 問題文(含コード&リンク):ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10344.txt
#   2つの名前を入力してステータス(ランダム)を決定し 途中経過を表示し
#               攻撃が当たった時は文字色を変える
#
# 24行程度に纏められないため、問題文のリンクを直接参照してください

208 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 05:11:10 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/642
# [1] 初級C言語実習
# [2] 次の関数copyStringを同じ動作をするように書き換えよ。ただし変数の追加、削除(未使用を含む)
# if文(三項演算子を含む)while,do while,for文 goto文を使用してはならない。
# char *copyString(char *s){
# char *p=s,*t=s,tmp;
# if(s==NULL)return NULL;
# while(*p++); p--;while(!*p)p--;
# while(p>s){tmp=*p;*p--=*s;*s++=tmp;}
# return t;
# }


209 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 12:25:56 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/659
# [1] 授業単元: オペレーティングシステム
# [2] 問題文(含コード&リンク):
# fork,exec*システムコールを用いて簡単なコマンドインタープリタ
# (mysh)を作成せよ。但し、作成するコマンドインタープリタは以下の
# 機能をサポートすること。
# ・設定ファイル(.path)にコマンドサーチパスを指定することが出来る。
# なお、ファイル内のパスの指定方法は、各自が考え定義すること。
# (パスにないコマンドを入力した場合には、見つからない旨のエラー
# メッセージを出力すること。)
# ・パイプを利用して複数(可変個)のコマンドの入出力を結合する
# ことができる。
# ・リダイレクションを使用してコマンドへの入力をファイルから得たり、
# ファイルへ出力したりすることができる
# ・コマンド実行中にCtrl-Cを入力すると、現在のコマンドの実行を
# 中断する
# ・exitを入力すると、myshを終了する。
#


210 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 05:10:41 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/676
# [1] 授業単元:データ構造とアルゴリズム
# [2] 問題文(含コード&リンク):prolog.asia/img/shinryoshitsu.pdf
#


211 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 05:15:57 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/678
# [1] 授業単元: 基礎プログラミングおよび演習
# [2] 問題文(含コード&リンク): ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10352.txt
#
# あるWebページに対する24時間分の閲覧者の名前、閲覧開始時刻および閲覧継続時間を表す「閲覧データ」があるとしよう。
# 1名以上の閲覧データから、閲覧している人数がもっとも多い30分刻みでの時間帯を求め、そのときの閲覧者名を印字する
# プログラムを作成せよ。状況によっては日をまたぐこともあるが、ここではどの時間帯に閲覧が多いのかを知りたいので
# 日の違いは考えなくてよい。各閲覧データは標準入力から、
#
# 閲覧者名
# 閲覧開始時刻 閲覧継続時間
#
# の2行で与えられる。ここで閲覧者名は英小文字2文字の後に4桁の数字が続く。閲覧開始時刻は24時間制での時を100倍し、
# 分を加えた数を表す4桁の数字、閲覧継続時間は分を表す高々3桁の数字である。時刻および時間は30分刻み(つまり0分か30分)
# である。たとえば、
#
# ku7535
# 0130 60
#
# は、名前がku7535、開始時刻が1時30分、継続時間が60分、つまり1時30分から2時30分直前まで閲覧していたことを表す。
#  まず閲覧データに対する構造体 user を定義し、それを要素とする大きさNの大域的な配列 users を用意せよ(Nはマクロ
# である)。次に、N人分のデータを読み込むか、閲覧者名としてアスタリスク(*)が与えられるまで、標準入力から閲覧データを
# 読み込み、配列 users にセットするとともに閲覧データを返す関数 int read_users(void) を作成せよ。最後に配列 users の
# 先頭からn個の閲覧データを対象に、24時間中で最大人数が閲覧している30分刻みでの時間帯と、そのときの閲覧者名を印字
# する関数 void print_prime_time(int n) を定義せよ。ただし最大閲覧者数となる時間帯は一般に複数あることに注意すること。
# さらに以下のmain関数と組み合わせてプログラムを作成せよ。

212 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 05:24:23 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/685
# [1] 授業単元:プログラミング
# [2] 問題文(含コード&リンク):2つの名前を入力しステータス(ランダム)を決定し 勝敗表示する。
#



213 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 19:56:43 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/703
# [1] 授業単元: C
# [2] 問題文(含コード&リンク):
#   100以下の素数をすべて出力するプログラムを作りたい。
# 自然数xに対して2以上で√x以下の素数で割り切れない数が素数である。ただし1は素数でも合成数でもない。

214 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 19:58:48 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/710
# [1] 授業単元: プログラミング演習
# [2] 問題文(含コード&リンク): 数値には初期値が与えられている。
#                この配列を昇順に並べ替えるプログラムを作成しなさい。
#
# 表示結果: 数値[00]=80
# 数値[01]=40
# 数値[02]=23
# 数値[03]=69
# 数値[04]=10
#
#  ソート後
# 数値[01]=10
# 数値[02]=23
# 数値[03]=40
# 数値[04]=69
# 数値[03]=80




215 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 08:12:02 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/714
# 1] 授業単元: プログラミング演習
# [2] 問題文(含コード&リンク): ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10353.txt
#
# 連立1次方程式の一般的な数値解法にはGaussの単純消去法がある。
# この方法についてアルゴリズムを調べ下記の連立1次方程式を例に解法手順をC言語で表示せよ。
#
# 方程式
# x1 + 5x2 + x3 =2
# 3x1 + 4x2 = 2
# 9x1 + 10x2 +4x3 = 8

216 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 08:13:26 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/715
# [1] 授業単元:プログラミング実習
# [2] 問題文(含コード&リンク):
# 文字列text[]と文字列pat[]が与えられたとき、文字列text中に文字列patが含まれるときは最初に現れるその文字列の先頭の位置(0〜)を返し、含まれないときは-1を返す関数searchを作成せよ。
# また、その関数を用いて、2つの文字列text[]とpat[](空白は含まない)を入力すると関数searchの値を返すプログラムを作成せよ。ここでtextとpatには長さ1以上の文字列が入っているものとする。
# (例:text[]="thisisatesttextdata"の中に、pat[]="this"は0の位置に、pat[]="test"は7の位置に現れる。)
#


217 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 08:14:57 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/718
# [1] 授業単元: C言語演習
# [2] 問題文(含コード&リンク): 再帰を使って自然対数の底eを求めるプログラムを作成しなさい
# 下記のようにnを0から30まで増加させながら
# n=0のときe=1/0! n=30のときe=1/0!+1/1!+1/2!+1/3!+……1/30! の計算を行い下 のように表示しなさい
#
# n=0:e=1.000000000000000
# n=1:e=2.000000000000000
# ・
# ・
# n=30:e=2.718281828459046
#



218 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 08:17:00 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/722
# [1]授業単元:プログラミング2
# [2]問題文:以下の機能を備えた対コンピュータの五目並べを作成せよ
#  ・置く場所を縦と横の数字で指定する
# ・人とコンピュータのどちらかが先手になるか選択できる
# ・先手の33を禁じる
# ・勝敗の判定ができる(置く場所がなくなったら引き分け)
# ・コンピュータは人が3と4を作った場合、それを止める場所に石を置く
# ・すでに石がおいてある場所に人が石を置こうとした場合、再入力を促す



219 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 08:21:25 ]
pc12.2ch.net/test/read.cgi/tech/1248012902/705
# 【 課題 】自然言語処理、構文解析のCYK法のプログラム
# 【 形態 】1. Javaアプリケーション(main()で開始)
# 【 期限 】2010/01/18
# 【 Ver  】java version "1.6.0_17"
# 【 用語 】CYK法  ime.nu/ja.wikipedia.org/wiki/CKY%E6%B3%95


220 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 08:48:39 ]
pc12.2ch.net/test/read.cgi/tech/1024024666/548
# このスレにあった10行囲碁ソースを元に作ってみようかな。
# 展開して調べたら、あれに入ってる評価関数は
#
# 石数に比例するもの
# ・石が取れる
# ・アタリにいける
# ・囲いにいける
# ・隣接させる

221 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 20:38:24 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/739
# [1] 授業単元: プログラミング
# [2]問題文:ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyf0355.txt
# ★演習問題1*
# 次の仕様に従って,生徒の科目得点から平均点と評価を求め,出力フォームのように両面表示するプログラムを作成せよ
# (仕様)
# (a)プログラムに組み込むデータについては,構造体の初期値として与え,
# メンバは,生徒番号,各科目点数,平均点,評価で,次のとおりとすること。
# (b)処理手順は,次のとおりとすること,
# 生徒番号 国語 数学 理科 社会
# 1001    85  74  63  90
# 1002    78  65  70  62
# 1003    89  92  88  76
# 1004    32  48  66  25
# 1005    92  76  81  98
# 各人の4科目の平均点を求め,構造体に格納すること
# 各人の評価を求め,構造体に格納すること,尚,4段階の評価基準は,次のとおとすること
# 平均点       評価
# 80点以上       A
# 70点以上80点未満   B
# 60点以上70点未満 C
# 60点未満 D


222 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 22:05:13 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/739
# [1] 授業単元: プログラミング
# [2]問題文:ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyf0355.txt
# ★演習問題2*
# 構造体を用いて,2個の複素数(x=1.0十2.0i,x=2.0十1.0i)の和と積
# を求めるプログラムを構造体を用いて作成せよ.
#  (出力結果例)
#
# X=1.0+2.0i
# y=2.0+1.0i
# x+y=3.0+3.0i
# x+y=0.0+5.0i

223 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 22:08:32 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/739
# [1] 授業単元: プログラミング
# [2]問題文:ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyfmg/10355.txt
# ★演習問題3
# 次の手順に従ってプログラムを作成せよ.
#  (a)mainO関数の処理
# (a.l)以下の11個の点数を配列として持つ.ただし,最後の-1はストッ
# パーとする.(a.2)この配列を「成績データ取得関数」にアドレス渡しする。
#  78 86 56 77 47 63 94 37 50 74 -1
# (a,3)成績データ取得関数」より,次の構造体を返却値にして,最高点,最低点均点を得る。
# (a.4)最高点、最低点、平均点を表示する。
#  (a)成績データ取得関数の処理
# (b.1)引数で渡された点数が-1になるまでループし,最高点,最低点,合
#    計点,点数総数を求める.
# (b.2)合計点と点数総数から平均点を求める.
# (b.3)最高点、最低点、平均点を上記(a.3)と同じ型の構造体にセットし
#    て返却する.
# (出力結果例)
# 最高点=94
# 最低点=37
# 平均点=66.2

224 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 22:11:53 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/741
# [1] 授業単元: プログラミング2
# [2]問題文:ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyfmg/10356.txt
# 下図(A)のテキストファイルは、ある実験を行ったときのメモであり、
# 実験の年月日と使用した材料及びその使用量が記載されている(スペースは全て半角スペース)。
# そこでこのファイルを読み込んで、最も多くの量を使用した材料の記号とその合計量、及び1回当たりの平均使用量を、
# 図(B)に示すような別のテキストファイルに書き出すプログラムを作成せよ。なおこの実験で使用する材料はA、B、Cの3種類のみである。
#
# プログラム作成に際しては、次の条件を満たすものとする。
# ・入力用のファイル名はJikkenMemo.txtで固定とし、一々キーボードからは指定しない。
# ・出力用のファイル名はキーボードから任意の名前で指定する。
# ・JikkenMemo.txtでは今回は13回分の実験が書き込まれているが、今後の実験の追加にも対応できるようにすること(即ち13行に限定しないこと)。
# ・出力ファイルにおける使用量の単位gは数値の後につける。
# ・出力ファイルにおける数値の表示はいずれも小数点以下1桁までとする。
#
# (補足)
#  キーボードから入力した1文字がAという文字であるとき「Aです」と表示させるには、
#   char cc;
#   scanf("%c",&cc);
#   if(cc=='A') printf("Aです\n");
# とすればよい。




225 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 05:20:50 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/744
# [1] プログラミング
# [2] 0から10の中からランダムに整数の2組を決める。それを平面上の座標と、座標を10個つくる。
# ユーザに座標を入力させ、その点から最も遠い点と近い点を求める。
# 最も近い点がユーザが入力した点と重なったら◎を出力する。
# 結果は下記のように出力。
# △
#                 △
#      △
#                       × ○
#
#
#
# ●
#
# ×:ユーザが入力した点
# ○:最も近い点
# ●:最も遠い点
# △:それ以外の点
#


226 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 06:30:13 ]
>>224 (補足)
#  キーボードから入力した1文字がAという文字であるとき「Aです」と表示させるには、
#   char cc;
#   scanf("%c",&cc);
#   if(cc=='A') printf("Aです\n");
# とすればよい。
# 図(A) 読み込み用ファイルの内容
# 実験メモ
# 年 月 日 材料 使用量[g]
# 2007 9 28 C 289.1
# 2007 10 4 A 254.3
# 2007 10 8 B 187.4
# 2007 10 15 A 211.3
# 2007 10 16 C 400.8
# 2007 10 18 B 34.2
# 2007 10 25 C 343.6
# 2007 10 31 A 102.6
# 2007 11 6 A 155.2
# 2007 11 12 B 87.5
# 2007 11 20 C 98.7
# 2007 11 27 A 177.8
# 2007 11 28 C 44.7
# 図(B) 出力ファイルの内容例
# (仮に、最も多く使用した材用がAで、合計使用量が100.0g、1回の平均使用量が10.0gであった場合)
# 最多使用材料A
# 合計使用量 100.0g
# 平均使用量 100.g


227 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 18:17:53 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/750
# [1] 授業単元: 情報科学(C言語)
# [2]問題文:ime.nu/www.f.csce.kyushu-u.ac.jp/~ogi/kougi/10.pdf
# 課題10
# 関数sasho は第1引数と第2引数の数値(実数)の差と商を計算し,差を
# 第3引数で与えられる場所に,商を第4引数で与える場所に格納し,第2
# 引数が0 の場合は0,その他の場合は1 を返す関数である(第2引数が
# 0 の場合は,商の計算はしない).関数sasho を定義し,main 関数で
# は,2つの実数を入力して,sasho を利用して,2数の差と商を表示する
# (sasho の帰り値が0 の場合は差のみを表示)プログラムを作成せよ.

228 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 18:20:47 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/752
# 1] 授業単元: プログラミング
# [2]問題文:ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyfmg/10358.txt
#
# ★演習問題1
# 構造体を用いて,2個の複素数(x=1.0十2.0i,x=2.0十1.0i)の和と積
# を求めるプログラムを構造体を用いて作成せよ.
#  (出力結果例)
#
# X=1.0+2.0i
# y=2.0+1.0i
# x+y=3.0+3.0i
# x+y=0.0+5.0i


229 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 18:22:30 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/752
# 1] 授業単元: プログラミング
# [2]問題文:ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyfmg/10358.txt
#
# ★演習問題2
# fgetc関数とfputc関数を使って,テキストファイルの内容を,別のテキ
# ストファイルにコピーするプログラムを作成しなさい.確認のため,元の
# ファイルとコピーされたテキストファイルの中身の内容を画面にそれぞれ
# 出力せよ.


230 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 18:24:44 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/752
# 1] 授業単元: プログラミング
# [2]問題文:ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyfmg/10358.txt
# ★演習問題3
# 氏名,年齢,性別が5人分書かれた次のようなテキストファイルを読み
# 込んで、両面に表示するプログラムを作成せよ.このとき,構造体を利用
# せよ.
#  (入力ファイル:test.txtの中身)
#
# Tanaka 31 Man
# Kawai 24 Man
# Suzuki 22 Woman
# ltoh 40 Woman
# Sugita 37 Man


231 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 18:26:54 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/752
# [1] 授業単元: プログラミング
# [2]問題文:ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyfmg/10358.txt
# ★演習問題4
# 九九表を作り,テキストファイルに書き出すプログラムを作成せよ
#  (出力ファイル:test.txtの中身)
#
# 1 2 3 4 5 6 7 8 9
# 2 4 6 8 10 12 14 16 18
# 3・・・・・・・・・・・
# 4・・・・・・・・・・・
# 5・・・・・・・・・・・
# 6・・・・・・・・・・・
# 7・・・・・・・・・・・
# 8・・・・・・・・・・・
# 9・・・・・・・・・・・
#
#


232 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 18:27:52 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/753
# [1] 授業単元: プログラミング
# [2]問題文:
# モンテカルロ法による円周率の近似値の計算を行うプログラムを書け。
# 生成する点の個数はキーボードから受け取るようにせよ。
# 乱数の生成にはMersenne twisterを用いよ。
#


233 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 21:56:15 ]
rubyで
>>231
f=File.open("out.txt","w")
for i in 1..9 do
for j in 1..9 do
f.printf("%3d"%[i*j])
end
f.puts()
end
f.close

>>232
N=10000
num=0
for i in 1..N
if rand()**2+rand()**2<=1 then num+=1 end
end
puts(4.0*num/N)
#print("PI=",4.0*num/N)



234 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 03:21:43 ]
pc12.2ch.net/test/read.cgi/tech/1248012902/709
# 【 課題 】 prolog.asia/html/prolog/872.html (仮にコピーさせていきました)
# 【 形態 】1. Javaアプリケーション(main()で開始)
# 【 期限 】1月22日
# 【 補足 】Eclipseを使用しています。
# 内容は前向き推論のプログラムです。
# このプログラムを実行したら、「gyouzaは作ることができる。」と表示させたい# 「nikuudouは作ることができる。」は表示させない。
# またRecipe.txtの中身を修正してもよい。



235 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 03:23:46 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/760
# [1] 授業単元:C言語
# [2] 問題文(含コード&リンク):
#
# 非線形方程式の解を求めるアルゴリズムのひとつに、ニュートン法と呼ばれる方ある。
# この方法ではf(x)=0の解の近似値を次の漸化式から求める。
# x_(i+1) =x_i - f(x_i)/f'(x_i)
#
# x_i の初期値を x_0 としたとき i=1から i=5すなわちx_1からx_5までをC言語で計算して示せ。


236 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 03:25:53 ]
pc12.2ch.net/test/read.cgi/tech/1260532772/770
#
# [1] 授業単元:C言語
# [2]問題文:
# 下記の機能を備えた極めて単純なデータベースシステムであるカード型データベシステムの構築を考える。
# 新しい科目を登録する機能
# すでに登録されている科目を修正(更新)する機能
# 登録科目のソート(並び替え)を行う機能
# 登録科目の一部分のみを検索して取り出し、表示する機能
# 登録科目から、卒業までに必要な単位を計算し、表示する機能
# 卒業要件を簡略化しても良い.







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<462KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef