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
207:デフォルトの名無しさん
10/01/10 05:08:37
スレリンク(tech板:640番)
# [1] 授業単元:Cプログラミング
# [2] 問題文(含コード&リンク):URLリンク(ime.nu)
# 2つの名前を入力してステータス(ランダム)を決定し 途中経過を表示し
# 攻撃が当たった時は文字色を変える
#
# 24行程度に纏められないため、問題文のリンクを直接参照してください
208:デフォルトの名無しさん
10/01/10 05:11:10
スレリンク(tech板: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:デフォルトの名無しさん
10/01/10 12:25:56
スレリンク(tech板:659番)
# [1] 授業単元: オペレーティングシステム
# [2] 問題文(含コード&リンク):
# fork,exec*システムコールを用いて簡単なコマンドインタープリタ
# (mysh)を作成せよ。但し、作成するコマンドインタープリタは以下の
# 機能をサポートすること。
# ・設定ファイル(.path)にコマンドサーチパスを指定することが出来る。
# なお、ファイル内のパスの指定方法は、各自が考え定義すること。
# (パスにないコマンドを入力した場合には、見つからない旨のエラー
# メッセージを出力すること。)
# ・パイプを利用して複数(可変個)のコマンドの入出力を結合する
# ことができる。
# ・リダイレクションを使用してコマンドへの入力をファイルから得たり、
# ファイルへ出力したりすることができる
# ・コマンド実行中にCtrl-Cを入力すると、現在のコマンドの実行を
# 中断する
# ・exitを入力すると、myshを終了する。
#
210:デフォルトの名無しさん
10/01/11 05:10:41
スレリンク(tech板:676番)
# [1] 授業単元:データ構造とアルゴリズム
# [2] 問題文(含コード&リンク):URLリンク(prolog.asia)
#
211:デフォルトの名無しさん
10/01/11 05:15:57
スレリンク(tech板:678番)
# [1] 授業単元: 基礎プログラミングおよび演習
# [2] 問題文(含コード&リンク): URLリンク(ime.nu)
#
# ある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:デフォルトの名無しさん
10/01/11 05:24:23
スレリンク(tech板:685番)
# [1] 授業単元:プログラミング
# [2] 問題文(含コード&リンク):2つの名前を入力しステータス(ランダム)を決定し 勝敗表示する。
#
213:デフォルトの名無しさん
10/01/11 19:56:43
スレリンク(tech板:703番)
# [1] 授業単元: C
# [2] 問題文(含コード&リンク):
# 100以下の素数をすべて出力するプログラムを作りたい。
# 自然数xに対して2以上で√x以下の素数で割り切れない数が素数である。ただし1は素数でも合成数でもない。
214:デフォルトの名無しさん
10/01/11 19:58:48
スレリンク(tech板:710番)
# [1] 授業単元: プログラミング演習
# [2] 問題文(含コード&リンク): 数値には初期値が与えられている。
# この配列を昇順に並べ替えるプログラムを作成しなさい。
#
# 表示結果: 数値[00]=80
# 数値[01]=40
# 数値[02]=23
# 数値[03]=69
# 数値[04]=10
#
# ソート後
# 数値[01]=10
# 数値[02]=23
# 数値[03]=40
# 数値[04]=69
# 数値[03]=80
215:デフォルトの名無しさん
10/01/12 08:12:02
スレリンク(tech板:714番)
# 1] 授業単元: プログラミング演習
# [2] 問題文(含コード&リンク): URLリンク(ime.nu)
#
# 連立1次方程式の一般的な数値解法にはGaussの単純消去法がある。
# この方法についてアルゴリズムを調べ下記の連立1次方程式を例に解法手順をC言語で表示せよ。
#
# 方程式
# x1 + 5x2 + x3 =2
# 3x1 + 4x2 = 2
# 9x1 + 10x2 +4x3 = 8
216:デフォルトの名無しさん
10/01/12 08:13:26
スレリンク(tech板: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:デフォルトの名無しさん
10/01/12 08:14:57
スレリンク(tech板: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:デフォルトの名無しさん
10/01/12 08:17:00
スレリンク(tech板:722番)
# [1]授業単元:プログラミング2
# [2]問題文:以下の機能を備えた対コンピュータの五目並べを作成せよ
# ・置く場所を縦と横の数字で指定する
# ・人とコンピュータのどちらかが先手になるか選択できる
# ・先手の33を禁じる
# ・勝敗の判定ができる(置く場所がなくなったら引き分け)
# ・コンピュータは人が3と4を作った場合、それを止める場所に石を置く
# ・すでに石がおいてある場所に人が石を置こうとした場合、再入力を促す
219:デフォルトの名無しさん
10/01/12 08:21:25
スレリンク(tech板:705番)
# 【 課題 】自然言語処理、構文解析のCYK法のプログラム
# 【 形態 】1. Javaアプリケーション(main()で開始)
# 【 期限 】2010/01/18
# 【 Ver 】java version "1.6.0_17"
# 【 用語 】CYK法 URLリンク(ime.nu)
220:デフォルトの名無しさん
10/01/12 08:48:39
スレリンク(tech板:548番)
# このスレにあった10行囲碁ソースを元に作ってみようかな。
# 展開して調べたら、あれに入ってる評価関数は
#
# 石数に比例するもの
# ・石が取れる
# ・アタリにいける
# ・囲いにいける
# ・隣接させる
221:デフォルトの名無しさん
10/01/12 20:38:24
スレリンク(tech板:739番)
# [1] 授業単元: プログラミング
# [2]問題文:URLリンク(ime.nu)
# ★演習問題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:デフォルトの名無しさん
10/01/12 22:05:13
スレリンク(tech板:739番)
# [1] 授業単元: プログラミング
# [2]問題文:URLリンク(ime.nu)
# ★演習問題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:デフォルトの名無しさん
10/01/12 22:08:32
スレリンク(tech板:739番)
# [1] 授業単元: プログラミング
# [2]問題文:URLリンク(ime.nu)
# ★演習問題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:デフォルトの名無しさん
10/01/12 22:11:53
スレリンク(tech板:741番)
# [1] 授業単元: プログラミング2
# [2]問題文:URLリンク(ime.nu)
# 下図(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:デフォルトの名無しさん
10/01/13 05:20:50
スレリンク(tech板:744番)
# [1] プログラミング
# [2] 0から10の中からランダムに整数の2組を決める。それを平面上の座標と、座標を10個つくる。
# ユーザに座標を入力させ、その点から最も遠い点と近い点を求める。
# 最も近い点がユーザが入力した点と重なったら◎を出力する。
# 結果は下記のように出力。
# △
# △
# △
# × ○
#
#
#
# ●
#
# ×:ユーザが入力した点
# ○:最も近い点
# ●:最も遠い点
# △:それ以外の点
#
226:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/01/13 18:17:53
スレリンク(tech板:750番)
# [1] 授業単元: 情報科学(C言語)
# [2]問題文:URLリンク(ime.nu)
# 課題10
# 関数sasho は第1引数と第2引数の数値(実数)の差と商を計算し,差を
# 第3引数で与えられる場所に,商を第4引数で与える場所に格納し,第2
# 引数が0 の場合は0,その他の場合は1 を返す関数である(第2引数が
# 0 の場合は,商の計算はしない).関数sasho を定義し,main 関数で
# は,2つの実数を入力して,sasho を利用して,2数の差と商を表示する
# (sasho の帰り値が0 の場合は差のみを表示)プログラムを作成せよ.
228:デフォルトの名無しさん
10/01/13 18:20:47
スレリンク(tech板:752番)
# 1] 授業単元: プログラミング
# [2]問題文:URLリンク(ime.nu)
#
# ★演習問題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:デフォルトの名無しさん
10/01/13 18:22:30
スレリンク(tech板:752番)
# 1] 授業単元: プログラミング
# [2]問題文:URLリンク(ime.nu)
#
# ★演習問題2
# fgetc関数とfputc関数を使って,テキストファイルの内容を,別のテキ
# ストファイルにコピーするプログラムを作成しなさい.確認のため,元の
# ファイルとコピーされたテキストファイルの中身の内容を画面にそれぞれ
# 出力せよ.
230:デフォルトの名無しさん
10/01/13 18:24:44
スレリンク(tech板:752番)
# 1] 授業単元: プログラミング
# [2]問題文:URLリンク(ime.nu)
# ★演習問題3
# 氏名,年齢,性別が5人分書かれた次のようなテキストファイルを読み
# 込んで、両面に表示するプログラムを作成せよ.このとき,構造体を利用
# せよ.
# (入力ファイル:test.txtの中身)
#
# Tanaka 31 Man
# Kawai 24 Man
# Suzuki 22 Woman
# ltoh 40 Woman
# Sugita 37 Man
231:デフォルトの名無しさん
10/01/13 18:26:54
スレリンク(tech板:752番)
# [1] 授業単元: プログラミング
# [2]問題文:URLリンク(ime.nu)
# ★演習問題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:デフォルトの名無しさん
10/01/13 18:27:52
スレリンク(tech板:753番)
# [1] 授業単元: プログラミング
# [2]問題文:
# モンテカルロ法による円周率の近似値の計算を行うプログラムを書け。
# 生成する点の個数はキーボードから受け取るようにせよ。
# 乱数の生成にはMersenne twisterを用いよ。
#
233:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/01/14 03:21:43
スレリンク(tech板:709番)
# 【 課題 】 URLリンク(prolog.asia) (仮にコピーさせていきました)
# 【 形態 】1. Javaアプリケーション(main()で開始)
# 【 期限 】1月22日
# 【 補足 】Eclipseを使用しています。
# 内容は前向き推論のプログラムです。
# このプログラムを実行したら、「gyouzaは作ることができる。」と表示させたい# 「nikuudouは作ることができる。」は表示させない。
# またRecipe.txtの中身を修正してもよい。
235:デフォルトの名無しさん
10/01/14 03:23:46
スレリンク(tech板: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:デフォルトの名無しさん
10/01/14 03:25:53
スレリンク(tech板:770番)
#
# [1] 授業単元:C言語
# [2]問題文:
# 下記の機能を備えた極めて単純なデータベースシステムであるカード型データベシステムの構築を考える。
# 新しい科目を登録する機能
# すでに登録されている科目を修正(更新)する機能
# 登録科目のソート(並び替え)を行う機能
# 登録科目の一部分のみを検索して取り出し、表示する機能
# 登録科目から、卒業までに必要な単位を計算し、表示する機能
# 卒業要件を簡略化しても良い.
237:デフォルトの名無しさん
10/01/14 03:28:42
>>760 の訂正
スレリンク(tech板:771番)
# 問題分が足りてなかったので再投稿させてもらいます。
#
# [1] 授業単元:C言語
# [2] 問題文(含コード&リンク):
#
# 非線形方程式の解を求めるアルゴリズムのひとつに、ニュートン法と呼ばれる方ある。
# この方法ではf(x)=0の解の近似値を次の漸化式から求める。
# ただしf'(x)はxによる微分を表す。
# x_(i+1) =x_i - f(x_i)/f'(x_i)
#
# f(x)=2^2-e^x-2=0
#
# x_i の初期値を x_0 としたとき i=1から i=5すなわちx_1からx_5までをC言語で計算して示せ。
238:デフォルトの名無しさん
10/01/14 03:29:53
スレリンク(tech板:772番)
# [1] 授業単元: プログラミング
# [2]問題文:氏名,年齢,性別が5人分書かれた次のようなテキストファイルを
# 込んで、両面に表示するプログラムを作成せよ.このとき,構造体を利用
# せよ.
# (入力ファイル:test.txtの中身)
#
# Tanaka 31 Man
# Kawai 24 Man
# Suzuki 22 Woman
# ltoh 40 Woman
# Sugita 37 Man
239:デフォルトの名無しさん
10/01/14 03:37:48
スレリンク(tech板:773番)
# [1] 授業単元:
# 画像処理
# [2] 問題文(含コード&リンク):
# URLリンク(ime.nu)
# 以下のプログラムを参考にして、画像を指定倍率で拡大・縮小するプログラムを してください。
# ・最低限、pgm形式のモノクロ画像を入出力可能とすること
# ・コマンドラインインタフェースの仕様は各自で定めること
# ・拡大・縮小の倍率をプログラム中に埋め込んで、再コンパイルしなければ倍率 更できないような仕様は不可
# ・補間の手法、縮小時のローパスフィルタリングの手法、順方向変換を用いるか 向変換を用いるか等、
# 変換の手法は各自で工夫すること。
#
# 変換の手法、工夫した点、苦労した点などをテキストに記述し、ソースプログラ 2倍拡大画像、1/2倍縮小画像を添付すること。
240:デフォルトの名無しさん
10/01/14 03:51:17
>>238
Luaで
f=io.open("test.txt","r")
t={}
line = f:read()
while line do
tmp={}
for s in string.gmatch(line,"[%w]+") do
table.insert(tmp,s);
end
table.insert(t,{["氏名"]=tmp[1],["年齢"]=tmp[2],["性別"]=tmp[3]});
line = f:read()
end
f:close()
for i=1,#t do
print(t[i]["氏名"].." "..t[i]["年齢"].." "..t[i]["性別"])
end
241:デフォルトの名無しさん
10/01/14 06:04:25
スレリンク(tech板:775番)
# [1] 授業単元:C言語
# [2]問題文:
# 二次関数 f(x) = x2 について、x=0から3までの定積分を求めたい。
# 区分求積法により、この積分の近似値を求めよ。
# x軸方向の刻み幅Δxを0.1とする。
242:デフォルトの名無しさん
10/01/14 07:42:54
>>234 はプログラムを解読して書き直さないと出題にならないですね。
面白そうな問題なのでやってみます。
あっという間に問題ばかり溜まってしまいました。中に骨のある問題も多いようです。
私は、1月を過ぎると余裕ができるので一気に解決していきたいなと思っています。
243:デフォルトの名無しさん
10/01/14 10:34:15
スレリンク(db板:425番)
# SELECT * FROM tableA WHERE code = 7
# というSQLで以下のように表示されるのですが、
#
# id , code , name , date , 売上
# 1 , 7 , りんご , 2010-01-12 , 350
# 1 , 7 , りんご , 2010-01-07 , 250
# 2 , 7 , みかん , 2010-01-12 , 450
# 2 , 7 , みかん , 2009-05-05 , 550
#
# それを、売上があった日の1営業日後と3営業日後のそれぞれのidの価格も取得 いと考えております。
#
# id , code , name , date , 売上 , 1営業日後売上 , 3営業日後売上
# 1 , 7 , りんご , 2010-01-12 , 350 , 400 , 500
# 1 , 7 , りんご , 2010-01-07 , 250 , 200 , 250
# 2 , 7 , みかん , 2010-01-10 , 450 , 500 , 300
# 2 , 7 , みかん , 2009-05-05 , 550 , 220 , 350
# (ちなみに実際のdateはUNIXTIMEで格納しています。)
# 1営業日後にしているのは、休日の関係で1日後とできないからです。
# ここまでやるのは厳しいでしょうか?
244:デフォルトの名無しさん
10/01/14 11:36:31
>>243
% Prolog (1/2) 祝日がわからないと1営業日後がわからないので、
% 足掛かりとして、以下の定義をしておきましょう。今後祝日に関しては第二引数を解読しましょう。
国民の祝日に関する法律('第1条','自由と平和を求めてやまない日本国民は、美しい風習を育てつつ、よりよき社会、より豊かな生活を築きあげるために、ここに国民こぞって祝い、感謝し、又は記念する日を定め、これを「国民の祝日」と名づける。').
国民の祝日に関する法律('第2条','自由と平和を求めてやまない日本国民は、美しい風習を育てつつ、よりよき社会、より豊かな生活を築きあげるために、ここに国民こぞって祝い、感謝し、又は記念する日を定め、これを「国民の祝日」と名づける。').
国民の祝日に関する法律(第2条,'「国民の祝日」を次のように定める。').
国民の祝日に関する法律(第2条,元日,1月1日,'年のはじめを祝う。').
国民の祝日に関する法律(第2条,成人の日,1月の第2月曜日,'おとなになったことを自覚し、みずから生き抜こうとする青年を祝いはげます。').
国民の祝日に関する法律(第2条,建国記念の日,政令で定める日,'建国をしのび、国を愛する心を養う。').
国民の祝日に関する法律(第2条,春分の日 春分日 自然をたたえ、生物をいつくしむ。
国民の祝日に関する法律(第2条,昭和の日,4月29日,'激動の日々を経て、復興を遂げた昭和の時代を顧み、国の将来に思いをいたす。').
国民の祝日に関する法律(第2条,憲法記念日,5月3日,'日本国憲法の施行を記念し、国の成長を期する。').
国民の祝日に関する法律(第2条,みどりの日,5月4日,'自然に親しむとともにその恩恵に感謝し、豊かな心をはぐくむ。').
国民の祝日に関する法律(第2条,こどもの日,5月5日,'こどもの人格を重んじ、こどもの幸福をはかるとともに、母に感謝する。).
245:デフォルトの名無しさん
10/01/14 11:37:21
>>243
% Prolog (2/2) つづき
国民の祝日に関する法律(第2条,海の日,7月の第3月曜日,海の恩恵に感謝するとともに、海洋国日本の繁栄を願う。).
国民の祝日に関する法律(第2条,敬老の日,9月の第3月曜日,多年にわたり社会につくしてきた老人を敬愛し、長寿を祝う。).
国民の祝日に関する法律(第2条,秋分の日,秋分日,'祖先をうやまい、なくなった人々をしのぶ。').
国民の祝日に関する法律(第2条,体育の日,'10月の第2月曜日,スポーツにしたしみ、健康な心身をつちかう。').
国民の祝日に関する法律(第2条,文化の日,11月3日,'自由と平和を愛し、文化をすすめる。').
国民の祝日に関する法律(第2条,勤労感謝の日,11月23日,'勤労をたっとび、生産を祝い、国民たがいに感謝しあう。').
国民の祝日に関する法律(第2条,天皇誕生日,12月23日,'天皇の誕生日を祝う。').
国民の祝日に関する法律(第3条,'「国民の祝日」は、休日とする。').
国民の祝日に関する法律(第3条,'2 「国民の祝日」が日曜日に当たるときは、その日後においてその日に最も近い「国民の祝日」でない日を休日とする。').
国民の祝日に関する法律(第3条,'3 その前日及び翌日が「国民の祝日」である日(「国民の祝日」でない日に限る。)は、休日とする。').
246:デフォルトの名無しさん
10/01/14 12:01:20
スレリンク(tech板:776番)
# [1]オペレーティングシステム
# [2]問題文(含コード&リンク):
# URLリンク(ime.nu)
# fork とexec 族のシステムコールを用いて,簡単なコマンドインタープリタ(mysを作成せよ.
# ただし,作成するコマンドインタープリタは以下の機能をサポートすること.
# ・設定ファイル(.path)にコマンドサーチパスを指定することが出来る.なお,イル内のパスの指定方法は,各自が考えて定義すること.(パスにないコマンドを した場合には,
# 見つからない旨のエラーメッセージを出力すること.)
# ・パイプを利用して複数(可変個)のコマンドの入出力を結合することができる # ・コマンド実行中にCtrl-C を入力すると,現在のコマンドの実行を中断して, 次マンドを
# 入力するためにプロンプトを出力する.
# ・リダイレクション(“<” と “>”)を使用してコマンドへの入力をファイルから得たり,ファイルへ出力したりすることが出来る.
# ・exit を入力すると,mysh を終了する.
247:デフォルトの名無しさん
10/01/14 16:10:07
>>243
% Prolog 一営業日後の定義に祝日と曜日の定義が必要になる。
一営業日後(_今日,_一営業日後) :-
曜日(_今日,_曜日),
\+(member(_曜日,[土曜,日曜])),
\+(祝日(_今日)),
翌日(_今日,_翌日),
次の営業日(_翌日,_一営業日後),!.
一営業日後(_今日,_一営業日後) :-
翌日(_今日,_翌日),
一営業日後(_翌日,_一営業日後),!.
三営業日後(_今日,_三営業日後) :-
一営業日後(_今日,_一営業日後),
一営業日後(_一営業日後,_二営業日後),
一営業日後(_二営業日後,_三営業日後),!.
次の営業日(_基準日,_次の営業日) :-
曜日(_基準日,_曜日),
member(_曜日,[土曜,日曜]),
翌日(_基準日,_翌日),
次の営業日(_翌日,_次の営業日),!.
次の営業日(_基準日,_次の営業日) :-
祝日(_基準日),
翌日(_基準日,_翌日),
次の営業日(_翌日,_次の営業日),!.
次の営業日(_次の営業日,_次の営業日).
248:デフォルトの名無しさん
10/01/14 17:22:10
>>243
% Prolog
'商品売上、1営業日後、3営業日後、比較表示' :-
setof([_id,_name,_date],tableA( _id , 7 , _name , _date , _売上),L1),
write('id, code, name, date, 売上,1営業日後売上,3営業日後売上\n'),
member([_id_1,_name_1,_date_1],L1),
split(_date_1,['-'],L2),
concat_atom(L2,_日付),
一営業日後(_日付,_1営業日後),
三営業日後(_日付,_3営業日後),
データベース日付表現(_1営業日後,_日付1),
データベース日付表現(_3営業日後,_日付3),
findsum(_売上,tableA( _id , 7 , Name , _日付 , _売上),Sum),
findsum(_売上,tableA( _id , 7 , Name , _日付1 , _売上),Sum1),
findsum(_売上,tableA( _id , 7 , Name , _日付3 , _売上),Sum3),
wr('%t,%t,%t,%t,%t,%t\n',[_id_1,7,_name_1,Sum,Sum1,Sum3]),
fail.
'商品売上、1営業日後、3営業日後、比較表示'.
データベース日付表現(_日付,_データベース日付表現) :-
sub_atom(_日付,0,4,_,_年),
sub_atom(_日付,4,2,_,_月),
sub_atom(_日付,6,2,_,_日),
concat_atom([_年,'-',_月,'-',_日],_データベース日付表現).
249:デフォルトの名無しさん
10/01/14 21:17:44
スレリンク(tech板:780番)
# [1] 授業単元: プログラミング演習
# [2] 問題文(含コード&リンク): 0,1のみを成分にもつn次正方行列Aは各行を2進数とみなして整数のリストとして表現できる。
# たとえば 3次正方行列は 1,0,0/0,1,0/0,0,1は{4,2,1}
#
# これに掃き出し法を適用し、{5,6,3}と入力したとき{5,3,0}と出力されるプログラムを作れ。
# ヒントとして、行の入れ替えは数字の入れ替えになる。
# n桁2進数xの下位から、上位からの数字はそれぞれどう書けるか考える。
#
# まず正方行列の次数をきめ、入力できる10進数の最大値を表示、その後
# その範囲で数値をn回キーボードから入力した後、掃き出し法を行い、
# その正方行列の行の値を10進数に変換するプログラムです。
250:デフォルトの名無しさん
10/01/14 23:23:16
スレリンク(db板:434番)
# ■テーブルデータ
# ○荷物テーブル
# id 中身id 荷受け
# 1 1 2009/12/11
# 2 1 2009/12/21
# 3 2 2010/12/25
# ○中身テーブル
# id 品物 重さ
# 1 本 500
# 2 テレビ 1000
# ○作業テーブル
# 荷物id 作業項目id 作業者名 作業状況
# 1 1 佐藤 完了
# 1 3 志村 作業中
# 2 1 鈴木 完了
# 2 2 鈴木 未
# 2 3 田中 未
# 3 1 佐藤 完了
# 3 3 田中 未
# ○作業項目テーブル
# id 作業内容
# 1 品物を入れる
# 2 領収書を入れる
# 3 封をして発送する
251:デフォルトの名無しさん
10/01/14 23:24:21
>>250 問題つづき
#
# ■欲しい結果
# 荷物id 品物 重さ 作業者名※1 作業内容※1 作業状況 対応班※2
# 2 本 500 鈴木 領収書を入れる 未 2
# 3 テレビ 1000 田中 領収書を入れる 未 1
# ※1 作業状況が完了以外かつ作業項目idが一番小さいもの
# ※2 重さが1000以上→作業班1、作業者名が鈴木かつ作業状況が未→作業班2、
作業状況にかかわらず、作業者名に田中がある荷物→作業班3
# (班1 > 班2 > 班3の順で優先し、荷物idを重複させない)
#
# ■説明
# 荷受けが2009/12/31以前の荷物かつ対応班が存在するものを抽出したいです。
# 荷物は沢山ありますのでパフォーマンスもできれば考慮したいです。
# 「パッとわからないけどちょっと考えればわかるだろJK」→「2時間考えてもできないorz」(今ここ)
252:デフォルトの名無しさん
10/01/15 05:19:11
スレリンク(tech板:711番)
# 【 課題 】課題は3題です。
# URLリンク(ime.nu)
# 課題1
# 乱数を使って掛け算九九の練習ソフトを作れ。ただし以下の条件に従うものとする 。
#
# 10題練習したところで正解率が8割以下だったら、もう1セット10題の練習を繰り返 す。
# 10問中の正解率が8割以上になるまで繰り返し練習をさせる。
253:デフォルトの名無しさん
10/01/15 05:23:59
スレリンク(tech板:711番)
# 【 課題 】課題は3題です。
# URLリンク(ime.nu)
# 課題2
# 西暦を入力させ、うるう年かどうかを判定するプログラムを作れ。なお、うるう年 は以下で認定される。
#
# 西暦の年号が400で割り切れる年はうるう年
# 西暦の年号が400で割り切れないが、100で割り切れる年はうるう年でない
# 西暦の年号が100で割り切れないが、4で割り切れる年はうるう年
254:デフォルトの名無しさん
10/01/15 05:58:31
>>217
使用言語:J
('n',.'=',.":,.a),.':',.'e',.'=',.0j15":,.+/\%!a=.i.31x
n= 0:e=1.000000000000000
n= 1:e=2.000000000000000
n= 2:e=2.500000000000000
n= 3:e=2.666666666666667
n= 4:e=2.708333333333333
n= 5:e=2.716666666666667
n= 6:e=2.718055555555556
n= 7:e=2.718253968253968
n= 8:e=2.718278769841270
n= 9:e=2.718281525573192
n=10:e=2.718281801146384
:
n=29:e=2.718281828459045
n=30:e=2.718281828459045
255:デフォルトの名無しさん
10/01/15 06:20:01
>>253
使用言語:J
f=:monad def '-.=/*400 4 100|y'
f 1800
0
f 2000
1
f 2008
1
f 2010
0
256:デフォルトの名無しさん
10/01/15 06:24:52
スレリンク(tech板:796番)
# [1] プログラミング演習
# [2] 標準入力から読み込んだテキストファイルを辞書順に整列して標準出力する。
# 辞書順:文字列比較の順番はASCIIコード文字順をベースとした辞書順であるが、文字順が一部
# が変更される A<a<B<c<C<c.....
# [5] 作業用ファイルwork.dat(内容は自由、サイズ無制限とする。プログラム終了時点で削除する必要は無い
# ものとする。)
# を使用出来る。stdio.hで定義されている標準ライブラリ関数、定数を利用出来る。
# 整列アルゴリズムは自由とする。
257:デフォルトの名無しさん
10/01/15 06:26:49
スレリンク(tech板:797番)
# [1] 授業単元:プログラミング演習
# [2] 問題文(含コード&リンク):問題1 戻値を持たず、一つの double 型の引数を持ち、過去に関数が
# 呼ばれた時、全ての引数の値の総和を表示する関数、d_total
# を定義し、動作の確認ができるプログラムとして作成せよ。例えば、
# d_total(0.1);
# d_total(0.2);
# d_total(0.3);
# と呼べば、d_total の内部の処理にて
# 0.1
# 0.3
# 0.6
#
# と表示するということである。
# ただし, プログラム中の変数として、外部変数は使ってはな
# らない。「内部変数か」自動変数のみを使って実現せよ。
# 問題2 戻値を持たず、二つの float 型のポインタの引数を持ち、二つ
# の引数の値を交換する関数、f_swap を定義し、動作の確認がで
# きるプログラムとして作成せよ。
# 問題3 4行4列のint型の行列を、転置するプログラムを作成せよ。動作の確認のため、転置前と転置後
# の行列の内容を表示するようにせよ
258:デフォルトの名無しさん
10/01/15 06:28:19
スレリンク(tech板:798番)
# [1] やさしいC
# [2] 次の関数workをコンパイル出来るように,正しく動作するように修正し、
# 正しく実行出来るかどうかを確かめられるプログラムを作りなさい。
# double *work(double[] a,int N){
# double result[N];
# result[0] = a[N-2] ,a[N-1],a[0],a[1] a[2]を1:3:4:3:1の重みで平均した値
# result[1] = a[N-1],a[0],a[1],a[2] を1:3:4:3:1の重みで平均した値
# result[2] = a[0],a[1],a[2],a[3]を1:3:4::3:1の重みで平均した値
# result[3] = a[1],a[2],a[3],a[4] を1:3:4:3:1の重みで平均した値
# ....
# result[N-2] = a[N-4],a[N-3],a[N-2],a[N-1],a[0] を1:3:4:3:1の重みで平均した値
# result[N-1] = a[N-3],a[N-2],a[N-1],a[0],a[1] を1:3:4:3:1の重みで平均した値
# return (double)&result[0];
# }
259:デフォルトの名無しさん
10/01/15 07:25:06
スレリンク(tech板:800番)
# [1]Cプログラミング演習
# [2]
# 関数 op(int a,int b,int c)は次の結果を返す。
# 結果: a op1 b op2 c op3 a op4 b op5 c (op1,op2,op3,op4,op5は
# + - * %(剰余) xor and orの何れか一つ)
# +:演算0 -:演算1 *:演算2 /:演算3 xor:演算4 and:演算5 or:演算6
# op1=(3*a+5*b)の7による剰余がkの場合、演算kを選択
# op2=(5*b+4*c)の7による剰余がkの場合、演算kを選択
# op3=(a+3*c)の7による剰余がkの場合、演算kを選択
# op4=(a+2*b)の7による剰余がkの場合、演算kを選択
# op5=(3*c+2*b)の7による剰余がkの場合、演算kを選択
# ここで演算子の優先順位は高い順に + > - > * > % >xor > and > orとする
# 例えば1 + 3 xor 5 * 7 - 5は(1+3) xor (5*(7-5))を意味する
# 関数opをコードせよ。どのような演算が行われたか具体的に出力するprintf文も同時に出力すること。
260:デフォルトの名無しさん
10/01/15 07:36:26
スレリンク(tech板:711番)
# 【 課題 】課題は3題です。
# URLリンク(ime.nu)
# 課題3
#
# 以下のプログラムに手を加え、アドレス表を利用した並び替えを行って人口の大き>
# い順に人口と県民を表示しなさい
#
# 07年の都道府県人口(csv形式ファイル)は以下の場所にあります。
# URLリンク(prolog.asia)
261:デフォルトの名無しさん
10/01/15 07:38:49
>>259 訂正
修正前 → +:演算0 -:演算1 *:演算2 /:演算3 xor:演算4 and:演算5 or:演算6
修正後 → +:演算0 -:演算1 *:演算2 %(剰余):演算3 xor:演算4 and:演算5 or:演算6
262:デフォルトの名無しさん
10/01/15 08:09:06
>>250
欲しい結果(_荷受日下限,_荷受日上限) :-
write('荷物id 品物 重さ 作業者名1 作業内容1 作業状況 対応班2\n'),
荷物テーブル(_id,_中身id,_荷受け),
_荷受け @>= _荷受日下限,
_荷受け @=< _荷受日上限,
中身テーブル(_中身id,_品物,_重さ),
作業テーブル(_id,_作業項目id,_作業者名,_作業状況),
作業項目テーブル(_作業項目id,_作業内容),
作業班(_作業者名,_作業状況,_重さ,_対応班),
write_formatted('%t %t %t %t %t %t %t\n',[_id,_品物,_重さ,_作業者名,_作
業内容,_作業状況,_対応班]),
fail.
欲しい結果(_,_).
作業班(_,_,_重さ,1) :- _重さ >= 1000,!.
作業班(_作業者名,_作業状況,_,2) :- _作業者名=鈴木,_作業状況='未',!.
作業班(田中,_,_,3) :- !.
263:デフォルトの名無しさん
10/01/15 08:11:05
>>250 変なところで折り返しが出たので書き直し。
% Prolog
欲しい結果(_荷受日下限,_荷受日上限) :-
write('荷物id 品物 重さ 作業者名1 作業内容1 作業状況 対応班2\n'),
荷物テーブル(_id,_中身id,_荷受け),
_荷受け @>= _荷受日下限,
_荷受け @=< _荷受日上限,
中身テーブル(_中身id,_品物,_重さ),
作業テーブル(_id,_作業項目id,_作業者名,_作業状況),
作業項目テーブル(_作業項目id,_作業内容),
作業班(_作業者名,_作業状況,_重さ,_対応班),
write_formatted('%t %t %t %t %t %t %t\n',[_id,_品物,_重さ,_作業者名,_作業内容,_作業状況,_対応班]),
fail.
欲しい結果(_,_).
作業班(_,_,_重さ,1) :- _重さ >= 1000,!.
作業班(_作業者名,_作業状況,_,2) :- _作業者名=鈴木,_作業状況='未',!.
作業班(田中,_,_,3) :- !.
264:デフォルトの名無しさん
10/01/15 10:33:47
>>201
使用言語: 十進BASIC
OPTION ARITHMETIC DECIMAL_HIGH !10進1000桁モード
INPUT PROMPT "a =":a
INPUT PROMPT "b =":b
PRINT "a + b =";a+b
PRINT "a - b =";a-b
PRINT "a * b =";a*b
END
実行結果
a =1.9999999999999999999999999
b =0.0000000000000000000000001
a + b = 2
a - b = 1.9999999999999999999999998
a * b = .00000000000000000000000019999999999999999999999999
265:デフォルトの名無しさん
10/01/15 10:40:01
>>253
% Prolog
% URLリンク(prolog.asia) などにすでにあります。ここでは、
西暦を入力させ、うるう年かどうかを判定する(_西暦) :-
西暦の年号が400で割り切れる年はうるう年(_西暦),!.
西暦を入力させ、うるう年かどうかを判定する(_西暦) :-
西暦の年号が400で割り切れないが、100で割り切れる年はうるう年でない(_西暦),!.
西暦を入力させ、うるう年かどうかを判定する(_西暦) :-
西暦の年号が100で割り切れないが、4で割り切れる年はうるう年(_西暦).
西暦の年号が400で割り切れる年はうるう年(_西暦) :- 割り切れる(_西暦,400),!.
西暦の年号が400で割り切れないが、100で割り切れる年はうるう年でない(_西暦) :-
\+(割り切れる(_西暦,400)),
割り切れる(_西暦,100),!,fail.
西暦の年号が100で割り切れないが、4で割り切れる年はうるう年(_西暦) :-
\+(割り切れる(_西暦,100)),
割り切れる(_西暦,4),!.
割り切れる(A,B) :- 0 is A mod B.
266:デフォルトの名無しさん
10/01/15 11:19:21
>>260
% Prolog
並び替えを行って人口の大きい順に人口と県名を表示する(_ファイル) :-
see(_ファイル),
findall([_人口,_県名],(repeat,get_line(X),(X=end_of_file,!,fail;
split(X,[','],[_県名,_人口])),L),
seen,
降順に整列する(L,L1),
人口と県名を表示する(L1).
人口と県名を表示する([]) :- !.
人口と県名を表示する([[_人口,_県名]|R]) :-
write_formatted('%t %t\n',[_人口,_県名]),
人口と県名を表示する(R).
267:デフォルトの名無しさん
10/01/15 11:40:30
>>213
使用言語:J
p:i._1 p: 100
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
268:デフォルトの名無しさん
10/01/15 12:19:34
>>215
使用言語:maxima
(%i41) display2d:false;
(%o41) false
(%i42) solve([x1+5*x2+x3=2,3*x1+4*x2=2,9*x1+10*x2+4*x3=8],[x1,x2,x3]);
(%o42) [[x1 = 2/5,x2 = 1/5,x3 = 3/5]]
269:デフォルトの名無しさん
10/01/15 16:12:12
スレリンク(tech板:810番)
# [1] 授業単元:プログラミング論(大学)
# [2] 問題文:softbankのiPhoneの使用料金を計算するプログラムを作りなさい
270:デフォルトの名無しさん
10/01/15 16:13:13
>>215
使用言語:J
]a=:3 3 $ 1 5 1,3 4 0,9 10 4
1 5 1
3 4 0
9 10 4
]b=:2 2 8
2 2 8
(%.a)(+/ .*)b
0.4 0.2 0.6
271:デフォルトの名無しさん
10/01/15 17:08:31
スレリンク(tech板:812番)
# [1] 授業単元: 授業ではないですがお願いします
# [2] 問題文(含コード&リンク): 100個の0~10までの数字があるとするとき0じゃない数字の個数を数えて表示させたいんですが
# どうすればいいのかよくわかりませんのでお願いします
272:デフォルトの名無しさん
10/01/15 17:45:51
>>271
使用言語:J
a=: ?100#11
4 25 $ a
2 4 3 9 5 10 4 6 10 3 2 3 0 10 9 7 1 2 2 9 5 2 6 9 2
1 3 6 2 6 5 7 9 8 7 8 10 0 8 4 6 3 4 2 8 3 0 5 4 4
0 2 7 8 1 6 6 8 8 5 8 10 6 6 3 7 1 9 8 5 6 2 0 9 3
6 5 1 3 1 2 0 6 9 2 3 4 1 7 7 10 7 3 2 3 4 3 4 8 8
+/0=a
6
273:デフォルトの名無しさん
10/01/15 17:52:53
>>272 >>271
使用言語:J
間違えました。0の個数を数えてました。
a=: ?100#11
4 25 $ a
2 4 3 9 5 10 4 6 10 3 2 3 0 10 9 7 1 2 2 9 5 2 6 9 2
1 3 6 2 6 5 7 9 8 7 8 10 0 8 4 6 3 4 2 8 3 0 5 4 4
0 2 7 8 1 6 6 8 8 5 8 10 6 6 3 7 1 9 8 5 6 2 0 9 3
6 5 1 3 1 2 0 6 9 2 3 4 1 7 7 10 7 3 2 3 4 3 4 8 8
+/0~:a
94
274:デフォルトの名無しさん
10/01/15 18:14:48
>>217
使用言語:maxima
(%i50) for n:0 thru 30 do printf(true,"n=~2d:e=~,15f~%",n,sum(1/i!,i,0,n));
n= 0:e=1.000000000000000
:
n=30:e=2.718281828459045
275:デフォルトの名無しさん
10/01/15 18:20:58
>>271
% Prolog
'100個の0~10までの数字を発生させる'(L) :-
length(L,100),
'0~10までの数字を発生させる'(L).
'0~10までの数字を発生させる'([]) :- !.
'0~10までの数字を発生させる'([N|R]) :-
N is random mod 11,
'0~10までの数字を発生させる'(R).
'0じゃない数字の個数を数えて表示させる'(L) :-
count((member(A,L),number(A),\+(A=0)),_0じゃない数字の個数),
write_formatted('0じゃない数字は%t個です\n',[_0じゃない数字の個数]).
276:デフォルトの名無しさん
10/01/15 21:14:06
スレリンク(tech板:819番)
# [1] 授業単元:情報処理基礎
# [2] 問題文:以下はmain関数、サブ関数で作成します。
# 1.数値nを一つ入力し、各桁の和を求めよ。(123→6)
# 2.数値nを反転した値を表示せよ。(123→321)
277:デフォルトの名無しさん
10/01/15 21:15:57
スレリンク(tech板:820番)
# [1] 授業単元:情報処理基礎
# [2] 問題文:二次方程式ax^2+bx+c=0の解を求めるプログラムを作成せよ。
# a,b,cの値を入力する。計算結果は必ず5種類表示すること。
# a=b=c=0の場合、処理を終了する。a=b=0、Cが0以外の場合は「不能」と表示する。
# a=0、bが0以外の場合は「一次方程式」と解を表示する。
# 判別式がD<0の場合、「虚解」と表示する。
# 判別式がD<0の場合以外も、必要な表示、結果を表示します。
278:デフォルトの名無しさん
10/01/15 21:39:51
スレリンク(tech板:821番)
# [1] 授業単元: コンパイラ
# [2] 問題文(含コード&リンク):
# PAdaで記述されたソースプログラムをC言語のソースプログラムに
# 変換するコンパイラを作成しなさい。
# URLリンク(ime.nu)
#
279:デフォルトの名無しさん
10/01/15 22:29:17
>>276
% Prolog
main :-
催促付き整数入力('ひとつ対象となる整数を入力してください : ',_整数),
write('1.数値nを一つ入力し、各桁の和を求めよ。(123→6)\n'),
write('2.数値nを反転した値を表示せよ。(123→321)\n'),
催促付き整数入力('1-2を選択してください : ',_整数2),
目標選択(_整数2,_整数).
目標選択(1,_数値n) :-
'数値nを一つ入力し、各桁の和を求める'(_数値n,_各桁の和),
write_formatted('各桁の和は%tです\n',[_各桁の和]).
目標選択(2,_数値n) :- '数値nを反転した値'を表示する'(_数値n).
'数値nを一つ入力し、各桁の和を求める'(_数値n,_各桁の和) :-
number_codes(_数値n,L),
findsum(U,(member(A,L),U is A-48),_各桁の和).
'数値nを反転した値'を表示する'(_数値n) :-
'数値nを反転した値'(_数値n,_数値nを反転した値),
write_formatted('数値を反転した値は%tです\n',[_数値nを反転した値]).
'数値nを反転した値'(_数値n,_数値nを反転した値) :-
number_codes(_数値n,L1),
reverse(L1,L2),
number_codes(_数値nを反転した値,L2).
280:デフォルトの名無しさん
10/01/15 22:36:02
スレリンク(tech板:701番)
# 文字列をn文字ずつ&1文字ずつに分割したいのですが
# x = "ABCDEFGHIJKLMNOPQRSTUVWXY"
# x = x.scan(/.{5}/)
# x.collect!{|y|y.scan(/./)}
# p x
# =>[["A","B","C","D","E"],["F","G","H","I","J"],["K","L","M","N","O"],["P","Q","R","S","T"],["U","V","W","X","Y"]]
# みたいに書くと都度、正規表現によるマッチが行われるので遅いです
# もっと高速に実行する方法があったら教えてください。よろしくお願いします
281:デフォルトの名無しさん
10/01/15 22:50:14
>>280
% Prolog
'文字列をn文字ずつ&1文字ずつに分割'(_文字列,N文字ずつ,L) :-
atom_chars(_文字列,Chars),
'N個組'(N文字ずつ,Chars,L).
'N個組'(_,[],[]) :- !.
'N個組'(N,L,[U|R]) :-
先頭からN個(N,L,U,R1),
'N個組'(N,R1,R).
先頭からN個(_,[],[],[]) :- !.
先頭からN個(0,L,[],L) :- !.
先頭からN個(N,[A|R1],[A|R2],R) :-
M is N - 1,
先頭からN個(M,R1,R2,R).
282:デフォルトの名無しさん
10/01/15 23:17:23
>>280
使用言語:J
a=:'ABCDEFGHIJKLMNOPQRSTUVWXY'
f=:dyad def ';/&.> (-x)<\y'
5 f a
+-----------+-----------+-----------+-----------+-----------+
|+-+-+-+-+-+|+-+-+-+-+-+|+-+-+-+-+-+|+-+-+-+-+-+|+-+-+-+-+-+|
||A|B|C|D|E|||F|G|H|I|J|||K|L|M|N|O|||P|Q|R|S|T|||U|V|W|X|Y||
|+-+-+-+-+-+|+-+-+-+-+-+|+-+-+-+-+-+|+-+-+-+-+-+|+-+-+-+-+-+|
+-----------+-----------+-----------+-----------+-----------+
7 f a
+---------------+---------------+---------------+---------+
|+-+-+-+-+-+-+-+|+-+-+-+-+-+-+-+|+-+-+-+-+-+-+-+|+-+-+-+-+|
||A|B|C|D|E|F|G|||H|I|J|K|L|M|N|||O|P|Q|R|S|T|U|||V|W|X|Y||
|+-+-+-+-+-+-+-+|+-+-+-+-+-+-+-+|+-+-+-+-+-+-+-+|+-+-+-+-+|
+---------------+---------------+---------------+---------+
283:デフォルトの名無しさん
10/01/15 23:48:53
>>276
使用言語:J
g=:monad def '+/"."0":y'
h=:monad def '|.&.":y'
f=:monad define
smoutput ('各桁の和=',":g y),:'反転値 =',":h y
)
f 123
各桁の和=6
反転値 =321
284:デフォルトの名無しさん
10/01/16 05:09:26
スレリンク(tech板:834番)
# [2010/01/15 19:27:07] リュック: 【質問テンプレ】
# [1] 授業単元: プログラミング演習
# [2] 問題文(含コード&リンク): URLリンク(ime.nu)
# [2] のコピー: URLリンク(prolog.asia)
285:デフォルトの名無しさん
10/01/16 05:37:43
スレリンク(tech板:827番)
# 下記の機能を備えた極めて単純なデータベースシステムであるカード型データベースシステムの構築を考える。
# 課題7-1
# 下記のような方針でプログラムを作成せよ。
# 新しい科目を登録する機能
# すでに登録されている科目を修正(更新)する機能
# 登録科目のソート(並び替え)を行う機能
# 登録科目の一部分のみを検索して取り出し、表示する機能
# 登録科目から、卒業までに必要な単位を計算し、表示する機能
# データベースファイルの仕様
# データベースファイルについては、本格的なデータベースになると、アクセス性や
# 安定性など様々な要求を満たす必要があるが、ここでは最も単純なテキストファイルとする。
# さらに、書き込みをfprintfで、読み込みをfscanfで行えるように、 1行中に、
# それぞれの項目(フィールド)がスペースで区切られているようなファイルとする。
# なお、この場合、それぞれの項目はスペースを含んでいけないこととなる。
# 履修科目データベースシステムの例においては、例えば、
# 単位の種類(必修、選択必修など)、単位数、年次、前期か後期か、再履修かどうか、成績の6項目を含むこととする。
# ここで、いくつかの選択肢から選択するものについては、数字で置き換えることとする。
# このような仕様に基づいたファイルの例は以下のようなものになる。ここでは、ファイル名は、"ユーザ名_kamokudb.txt"とする。
286:デフォルトの名無しさん
10/01/16 06:00:50
>>277
% Prolog
'二次方程式ax^2+bx+c=0の解を求める'(0,0,0,_) :- !.
'二次方程式ax^2+bx+c=0の解を求める'(0,0,C,不能) :- \+(C==0),!.
'二次方程式ax^2+bx+c=0の解を求める'(0,B,C,一次方程式) :- \+(B==0),!.
'二次方程式ax^2+bx+c=0の解を求める'(A,B,C,_解) :-
_判別式の値 is (B ^ 2 - 4 * A * C),
'二次方程式ax^2+bx+c=0の解判定'(_判別式の値,A,B,C,_解).
'二次方程式ax^2+bx+c=0の解判定'(_判別式の値,_,_,_,虚解) :- _判別式の値 < 0,!.
'二次方程式ax^2+bx+c=0の解判定'(_判別式の値,A,B,C,_解) :-
_解 is ((-1) * B + sqrt(_判別式の値)) / ( 2 * A ).
'二次方程式ax^2+bx+c=0の解判定'(_判別式の値,A,B,C,_解) :-
_解 is ((-1) * B - sqrt(_判別式の値)) / ( 2 * A ).
287:デフォルトの名無しさん
10/01/16 06:44:06
>>269
% Prolog (その一)
:- op(350,xf,円).
お客様データベース('長石 輝',ホワイトプラン通話料,2130).
お客様データベース('長石 輝',ホワイトプランメールウェブ利用料金,0).
お客様データベース('長石 輝',パケット使用量,47310).
iphoneのご利用料金(_お客様名,_ご利用料金 円) :-
お客様データベース(_お客様名,ホワイトプラン通話料,_通話料),
お客様データベース(_お客様名,ホワイトプランメールウェブ利用料金,_メール
ウェブ利用料金),
お客様データベース(_お客様名,パケット使用量,_パケット使用量),
'ホワイトプラン(i)'(_通話料,_メールウェブ利用料金,_ホワイトプラン料金
円),
パケット料金(_パケット使用量,_パケット料金 円),
_ご利用料金 is _ホワイトプラン料金 + _パケット料金.
'ホワイトプラン(i)'(_ホワイトプラン料金 円) :-
ホワイトプラン基本使用料・通話料(_通話料 円,_基本使用料・通話料 円),
ホワイトプランメールウェブ利用料金(_メールウェブ利用料金 円),
_ホワイトプラン料金 is _基本使用料・通話料 + _メールウェブ利用料金,!.
ホワイトプラン基本使用料・通話料(_通話料 円,_基本使用料・通話料 円) :-
_基本使用料・通話料 is 980 + _通話料.
288:デフォルトの名無しさん
10/01/16 06:45:46
>>269
% Prolog
ホワイトプラン基本使用料・通話料(_通話料 円,_基本使用料・通話料 円) :-
_基本使用料・通話料 is 980 + _通話料.
ホワイトプランメールウェブ利用料金(0 円).
パケット料金(_パケット,_パケット料金 円) :-
'S!ベーシックパック(i)'(_パケット料金_1 円),
パケット定額フル(_パケット,_パケット料金_2 円),
_パケット料金 is _パケット料金_1 + _パケット料金_2,!.
'S!ベーシックパック(i)'(315 円).
パケット定額フル(_パケット,1029 円) :- _パケット =< 12250,!.
パケット定額フル(_パケット,_パケット料金 円) :-
_パケット > 12250,
_パケット =< 71250,
_パケット料金 is (_パケット - 12250) * 0.084 + 1029,!.
パケット定額フル(_パケット,5985 円) :- _パケット > 71250,!.
289:デフォルトの名無しさん
10/01/16 08:16:13
>>258
% Prolog
重み付け平均をRLにセット(AL,RL) :-
_重みならび = [1,3,4,3,1],
sum(_重みならび,_重み合計),
list_nth(N-2,AL,A_2),
list_nth(N-1,AL,A_1),
list_nth(1,AL,A1),
list_nth(2,AL,A2),
append([A_2,A_1|AL],[A1,A2],AL2),
N2 is N + 2,
重み付け平均をRLにセット(3,N2,_重みならび,_重み合計,AL2,RL).
重み付け平均をRLにセット(M,N,_重みならび,_重み合計,AL,[]) :- M > N,!.
重み付け平均をRLにセット(M,N,_重みならび,_重み合計,AL,[_重み付け平均|R]) :-
findall(B,(for(M-2,U,M+2),list_nth(U,AL,B)),L1),
重み付け平均(L1,_重みならび,_重み合計,0,_重み付け平均),
M2 is M + 1,
重み付け平均をRLにセット(M2,N,_重みならび,_重み合計,AL,R).
重み付け平均([A|R1],[B|R2],_重み合計,S1,_重み付け平均) :-
_重み付け平均 is S1 / _重み合計,!.
重み付け平均([A|R1],[B|R2],_重み合計,S1,_重み付け平均) :-
S2 is S1 + A * B,
重み付け平均(R1,R2,_重み合計,S2,_重み付け平均).
290:デフォルトの名無しさん
10/01/16 08:56:03
>>258
使用言語:J
f=:dyad def '(+/x)%~+/"1 x*(i.#y)|."0 1 y'
1 3 4 3 1 f 1 2 3 4 5
1.25 3.75 5 3.75 1.25
291:デフォルトの名無しさん
10/01/16 09:25:52
スレリンク(tech板:841番)
# [1] 授業単元: コンピュータシミュレーション
# [2] 問題文(含コード&リンク):円盤状に分布させた質点に回転の初期条件をあたえたいのですが、
# 中心からの距離、位置により速度の大きさと向きが変わるのでどのようにおけばいいのかお願いします。
#
292:デフォルトの名無しさん
10/01/16 09:41:18
>>231
% Prolog
九九表を作り,テキストファイルに書き出す(_テキストファイル) :-
九九表を作り(_九九表),
tell(_テキストファイル),
書き出す(_九九表),
told.
九九表を作り(M,N,[]) :- M > N,!.
九九表を作り(M,N,[L|R]) :-
findall(K,(for(1,J,9),K is J * M),L),
M2 is M + 1,
九九表を作り(M2,N,R).
テキストファイルに書き出す(_テキストファイル,_ならび) :-
tell(_テキストファイル),
書き出す(_ならび),
told.
書き出す([]) :- !.
書き出す([L|R]) :-
concat_atom(L,' ',S),
write_formatted('%t\n',[S]),
書き出す(R).
293:デフォルトの名無しさん
10/01/16 10:07:07
>>256
% Prolog (その一)
標準入力から読み込んだテキストファイルを辞書順に整列して標準出力する :-
標準的整列ルール(32,127,_標準的整列ルール),
例外的整列ルール(_例外的整列ルール),
get_lines(user_input,Lines),
concat_atom(Lines,' ',S),
split(S,[' '],_語彙ならび),
辞書順整列(_語彙ならび,_標準的整列ルール,_例外的整列ルール,[],_辞書順に整列された語彙ならび),
語彙ならびを標準出力する(_語彙ならび).
語彙ならびを標準出力する([]).
語彙ならびを標準出力する([_語彙|R]) :-
write_formatted('%t\n',[_語彙]),
語彙ならびを標準出力する(R).
標準的整列ルール(M,N,[]) :- M > N,!.
標準的整列ルール(M,N,[A|R]) :-
\+((M >=97,M =< 122)),
char_code(A,M),
M2 is M + 1,
標準的整列ルール(M2,N,R),!.
標準的整列ルール(M,N,[A,B|R]) :-
M >= 65,M =< 90,
M32 is M + 32,
char_code(A,M),char_code(B,M32),
M2 is M + 1,
標準的整列ルール(M2,N,R),!.
294:デフォルトの名無しさん
10/01/16 10:20:25
>>293 訂正
% Prolog この定義の一番最後は _辞書順に整列された語彙ならび でないといけない。
標準入力から読み込んだテキストファイルを辞書順に整列して標準出力する :-
標準的整列ルール(32,127,_標準的整列ルール),
例外的整列ルール(_例外的整列ルール),
get_lines(user_input,Lines),
concat_atom(Lines,' ',S),
split(S,[' '],_語彙ならび),
辞書順整列(_語彙ならび,_標準的整列ルール,_例外的整列ルール,[],_辞書順に整列された語彙ならび),
語彙ならびを標準出力する(_辞書順に整列された語彙ならび).
295:デフォルトの名無しさん
10/01/16 10:42:01
>>192
% Prolog
現在の対ドル為替レート(92.69).
日本円をドルに変換する(_日本円,_ドル,_セント) :-
現在の対ドル為替レート(_現在の為替レート),
_ドル is truncate(float_integer_part(_日本円 / _現在の為替レート)),
_セント is truncate(float_fractional_part(_日本円 / _現在の為替レート) * 100).
日本円をドルとセントに変換して金種を計算する(_日本円,_ドルの金種,_セントの金種) :-
日本円をドルに変換する(_日本円,_ドル,_セント),
ドルの金種計算(_ドル,[100,50,20,10,5,2,1],_ドルの金種),
セントの金種計算(_セント,[50,25,10,5,1],_セントの金種).
ドルの金種計算(_,[],[]) :-
ドルの金種計算(D,[_金種|R1],[[_金種,_枚数]|R2]) :-
_枚数 is truncate(D // _金種),
D2 is truncate(D mod _金種),
ドルの金種計算(D2,R1,R2).
セントの金種計算(_,[],[]) :-
セントの金種計算(C,[_金種|R1],[[_金種,_枚数]|R2]) :-
_枚数 is truncate(C // _金種),
C2 is truncate(C mod _金種),
セントの金種計算(C2,R1,R2).
296:デフォルトの名無しさん
10/01/16 11:37:09
>>257
% Prolog 問題3 これもこれまで何度も定義された。
行列の転置([[]|_],[]) :- !.
行列の転置(_副行列,[_第一要素ならび|R]) :-
第一要素と残り要素の収集(_副行列,_第一要素ならび,_残り要素ならび),
行列の転置(_残り要素ならび,R),!.
第一要素と残り要素の収集([],[],[]) :- !.
第一要素と残り要素の収集([[A|R1]|R2],[A|R3],[R1|R4]) :-
第一要素と残り要素の収集(R2,R3,R4).
297:デフォルトの名無しさん
10/01/16 11:47:35
スレリンク(tech板:843番)
# [1] 授業単元:計算機基本
# [2] 問題文(含コード&リンク):
# 1から10までの整数の2乗の和 1^2 + 2^2 + 3^2 + ... +8^2 + 9^2 + 10^2 を求めるプログラムを作ってみましょう。
# 途中経過も表示してください。
# 例:1^2 + 2^2 =
# 1^2 + 2^2 + 3^2 =
# ....
298:デフォルトの名無しさん
10/01/16 16:32:10
スレリンク(tech板:847番)
# [1] 授業単元: プログラミング演習
# [2] 問題文(含コード&リンク): URLリンク(ime.nu)
#
299:デフォルトの名無しさん
10/01/16 16:37:32
# 基本課題 2a(数式の読み込みと表示)
# 課題 2a と 2b では,算術式を読み,表示し,値を求めるプログラムを作る.
# 限られた時間内で数式処理の本質部分を効率よく学ぶために,
# 入力できる算術式の構文を,次の BNF で定めるものに限る.
#
# 定数 ::= 0 | 1 | … | 9
# 変数 ::= a | b | … | z | A | B | … | Z
# 算術式 ::= 定数
# | 変数
# | (算術式+算術式)
# | (算術式*算術式)
#
# つまり,1桁の定数や1文字の変数の和や積からなる式が入力である.
#
# 入力された算術式を読み込み,2分木データとして格納し,そのデータをもとに
# 入力と同じ算術式を表示する,という処理を繰り返すプログラムを作れ.
#
# 次の要求を満たすものを作り,仕様の不明確な部分は各自で詳細化すること.
#
# ・算術式は標準入力から読む
# ・2つの算術式の区切りは1つの空白 (間隔文字や改行文字など) とする
# ・結果は標準出力に書く
# ・構文に合わない算術式を読んだらプログラムを終了する
300:デフォルトの名無しさん
10/01/16 16:40:18
# ●基本課題 2b(数式の値の計算)
#
# 課題 2a のプログラムに,算術式の値を計算して表示する機能を追加せよ.
# ただし,変数の値は全て1であるとして,式の値を求めること.
#
# 例えば,入力が (2*3) と (x+(y+z)) の場合,次のような出力をすればよい.
# show: に続いて入力された算術式を,eval: に続いて算術式の値を表示している.
#
# (2*3) ←入力
# show: (2*3)
# eval: 6
#
# (x+(y+z)) ←入力
# show: (x+(y+z))
# eval: 3
#
# まず,算術式の値を求める関数 eval_exp()(exp.c にある)を完成させる.
# 十分な数の検査データを使って動作の正しさを確かめよ.
301:デフォルトの名無しさん
10/01/16 16:42:16
# ●基本課題 2c(数式データの基本操作)
#
# 算術式の値を変えずに括弧をくくり直す簡単な式変形を考える.例えば,式
#
# (1+(2+3))
# (a*(b*c))
# ((i*x)+((j*y)+(k*z)))
#
# の括弧を左にくくり直すと,それぞれ,次の式になる.
#
# ((1+2)+3)
# ((a*b)*c)
# (((i*x)+(j*y))+(k*z))
#
# 括弧を左にくくり直せる (A+(B+C)) や (A*(B*C)) の形の算術式を
# ((A+B)+C) や ((A*B)*C) の形にする式変形は,式に対応する木を
# 「左に転回」する変形と捉えられる.
302:デフォルトの名無しさん
10/01/16 19:23:50
>>297
% Prolog
'1から10までの整数の2乗の和 1^2 + 2^2 + 3^2 + ... +8^2 + 9^2 + 10^2 を求める'(_経過,_和) :-
'1から10までの整数の2乗の和 1^2 + 2^2 + 3^2 + ... +8^2 + 9^2 + 10^2 を求める'(1,[],_経過,0,_和).
'1から10までの整数の2乗の和 1^2 + 2^2 + 3^2 + ... +8^2 + 9^2 + 10^2 を求める'(M,_経過,_経過,_和,_和) :- M > 10,!.
'1から10までの整数の2乗の和 1^2 + 2^2 + 3^2 + ... +8^2 + 9^2 + 10^2 を求める'(M,_経過1,_経過,S1,_和) :-
M =< 10,
concat_atom([M,'^2'],U),
append(_経過1,[U],_経過11),
concat_atom(_経過11,'+',_経過),
_和 is truncate(M ^ 2 + S1).
'1から10までの整数の2乗の和 1^2 + 2^2 + 3^2 + ... +8^2 + 9^2 + 10^2 を求める'(M,_経過1,_経過,S1,_和) :-
M =< 10,
concat_atom([M,'^2'],U),
append(_経過1,[U],_経過2),
S2 is truncate(M ^ 2 + S1),
M2 is M + 1,
'1から10までの整数の2乗の和 1^2 + 2^2 + 3^2 + ... +8^2 + 9^2 + 10^2 を求める'(M2,_経過2,_経過,S2,_和).
303:デフォルトの名無しさん
10/01/16 20:04:17
>>297
ruby
sum=0;array=[]
for i in 1..10
sum+=i**2
array.push (i.to_s(10)+"^2")
puts array.join(" + ") + " = " + sum.to_s(10)
end
304:デフォルトの名無しさん
10/01/16 23:28:57
>>297
使用言語:Io
なんか前にやった問題だなあと、ながめていたらrubyによる解答が
書き込まれた。これを参考にもう一度やってみた。
Io> s:=0;a:="";for(i,1,10,writeln(a=a .. i .. "^2"," = ",s=s+i*i);a=a .. " + ")
305:デフォルトの名無しさん
10/01/17 01:00:17
>>297
;; Common Lisp ひさしぶりに挑戦
(dotimes (n 10)
(let (lst)
(dotimes (i (+ n 1)) (push (+ i 1) lst))
(setf lst (reverse lst))
(format t "~A = ~A~%"
(reduce #'(lambda (x y) (concatenate 'string x " + " y))
(map 'list #'(lambda (x) (concatenate 'string (princ-to-string x) "^2")) lst))
(reduce #'+ (map 'list #'(lambda (x) (* x x)) lst)))))
306:デフォルトの名無しさん
10/01/17 05:23:53
>>297
使用言語:maxima
for i thru 10 do printf(true,"~{~a^2~^ + ~} = ~a~%",a:makelist(j,j,1,i),lsum(k*k,k,a));
307:デフォルトの名無しさん
10/01/17 05:37:41
スレリンク(tech板:864番)
# [1] 授業単元: プログラミング演習 (木構造と数式処理)
# [2] 問題文(含コード&リンク):
#
# 算術式の値を変えずに括弧をくくり直す簡単な式変形を考える.例えば,式
#
# (1+(2+3))
# (a*(b*c))
# ((i*x)+((j*y)+(k*z)))
#
# の括弧を左にくくり直すと,それぞれ,次の式になる.
#
# ((1+2)+3)
# ((a*b)*c)
# (((i*x)+(j*y))+(k*z))
#
# 括弧を左にくくり直せる (A+(B+C)) や (A*(B*C)) の形の算術式を((A+B)+C) や ((A*B)*C) の形にする式変形は,式に対応する木を
# 「左に転回」する変形と捉えられる
#
# この操作を実行する関数 rotate_left_exp()を完成させてください。
# 括弧をくくり直すと値の変わる (8+(8*8)) のような式や,括弧をくくり直せる部分が内側にある (a+(b*(c*d))) のような式は,
# 変形しないこと.
308:デフォルトの名無しさん
10/01/17 06:11:43
>>297 訂正
% Prolog 一引数増やします。
'1から10までの整数の2乗の和 1^2 + 2^2 + 3^2 + ... +8^2 + 9^2 + 10^2 を求める'(M,_経過,_和) :-
'1から10までの整数の2乗の和 1^2 + 2^2 + 3^2 + ... +8^2 + 9^2 + 10^2 を求める'(1,M,[],_経過,0,_和).
'1から10までの整数の2乗の和 1^2 + 2^2 + 3^2 + ... +8^2 + 9^2 + 10^2 を求める'(M,M,_経過,_経過,_和,_和) :- M > 10,!.
'1から10までの整数の2乗の和 1^2 + 2^2 + 3^2 + ... +8^2 + 9^2 + 10^2 を求める'(M,M,_経過1,_経過,S1,_和) :-
M =< 10,
concat_atom([M,'^2'],U),
append(_経過1,[U],_経過11),
concat_atom(_経過11,'+',_経過),
_和 is truncate(M ^ 2 + S1).
'1から10までの整数の2乗の和 1^2 + 2^2 + 3^2 + ... +8^2 + 9^2 + 10^2 を求める'(M,MX,_経過1,_経過,S1,_和) :-
M =< 10,
concat_atom([M,'^2'],U),
append(_経過1,[U],_経過2),
S2 is truncate(M ^ 2 + S1),
M2 is M + 1,
'1から10までの整数の2乗の和 1^2 + 2^2 + 3^2 + ... +8^2 + 9^2 + 10^2 を求める'(M2,MX,_経過2,_経過,S2,_和).
309:デフォルトの名無しさん
10/01/17 06:14:45
>>308 (>>297)
% Prolog これで以下のように使います。
?- '1から10までの整数の2乗の和 1^2 + 2^2 + 3^2 + ... +8^2 + 9^2 + 10^2 を求める'(N,S,_和),write_formatted('%t=%t\n',[S,_和]),N>=10.
1^2=1
1^2+2^2=5
1^2+2^2+3^2=14
1^2+2^2+3^2+4^2=30
1^2+2^2+3^2+4^2+5^2=55
1^2+2^2+3^2+4^2+5^2+6^2=91
1^2+2^2+3^2+4^2+5^2+6^2+7^2=140
1^2+2^2+3^2+4^2+5^2+6^2+7^2+8^2=204
1^2+2^2+3^2+4^2+5^2+6^2+7^2+8^2+9^2=285
1^2+2^2+3^2+4^2+5^2+6^2+7^2+8^2+9^2+10^2=385
N = 10,
S = '1^2+2^2+3^2+4^2+5^2+6^2+7^2+8^2+9^2+10^2',
_和 = 385.
310:デフォルトの名無しさん
10/01/17 06:17:52
>>308 (>>297)
% Prolog または、次のように利用もします。
?- '1から10までの整数の2乗の和 1^2 + 2^2 + 3^2 + ... +8^2 + 9^2 + 10^2 を求める'(N,S,_和).
N = 1,
S = '1^2',
_和 = 1;
N = 2,
S = '1^2+2^2',
_和 = 5;
N = 3,
S = '1^2+2^2+3^2',
_和 = 14;
<中略>
N = 9,
S = '1^2+2^2+3^2+4^2+5^2+6^2+7^2+8^2+9^2',
_和 = 285;
N = 10,
S = '1^2+2^2+3^2+4^2+5^2+6^2+7^2+8^2+9^2+10^2',
_和 = 385;
no.
?-
311:デフォルトの名無しさん
10/01/17 06:38:27
スレリンク(db板:445番)
# MySQL 5.1での質問です。
#
# A B C
# 1 q name1
# 2 w name2
# 3 e name3
# 4 q name4
# 5 t name5
#
# 上記テーブルのB列の重複を除いたA,B,C列がほしい場合
#
# SELECT DISTINCT B FROM table_name;
#
# ではB列の重複を除くだけで他の列がとれません。他の列も併せて取得する場合はど
のような解決策がありますか?
#
# 望んでる結果は以下のものです。
#
# A B C
# 1 q name1
# 2 w name2
# 3 e name3
# 5 t name5
#
312:デフォルトの名無しさん
10/01/17 07:37:43
スレリンク(tech板:866番)
#
# 【質問テンプレ】
# [1] 授業単元:C言語演習
# [2] 問題文(含コード&リンク): コマンド引数を使用して
# 以下のように指定した文字列中の指定番号の文字を表示するプログラムを作成せよ。
#
# 例:./prg1 abcde 1
# char 1 is "a"
# ./peg1 abcdef123456 10
# char 10 is "4"
#
# エラー処理もしっかり行うこと。
313:デフォルトの名無しさん
10/01/17 09:40:27
>>311
使用言語:J
A=:,.1;2;3;4;5
B=:'q';'w';'e';'q';'t'
C=:,.'name1';'name2';'name3';'name4';'name5'
A,.B,.C
+-+-+-----+
|1|q|name1|
+-+-+-----+
|2|w|name2|
+-+-+-----+
|3|e|name3|
+-+-+-----+
|4|q|name4|
+-+-+-----+
|5|t|name5|
+-+-+-----+
(~:B)# A,.B,.C
+-+-+-----+
|1|q|name1|
+-+-+-----+
|2|w|name2|
+-+-+-----+
|3|e|name3|
+-+-+-----+
|5|t|name5|
+-+-+-----+
314:デフォルトの名無しさん
10/01/17 16:53:42
スレリンク(tech板:881番)
# [1] 授業単元:プログラミング
# [2] 問題文(含コード&リンク):URLリンク(ime.nu)
#
# 連立1次方程式の一般的な数値解法にはガウスの単純消去法がある。
# 下記の連立1次方程式の解法をC言語で表せ。
#
# x1 + 5x2 + x3 = 2
# 3x1 + 4x2 = 2
# 9x1 +10x2 + 4x3 = 8
315:デフォルトの名無しさん
10/01/17 17:00:18
スレリンク(tech板:881番)
# [1] 授業単元:プログラミング
# [2] 問題文(含コード&リンク):URLリンク(ime.nu)
#
# 問題文の構造が大きすぎてコピーできません。[2]のリンクを各自で見てください。
316:デフォルトの名無しさん
10/01/17 17:31:46
>>313
解説お願い。
317:デフォルトの名無しさん
10/01/17 17:39:41
>>315 は>>314と同じものになってしまいました。構造が多くてコピーできなかったのは
以下の問題です。
スレリンク(tech板:885番)
# [1] 授業単元:プログラミング(大学講義)
# [2] 問題文
# ハングマンを作成せよ。
# URLリンク(ime.nu)
# URLリンク(ime.nu)
#
318:デフォルトの名無しさん
10/01/17 19:16:26
>>316
「~.」が通常のuniqですが、AとCを道連れにするするために
「~:」を使いました。これは、いきなりuniqせずに残す要素を1で
削除する要素を0で表したリストを返します。
「#」はコピーなんですが、1と0のリストを左引数に、操作するデータ
を右引数にすると1に対応するデータだけを返します。
B=:,.'q';'w';'e';'q';'t'
~. B
+-+
|q|
+-+
|w|
+-+
|e|
+-+
|t|
+-+
~: B
1 1 1 0 1
1 1 1 0 1 # B
+-+
|q|
+-+
|w|
+-+
|e|
+-+
|t|
+-+
319:デフォルトの名無しさん
10/01/17 19:52:42
>>318
「~:」によって、どうして、
01111 ではなく 11101 の選択になるのですか?
320:デフォルトの名無しさん
10/01/17 19:55:31
スレリンク(tech板:894番)
# お願いします
# [1] 授業単元: プログラミング演習�
# [2] 問題文(含コード&リンク):
# Printfを作る。
# %d, %c, %sのみサポートする。
321:デフォルトの名無しさん
10/01/17 21:14:04
>>319
J言語のuniqは重複した要素の内、最初にあらわれたものを
残すようです。
322:デフォルトの名無しさん
10/01/17 21:16:39
スレリンク(tech板:85番)
# 【課題】
# 同じ長さのリストA,Bがある。Aはソート対象のデータ、Bは比較用の値が入っている。
# A,Bの2つの引数をとり、Bの値が昇順になるようにAをソートする関数を定義しなさい。
# 引数のリストは破壊しても良く、ソート結果は戻り値・引数Aを上書きのどちらでも良い。
# 処理の早いものには追加点を与える。
#
323:デフォルトの名無しさん
10/01/17 21:18:13
>>321
ご丁寧な回答に感謝します。
324:デフォルトの名無しさん
10/01/18 06:01:26
スレリンク(tech板:911番)
# お願いします
# [1] 授業単元:電子演算機演習
# [2] 問題文(含コード&リンク):
# 2次元の文字配列が、main関数内において次の詞で初期化(空白行も含める)されている。
# 例によって、初期化に用いられた詞の文字数や行数などはわかっていないものとする。
#
# (1)関数NumOfCharで総文字数(空白以外)を、(2)関数NumOfWordで単語数を、(3)関数
# NumOfLineで行数(空白行は数えない。また、空白行が2行以上続くことはない)を、(4)main
# 関数内でキーボードから一文字入力し、関数NumOfCoinで入力した文字と一致する文字数を数えて、
# main関数内でそれらの数を表示する。文字列に小細工をしないこと(単語:空白又は改行から空白
# 又は改行まで)
325:デフォルトの名無しさん
10/01/18 06:05:16
スレリンク(tech板:728番)
# 【 課題 】国旗を表示するプログラム(日の丸、星条旗、ユニオンジャック等)を作れ。 指定された国旗を画面に表示する。少なくても8種類以上。 国旗の指定にはメニューとかボタンとかを表示して、選択させること。
# 国旗は図形として描くこと。写真を貼り付けたりしては駄目。