いろんな言語で宿題ス ..
119:デフォルトの名無しさん
09/12/28 18:18:38
>>30 使用言語: 十進BASIC
FUNCTION 組合せの数(n,r)
LET a=1
LET b=n
FOR i=2 TO r
LET a=a*i
LET b=b*(n-i+1)
NEXT I
LET 組合せの数=b/a
END FUNCTION
PRINT 組合せの数(35,3)*組合せの数(15,2)/組合せの数(50,5)
PRINT 組合せの数(35,4)*組合せの数(15,1)/組合せの数(50,5)
PRINT 組合せの数(35,2)*組合せの数(15,3)/組合せの数(50,5)
PRINT "組み込み関数combを使った場合"
PRINT comb(35,3)*comb(15,2)/comb(50,5)
PRINT comb(35,4)*comb(15,1)/comb(50,5)
PRINT comb(35,2)*comb(15,3)/comb(50,5)
END
実行結果
.324352451433858
.370688515924409
.127775208140611
組み込み関数combを使った場合
.324352451433858
.370688515924409
.127775208140611
120:デフォルトの名無しさん
09/12/28 21:28:47
>>114
使用言語: maxima
(%i182) makelist(i,i,fix(sin(%pi)),fix(apply("^",reverse([2.0,10]))+cos(%pi)));
(%o182) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
96, 97, 98, 99]
121:デフォルトの名無しさん
09/12/28 22:03:28
>>114
使用言語: 十進BASIC
DEF f(n)=n*n-n/n
FOR i=z TO f(20-10)
PRINT i
NEXT I
END
122:デフォルトの名無しさん
09/12/29 01:44:55
>>114
使用言語: Arc
arc> (apply range (map [-(* _ _)(/ _ _)] (list(expt 2 0) 10)))
(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99)
123:デフォルトの名無しさん
09/12/29 02:02:20
>>114
使用言語: J
i. ,~ 20 - 10
0 1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19
20 21 22 23 24 25 26 27 28 29
30 31 32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47 48 49
50 51 52 53 54 55 56 57 58 59
60 61 62 63 64 65 66 67 68 69
70 71 72 73 74 75 76 77 78 79
80 81 82 83 84 85 86 87 88 89
90 91 92 93 94 95 96 97 98 99
124:デフォルトの名無しさん
09/12/29 08:55:53
>>114
使用言語: Haskell
Prelude> init $ (\[a,b]->[a..b]) $ map(^2)[0,10]
[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,
29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,
55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,
81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99]
125:デフォルトの名無しさん
09/12/29 11:03:55
スレリンク(tech板:79番)
# Windows XP上で、
# まず 同じディレクトリにあるsetting.iniを読み込んで
# その1行目, 2行目, 3行目を
# 文字列p, regex, aftに格納する。
# pをパスとして調べ、
# 1.実在するディレクトリだったらそのディレクトリの名前とサブディレクトリの名前と、
# それらの中にあるファイルの名前、およびファイルの中身に以下の置換作業を実行する。
# > 前からみて順に正規表現regexにマッチする文字列を全てaftに置換する。
# 2.実在しないディレクトリでなかったらエラーメッセージを標準出力に出力する。
126:デフォルトの名無しさん
09/12/29 11:25:43
>>114
使用言語: Scilab
-->a=2;[0:(10^a-a/a)]
127:デフォルトの名無しさん
09/12/29 16:48:55
>>125
% Prolog では正規表現は使わないので、その代わり以下のような述語を作っておく。
探索目標を真とする副文字列を置換文字列に置換(_文字列,_対象文字ならび,_探索目標,_置換文字列,X) :-
findall(S,探索目標を真とする副文字列を置換文字列に置換の一(_文字列,_対象文字ならび,_探索目標,_置換文字列,S),X).
探索目標を真とする副文字列を置換文字列に置換の一(_文字列,_対象文字ならび,_探索目標,_置換文字列,S) :-
atom_chars(_文字列,Chars),
探索目標を真とする文字ならびを得る(Chars,L1,_対象文字ならび,_探索目標,L3),
atom_chars(A1,L1),
atom_chars(A3,L3),
concat_atom([A1,_置換文字列,A3],S).
探索目標を真とする文字ならびを得る([],L1,L2,_探索目標,L3) :- !,fail.
探索目標を真とする文字ならびを得る(L,L1,L2,_探索目標,L3) :-
append(L1,L2,L3,L),
_探索目標.
探索目標を真とする文字ならびを得る(L,L1,L2,_探索目標,X) :-
変数指定項複写(_探索目標,_探索目標2,[L2],[L4]),
append(L11,L2,31,L),
_探索目標,
探索目標を真とする文字ならびを得る(L31,L1,L4,_探索目標2,X).
128:デフォルトの名無しさん
09/12/30 00:29:25
>>114
使用言語: Io
Io> list(2-0,10)reduce(a,b,b**a)repeat(v, v println)
129:デフォルトの名無しさん
09/12/30 01:18:56
>>114
使用言語: Io
Io> (20-10)squared repeat(v, v println)
130:デフォルトの名無しさん
09/12/30 06:12:33
>>127 (>>125) かなりの大間違い。訂正。
% Prolog では正規表現は使わないので、その代わり以下のような述語を作っておく。L1,L3が加わり、益々意味不明になってきた。
探索目標を真とする副文字列を置換文字列に置換(_文字列,L1,_対象文字ならび,L3,_探索目標,_置換文字列,X) :-
findall(S,探索目標を真とする副文字列を置換文字列に置換の一(_文字列,L1,_対象文字ならび,L3,_探索目標,_置換文字列,S),X).
探索目標を真とする副文字列を置換文字列に置換の一(_文字列,L1,_対象文字ならび,L3,_探索目標,_置換文字列,S) :-
atom_chars(_文字列,Chars),
探索目標を真とする文字ならびを得る(Chars,L1,_対象文字ならび,_探索目標,L3),
atom_chars(A1,L1),
atom_chars(A3,L3),
concat_atom([A1,_置換文字列,A3],S).
探索目標を真とする文字ならびを得る(L,L1,L2,_探索目標,L3) :-
append(L1,L2,L3,L),
_探索目標.
131:デフォルトの名無しさん
09/12/30 06:32:32
>>130 使い方の例。
% 行頭に「私は」を挿入。
?- 探索目標を真とする副文字列を置換文字列に置換(嘘を申しません,[],[],L3,true,私は,X).
L3 = _141192,
X = ['私は嘘を申しません']
% "d.f" を"aaa"に置換
?- 探索目標を真とする副文字列を置換文字列に置換(abcdefgdufz,_,[d,_,f],_,true,aaa,X).
_ = _141192,
_ = _141193,
_ = _141200,
X = [abcaaagdufz,abcdefgaaaz]
% "b"と"f"の間にありその中に"d"を2つ含む文字列をaaaに置換
?- 探索目標を真とする副文字列を置換文字列に置換(abcdefgdufz,_,L2,_,(append([b],LY,[f],L2),count(member(d,LY),2)),baaaf,X).
_ = _141192,
L2 = _141193,
_ = _141194,
LY = _141197,
X = [abaaafz]
132:デフォルトの名無しさん
09/12/30 08:22:02
>>131
Prologでは実際にこんな述語を呼び出して検索や置換を行うものですか?
133:デフォルトの名無しさん
09/12/30 08:57:48
>>132
一般にどうかはわからない。私の場合はcall/1を使って汎用述語を作ることは
絶対と言っていいほどしない。したがってここでは課題として書いてみたが、
>>130のような定義述語を利用することはない。少々煩わしくても、検索が必要に
なった時に一つ述語を定義する。
このスレでは、一度に書き込める行数に制限があるので、何度も使用された
述語を「汎用」のものとみなして定義なしに、呼び出している場合も多い。
これはやむを得ずそうしているのであって、それが模倣すべきプログラムスタイルだ
などと考えないでほしい。
134:デフォルトの名無しさん
09/12/30 10:15:59
スレリンク(tech板:496番)
# [1] 授業単元: C++実習
# [2] 問題文(含コード&リンク):URLリンク(ime.nu)
# 問題2
# 個々のオブジェクトにint型の識別番号を与える(全オブジェクトに異なる整数値を与える)ように以下のクラスを書き換えよ。
# また書き換えたクラスがテストできる適切なmain関数も作成せよ。
# class Account {
# string name; //口座名義
# string no; //口座番号
# long balance; //預金額
# Date open; //口座開設日
#
# public:
# Account(string n, string num, long z, Date op);
#
# void Deposit(long k); //預ける
# void Withdraw(long k); //おろす
# string GetName() const { return name; } //口座名義を調べる
# string GetNo() const { return no; } //口座番号を調べる
# long CheckBalance() const { return balance; } //預金額を調べる
# Date OpeningDate() const { return open; } //口座開設日を調べる
# }
135:デフォルトの名無しさん
09/12/31 04:05:03
スレリンク(tech板:679番)
# [授業単元] : Prolog
# 知恵を貸してください。
# 今宿題で嫉妬深い恋人たちの問題をやっていて
# 初期状態とゴール状態をそれぞれ
# initial_state(jealousy, jealousy(left,[1,2,3],[1,2,3],[ ],[ ])).
# final_state(jealousy(right,[ ],[ ],[1,2,3],[1,2,3])).
# と作って指し手の移動と状態変化についてはかけたのですが
# 状態変化したときの合法性のチェックでつまっています。
# legal(jealousy(right,[[1],[1,2]], [[2,3],[3]]) ×
# legal(jealousy(left,[[2,3],[2,3]], [[1],[1]]) ○
# としたいのですがどうしたらいいのでしょうか?
136:デフォルトの名無しさん
09/12/31 04:26:43
スレリンク(tech板:536番)
# [1] 授業単元: C++
# [2] 問題文(含コード&リンク):
# 課題1資料 URLリンク(ime.nu)
# 課題1 URLリンク(ime.nu)
# 課題1応用 URLリンク(ime.nu)
# 京都市の区ごとの人口(人)と面積(平方キロメートル)が記述されているデータ(URLリンク(kansai2channeler.hp.infoseek.co.jp))がある。
# 区の名前,人口,面積のデータを格納しなさい。
# 人口についてソートした結果,面積についてソートした結果を出力する。
#
# 区の名前,人口,面積のてデータを格納し,格納したデータを調べて以下の情報を出力するプログラムを作成しなさい。
# 人口が最大の区と最小の区の、名前と人口。
# 面積が最大の区と最小の区の、名前と面積。
# 人口密度が最大の区と最小の区の、名前と人口密度。
# 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:デフォルトの名無しさん
09/12/31 06:56:21
>>136
% Prolog
'京都市の区ごとの人口(人)と面積(平方キロメートル)が記述されているデータがある'('URLリンク(ime.nu)').
区の名前,人口,面積のデータを格納する :-
'京都市の区ごとの人口(人)と面積(平方キロメートル)が記述されているデータがある'(_ウェブサイト),
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:デフォルトの名無しさん
09/12/31 06:58:38
>>137 (>>136) 改行してはいけないところで折り返してしまった。
% Prolog
'京都市の区ごとの人口(人)と面積(平方キロメートル)が記述されているデータがある'('URLリンク(ime.nu)').
139:デフォルトの名無しさん
09/12/31 07:00:53
>>138
どうしても、ダメだね。勝手に改行が入ってしまう。"ある"の後の改行は
ないことにして下さい。
140:デフォルトの名無しさん
09/12/31 07:14:48
>>137 訂正
% Prolog Lines -> _区の名前・人口・面積ならび
区の名前,人口,面積のデータを格納する :-
'京都市の区ごとの人口(人)と面積(平方キロメートル)が記述されているデータがある'(_ウェブサイト),
get_split_lines(_ウェブサイト,[' '],_区の名前・人口・面積ならび),
member([_区の名前,_人口,_面積],_区の名前・人口・面積ならび),
assertz('京都市の区ごとの人口と面積のデータ'(_区の名前,_人口,_面積)),
fail.
区の名前,人口,面積のデータを格納する.
141:デフォルトの名無しさん
09/12/31 08:14:28
>>136
% Prolog
人口が最大の区と最小の区の、名前と人口(_人口が最大の区の名前,_人口が最大の区の人口,_人口が最小の区の名前,_人口が最小の区の人口) :-
findmax([_人口,_区の名前],京都市の区ごとの人口と面積のデータ(_区の名前,_人口,_),[_人口が最大の区の人口,_人口が最大の区の名前),
findmin([_人口,_区の名前],京都市の区ごとの人口と面積のデータ(_区の名前,_人口,_),[_人口が最小の区の人口,_人口が最小の区の名前).
面積が最大の区と最小の区の、名前と面積(_面積が最大の区の名前,_面積が最大の区の面積,_面積が最小の区の名前,_面積が最小の区の面積) :-
findmax([_面積,_区の名前],京都市の区ごとの人口と面積のデータ(_区の名前,_,_面積),[_面積が最大の区の面積,_面積が最大の区の名前),
findmin([_面積,_区の名前],京都市の区ごとの人口と面積のデータ(_区の名前,_,_面積),[_面積が最小の区の面積,_面積が最小の区の名前).
人口密度が最大の区と最小の区の、名前と人口密度(_人口密度が最大の区の名前,_人口密度が最大の区の人口密度,_人口密度が最小の区の名前,_人口密度が最小の区の人口密度) :-
findmax([_人口密度,_区の名前],(京都市の区ごとの人口と面積のデータ'(_区の名前,_人口,_面積),_人口密度 is _人口 / _面積),[_人口密度が最大の区の人口密度,_人口密度が最大の区の名前),
findmin([_人口密度,_区の名前],(京都市の区ごとの人口と面積のデータ'(_区の名前,_人口,_面積),_人口密度 is _人口 / _面積),[_人口密度が最小の区の人口密度,_人口密度が最小の区の名前).
142:デフォルトの名無しさん
09/12/31 08:38:12
>>141
ほとんどの場合これで済ませてしまいますが、本当は正しくない。
これだと、同一の人口、面積、人口密度が生じた時、名前の小さいまたは大きいもの
が採られてしまいます。正しい処理は、
人口が最大の区と最小の区の、名前と人口(_人口が最大の区の名前,_人口が最大の区の人口,_人口が最小の区の名前,_人口が最小の区の人口) :-
findmax(_人口,京都市の区ごとの人口と面積のデータ(_,_人口,_),_最大の人口),
findall([_区の名前,_最大の人口],京都市の区ごとの人口と面積のデータ(_区の名前,_最大の人口,_),L1),
findmin(_人口,京都市の区ごとの人口と面積のデータ(_,_人口,_),_最小の人口),
findall([_区の名前,_最小の人口],京都市の区ごとの人口と面積のデータ(_区の名前,_最小の人口,_),L2),
member([_人口が最大の区の名前,_人口が最大の区の人口],L1),
member([_人口が最小の区の名前,_人口が最小の区の人口],L2).
% なら、人口が同一の区があっても正しく解が得られます。
143:デフォルトの名無しさん
10/01/02 13:54:46
スレリンク(tech板:553番)
# (問題)
# 社員データを一元管理するためのサーバークライアントシステムを作れ
# 要求仕様)
# 管理するデータは社員番号、氏名、所属、入社年月日
# クライアントから追加、削除、修正が行えること
# 管理データはCSV形式で保存すること
144:デフォルトの名無しさん
10/01/02 22:13:02
スレリンク(tech板:557番)
# [1] 授業単元: 情報数学
# [2] 問題文(含コード&リンク):
# オイラー級数を用いて、πの近似値を求めよ。
145:デフォルトの名無しさん
10/01/02 22:21:57
スレリンク(tech板:545番)
# [1] 授業単元:基礎プログラミング実習
# [2] 問題文(含コード&リンク):URLリンク(ime.nu)
p/cgi-bin/joyful/img/10325.txt
# Step 3. 不偏分散を求める次の関数を定義する.
# float variance(float data[], int n) .この関数は,data[]配列に入っている
# n個のデータの不偏分散を求め,関数値としてその不偏分散値を返す.
# なお,不偏分散の計算に必要な平均値は,関数average()を呼び出して求めること.
146:デフォルトの名無しさん
10/01/02 22:24:19
スレリンク(tech板: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:デフォルトの名無しさん
10/01/03 06:34:05
スレリンク(tech板:547番)
# [1] 授業単元: 情報数学
# [2] 問題文(含コード&リンク):
#
# 問)同時整数関係を見つけるプログラムを考えなさい。
# 整数の解を求めるプログラムと、複素数の解を求めるプログラムを考え、
# それを組み合わせることで両方の解を同時に求め示すプログラムについて考えなさい。
148:デフォルトの名無しさん
10/01/03 06:39:51
スレリンク(tech板:545番)
# [1] 授業単元:基礎プログラミング実習
# [2] 問題文(含コード&リンク):URLリンク(ime.nu)
# 一問目
#
# Step 1. scanf()を用いてfloat型の値を入力し,それを順番にdata[]配列に格納する.
# このdata[]配列は関数の呼び出し側で宣言するものとし,宣言した配列の要素数(入力可能なデータの最大個数)をmaxとして関数を呼び出すものとする.
# また,この関数は,データ入力数が最大のmax個に達するか,負値が入力されるまでデータ入力を繰り返すものとする.
149:デフォルトの名無しさん
10/01/03 06:43:39
スレリンク(tech板:545番)
# [1] 授業単元:基礎プログラミング実習
# [2] 問題文(含コード&リンク):URLリンク(ime.nu)
# Step 2. 平均値を求める次の関数を定義する. float average(float data[], int n)
# この関数は, data[]配列に入っているn個のデータの平均値を求め,関数値としてその平均値を返す.
150:デフォルトの名無しさん
10/01/03 07:01:06
スレリンク(tech板:692番)
# 【 課題 】キーワードからクロスワードを完成させる
# URLリンク(rg550.hp.infoseek.co.jp)
# 【 形態 】Javaアプリケーション(main()で開始
# <template>
#
# ■2□■■
# 1■□□□
# □□□■■
# 4■□□■
# ■□□3□
#
# <縦のかぎワード>
# コオリ
# ニホンカミ
# モモ
#
# <横のかぎワード>
# ウニ
# オデン
# ホクロ
# アミモノ
# カモ
151:デフォルトの名無しさん
10/01/03 07:45:45
スレリンク(db板:381番)
# 弁護士の名前(name)とその人の所属法律事務所の名称(ofic)から成るテーブルがあるとして、
# 法律事務所は弁護士がひとりしかいないところから300人以上いるところまでさまざまなので、
# 「所属する弁護士の数が多い事務所トップ10」 の事務所名と人数を select一発で表示させるには
# どうすればいい?
#
152:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/01/04 05:37:34
>>151
% Prolog
所属する弁護士の数が多い事務所トップ10(L) :-
findall(_所属法律事務所,弁護士所属(_弁護士の名前,_所属法律事務所),L1),
集約_数_降順ならび(L1,[],L2),
length(L,10),
append(L,_,L2).
156:デフォルトの名無しさん
10/01/04 07:10:58
>>147
同時整数関係 -> 同次整数関係
であるとの訂正が出題スレに載っていました。
157:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/01/04 08:04:41
>>158
list_nthは使わないで、第一引数を先にソートしてからやった方がいいと思う。
160:デフォルトの名無しさん
10/01/04 08:08:27
>>159
列の選択の第二・三節で変な事をやっているので、ソートできないw
161:デフォルトの名無しさん
10/01/04 08:13:24
そういうことか。それにしても危なっかしい仕様だな。
162:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/01/04 11:40:11
>>144
使用言語:J
%:6*+/%2^~>:i.1000000
3.14159
164:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/01/04 16:24:30
>>159
>>160 のような呑気なレスをつけてしまったが、取り出す順序が勝手に変わって
しまっては、後でmember/2などで取り出す時どうすればいいのかな?
166:デフォルトの名無しさん
10/01/04 17:10:15
スレリンク(db板: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:デフォルトの名無しさん
10/01/04 17:17:02
>>166
% Prolog
?- 'A'(A,'X'),'B'(A,B),(retract('C'(B,_)),fail;assertz('C'(B,'Y'))).
168:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/01/04 19:30:52
スレリンク(tech板:695番)
# URLリンク(ime.nu)
# URLリンク(ime.nu)
# 問題
# 次の画面のように、サーバとクライアントでの間で文字列を送り合う
# プログラムを作れ(サーバとクライアント両方とも)
#
# 【クライアント】 【サーバ】
# サーバのアドレスは ポートは
# 202.48.53.27 12345
# ポートは 名前は
# 12345 syou
# 名前は aikawa>Hello
# aikawa syou>Hello
# aikawa>Hello
# syou>Hello
# aikawa>
#
# ただし、以下の条件を満たすようにすること
# クライアントでquitが入力された場合、クライアントは接続を切りプログラムを
# 終了し、サーバは接続が切れたら、次のクライアントの接続を待つ。
# サーバでquitが入力された場合、サーバは接続を切り、次のクライアントの
# 接続を待ち、クライアントは接続が切られたらプログラムを終了する
# エンターキーのみが入力された場合は、文字列を送らずもう一度文字列を
# 入力させて、その文字列を送るようにする
170:デフォルトの名無しさん
10/01/05 00:05:28
>>144
使用言語:Scilab
-->sqrt(6*sum(1.0 ./((1:1000000)^2)))
ans =
3.1415917
171:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/01/06 15:52:03
スレリンク(tech板:572番)
# [1] 授業単元: 5元:プログラミング演習III
# 問題(5)
# 実行するとカラーダイヤログを表示し、選択したカラーをクリップボードに
# 送る処理を記述せよ
175:デフォルトの名無しさん
10/01/06 20:05:10
>>174
使用言語:なでしこ
「#{HEX(色選択)}」をコピー
176:デフォルトの名無しさん
10/01/06 20:33:14
>>174
使用言語:J
wd 'clipcopy "',(":3{.". wd 'mbcolor'),'"'
177:デフォルトの名無しさん
10/01/07 07:18:22
スレリンク(tech板:575番)
# [1]C言語入門
# [2]2つの複素数の和と積を計算して表示するプログラムを作成せよ。
# 構造体complexを定義し、和の複素数を返すadd関数、積の複素数を返すmul関数、複素数を表示するprint関数をそれぞれ作成し
# mainでは2つの複素数をキーボードから読み込み、関数を呼ぶ。
# 虚数部にはiを付加せよ。
178:デフォルトの名無しさん
10/01/07 07:29:05
スレリンク(db板: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:デフォルトの名無しさん
10/01/07 07:41:15
>>178
% Prolog 引数を順に処理する場合、それぞれ副目標を明示的に立てる。
テストデータ(田中,100,90).
テストデータ(鈴木,80,80).
成績マスタ('A',100).
成績マスタ('B',90).
成績マスタ('C',80).
欲しい結果(_欲しい結果) :-
findall([_氏名,_一回目成績,_二回目成績],欲しい結果(_氏名,_一回目成績,_二回目成績),_欲しい結果).
欲しい結果(_氏名,_一回目成績,_二回目成績) :-
テストデータ(_氏名,_一回目点数,_二回目点数),
成績マスタ(_一回目成績,_一回目点数),
成績マスタ(_二回目成績,_二回目点数).
180:デフォルトの名無しさん
10/01/07 09:43:07
>>178
% Prolog 元スレでスレリンク(db板:393番)の
% 成績マスタは以下のような範囲型にしたかったのではないか、との指摘があった。
テストデータ(田中,100,90).
テストデータ(鈴木,80,80).
成績マスタ('A',91,100).
成績マスタ('B',81,90).
成績マスタ('C',71,80).
欲しい結果(_欲しい結果) :-
findall([_氏名,_一回目成績,_二回目成績],欲しい結果(_氏名,_一回目成績,_二回
目成績),_欲しい結果).
欲しい結果(_氏名,_一回目成績,_二回目成績) :-
テストデータ(_氏名,_一回目点数,_二回目点数),
成績マスタ(_一回目成績,_点数下限1,_点数上限1),
_一回目成績 >= _点数下限1,
_一回目成績 =< _点数上限1,
成績マスタ(_二回目成績,_点数下限2,_点数上限2),
_二回目成績 >= _点数下限2,
_二回目成績 =< _点数上限2.
181:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/01/07 16:55:46
スレリンク(tech板: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:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/01/07 20:30:55
スレリンク(tech板: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:デフォルトの名無しさん
10/01/08 05:28:41
スレリンク(tech板:604番)
# [1] 授業単元: 演習チャレンジ問題
# [2] 問題文(含コード&リンク):
# あるint型配列array[256]の中身をランダムシャッフルしたい。
# 0〜127の範囲の値を被らずに出す乱数関数randEx(Seed, i)を作成せよ。(iは0〜127)
# ※Seedを変えることにより、異なるパターンのランダム列が出るようにする。
# ※array[i]とarray[128+randEx(Seed, i)]をスワップすることで並列計算において一気にシャッフルするのが目的です。
# ※「スワップするかしないか」の部分は別なので考えなくて良いです。
187:デフォルトの名無しさん
10/01/08 07:53:39
スレリンク(db板:397番)
# 基本的なことで申し訳ないんですけど、
# あるテーブルから特定のデータが1件でも存在するかどうかの判断をしたいのですが 、
# COUNT()はテーブル内の全部のレコードを検索してしまうので、もっと高速でスマー トな方法は無いか存じないでしょうか。
#
188:デフォルトの名無しさん
10/01/08 08:03:41
>>187
% Prolog (!)に意味があります。
あるテーブルから特定のデータが1件でも存在するかどうかの判断する(Q) :- call(Q),!.
189:デフォルトの名無しさん
10/01/08 08:08:37
>>187
% Prolog テーブル名,引数ならびとして与えられたら、
あるテーブルから特定のデータが1件でも存在するかどうかの判断する(_テーブル名,_引数ならび) :-
Q =.. [_テーブル名|_引数ならび],
call(Q),!.
190:デフォルトの名無しさん
10/01/08 08:14:23
>>187
% Prolog >>189は単位節データベースの自然なコードだが、条件が付加されていて、
% そこに副作用を生じる目標が記述されている懸念がある場合は、clause/2を使う。
あるテーブルから特定のデータが1件でも存在するかどうかの判断する(_テーブル名,_引数ならび) :-
Q =.. [_テーブル名|_引数ならび],
clause(Q,_),!.
191:デフォルトの名無しさん
10/01/08 08:31:47
>>187
% Prolog >>190にさらに条件を付加したい場合は、_条件として引数の条件、あるいは
% 引数と引数の関係を記述します。
あるテーブルから特定のデータが1件でも存在するかどうかの判断する(_テーブル名,_引数ならび,_条件) :-
Q =.. [_テーブル名|_引数ならび],
clause(Q,_),
call(_条件),!.
192:デフォルトの名無しさん
10/01/08 10:54:08
スレリンク(tech板:606番)
# プログラミングの問題なんですが、if文と繰り返し(for,whileのいずれか)を利用して次の問題を作成します。
#
# 米ドル紙幣としては次のような紙幣とコインがある。
# 100ドル、50ドル、20ドル、10ドル、5ドル、2ドル、1ドル
# 50セント、25セント、10セント、5セント、1セント
#
# 問題は、キーボードから日本円を入力し、まずドルに変換した後ドルを最適な紙幣とコインに振り分けるプログラムを作成しなさい。但し1ドルを92.69円として換算しなさい。そして、日本円が0円の時にプログラムを終了する。
193:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/01/08 16:35:48
スレリンク(tech板:620番)
# [1] 授業単元: プログラミング演習
# [2] 問題文(含コード&リンク):掃き出し法。
# 0,1のみを成分にもつn次正方行列Aが2重リストとしてある。Aにmod2の行基本変形を施して、階段行列に変形するプログラム
195:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/01/09 08:09:47
>>199
foldl' というは知らなかったので、調べてみたら、
第9回 Haskellはなぜ遅いと思われているのか - 本物のプログラマはHaskellを使う:ITpro
URLリンク(itpro.nikkeibp.co.jp)
に sum でスタックオーバーフローする例がのっていました。
正直、まだよくわかっていません。
どうして sum の定義にこの foldl' の方を使わないのかな。
なんか他に問題がでてくるのかな。
201:デフォルトの名無しさん
10/01/09 21:09:52
スレリンク(tech板:633番)
# [1]授業単元:プログラミング2
# [2]問題文:2つの最大50桁の実数を入力し、その和・差・積を求めるプログラム
202:デフォルトの名無しさん
10/01/10 04:48:39
スレリンク(tech板:636番)
# [1] 授業単元:数値計算
# [2] 問題文(含コード&リンク): URLリンク(ime.nu)
#
# 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:デフォルトの名無しさん
10/01/10 04:54:14
スレリンク(tech板:637番)
# [1] 授業単元:コンピュターグラフィック
# [2] 問題文(含コード&リンク):
# 1次元配列を2次元配列に・2次元配列を1次元配列に変換する二つのモジュール
# URLリンク(ime.nu)
#
# 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:デフォルトの名無しさん
10/01/10 04:55:40
スレリンク(tech板:639番)
# [1] アルゴリズム
#
# [2] 自然数の数列を入力し
# 数列内にあるnよりも大きい数と小さい数が
# nの前後にそれぞれ一つ以上ある場合、そのnを出力する。
#
# フローチャートは以下です。
#
# 順数列の入力
# ↓ ↓
# 数列数が5以上 4以下→終了(4以下のときどれも除外できないので)
# ↓
# 数列の中で最大最小の値と
# 最初と最後に入力した値は除外できる。
# ↓
# 残りの数値に前後に大小の値が一つ以上あれば除外
# ↓
# 残った値を表示して終了
205:デフォルトの名無しさん
10/01/10 04:59:12
スレリンク(tech板: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:デフォルトの名無しさん
10/01/10 05:04:02
スレリンク(tech板:645番)
# [1] 授業単元:プログラミング実習a
# [2] 問題文(含コード&リンク): URLリンク(ime.nu)
#
# 実行例のとおりに,自分で五つの問題文を入力して練習するタイピング練習ソフトを
# 作成せよ.ただし,問題文は入力した五つの中から10題がランダムに出題されるものと
# し,最後に正解数を表示すること.
#
# 実行例 (下線部はユーザーの入力)
#
# 20文字までの問題文を五つ入れてください
#
# 1つ目の問題文:abcdefghijkl
#
# 2つ目の問題文:January
#
# 3つ目の問題文:xxyyzz0368GST
#
# 4つ目の問題文:MondayFriday
#
# 5つ目の問題文:qwerty.uiop,RTYU
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4399日前に更新/462 KB
担当:undef