10/07/06 17:33:45
>>262
% Prolog
'1からの文字連鎖によって文字列を成長させながら表示する' :-
文字連鎖によって文字列を成長させながら表示する('1').
文字連鎖によって文字列を成長させながら表示する(_文字列) :- write_formatted('%t\n',_文字列]).
文字連鎖によって文字列を成長させながら表示する(_文字列) :-
sub_atom(_文字列,_,1,1,_最後の文字),
文字連鎖(_最後の文字,_次の文字),
atom_concat(_文字列,_次の文字,_付加された文字列),
文字連鎖によって文字列を成長させながら表示する(_付加された文字列).
文字連鎖('1','2'). 文字連鎖('2','3'). 文字連鎖('3','4'). 文字連鎖('4','5'). 文字連鎖('5','6').
文字連鎖('6','7'). 文字連鎖('7','8'). 文字連鎖('8','9'). 文字連鎖('9','0'). 文字連鎖('0','1').
264:デフォルトの名無しさん
10/07/06 17:41:48
>>263 (>>262)
% Prolog 一ヶ所、間違い。"["が抜けた。
'1からの文字連鎖によって文字列を成長させながら表示する' :-
文字連鎖によって文字列を成長させながら表示する('1').
文字連鎖によって文字列を成長させながら表示する(_文字列) :- write_formatted('%t\n',[_文字列]).
文字連鎖によって文字列を成長させながら表示する(_文字列) :-
sub_atom(_文字列,_,1,1,_最後の文字),
文字連鎖(_最後の文字,_次の文字),
atom_concat(_文字列,_次の文字,_付加された文字列),
文字連鎖によって文字列を成長させながら表示する(_付加された文字列).
文字連鎖('1','2'). 文字連鎖('2','3'). 文字連鎖('3','4'). 文字連鎖('4','5'). 文字連鎖('5','6').
文字連鎖('6','7'). 文字連鎖('7','8'). 文字連鎖('8','9'). 文字連鎖('9','0'). 文字連鎖('0','1').
265:デフォルトの名無しさん
10/07/06 18:08:31
>>264 (>>262)
% Prolog 終了指定を忘れてたw
:- op(600,xfx,が). :- op(700,xf,回現れるまで).
'ある文字がN回現れるまで1からの文字連鎖によって文字列を成長させながら表示する' :-
文字連鎖によって文字列を成長させながら表示する('5' が 1 回現れるまで,'1').
文字連鎖によって文字列を成長させながら表示する(_ が 0 回現れるまで,_) :- !.
文字連鎖によって文字列を成長させながら表示する(A が N 回現れるまで,_文字列) :-
write_formatted('%t\n',_文字列]).
文字連鎖によって文字列を成長させながら表示する(A が N 回現れるまで,_文字列) :-
sub_atom(_文字列,_,1,1,A),
文字連鎖(A,_次の文字),
atom_concat(_文字列,_次の文字,_付加された文字列),
N1 is N - 1,
文字連鎖によって文字列を成長させながら表示する(A が N1 回現れるまで,_付加された文字列).
文字連鎖によって文字列を成長させながら表示する(A が N 回現れるまで,_文字列) :-
sub_atom(_文字列,_,1,1,_最後の文字),
文字連鎖(_最後の文字,_次の文字),
atom_concat(_文字列,_次の文字,_付加された文字列),
文字連鎖によって文字列を成長させながら表示する(A が N 回現れるまで,_付加された文字列).
文字連鎖('1','2'). 文字連鎖('2','3'). 文字連鎖('3','4'). 文字連鎖('4','5'). 文字連鎖('5','6').
文字連鎖('6','7'). 文字連鎖('7','8'). 文字連鎖('8','9'). 文字連鎖('9','0'). 文字連鎖('0','1').
266:デフォルトの名無しさん
10/07/06 19:32:02
>>265 (>>262)
% Prolog さらに誤りがあったのでこの修正版は
URLリンク(nojiriko.asia) を参照してください。
% 12345 を数値と解釈するならば、
:- op(600,xfx,が).
:- op(700,xf,回現れるまで).
'ある数値がN回現れるまで1からの数値連鎖によって数値列を成長させながら表示する'(_ が 0 回現れるまで,_) :- !.
'ある数値がN回現れるまで1からの数値連鎖によって数値列を成長させながら表示する'(A が N 回現れるまで,M) :-
A is (M + 1) mod 10,
M10 is M * 10,
M2 is M10 + M1,
write_formatted('%t',[M2]),
N1 is N - 1,
'ある数値がN回現れるまで1からの数値連鎖によって数値列を成長させながら表示する'(A が N1 回現れるまで,M2).
'ある数値がN回現れるまで1からの数値連鎖によって数値列を成長させながら表示する'(A が N 回現れるまで,M) :-
M1 is (M + 1) mod 10,
M10 is M * 10,
M2 is M10 + M1,
write_formatted('%t',[M2]),
N1 is N - 1,
'ある数値がN回現れるまで1からの数値連鎖によって数値列を成長させながら表示する'(A が N 回現れるまで,M2).
267:デフォルトの名無しさん
10/07/06 20:10:02
>>246
% Prolog
:- op(300,xf,回).
:- op(700,xf,切る).
半乱順列の作成(_置換指定,_対象ならび,_半乱順列ならび) :-
整列(_対象ならび,_整列したならび),
整列したならび乱す(_置換指定,_整列したならび,_半乱順列ならび).
整列したならび乱す(最初と最後の要素を入れ替える,L1,L2) :-
[A|R]=L3,
append(L4,[B],R),
append([B|L4],[A],L2),!.
整列したならびを乱す(0 回 切る,L,L) :- !.
整列したならびを乱す(N 回 切る,L1,L2) :-
length(L1,Len),
N1 is random mod Len,
N2 is random mod Len,
ならびの交換(N1,N2,L1,L3),
N1 is N - 1,
整列したならびを乱す(N1 回 切る,L1,L2).
整列したならびを乱す([],L,L) :- !.
整列したならびを乱す([[N1,N2]|R],L1,L2) :-
ならびの交換(N1,N2,L1,L3),
整列したならびを乱す(R,L3,L2).
268:デフォルトの名無しさん
10/07/06 22:29:47
スレリンク(tech板:569番)
# コインの種類(例えば、1円、5円、8円、10円、15円)に対して、金額を入力すると
# その金額を払うのに最も枚数が少なくて済むコインの出し方を出力してくれる
# プログラム。
# 例えば、23円と入力すると、「10円1枚・8円1枚・5円1枚の計3枚」と出力できるプログラムです。
# ただし、「10円2枚・1円3枚の計5枚」は「最小」ではないため、上の出力を優先します。
# 入力された金額が負の場合は、「Error」を出力するようにします。
# そこで、下のようなプログラムを書いたのですが、うまく起動しません。
# このプログラムを、上の出力例のように出力してくれるように書きなおしてくれませんか??
# 下のプログラムでは合計枚数を出力する部分しか書いてません。
# ちなみに、再帰を使ってプログラミングお願いします。
269:デフォルトの名無しさん
10/07/07 05:08:38
スレリンク(tech板:595番)
# [1] 授業単元:プログラミング演習
# Q1. 問題文:4つの整数を入力し、それらを要素とする行列を求め、その値を以下のような
# 形式で表示するプログラムを作成せよ。
#
# 例 100 20 30 40と入力すれば
# | 100 20 | =3400
# | 30 40 | と表示される
#
# Q.2ディスカウントストアでどの商品でも5個以上買えば1割引、10個以上で2割引、20個以上で
# 4割引となっていた。キーボードから買う商品の単価と個数を入力し、合計金額を計算するプログラミングを
# 作成せよ。
#
270:デフォルトの名無しさん
10/07/07 07:32:53
>>269
% Prolog Q1
'4つの整数を入力し、それらを要素とする行列を求め、行列とその値を表示する' :-
get_split_line([' ',','],[A,B,C,D]),
正方行列の行列式の値([[A,B],[C,D]],_行列式の値),
write_formatted(' |%3d %3d| = %t\n',[A,B,_行列式の値]),
write_formatted(' |%3d %3d|\n',[C,D]).
正方行列の行列式の値(_正方行列,_行列式の値) :-
ガウス行列に変形(_正方行列,X,Y),
'行列式|C|の値'(X,Z1),
ならびの積(Y,Z2),
_行列式の値 is Z1 // Z2.
ならびの積([A],A) :- !.
ならびの積([A|R],X) :-
ならびの積(R,Y),
X is A * Y.
'行列式|C|の値'(_行列,_値) :-
length(_行列,Len),
findall(U,(for(1,N,Len),list_nth(N,_行列,_行),list_nth(N,_行,U)),L),
ならびの積(L,_値).
271:デフォルトの名無しさん
10/07/07 07:52:13
>>269
% Prolog Q2
:- op(700,xfx,は).
'ディスカウントストアでどの商品でも5個以上買えば1割引、10個以上で2割引、20個以上で4割引となっていた。キーボードから買う商品の単価と個数を入力し、合計金額を計算する' :-
write('商品単価と個数を入力してください : '),
get_split_line([' ',','],[_単価,_個数]),
合計金額を計算する(_単価,_個数,_合計金額).
合計金額を計算する(_単価,_個数,_合計金額) :-
abs(_個数) < 5,
_合計金額 は 四捨五入(_単価 * _個数).
合計金額を計算する(_単価,_個数,_合計金額) :-
abs(_個数) >= 5,abs(_個数) < 10,
_合計金額 は 四捨五入(_単価 * _個数 * (1 - 0.1)).
合計金額を計算する(_単価,_個数,_合計金額) :-
abs(_個数) >= 10,abs(_個数) < 20,
_合計金額 は 四捨五入(_単価 * _個数 * (1 - 0.2)).
合計金額を計算する(_単価,_個数,_合計金額) :-
abs(_個数) >= 20,
_合計金額 は 四捨五入(_単価 * _個数 * (1 - 0.4)).
_値 は 四捨五入(_式) :- _値_1 は _式,_値 is truncate(floor(_値_1 + 0.5)),!.
_値 は _式 :- _値 is _式.
272:デフォルトの名無しさん
10/07/07 08:33:41
>>271 (>>269)
% Prolog 訂正。
:- op(700,xfx,は).
_値 は 四捨五入(_式) :-
_値_1 は _式,
_値_1 >= 0.0,
_値 is truncate(floor(_値_1 + 0.5)),!.
_値 は 四捨五入(_式) :-
_値_1 は _式,
_値_1 < 0.0,
_値 is truncate(ceiling(_値_1 - 0.5)),!.
_値 は _式 :-
_値 is _式.
273:デフォルトの名無しさん
10/07/07 14:05:52
スレリンク(tech板:602番)
# [1] 授業単元: プログラミング演習
# [2] 問題文(含コード&リンク):URLリンク(ime.nu)
# 問題文
#
# 0から7までの数字が描かれたカードがある。ただし、0だけ2枚で、合計9枚とする。
# この中から4枚を選ぶ組合せを考える。ただし、6と7は同時に選ばない(両方選ばなくてもよい)。
# このような組合せを列挙し、何通りあるかを、C言語のプログラムで求める。何通りあるかは、数学的に解いて確認せよ。
# 例題プログラムEnumFull.c を修正する。
#
# 部分問題への分解 0が現れる枚数で場合分けして、それぞれの個数を集計
# 弱化問題への緩和 0および6と7に関する条件を無視して、とりあえず全てを列挙し、題意に合わないものを排除
# 等価問題への還元 2枚の0を、0と8に読み換え、8は単独で選ばないという条件に置換
# 7は外して列挙し、6が現れる場合に、7に読み換えたものも追加
274:デフォルトの名無しさん
10/07/07 15:04:06
>>273
% Prolog
'0から7までの数字が描かれたカードがある。ただし、0だけ2枚で、合計9枚とする。こ
の中から4枚を選ぶ組合せを考える。ただし、6と7は同時に選ばない(両方選ばなくても
よい)。このような組合せを列挙する'(U) :-
findall(L,(
組み合わせ([0,0,1,2,3,4,5,6,7],4,L),
許される組み合わせ(L)),
X),
sort(X,Y),
append(_[U|R],Y).
許される組み合わせ(A) :- append(_[6|_],A),append(_,[7|_],A),!,fail.
許される組み合わせ(A) :- append(B,[0|C],A),append(D,[0|E],C),!,fail.
許される組み合わせ(A).
275:デフォルトの名無しさん
10/07/07 15:11:45
>>274 (>>273)
% Prolog 述語名の途中で改行してしまった。書き直し。
'0から7までの数字が描かれたカードがある。ただし、0だけ2枚で、合計9枚とする。この中から4枚を選ぶ組合せを考える。ただし、6と7は同時に選ばない(両方選ばなくてもよい)。このような組合せを列挙する'(U) :-
findall(L,(
組み合わせ([0,0,1,2,3,4,5,6,7],4,L),
許される組み合わせ(L)),
X),
sort(X,Y),
append(_[U|R],Y).
許される組み合わせ(A) :- append(_[6|_],A),append(_,[7|_],A),!,fail.
許される組み合わせ(A) :- append(B,[0|C],A),append(D,[0|E],C),!,fail.
許される組み合わせ(A).
276:デフォルトの名無しさん
10/07/07 16:06:52
>>273
% Prolog
'0から7までの数字が描かれたカードがある。ただし、0だけ2枚で、合計9枚とする。この中から4枚を選ぶ組合せを考える。ただし、6と7は同時に選ばない(両方選ばなくてもよい)。このような組合せは何通りあるか'(_何通り) :-
count(('0から7までの数字が描かれたカードがある。ただし、0だけ2枚で、合計9枚とする。この中から4枚を選ぶ組合せを考える。ただし、6と7は同時に選ばない(両方選ばなくてもよい)。このような組合せを列挙する'(U)),_何通り).
277:デフォルトの名無しさん
10/07/07 16:09:47
スレリンク(tech板:603番)
# [1] 授業単元: プログラミング演習
# [2] 問題文(含コード&リンク):
# 10人の成績を入力し、その順位を成績と共に表示したい。以下の考えに基づいたプログラムを作成せよ。
#
# 1. 2次元配列s[10][2]を用意する。
# 2. i=0~9のfor文を用いて、s[i][0]に成績入力する。
# 3. s[0][0]とs[j][0], j=0~9を比較し、s[0][0]より大きい数値の個数nを考える。
# その個数+1が成績順位になるので、s[0][1]にn+1を代入する。
# 4. 同様の操作をs[i][0]にi=0~9に対して行えば、その成績順位がs[i][1]として求められるので、
# あとは成績と共に表示すればいい。
278:デフォルトの名無しさん
10/07/07 22:33:59
>277
% Prolog これは既出。
URLリンク(nojiriko.asia)
279:デフォルトの名無しさん
10/07/08 00:52:11
>>243
使用言語:J
load 'misc'
f=:monad define
a=.prompt '非負の整数を入力してください: '
smoutput a,' を逆から読むと ',(|.a),' です.'
)
f ''
非負の整数を入力してください: 1234
1234 を逆から読むと 4321 です.
280:デフォルトの名無しさん
10/07/08 01:22:17
>>244
使用言語:J
load 'misc'
f=:monad define
s=.0
n=.1
smoutput '整数を入力してください'
while. 0<a=.".prompt '整数',(":n),' : ' do.
n=.n+1
s=.s+ *:a
end.
smoutput '二乗値の合計は ',(":s),' です.'
)
f ''
整数を入力してください
整数1 : 3
整数2 : 5
整数3 : -1
二乗値の合計は 34 です.
281:デフォルトの名無しさん
10/07/08 01:32:42
>>245
使用言語:J
load 'misc'
f=:monad define
m=.".prompt '何行ですか: '
n=.".prompt '何列ですか: '
smoutput (8!:2)10|(i.m)+/>:i.n
)
f ''
何行ですか: 7
何列ですか: 12
123456789012
234567890123
345678901234
456789012345
567890123456
678901234567
789012345678
282:デフォルトの名無しさん
10/07/08 01:40:50
>>262
使用言語:J
smoutput@(8!:2)\>:i.5
1
12
123
1234
12345
283:デフォルトの名無しさん
10/07/08 05:05:31
スレリンク(tech板:618番)
# 【質問テンプレ】
# [1] 授業単元:プログラミング演習
# [2] 問題文(含コード&リンク):
# 円形テンプレートマッチングのプログラムを作成せよ。
#
# 白い楕円が複数書いてあるBMP画像を読み込み(適当にペイントで作成)画像左下からラスタ走査し、円形テンプレートマッチングをするプログラムを作成せよ。
# 円形テンプレートはサイズA~Bまで変化させ、一致率(円形テンプレートの円周上に一致する白画素と一致している数/円形テンプレート円周のプロット数、円形テンプレート内の黒画素に一致している黒画素数/円形テンプレート内の黒画素数)
# 上位5つを色を変えて描画せよ。
#
# また、一致率上位5つの半径、一致率、座標(画像の左下をx=0、y=0とする)をdos窓上に標示せよ。
#
284:デフォルトの名無しさん
10/07/08 05:08:09
スレリンク(tech板:619番)
# [1] 授業単元:Cプログラミング演習
# [2] 問題文(含コード&リンク):
# 問題1. 10進数1234を2進数で表示するプログラムを作成せよ。
# 問題2. 変数の下位16ビット中の1のビット数を数える関数 int bit_count(int x) を作成せよ
#
285:デフォルトの名無しさん
10/07/08 05:11:58
スレリンク(tech板:630番)
# [1] 授業単元:Cプログラミング
# [2] 問題文(含コード&リンク):
#
# 概要:数値を1つ(2~9の数字)入力し、その個数分の"*"を1辺とする
# 完成図(*=★、空白=☆):
#
# 3を入力した場合
# ★★★
# ☆☆★
# ★★★
#
# 9を入力した場合
# ★★★★★★★★★
# ☆☆☆☆☆☆☆☆★
# ★★★★★★★☆★
# ★☆☆☆☆☆★☆★
# ★☆★★★☆★☆★
# ★☆★☆☆☆★☆★
# ★☆★★★★★☆★
# ★☆☆☆☆☆☆☆★
# ★★★★★★★★★
286:デフォルトの名無しさん
10/07/08 07:12:02
>>284
% Prolog
URLリンク(nojiriko.asia)
287:デフォルトの名無しさん
10/07/08 07:31:47
>>284
使用言語:J
NB. p1
(8!:2)#:1234
10011010010
NB. p2
bit_count=:monad def '+/(16#2)#:y'
a=:1234
bit_count a
5
288:デフォルトの名無しさん
10/07/08 10:35:47
>>285
% Prolog
URLリンク(nojiriko.asia)
289:デフォルトの名無しさん
10/07/08 12:45:49
>>269
使用言語:J
NB. Q1
f=:monad def '-/ .* 2 2 $ y'
f 100 20 30 40
3400
NB. Q2
f=:dyad define
s=.x*y
r=.0
if. (5<:y) *. (y<10) do. r=.0.1
elseif. (10<:y) *. (y<20) do. r=.0.2
elseif. 20<:y do. r=.0.4
end.
s=.s-<.s*r
)
100 f 2
200
100 f 5
450
100 f 10
800
100 f 20
1200
290:デフォルトの名無しさん
10/07/08 13:49:38
スレリンク(tech板:632番)
# [1] 授業単元:C・プログラミング
# [2] 問題文(含コード&リンク):
# 下記のGPA計算のプログラムを読み込んだ数値を入れる配列を指すポインタを用いて書き換えよ.ただし,配列は1次元配列を用い,また関数を使う必要はない.
# URLリンク(ime.nu)
#
291:デフォルトの名無しさん
10/07/08 23:27:41
>>285
使用言語:J
f=:monad define
if. 0=2|y do.
b=.(,|.)i.-:y
else.
b=.(}:,|.)i.-:>:y
end.
c=.0=2|<./~b
d=.y{0 0 1 1 1 2 3 3 3 4
((d$0 1)(;/&.><"1(,.~>:)i.d)}c){ucp'☆★'
)
f 2
★★
☆★
f 4
★★★★
☆☆☆★
★☆☆★
★★★★
f 5
★★★★★
☆☆☆☆★
★★★☆★
★☆☆☆★
★★★★★
292:デフォルトの名無しさん
10/07/09 19:19:10
>>273
使用言語:J
comb=:dyad define
k=. i.>:d=.y-x
z=. (d$<i.0 0),<i.1 0
for. i.x do. z=. k ,.&.> ,&.>/\. >:&.> z end.
; z
)
f=:dyad define
a=. x comb y
(2 ~: +/ |: +/ 6 7 =/ a) # a
)
# 4 f 9
105
293:デフォルトの名無しさん
10/07/10 02:25:47
使用言語:pascal
以下の条件(仕様)を満たすプログラムを作成し, そのプログラム(Pascalプログラムソースファイル)とともに その解説書を提出すること.
逆ポーランド記法で入力された論理式の充足可能性を判定し, その式の値をtrueにする変数値を,通常の表記とともに出力すること.
可能な演算は論理積(and), 論理和(or), 否定(not), の3種類として, それぞれ 'a','o','n' で表現すること.
使用可能な論理変数は x0, x1, ..., x9 の10種類とし, それぞれ '0','1',...,'9' で表現すること.
例) (x1∧x2)∨(¬x1∧x3) ⇒ 12a1n3ao
使用できない文字が含まれる入力に対してエラーの旨を出力すること.
入力された論理式の充足可能性を判定, 式の値を true にする変数値を出力した後, 再度入力待ち状態になり, 空の文字列を入力するとプログラムが終了すること.
padcalの宿題スレで返答がないのでこちらに書かせていただきました。
解説も出来たらお願いします。
294:デフォルトの名無しさん
10/07/12 18:55:29
>>245
使用言語:maxima
f(m, n) :=
for i thru m do (
for j thru n do printf(true, "~d", mod(i + j - 1, 10)),
newline()
);
(%i63) f(7,12);
123456789012
234567890123
345678901234
456789012345
567890123456
678901234567
789012345678
295:デフォルトの名無しさん
10/07/16 01:38:24
# 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
コピーさせていただきました
ホームページ上からデータを追加、検索したりする問題です。
# OS:Linux
296:デフォルトの名無しさん
10/07/18 10:04:24
スレリンク(tech板:42番) # 1] 授業単元:く興味本位での自習 # [2] 問題文 # (繰り返し文を用いて) # 1~10までの偶数を出力 # # 2 # 4 # 6 # 8 # 10 #
297:デフォルトの名無しさん
10/07/18 12:52:47
>>296
使用言語:Scilab
-->2:2:10
ans =
2. 4. 6. 8. 10.
298:デフォルトの名無しさん
10/07/18 12:58:29
>>296
使用言語:J
>:i.10
1 2 3 4 5 6 7 8 9 10
_2,\>:i.10
1 2
3 4
5 6
7 8
9 10
|:_2,\>:i.10
1 3 5 7 9
2 4 6 8 10
}.|:_2,\>:i.10
2 4 6 8 10
299:デフォルトの名無しさん
10/07/18 19:05:48
prologの問題で5本ハノイの塔を考えているのですが、効率のいいアルゴリズムがわかりません。
協力お願いします。
#使用言語:prolog
#単元:演習問題
#a;b;c;d;eという5 本の棒があり、棒aに円盤1からnまでが存在している。
#棒aの1からnまでの円盤を棒eに移す。
#3本の時の例
move(N,A,B) :- display(N), display(' from '),
display(A), display(' to '),
display(B), nl.
hanoi(1,A,B,C) :- move(1,A,C).
hanoi(N,A,B,C) :- M is N-1, hanoi(M,A,C,B),
move(N,A,C),
hanoi(M,B,A,C).
こんな感じでやりました。(見にくくてすみません)
300:デフォルトの名無しさん
10/07/18 19:26:52
↑の続きですが、試行回数を3本の時以下にする問題です。
301:デフォルトの名無しさん
10/07/19 21:28:51
落雷による停電で不通になっていたPrologアーカイブ URLリンク(nojirio.asia) 復旧しました。
302:デフォルトの名無しさん
10/07/19 21:30:29
>>301 間違えました。 URLリンク(nojiriko.asia) ですね。
303:デフォルトの名無しさん
10/07/20 06:28:12
書き込み規制中に100題以上進んでしまいました。順にアップしていくつもりですが、追いつかないかもしれない。C/C++の課題は上のアーカイブにc13[7-8]_*.htmlのファイル名でコピーしてあります。中には解答を含んでいるものもありますが、四分の一くらいかな。
304:デフォルトの名無しさん
10/07/20 06:36:38
Javaの宿題からの出題分は j69_*.html ですね。たとえば、URLリンク(nojiriko.asia) でindexに未登録のものでも参照できます。
305:デフォルトの名無しさん
10/07/23 04:12:54
スレリンク(tech板:648番)
# [1] 授業単元:
# [2] 問題文(含コード&リンク):
# 2~9の数字を入力その数字に応じて図形を表示させる関数を作る
# 正方形 三角形 六角形 菱形 星 渦巻き
# 星と渦巻き以外できたからこの2つについて知りたい
# 例 7を入力したとき 左:渦 右:星
#
# ******* * * *
# * * * *
# ***** * ***
# * * * *******
# * *** * ***
# * * * * *
# ******* * * *
#
306:デフォルトの名無しさん
10/07/23 04:19:04
スレリンク(tech板:655番)
# [1] 授業単元:C言語
# [2] 問題文(含コード&リンク):
#
# 以下の仕様に従って,分数の四則演算を行うプログラムを作成せよ。
# [仕様1] 以下のような構造体を定義し,分数のデータ構造に利用すること。
# struct fraction{
# int parent; /* 分母(denominator) */
# int child; /* 分子(numerator) */
# };
# [仕様2] 以下の実行結果となるようなプログラムを作成せよ。
# プログラムの実行結果↓
# 1つ目の分数を入力して下さい。
# 3/4 ←キーボードより入力
# 2つ目の分数を入力して下さい。
# 1/4 ←キーボードより入力
# 演算方法(1.加算,2.減算,3.乗算,4.除算)を入力して下さい。
# 2 ←キーボードより入力
# 3/4 - 1/4 = 1/2
# 計算結果は約分をして表示
#
307:デフォルトの名無しさん
10/07/23 04:22:05
スレリンク(db板:276番)
# 以下のようなテーブルがあります。
#
# itemテーブル
# item_id name color
# 1 商品1 3
# 2 商品2 12
# 3 商品3 7
#
# colorテーブル
# color_id name
# 1 赤
# 2 青
# 4 緑
# 8 黒
#
# item.colorの部分は、ビット演算の概念を使って
# 3なら赤+青
# 12なら緑+黒
# 7なら赤+青+緑
# の色を持っていることを意味します。
308:デフォルトの名無しさん
10/07/23 04:23:44
>>307 のつづきです。
# これを結合の段階で、以下のように色名を取得することは可能なのでしょうか?
#
# 1 商品1 赤
# 1 商品1 青
# 2 商品2 緑
# 2 商品2 黒
# 3 商品3 赤
# 3 商品3 青
# 3 商品3 緑
#
309:デフォルトの名無しさん
10/07/23 04:33:04
これはまだ7月9日分です。この後140題くらい出題されています。
310:デフォルトの名無しさん
10/07/23 07:03:30
>>307
% Prolog
色名を取得する :-
item(_item_id,_name,_color),
色の割り当て(_color,_色名),
write_formatted('%t %t %t\n',[_item_id,_name,_色名]),
fail.
色名を取得する.
色の割り当て(_色番号,_色名) :-
findall([_color_id,_name],color(_color_id,_name),L),
sort(L,L1),
reverse(L1,L2),
色の割り当て(_色番号,L2,_色名).
色の割り当て(N,_,_) :- N =< 0,!,fail.
色の割り当て(N,[[C,_色名]|R1],_色名) :-
1 is N // C.
色の割り当て(N,[[C,_]|R1],_色名) :-
1 is N // C,
M is N mod C,
色の割り当て(M,R1,_色名).
色の割り当て(N,[[C,_]|R1],_色名) :-
0 is N // C,
M is N mod C,
色の割り当て(M,R1,_色名).
311:デフォルトの名無しさん
10/07/23 13:26:16
スレリンク(tech板:260番)
# 【 課題 】今月のカレンダ作成詳細は下に書きます
# 【 形態 】Javaアプリケーション(main()で開始)
# 【 期限 】7月14日日
# 【 Ver 】1.6.0_20
#
# 今月、7月のカレンダーを2次元配列に格納してください。
# 要素数は縦5横7の配列となります。(曜日は格納する必要がありません。)
# 週の先頭が日曜日はじまりで格納してください
# 配列のカレンダーを表示するコードを追加してください。
# 日にちを1つ入力するとその日が何曜日かを表示するコードに修正してください。
# よろしくお願いします
312:デフォルトの名無しさん
10/07/23 13:39:21
>>311
% Prolog
'今月、7月のカレンダーを2次元配列に格納する'(LL) :-
今日の日付と曜日番号(_日,_曜日番号),
カレンダーの構造を作る(_31日定数平坦ならび,_35日平坦ならび,_5週間ならび,
'全体の枠の中で1-31日の位置を確定する'(_日,_曜日番号,L0,_31日定数平坦ならび,L2,_35日平坦ならび),
変数として残った両端部分は空白に(L0,L2),
平坦化の逆変換(_5週間ならび,_35日平坦ならび).
今日の日付と曜日番号(_日,_曜日番号) :-
_時刻 is time,
localtime(_時刻,_年,_月,_日,_曜日番号,_累積日,_時,_分_秒).
カレンダーの構造を作る(_31日定数平坦ならび,_35日平坦ならび,_5週間ならび) :-
findall(N,for(1,N,31),_31日定数平坦ならび),
findall(_,for(1,N,35),_35日平坦ならび),
findall(L,(for(1,_,5),length(L,7)),_5週間ならび).
'全体の枠の中で1-31日の位置を確定する'(_日,_曜日番号,L0,_31日定数平坦ならび,L2,_35日平坦ならび) :-
append(L0,_31日定数平坦ならび,L2,_35日平坦ならび),
append(U,[J|_],_35日平坦ならび),\+(var(J)),J=_日,
length(U,Len),
_曜日番号 is Len mod 7,!.
変数として残った両端部分は空白に(L0,L2) :- all(L0,' '),all(L2,' ').
平坦化の逆変換(L1,L2) :- flat(L1,L2).
313:デフォルトの名無しさん
10/07/23 13:43:32
>>296
% Prolog 解答例その一
'1~10までの偶数を出力' :-
for(1,N,10),
偶数(N),
write_formatted('%t\n',[N]),
fail.
'1~10までの偶数を出力'.
314:デフォルトの名無しさん
10/07/23 13:45:36
>>296
% Prolog その二
'1~10までの偶数を出力' :-
'1~10までの偶数(非決定性)'(1,N),
write_formatted('%t\n',[N]),
fail.
'1~10までの偶数'.
'1~10までの偶数(非決定性)'(N,_) :- N > 10,!,fail.
'1~10までの偶数(非決定性)'(N,N) :- 偶数(N).
'1~10までの偶数(非決定性)'(N1,N) :-
N2 is N1 + 1,
'1~10までの偶数(非決定性)'(N2,N).
315:デフォルトの名無しさん
10/07/23 13:49:38
>>296
% Prolog その三
'1~10までの偶数を出力' :-
'1~10までの偶数を出力'(1).
'1~10までの偶数を出力'(N) :- N > 10,!.
'1~10までの偶数を出力'(N) :-
偶数(N),
write_formatted('%t\n',[N]),
N2 is N + 1,
'1~10までの偶数を出力'(N2).
'1~10までの偶数を出力'(N) :-
奇数(N),
N2 is N + 1,
'1~10までの偶数を出力'(N2).
316:デフォルトの名無しさん
10/07/23 13:50:58
>>296
% Prolog その四
'1~10までの偶数を出力' :-
'1~10までの偶数ならび'(1,L),
concat_atom(L,'\n',S),
write_formatted('%t\n',[S]).
'1~10までの偶数ならび'(N,[]) :- N > 10,!.
'1~10までの偶数ならび'(N,[N|R]) :-
偶数(N),
N2 is N + 1,
'1~10までの偶数ならび'(N2,R).
'1~10までの偶数ならび'(N,R) :-
奇数(N),
N2 is N + 1,
'1~10までの偶数ならび'(N2,R).
317:デフォルトの名無しさん
10/07/23 13:52:28
>>296
% Prolog その五
'1~10までの偶数を出力' :-
'1~10までの偶数を出力'(1).
'1~10までの偶数を出力'(N) :- N > 10,!.
'1~10までの偶数を出力'(N) :-
偶数(N),
write_formatted('%t\n',[N]),
N2 is N + 1,
'1~10までの偶数を出力'(N2).
'1~10までの偶数を出力'(N) :-
奇数(N),
N2 is N + 1,
'1~10までの偶数を出力'(N2).
318:デフォルトの名無しさん
10/07/23 13:56:07
>>296
% Prolog これは上記5個の '1~10までの偶数を出力'/0 述語から呼び出されている定義です。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'1~10までの偶数を出力' :-
findall(N,(for(1,N,10),偶数(N)),L),
concat_atom(L,'\n',S),
write_formatted('%t\n',[S]).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
偶数(N) :- 0 is N mod 2.
奇数(N) :- 1 is N mod 2.
319:デフォルトの名無しさん
10/07/23 14:04:39
>>313->>318 Prologのプログラミングではほとんどの場合数個のプログラムパターンが選択可能だ。この点Pythonなどとはかなり性質のことなったプログラム言語だといえよう。
320:デフォルトの名無しさん
10/07/23 18:22:30
スレリンク(tech板:678番)
# [1] 授業単元:C言語
# [2] 問題文(含コード&リンク):
# 以下の機能を持つプログラムを作ること。
#
# -1から100の数字の中から素数を抽出する (配列に直接数字を指定することは不
# 可)
# -抽出した素数を大きい順(降順)にソートする
# -ソートした素数を1行につき5個表示する(6個目以降は次の行に表示する)
#
# 但し、以下の4つの機能を使ったプログラムにすること。
# -サブ関数
# -配列
# -if文
# -for文
#
# 以下の点に関して工夫をした場合は加点の対象とする
#
# -素数の計算時間の低減
# -見つけた素数の数のカウント
# -ソートのアルゴリズム高速化
# -実行時間の表示
321:デフォルトの名無しさん
10/07/23 18:23:58
スレリンク(tech板:684番)
# [1] 授業単元:C言語入門
# [2] 問題文(含コード&リンク):
# 二つのint型整数の小さい方の値を返す関数
# int i_minof(int x, int y){ /* ... */}
# を作成せよ。
#
322:デフォルトの名無しさん
10/07/23 18:24:47
スレリンク(tech板:685番)
# [1] 授業単元:C言語入門
# [2] 問題文(含コード&リンク):
# 下に示すように、整数値を読み込んで、その値を0までカウントダウン
# しながら表示するプログラムを作成せよ。なお、負の値を読み込んだ時は
# 何も表示しない(改行も表示せず終了する)ようにせよ。
# =====
# 整数を入力してください:9
# 9 8 7 6 5 4 3 2 1 0
# =====
323:デフォルトの名無しさん
10/07/23 18:30:15
スレリンク(tech板:262番)
# 【 課題 】自動販売機プログラム(レイアウトは自由)
# 【 形態 】 Servlet/JSP
# 【 GUI 】制限なし
# 【 期限 】7/13(最長7/16)
# 【 Ver 】1.6.0_15
# 【 補足 】
# 1. 商品は10種類、購入商品は選択可能。
# 2. 商品の価格は150円が3種類、130円が2種類、100円が5種類とする。
# 3. 使用できる硬貨は、500円、100円、50円、10円とし、紙幣は1000円のみ使用可能
とする。硬貨投入後に投入した硬貨の返却が出来る。
# 4. お釣り用の硬貨は初期値でそれぞれ10枚ずつ設定されている。
# 5. 500円硬貨が0になった場合に、100円硬貨が5枚以上存在した場合には100円硬貨を
返却する。また、100円硬貨以下についても、代替できるものは他の硬貨を用いて返却を
可能とする。
# 6. お釣りが返却できない硬貨投入時には、お釣りが無くなった旨を表示、購入不可
とする。
# 7. 商品は初期値でそれぞれ10個ずつ在庫があるものとする。
# 8. 商品の在庫が無くなった場合には、商品の在庫が無くなった旨を表示し、購入不
可とする。
324:デフォルトの名無しさん
10/07/23 20:26:49
スレリンク(tech板:694番)
# [1] 授業単元:プログラミング演習
# [2] 問題文(含コード&リンク):
# バイナリ形式で保存されたWindows Bitmap形式の画像ファイルを読み込み、3つの色成分(Blue, Green, Red)に分離し、
# それぞれを異なるファイルに保存するプログラムを実装しなさい。
# プログラム中でやることは以下のことである。
# 1.ヘッダ部分を適切に読み込む
# 2.読み込んだヘッダ部分(ファイルヘッダ、情報ヘッダ)を用いて、適切なバイト数(画素数×1画素あたりのバイト数)を読んでくる。
# 3.分離したい色成分以外を0に書き換え、ヘッダ部分と色情報をファイルに書き込む。
# ただし、以下のような構造体を使用する。
# URLリンク(ime.nu)
#
325:デフォルトの名無しさん
10/07/23 20:29:42
スレリンク(tech板:696番)
# 【質問テンプレ】
# [1] 授業単元:Visual C++ でのプログラミング演習
# [2] 問題文(含コード&リンク):課題4.3.bをお願いします。URLリンク(ime.nu)
# 2.71 < (1 + 1/N) ^ N < 2.72 を満たす最小の整数Nを求める
#
326:デフォルトの名無しさん
10/07/23 20:37:16
スレリンク(tech板:756番)
# [1] 授業単元: ソフトウェア信頼性
# [2] 問題文(含コード&リンク):
# 問題文+自分で作った部分は以下のファイルに
# URLリンク(ime.nu)
#
# //単語の集合からなるファイルを読み込んで、辞書順に並べ替えて出力するプログラムを作成しなさい。
# //(*) ファイルは一行に一単語であり、すなわち単語間は改行コードで区切られる。
327:デフォルトの名無しさん
10/07/23 20:44:30
int 型の配列に読み込んだ全要素を逆順に並べ替える
# プログラムを作成せよ
#
# vx[ 0] : 58
# vx[ 1] : 32
# vx[ 2] : 17
# vx[ 3] : 46
# vx[ 4] : 22
# vx[ 5] : 73
# vx[ 6] : 69
# vx[ 0] = 69
# vx[ 1] = 73
# vx[ 2] = 22
# vx[ 3] = 46
# vx[ 4] = 17
# vx[ 5] = 32
# vx[ 6] = 58
328:デフォルトの名無しさん
10/07/23 20:45:56
スレリンク(tech板:754番)
#
# URLリンク(ime.nu)
# 2 問題2
# 下に示すように,要素数が5 でint 型の配列に、5 人の学生の身長を読み込んで、その平均
# 身長を求めるプログラムを作成せよ。
#
# 身長を入力してください
# 1 番: 178
# 2 番: 175
# 3 番: 165
# 4 番: 179
# 5 番: 172
# 平均身長: 173.8
329:デフォルトの名無しさん
10/07/23 20:46:55
スレリンク(tech板:754番)
#
# URLリンク(ime.nu)
# 問題3
# 下に示すように,5 人の学生の体重を読み込んで、最も重い人と最も軽い人の体重を表示す
# るプログラムを作成せよ.なお、体重はdouble 型で表すものとする。
#
# 体重を入力してください
# 1 番: 52.5
# 2 番: 64.0
# 3 番: 58.3
# 4 番: 67.4
# 5 番: 62.0
# 最も重い人の体重: 67.4
# 最も軽い人の体重: 52.5
330:デフォルトの名無しさん
10/07/23 20:49:11
スレリンク(tech板:758番)
# [1] 授業単元:プログラミング実習
# [2] 問題文(含コード&リンク):53!を正確に計算して出力するjavaプログラムを作成せよ。
# ここでは1桁分の数を記憶するオブジェクトを多数作りそれらの協調で計算を進めること。
#
331:デフォルトの名無しさん
10/07/23 20:50:23
スレリンク(tech板:778番)
# 【質問テンプレ】
# [1] 授業単元:画像処理プログラミング
# [2] 問題文(含コード&リンク):URLリンク(ime.nu)
# 画像を8×8 画素のブロックに分割します。各ブロック毎に平均値を求めます。
# ※average という関数を作ってブロック内の平均値を求めても良いでしょう。
# ブロック内の画素すべての輝度値を平均値で置き換えます。どのような画像が得られますか?
# 8×8画素のブロックサイズでモザイク処理を行うプログラムと、モザイク処理後の画像を提出しなさい。
#
332:デフォルトの名無しさん
10/07/23 20:52:40
スレリンク(tech板:781番)
# [1] 授業単元:プログラミングC
# [2] 問題文(含コード&リンク):URLリンク(ime.nu)
# いっぱいあります。
#
#
# 2.10
# 三角形の二編の長さb,cとその侠角の∠A(ラジアン)を入力すると残り1辺aの長さを余弦定理で求めて表示するプログラムを作成せよ。
# a^2 = b^2 + c^2 - 2*b*c*cosα
333:デフォルトの名無しさん
10/07/23 20:54:24
スレリンク(tech板:781番)
# [1] 授業単元:プログラミングC
# [2] 問題文(含コード&リンク):URLリンク(ime.nu)
# いっぱいあります。
#
# 3.1
# 気温と湿度を入力すると、不快指数の値とその値で不快に感じる人の割合を表示するプログラムを作成せよ。
# (不快指数)=0.81×気温+0.01×湿度×(0.99×気温‐14.3)+46.3
# 不快指数の値によって次の割合の人が不快に感じるといわれている。
# 77未満→約9%
# 77以上85未満→約65%
# 85以上→約93%
334:デフォルトの名無しさん
10/07/23 20:55:31
スレリンク(tech板:781番)
# [1] 授業単元:プログラミングC
# [2] 問題文(含コード&リンク):URLリンク(ime.nu)
# いっぱいあります。
#
# 3.2
# 身長と体重を入力すると、次の判定方法で肥満度を判定するプログラムを作成せよ。
# 標準体重(kg)=(身長(cm)‐100)×0.9
# 肥満度(%)=(体重‐標準体重)÷標準体重×100
# 肥満度20%以上→ふとりすげ
# 10%以上20%未満→ふとりぎみ
# -10%以上10%未満→標準
# -20%以上-10%未満→やせぎみ
# -20%未満→やせすぎ
335:デフォルトの名無しさん
10/07/23 20:56:42
スレリンク(tech板:781番)
# [1] 授業単元:プログラミングC
# [2] 問題文(含コード&リンク):URLリンク(ime.nu)
# いっぱいあります。
#
# 4.1
# 入力された値が偶数だったら「even」、奇数だったら「odd」と出力する処理を10回繰り返すプログラムをwhile文、for文を使ってそれぞれ作成せよ。
336:デフォルトの名無しさん
10/07/23 20:58:22
スレリンク(tech板:781番)
# [1] 授業単元:プログラミングC
# [2] 問題文(含コード&リンク):URLリンク(ime.nu)
# いっぱいあります。
#
# 4.3
# 自然数nを入力し、1からnまでの自然数の二乗の和(1^2+2^2+…+n^2)を求めるプログラムを作成せよ。
337:デフォルトの名無しさん
10/07/23 20:59:29
スレリンク(tech板:781番)
# [1] 授業単元:プログラミングC
# [2] 問題文(含コード&リンク):URLリンク(ime.nu)
# いっぱいあります。
#
# 4.7
# 自然数nを乳力すると、nの約数をすべて表示するプログラムを作成せよ。
# (n以下の自然数について約数かどうかチェックする)
338:デフォルトの名無しさん
10/07/24 04:05:21
スレリンク(tech板:367番)
# 組織のある部門にある能力を持つ人間を追加したり削除したりすることで,その組織全体もしくは部分的な部門の能力を計算するシステムを構築せよ.
# このシステムによって,組織内のニーズにあった人員配置を行なう支援をできると期待できる.
# 基本的にこのシステムは以下の機能を最低限有しなければならない.
#
# 1. 登録すべき部門や副部門を指定する.
# 2. 人物の名前(文字列),資格数(整数),勤務経験年数(整数),年齢を入力する.
# 3. もし,既に十分な人数がシステムに登録済の場合,そのデータと,前段階で入力された資格数,勤務経験年数,年齢に基づき,この人物の能力の値(high, middle or low)をシステムが予測し表示する.
# 4. システム(プログラム)を停止した際,現在,保持しているデータを保存できる.
# 5. システム(プログラム)を起動した際,既存のデータがあれば,それを読み込める.
#
# 単純化のため,能力は人物,組織どちらも金額(円)で表現されているとする.
# 人物も単純化のため,その氏名で区別することとし,同一氏名の人物は組織に追加できなくてもよい.
# 組織の中にある部門は階層的な構造となっており,その階層の深さは均一でない.
# 例えば「/秘書課/」という部門は組織の直下に位置するが,「/営業部/関東営業部/」,「/開発部/半導体課/」,「/研究部/先端科学課/タイムマシン開発グループ/」等2もしは3階層の場合もある.
# 尚,階層の深さ制限は無いものとする.
# ある部門の下に人物と副部門が同時に配置される場合もある.
# 例えば,営業部部長の田中さんは「/営業部/田中」と表現できるが,関東営業部に属する山田さんは,「/営業部/関東営業部/山田」となる.
# 尚,本システムでは日本語名は扱えなくてもよい.
339:デフォルトの名無しさん
10/07/24 05:48:26
スレリンク(tech板:398番)
# [1] 授業単元:OS
# [2] 問題文(含コード&リンク):サーバクライアント通信をFIFOで作る
# – 一つのサーバプロセスが,
# • FIFOを作る.
# • データを待つ.
# • SIGINTを受信したら,FIFOを削除してから終了する.
# – 複数のクライアントプロセスが,サーバにリクエストを送る.
# – 文字列を送るクライアントプロセスが複数(forkすればおk).
# – サーバプロセスは単に表示する
#
340:デフォルトの名無しさん
10/07/24 05:51:03
スレリンク(tech板:393番)
# [2] 問題文(含コード&リンク):
# ある差分方程式を、初期値から順々に予測していくプログラムを作ったのですが、
# それぞれの本当の値と予測した値の差を誤差としたとき、その誤差をフーリエ変換することによって、
# 発生する誤差に周期が存在するかを確認するプログラムを作りたいです。
# 条件としては、もともとファイル(ex. log.data)に誤差の値を入れておいて、それをプログラム内で参照するようなものが望ましいです。
# 簡単にたとえるなら誤差データ(log.data)が以下のような場合に
# 2.0
# 0.0
# 1.0
# -2.0
# 2.0
# 0.0
# 1.0
# -2.0
# 2.0
# 0.0
# 1.0
# -2.0
# フーリエ変換した結果をgnuplotなどで表示した際に周期が4のところにスペクトルが出るようなものを作りたいです。
341:デフォルトの名無しさん
10/07/24 05:55:19
スレリンク(tech板:784番)
# [1] 授業単元:プログラミング演習III
# [2] 問題文(含コード&リンク):
# 以下の機能を含む整数版秀丸エディタ用のDLLを作成せよ。
# ・返り値がint型で、パラメータ(整数)を渡すと、「整数*5」の結果を返す。
# ・返り値がchar型で、パラメータ(文字列)を渡すと、文字列の先頭にHello!!を付け
た「Hello!!+文字列」の結果を返す。
342:デフォルトの名無しさん
10/07/24 05:56:36
スレリンク(tech板:786番)
# コンピュータ基礎1
# OS windows7 32bit
# gcc2.9.5
# 言語 c
# 期限 なし
# 課題でいくつかc言語の課題が出て、本当に簡単なのは何とか解いたのですが2つほど分からないものがあったので
# よろしければ教えていただきたいです。
#
# ?キーボードから1つの実数値xを入力し、絶対値を表示するプログラムを作りなさい
#
# ?キーボードからテストの得点m(0以上100以下)を入力し
# (1) m<60 の場合は「不合格」
# (2) 60≦m<80 の場合は「普通」
# (3) 80≦m の場合は「優秀」
# と表示するプログラムを作りなさい。
343:デフォルトの名無しさん
10/07/24 05:58:21
スレリンク(tech板:786番)
# コンピュータ基礎1
# OS windows7 32bit
# gcc2.9.5
# 言語 c
# 期限 なし
# 課題でいくつかc言語の課題が出て、本当に簡単なのは何とか解いたのですが2つほど分からないものがあったので
# よろしければ教えていただきたいです。
#
# キーボードから1つの実数値xを入力し、絶対値を表示するプログラムを作りなさい
#
344:デフォルトの名無しさん
10/07/24 06:02:08
スレリンク(tech板:788番)
# [1] 授業単元:プログラミング演習I
# [2] 問題文(含コード&リンク):
# 課題
# (1000以下の完全数)正整数kが等式
# k=(kの約数の内、k以外のものの総和)
# を満たす時、kは完全数であるという。たとえば、6の約数は 1,2,3,6の4個であり、6=1+2+3であるため、6は完全数である。1000以下の完全数をすべて出力するプログラムを作れ。
#
345:デフォルトの名無しさん
10/07/24 06:03:12
スレリンク(tech板:790番)
# 以下の入力をして、これを二次元配列に代入していく方法がわかりません。
# 当方scanf+Enterによる単純な入力しかしたことがありません。
# 空白を認識して代入先を変える方法?と考えて手が止まりました。
#
# /*以下入力*/
# 3 /*変数int nへ代入する。今から3*3行列を入力するという意味*/
# 3 5 7
# 2 5 8
# 6 8 1
# /*入力ここまで*/
#
# for(i=0;i<n;i++){
# for(j=0;j<n;j++){
# printf("%d ", a[i][j]);
# }printf("\n");
# }printf("\n");
# の結果は上記の
# 3 5 7
# 2 5 8
# 6 8 1
# を表示するように二次元配列aに代入する。
346:デフォルトの名無しさん
10/07/24 06:04:58
スレリンク(tech板:801番)
# 【質問テンプレ】
# [1] 授業単元: 計算機プログラミング
# [2] 問題文(含コード&リンク): URLリンク(ime.nu) jp/cgi-bin/joyful/img/10819.txt
#
# 次の仕様を満たす信号発生プログラムを作成せよ。結果の表示は,信号波形
# 毎に2 例程度(例えば,基本周波数1 kHz と1 MHz,など)を示すこと。
#
# 1:正弦波・三角波・正弦波を全波整流した波形 を選択して出力できる。
# 2: 基本周波数と振幅値(最大振幅と最小振幅)をキーボードから入力する。
# (周波数は1 Hz~100 MHz の範囲で設定できること)
# 3: 出力(信号波形データ)をファイルに保存する。
# (1 列目:時間,2 列目:振幅値)
#
# ※サンプリング(標本化)定理を満たすこと。
# 2fm < fs (fm:信号が持つ最大周波数,fs:サンプリング周波数)
347:デフォルトの名無しさん
10/07/24 06:06:14
スレリンク(tech板:802番)
# [1] 授業単元:オペレーティングシステムプログラミング演習
# [2] 問題文 URLリンク(ime.nu)
#
# コマンドの引数xxxxで指定したファイルが更新されたら直ちに
# “Modified xxxxfile on Day Month date hh:mm:ss yyyy”
# というメッセージを表示するファイル更新を監視する常駐プログラムを作成せよ。
# 常駐プログラムは、kill pid コマンドが入力されるまで、動き続けるように作成すること。
#
# プログラムの作成は、サンプルプログラムを参考にして、ファイルのiノード情報の
# 最終更新日時を定期的(例えば、sleep で1秒間隔)にチェックし、最終更新日時が
# 書き換えられたらメッセージを表示し、プログラム自身では終了しない無限ループする
# プログラムを作成することになる。
# 常駐プログラムの実行方法の1つは、バックグランドで起動する。
# 直ちに、ps コマンドでプログラムが動作中であることを確認する。
# その後、touchコマンドを投入して自分自身のファイルのタイムスタンプを更新し、
# メッセージが出れば動作していることになる。
# このtouchコマンドの投入を繰り返すことによって、動作を継続していることも確認する。
348:デフォルトの名無しさん
10/07/24 06:19:23
>>342
% Prolog
'キーボードからテストの得点m(0以上100以下)を入力し(1) m<60 の場合は「不合格」(2) 60≦m<80 の場合は「普通」 (3) 80≦m の場合は「優秀」 と表示する' :-
'キーボードからテストの得点m(0以上100以下)を入力し'(_得点m),
'(1) m<60 の場合は「不合格」(2) 60≦m<80 の場合は「普通」 (3) 80≦mの場合は「優秀」'(_得点m,_判定),
表示する(_得点m,_判定).
'キーボードからテストの得点m(0以上100以下)を入力し'(_得点m) :-
write('テストの得点を入力してください : '),
get_line(Line),
'得点m(0以上100以下)を入力し、'(Line,_得点m).
'得点m(0以上100以下)を入力し、'(Line,_得点m) :-
atom_to_term(Line,X,_),
integer(X),
X >= 0,X =< 100,!.
実数値xを入力し、(Line,_得点m) :-
write_formatted('入力された値%tは得点として妥当なものではありません\n',[Line]),
'キーボードからテストの得点m(0以上100以下)を入力し'(_得点m).
'(1) m<60 の場合は「不合格」(2) 60≦m<80 の場合は「普通」 (3) 80≦m の場合は「優秀」'(_得点m,不合格) :- _得点m < 60,!.
'(1) m<60 の場合は「不合格」(2) 60≦m<80 の場合は「普通」 (3) 80≦m の場合は「優秀」'(_得点m,普通) :- 60 =< _得点m,_得点m < 80,!.
'(1) m<60 の場合は「不合格」(2) 60≦m<80 の場合は「普通」 (3) 80≦m の場合は「優秀」'(_得点m,優秀) :- _得点m >= 80,!.
表示する(_得点m,_判定) :-
write_formatted('得点%tの判定は %t です\n',[_得点m,_判定]).
349:デフォルトの名無しさん
10/07/24 06:21:10
>>343
% Prolog
キーボードから1つの実数値xを入力し、(_x) :-
write('実数値を入力してください : '),
get_line(Line),
実数値xを入力し、(Line,_x).
実数値xを入力し、(Line,_x) :- atom_to_term(Line,_x,_),real(_x),!.
実数値xを入力し、(Line,_x) :-
write_formatted('入力された値%tは実数値ではありません\n',[Line]),
キーボードから1つの実数値xを入力し、(_x).
絶対値を(_x,_xの絶対値) :-
_x >= 0.0,
_x = _xの絶対値,!.
絶対値を(_x,_xの絶対値) :-
_x =< 0.0,
_xの絶対値 is _x * (-1).
表示する(_x,_xの絶対値) :-
write_formatted('|%t| = %t\n',[_x,_xの絶対値]).
350:デフォルトの名無しさん
10/07/24 06:39:36
スレリンク(tech板:47番)
# 1個の自然数nを適当決めて、nチームが参加する
# リーグ戦の全試合日程を表示するプログラムを書きなさい
351:デフォルトの名無しさん
10/07/24 06:43:35
>>325
% Prolog
'2.71 < (1 + 1/N) ^ N < 2.72 を満たす最小の整数Nを求める'(N) :-
for(1,N,maxint),((1 + 1/N) ^ N) > 2.71,!.
352:デフォルトの名無しさん
10/07/24 06:52:07
>>320
% Prolog
'1から100の数字の中から素数を抽出する (配列に直接数字を指定することは不可)-抽出した素数を大きい順(降順)にソートする-ソートした素数を1行につき5個表示する(6個目以降は次の行に表示する)' :-
'1から100の数字の中から素数を抽出する'(L1),
'抽出した素数を大きい順(降順)にソートする'(L1,L2),
'ソートした素数を1行につき5個表示する'(L2).
'1から100の数字の中から素数を抽出する'(L1) :- findall(M,for(2,M,N),L),'エラトステネスの篩'(L,L1),!.
'抽出した素数を大きい順(降順)にソートする'(L1,L2) :- sort(L1,L3),reverse(L3,L2).
'ソートした素数を1行につき5個表示する'(L) :-
'5個切り取り表示'(L,R),
length(R,Len),
Len < 5,
'最終行は5個に満たないかもしれない(R),!.
'5個切り取り表示'(R,R) :- length(R,Len),Len < 5,!.
'5個切り取り表示'(L,R) :-
'N個組'(5,L,X,R),
concat_atom(X,' ',S1),
write_formatted('%t\n',[S1]).
'N個組'(N,L,X,R) :-
length(X,N),
append(L0,X,R,L),
length(L0,Len1),
0 is Len1 mod N.
最終行は5個に満たないかもしれない(R) :- concat_atom(R,' ',S),write_formatted('%t\n',[S]).
353:デフォルトの名無しさん
10/07/24 09:25:50
スレリンク(tech板:811番)
# [1] C言語プログラミング演習
# [2] 問題文(含コード&リンク):URLリンク(ime.nu)
#
# 100未満の素数を表示するプログラムを作りなさい。
# 0から99までの配列を用意し、10までの素数の倍数を
# 素数でないとしていく。以下、実行例。
# 2の倍数を消去 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98
# 3の倍数を消去 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 63 6669 72 75 78 81 84 87 90 93 96 99
# 5の倍数を消去 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95
# 7の倍数を消去 7 14 21 28 35 42 49 56 63 70 77 84 91 98
354:デフォルトの名無しさん
10/07/24 09:29:12
スレリンク(tech板:819番)
#
# 整数を各要素の値とする、2つの2次元ベクトルが与えられたときに、それらの内積を計算する関数innerProduct()を使って、この2つのベクトルが直行しているかどうかを判定するプログラムを作成せよ。
#
# 2つの2次元ベクトル U(ux,uy)とv(vx,vy) の内積は,
# ux × uy + vx + vy
# で計算でき、2つのベクトルが作る角度は、
# 内積が正なら90°より小さく 内積が0なら 90° 内積が負なら90°より大きい
# この考え方は3次元のベクトルでも同じである。上記のプログラムを、3次元のベクトルにも対応したものにすぐに修正できるようにするには、マクロを使うことが有効である。
# どのようにすればよいかを考えよ。
# 2次元の場合
# % ./innerProduct
# input u[0]: 2 input u[1]: 6 input v[0]: 9input v[1]: -1
# u=[ 2 6 ], v=[ 9 -1 ]
# inner product is 12
# The angle of the vectors is less than 90 degree.
# %
# 3次元の場合
# % ./innerProduct
# input u[0]:input u[1]: 1input u[2]: 2input v[0]: 6input v[1]: 3input v[2]:-2
# u=[ 0 1 2 ], v=[ 6 3 -2 ]
# inner product is -1
# The angle of the vectors is greater than 90 degree.
# %
355:デフォルトの名無しさん
10/07/24 09:32:09
スレリンク(tech板:815番)
# [1] C言語プログラミング演習
# [2] 問題文
#
# name(名前: char型配列), height(身長: float型変数), bloodType(血液型: char型変数)をメンバに持つ構造体を宣言し, 128名分が記憶可能になるようその構造体の配列を定義せよ.また,その配列に対して値を入力し,
# さらに表示できるようにせよ.構造体のメンバ値を表示するには、ひとつの構造体の各メンバの値を表示する関数を作成すること。
#
#
# % ./bodyData
# 1人目のデータ: 立命太郎 175.5 A
# 2人目のデータ: 野路花子 169.0 B
# 3人目のデータ: 衣笠一郎 180.4 O
# 4人目のデータ: 0 0 0 ← 0 0 0 と入力すると終わる.
# 名前 身長 血液型
# 立命太郎 175.5 A
# 野路花子 169.0 B
# 衣笠一郎 180.4 O
# %
#
# ヒント: 各人の名前、身長、血液型のデータを1行で入力するためには、参考12.1に示されたfgets()関数で、これらを1度に取り込み、最初の空白までを名前とみなし、次の空白までを身長とみなし、
# 次に改行までを血液型をみなせばよい。これらを別々の文字列として、必要に応じて整数や浮動小数点数に変換し、構造体のメンバに設定すること。
#
# ヒント: ひとつの構造体の各メンバの値を表示する関数に構造体を引渡すことを繰り返えせばよい。
356:デフォルトの名無しさん
10/07/24 09:34:03
スレリンク(tech板:820番)
# [1] C言語プログラミング演習
# [2] 問題文(含コード&リンク
# 標準入力から正の整数値を読み込み,0が入力されたらそれらの整数を小さい順に表示するプログラムを作成せよ.
#
# 以下のような処理の流れでプログラムを作成すること。
#
# 数字を読み込むごとに, それまでに入力された数値が格納された配列の最後の要素から, 先頭に向かって順に大小の比較を行う. これにより、読み込んだ数字の方が入るべき位置がわかる.
# 読み込んだ数字が入るべき箇所を空けるために、 既に記憶されている配列の要素のうち、 この数字よりも大きな数字をひとつ後ろにずらす。 空いた箇所に読み込んだ数字を代入する.
# 次に入力される数字の処理へ移る.
#
# % ./ordering
# 正整数: 17
# 正整数: 3
# 正整数: 9
# 正整数: 4
# 正整数: 0
# 入力された整数は小さい順に 0, 3, 4, 9, 17 です.
357:デフォルトの名無しさん
10/07/24 09:36:22
スレリンク(tech板:821番)
# [1] C言語プログラミング演習
# [2] 問題文(含コード&リンク
# 文字列yを文字列xの最後に連結する関数stringcat(char [], char [])を作成せよ.この関数を用いて、入力された2つの文字列を連結するプログラムを作成せよ。
#
# 注意: stringcat()を呼び出すときは,連結後の文字列がxの配列長を超えないように注意すること.
#
#
# % ./catenate
# 文字列x (20字まで)? linux
# 文字列y (20字まで)? kadai
# 連結後のx: linuxkadai ←全部で20字以内なので連結可能
# 20字を超える場合は連結不可能とする
358:デフォルトの名無しさん
10/07/24 09:37:46
スレリンク(tech板:822番)
# [1] C言語プログラミング演習
# [2] 問題文(含コード&リンク
# 文字列xに文字列yが含まれるかどうかを判定する関数str_comp(char [], char [])を作成せよ.
# この関数を用いて、入力されたひとつめの文字列にふたつめの文字列が含まれているかを判定するプログラムを作成せよ。
#
#
# % ./compare
# 文字列x (64字まで)? kadaigakitui
# 文字列y (64字まで)? dai
# "kadaigakitui"に"dai"は含まれます.
#
# % ./compare
# 文字列x (64字まで)? kadaigakitui
# 文字列y (64字まで)? ycx
# "kadaigakitui"に"ycx"は含まれません.
359:デフォルトの名無しさん
10/07/24 09:39:12
スレリンク(tech板:837番)
# [1] 授業単元:プログラミング
# [2] 問題文
# 二つの任意の正の整数の乗算(*)を、シフト演算の組合わせと除算(/)と加算(+)のみで解くプログラムを作成しなさい。
#
# ヒント:例えば、123 x 13は以下のように計算できる。
#
# 123 x 13 = 123 x (2^3 + 2^2 + 1)
# = 123 x 2^3 + 123 x 2^2 + 123
#
360:デフォルトの名無しさん
10/07/24 09:40:21
スレリンク(tech板:851番)
# 実数xを入力し、xの平方根を計算するプログラムを作りなさい。平方根は次のアルゴリズムで計算されるものとする。 動作例(1回実行) x = 2 2.000000の平方根は1.414207
# (1) a = 0.0、b = xとし、c = ( a + b ) / 2.0を計算する。
# (2) c2 < x ならばa = c、そうでなければb = cとし、計算を繰り返す。
# (3) b – aが収束値0.00001以下になったときのcを平方根とする。
# プログラムヒント:実数の型はfloatもしくはdoubleを用いること。整数を入力するにはatoi関数を使ったが、実数を入力するにはatof関数を使う。
# これお願いします。
#
361:デフォルトの名無しさん
10/07/24 09:41:41
スレリンク(tech板:288番)
# 【 課題 】入力したテキストファイルを行毎にUTF-8の文字コードに変換してファイルに出力するプログラムを作成せよ
# 【 形態 】Javaアプリケーション(main()で開始)
# 【 GUI 】制限なし
# 【 期限 】7/16
# 【 Ver 】 1.6.0_20
# 【 補足 】
# あいうえお
# アイウエオ
#
# という2行のファイルを入力させた場合
#
# E38182E38184E38186E38188E3818A
# E382A2E382A4E382A6E382A8E382AA
#
# というファイルを出力させたいです。よろしくお願いします。
362:デフォルトの名無しさん
10/07/24 09:47:26
スレリンク(tech板:833番)
# 【質問テンプレ】
# [1] 授業単元:プログラミング
# [2] 問題文(含コード&リンク):
# リストへの要素の追加を行うプログラムで、以下のプログラムを完成させよ。
# URLリンク(ime.nu)
#
# リストの先頭要素
# リストの初期化
# 空のリストにデータを追加
# リストの内容を表示
# リストの先頭にデータを一つ追加
# リストの内容を表示
# リストの途中にデータを一つ追加
# リストの内容を表示
# リストの最後にデータを一つ追加
# リストの内容を表示
# データの削除
# リストの印刷
# リストの各要素を解放
363:デフォルトの名無しさん
10/07/24 09:48:49
スレリンク(tech板:840番)
# [1] 授業単元:プログラミング演習I
# [2] 問題文(含コード&リンク):
# 課題
# (1000以下の完全数)正整数kが等式
# k=(kの約数の内、k以外のものの総和)
# を満たす時、kは完全数であるという。たとえば、6の約数は 1,2,3,6の4個であり、6=1+2+3であるため、6は完全数である。1000以下の完全数をすべて出力するJavaプログラムを作れ。
#
364:デフォルトの名無しさん
10/07/24 09:49:59
スレリンク(tech板:856番)
# C(英文解析プログラム)
#
# 1.標準入力から単語を読み込み、単語を登録する。("EOR"という単語が入力されるまで繰り返す)
# 2.その後、標準入力から指定された単語に対して、その単語が登録されているか否かを出力する。
#
# /*****要実装******/の部分を実装して上の動作をするプログラムに完成させてください。
#
# URLリンク(ime.nu)
#
365:デフォルトの名無しさん
10/07/24 10:07:52
>>363
% Prolog (その一)
'1000以下の完全数をすべて出力する' :-
for(1,N,1000),
完全数(N),
write_formatted('%t\n',[N]),
N = 1000,!.
'1000以下の完全数をすべて出力する'.
366:デフォルトの名無しさん
10/07/24 10:10:29
>>363
% Prolog (その二)
完全数(N) :-
'1以外の最初の約数は'(N,N1),
NX is N // N1,
N2 is N1 + 1,
S1 is N1 + NX + 1,
完全数(N2,S1,N),!.
完全数(N1,N,N) :- (N // N1) < N1,!.
完全数(N1,S1,N) :- (N // N1) >= N1,
0 is N mod N1,
Y is N // N1,
S2 is S1 + N1 + Y,
N2 is N1 + 1,
完全数(N2,S2,N).
完全数(N1,S,N) :- (N // N1) >= N1,
\+(0 is N mod N1),
N2 is N1 + 1,
完全数(N2,S,N).
'1以外の最初の約数は'(N,N1) :-
N > 1,
for(2,N1,N // 2 + 1),
0 is N mod N1,!.
367:デフォルトの名無しさん
10/07/24 10:12:51
スレリンク(tech板:869番)
# お手上げなので助けてください。
#
# [1] 授業単元:応用プログラミング
# [2] 問題文(含コード&リンク): URLリンク(ime.nu)
#
# 問題1
# 入力画像(2値画像)中の、対象領域(ある値を持つピクセルの集合)の境界線を求めるプログラムを作成せよ。
# 求めた境界線は、入力画像をコピーした画像に描き、画像として保存せよ。
# 色をつけて境界線を描くこと。
#
368:デフォルトの名無しさん
10/07/24 10:14:11
スレリンク(tech板:869番)
# お手上げなので助けてください。
#
# [1] 授業単元:応用プログラミング
# [2] 問題文(含コード&リンク): URLリンク(ime.nu)
#
# 問題2
# 入力画像(2値画像)中の、対象領域(ある値を持つピクセルの集合)に対してラベリング処理(8連結)を行い、
# 各集合(連結成分)に番号を付けるプログラムを作成せよ。
# 連結成分の番号は、入力画像をコピーした画像に描き、画像として保存せよ。
# 色をつけて番号を描くこと。
369:デフォルトの名無しさん
10/07/24 10:15:40
スレリンク(tech板:869番)
# お手上げなので助けてください。
#
# [1] 授業単元:応用プログラミング
# [2] 問題文(含コード&リンク): URLリンク(ime.nu)
#
# 問題3
# 連結成分ごとに特徴パラメータ(面積、重心、周囲長、円形度、フラクタル次元)の値を調べる機能を付け加え、
# ある特徴パラメータ値をもつ連結成分だけを抜き出す(または消す)プログラムを作成せよ。
# 処理結果は、画像として保存せよ。
# また、特徴パラメータのいずれかをキーとして、連結成分の情報をソート(面積が大きい順、重心が原点に近い順、
# 周囲長が長い順、円形度が大きい順、フラクタル次元が大きい順)し、情報(番号、面積、重心、周囲長、
# 円形度、フラクタル次元)をファイル保存する機能を追加せよ。
#
370:デフォルトの名無しさん
10/07/24 10:17:14
スレリンク(tech板:870番)
# プロギラミング技術は苦手なので教えてください。
# 演習5-1
#
# テキストファイルの各行の最後には,復帰・改行を示すASCIIコードが付加されて
# いる.即ち,ファイルのもつ行数は復帰・改行の数をカウントすることによって
# 計算できる.
#
# 上記性質を利用して,テキストファイルの行数を計算するプログラムを開発せよ.
# 但し,復帰・改行に対応するASCIIコードは10である.
#
# テキストファイルの読み込み方法は講義資料でも解説したように,./a.out < hoge.txtとすればよい.
#
371:デフォルトの名無しさん
10/07/24 10:19:13
スレリンク(tech板:872番)
# 【質問テンプレ】
# [1] 授業単元:情報処理
# [2] 問題文(含コード&リンク):
# URLリンク(ime.nu)
#
# 整数nを入力し、図1のようなパターンを表示するプログラムをfor文で作成しなさい。
# プログラムヒント:まず行と空白とアスタリスクの変数をそれぞれi、j、kとする。
# そしてパターンの変化を表すグラフを右図に作成する。
# 作成したグラフからj とkの一般式を求める。得られた一般式をfor文の終了条件に用いる。
#
# [図1]
# n = 4 n = 5
# * *
# *** ***
# ***** *****
# ******* *******
# *********
372:デフォルトの名無しさん
10/07/24 10:20:18
スレリンク(tech板:878番)
# n個の文字列を読み込んだあと,その文字列を反転させるプログラムを作成せよ.ここで"反転"とは,例えば,"IKUNO"という文字列を入力した場合,出力を "ONUKI"と出力するものである.
#
# 【実行例】
#
# nを入力せよ:2
# 1個目の文字列を入力せよ:nagata
# 反転した文字列は:atagan
# 2個目の文字列を入力せよ:ikuno
# 反転した文字列は:onuki
#
373:デフォルトの名無しさん
10/07/24 10:21:38
スレリンク(tech板:292番)
# お願いします…
# 【 課題 】 シフトJISコードが入っている int cをJAVAで使われてるユニコードに変換しなさい
#
374:デフォルトの名無しさん
10/07/24 10:23:17
スレリンク(tech板:880番)
# [1] 授業単元: プログラミング
# [2] 問題文(含コード&リンク):
#
# 関数u(x,y)は、0<x<1,0<y<1の範囲のあらゆる点で方程式
#
# (∂^2)*u/(∂*x^2)+(∂^2)*u/(∂*y^2)=2(x^2+y^2)
#
#
# を満たし、境界上でu(0,y)=u(x,0),u(1,y)=y^2,u(x,1)=x^2である。
# この差分方程式を用いてu(x,y)を求め、キーボードから入力した
# 指定座標の値を表示するプログラムを作成せよ。
# 刻み幅は0.05とする(キーボードから入力する値はこの倍数とする)。
#
375:デフォルトの名無しさん
10/07/24 10:24:22
スレリンク(tech板:881番)
# [1] 授業単元:プログラミング演習I
# [2] 問題文(含コード&リンク):
# 課題
# (1000以下の完全数)正整数kが等式
# k=(kの約数の内、k以外のものの総和)
# を満たす時、kは完全数であるという。たとえば、6の約数は 1,2,3,6の4個であり、6=1+2+3であるため、6は完全数である。1000以下の完全数をすべて出力するJavaプログラムを作れ。
#
376:デフォルトの名無しさん
10/07/24 10:25:25
スレリンク(tech板:887番)
# [1] 授業単元:プログラミング演習
# [2] 問題文(含コード&リンク):
# fgets() を使って50文字以下の文字列を入力し,文字列中の各
# 文字の出現回数を数えるプログラムを作成せよ。
# 実行例
# 文字列は? abcdef,abb(ccc110)
# a : 2
# b : 3
# c : 4
# d : 1
# e : 1
# f : 1
# , : 1
# ( : 1
# 1 : 2
# 0 : 1
# ) : 1
#
377:デフォルトの名無しさん
10/07/24 10:26:59
>>376
% Prolog
'50文字以下の文字列を入力し,文字列中の各文字の出現回数を数える' :-
get_chars(Chars),
length(Chars,Len),
Len =< 50,
findsetof(C,meber(C,Line),L1),
findall([Count,C],(member(C,L1),count(member(C,Chars),Count)),LL),
append(_,[[Count,C]|R],LL),
write_formatted('%t : %t\n',[C,Count]),
R = [].
378:デフォルトの名無しさん
10/07/24 10:30:07
スレリンク(tech板:890番)
# [2]課題:C言語による「High and Low」のゲーム作成
# URLリンク(ime.nu)
# テキストファイルに詳細を書き留めました
#
# 【仕様の補足】
# ・1~13までの各数値が4枚ずつ、計52枚のカードを使用
# ただし、ハートやスペードなどのマークの概念は問わない。
# ・必ず「シャッフルする」という手順が含まれてなければいけない。
# ・ユーザからの入力においてscanf関数を利用してはならない。
# ・掛金指定において条件に満たない入力がされた場合入力を反復させる。
#
# 【定数と変数について】
# ・定数:素材ソースプログラムで指定されたものを適切に利用すること
# ・変数:
# ・inputBuffer(文字型配列)キーボードからの入力行を格納する
# ・user_money(整数型)持金情報を格納する
# ・user_bet(整数型)掛金情報を格納する
# ・cards(整数型配列)カード情報を格納する
# ・current(整数型)現在のカード位置を格納する
# (cards[current]が現在のカードを意味する)
# ・user_choice(文字型)ユーザの予想を格納する
# (Highを示す"H"や"h"、Lowを示す"L"と"l"、それ以外はパス)
# ・上記以外の変数については必要に応じて自由な名前で用いること
379:デフォルトの名無しさん
10/07/24 10:32:15
スレリンク(tech板:916番)
# [1] 授業単元:プログラミング
# [2] 問題文(含コード&リンク):県から国、及び国から県に換算する関数を作成し、
# main関数でキーボードから数値とその値が国であるか県であるかを入力し、県ならば国に、
# 国ならば県に換算した値を小数点以下1桁までで出力するプログラムを作成しなさい。
# 値を引数とする関数で計算させ(関数名は nation とする)、出力は main関数で行うこと。
#
# 関係は以下の通り
# 県(A):(B+2)*5 国(B):A/3+25
# <例>
# 数値を入力してください: 75
# 75 が「県」なら "A" を「国」なら "B" を入力してください: B
#
# 県 75.0 = 国 50.0
#
380:デフォルトの名無しさん
10/07/24 10:35:42
>>379
% Prolog
'キーボードから数値とその値が国であるか県であるかを入力し、県ならば国に、国ならば県に換算した値を小数点以下1桁までで出力する' :-
'キーボードから数値とその値が国であるか県であるかを入力し、'(N),
'県ならば国に、国ならば県に換算した値を小数点以下1桁までで出力する'(N,L).
'キーボードから数値とその値が国であるか県であるかを入力し、'(N,_AまたはB) :-
write('数値を入力してください: '),
get_integer(N),
write_formatted('%t が「県」なら "A" を「国」なら "B" を入力してください: ',[N]),
get_split_line(['"',' '],[_AまたはB]),!.
'県ならば国に、国ならば県に換算した値を小数点以下1桁までで出力する'(N,'A') :-
A is N * 1.0,
B is A / 3 + 25,
write_formatted('県 %t = 国 %t\n',[A,B]),!.
'県ならば国に、国ならば県に換算した値を小数点以下1桁までで出力する'(N,'B') :-
B is N * 1.0,
A is (B + 2) * 5,
write_formatted('県 %t = 国 %t\n',[A,B]),!.
381:デフォルトの名無しさん
10/07/24 10:37:23
スレリンク(tech板:918番)
# [1] C言語プログラミング演習
# [2] 問題文(含コード&リンク
# char型配列xに格納された文字列を1文字ごとに空白を空けて逆順に出力する関数reverse_array(char [])を作成せよ.変換後の文字列の長さがもとの文字列よりも長くなっているので、長さの検査が必要であることに注意せよ。
# この関数を用いて、入力された文字列を並び替え、その結果を印字するプログラムを作成せよ。
#
#
# % ./reverse
# 処理前の文字列 (64字まで)? kimatutest
# 関数reverse_array()を呼び出しました
# 処理後の文字列 "t s e t u t a m i k"
#
382:デフォルトの名無しさん
10/07/24 10:40:04
>>381
% Prolog
文字列を1文字ごとに空白を空けて逆順に出力する(_文字列) :-
文字列を1文字ごとに空白を空けて逆順に出力する(_文字列,_1文字ごとに空白
を空けた逆順文字列),
write_formatted('%t',[_1文字ごとに空白を空けた逆順文字列]).
文字列を1文字ごとに空白を空けて逆順に出力する(_文字列,_1文字ごとに空白を空けた
逆順文字列) :-
atom_chars(_文字列,Chars),
concat_atom(Chars,' ',_1文字ごとに空白を空けた逆順文字列).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
文字列を1文字ごとに空白を空けて逆順に出力する(_文字列,_1文字ごとに空白を空けた
逆順文字列) :-
atom_chars(_文字列,Chars),
文字列を1文字ごとに空白を空けて逆順に出力する(Chars,Chars2),
atom_chars(_1文字ごとに空白を空けた逆順文字列,Chars2).
文字列を1文字ごとに空白を空けて逆順に出力する([],[]).
文字列を1文字ごとに空白を空けて逆順に出力する([A],[A]).
文字列を1文字ごとに空白を空けて逆順に出力する([A|R1],[A,' '|R2]) :-
文字列を1文字ごとに空白を空けて逆順に出力する(R1,R2).
383:デフォルトの名無しさん
10/07/24 10:41:40
スレリンク(tech板:919番)
# [1] C言語プログラミング演習
# [2] 問題文(含コード&リンク
# char型配列xに格納された英単語からなる文字列が回文(逆から読んでも同じ)であるかをチェックする関数anagram(char [])を作成せよ.ただし,チェック対象の文字列はソースコードのmain()関数内で記述するものとする(キーボードから入力しない).
#
#
# % ./checkAnagaram
# 文字列 "spainyuusyou" は回文ではありません.
#
# % ./checkAnagaram
# 文字列 "Was it a cat I saw?" は回文です.
#
# ヒント: 回文のルールは以下の通り.
#
# (i)
# 前から読んでも後ろから読んでも同じアルファベットの並びとな る,
# (ii)
# 記号「?」,「.」,「,」,「-」,「 」(空白)は無視する,
# (iii)
# 大文字と小文字は区別をしない.
384:デフォルトの名無しさん
10/07/24 10:43:00
>>383
% Prolog
回文(A) :- atom_chars(A,Chars),回文(Chars,[],X,X).
回文([],X,X,[]) :- !.
回文([A|R1],L1,X,R2) :- member(A,['?','.',',','-',' ']),回文(R1,L1,X,R2),!.
回文([A|R1],L1,X,[B|R2]) :- to_upper(A,B),回文(R1,[B|L1],X,R2),!.
385:デフォルトの名無しさん
10/07/24 10:44:48
スレリンク(tech板:920番)
# [1] C言語プログラミング演習
# [2] 問題文(含コード&リンク
# ATM(Automated Teller Machine; 現金自動預け払い機)システムを実現するプログラムを考える。
#
# 氏名,口座番号,暗証番号,預金残高を要素とする構造体を宣言し, 512人分の口座が作成可能なようにせよ.また,初期値として次のように構造体の内容を設定せよ.
#
# 立命太郎の口座番号は1234で,預金残高を1,234,560円に設定する.
# 野路花子の口座番号は5678で,預金残高を987,600円に設定する.
# 衣笠一郎の口座番号は9012で,預金残高を538,600円に設定する.
# 暗証番号は口座番号に1111を足して10000で割った余りに設定する.
# ここで暗証番号は、口座番号を引数としてとり、それに1111を足して10000で
# 割った余りを計算する関数を作成して設定すること.
# 上記の方法で初期値を設定し、設定された3人の預金残高を画面へ出力する
# プログラムを作成せよ.ただし、ひとり分の預金残高を表示する関数を作成して、
# これを繰り返し使って3人の預金残高を出力すること.
#
# % ./initAccount
# 預金残高は次のとおりです.
# 立命太郎 (1234) 1234560 円
# 野路花子 (5678) 987600 円
# 衣笠一郎 (9012) 538600 円
# %
386:デフォルトの名無しさん
10/07/24 10:46:19
>>385
% Prolog
預金口座の初期設定(_ファイル) :-
w3c('スレリンク(tech板:920番)',Lines),
append(_,[Line|R],Lines),
split(Line,[の口座番号は,'で,貯金残高を,円に設定する.'],[_氏名,_口座番
号,_預金残高]),
assertz(預金口座(_氏名,_口座番号,_預金残高)),
_暗証番号 is (_口座番号 + 1111) mod 10000,
assertz(預金口座暗証番号(_口座番号,_暗証番号)),
R = [],!.
預金口座の初期設定(_).
設定された3人の預金残高を画面へ出力する :-
findsetof(_口座番号,預金口座(_,_口座番号,_),_口座番号ならび),
write('預金残高は次のとおりです.\n'),
append(_,[_口座番号|R],_口座番号ならび),
ひとり分の預金残高を表示する(_口座番号),
R = [].
ひとり分の預金残高を表示する(_口座番号) :-
預金口座(_氏名,_口座番号,_預金残高),
write_formatted('%t (%t) %t 円\n',[_氏名,_口座番号,_預金残高]),!.
387:デフォルトの名無しさん
10/07/24 10:48:44
スレリンク(tech板:922番)
# [2] 問題文(含コード&リンク
# <<920の課題を基に「引出し」の機能を追加せよ.具体的には,
# 口座番号の入力,暗証番号の入力と確認,支払額の入力,預金残高の更新をする
# プログラムを追加すればよい.機能の選択は,起動時できるようにすること.
#
# % ./withdraw
# [0]終了 [1]残高表示 [2]引出し: 2
# 口座番号を入力してください: 5000 ← 存在しない
# 暗証番号を入力してください: 0123
# 口座番号または暗証番号が間違っています.
# 口座番号を入力してください: 9012
# 暗証番号を入力してください: 5555 ← 間違っている
# 口座番号または暗証番号が間違っています.
# 口座番号を入力してください: 9012
# 暗証番号を入力してください: 0123
# 引出し額を入力してください: 1000000 ← 預金額より多い
# 預金額が不足しています.
# 口座番号を入力してください: 9012
# 暗証番号を入力してください: 0123
# 引出し額を入力してください: 20000
# ありがとうございました.残高は 518600 円です.
# [0]終了 [1]残高表示 [2]引出し: 2 ← 始めに戻る
388:デフォルトの名無しさん
10/07/24 10:51:18
>>387
% Prolog (その一)
'「引出し」の機能を追加せよ.具体的には,口座番号の入力,暗証番号の入力と確認,支払額の入力,預金残高の更新をするプログラムを追加すればよい.'(_引き出し_または_口座残高表示) :-
「引出し」または「口座残高表示」(_引き出し_または_口座残高表示).
「引出し」または「預金残高表示」(引き出し) :-
repeat,
口座番号の入力(_口座番号),
暗証番号の入力と確認(_口座番号),
支払い(_口座番号),!.
「引出し」または「預金残高表示」(預金残高表示) :-
repeat,
口座番号の入力(_口座番号),
暗証番号の入力と確認(_口座番号),
「預金残高表示」(_口座番号),!.
支払い(_口座番号,_預金残高1,_引出額) :-
_引出額 > _預金残高1,
write('口座残高が不足です\n御支払いできません\n'),!.
支払い(_口座番号,_預金残高1,_引出額) :-
_引出額 =< _預金残高,
支払いオペレーション,
預金残高の更新(_口座番号,_引出額,_預金残高),
預金残高を画面へ出力する(_口座番号),!.
389:デフォルトの名無しさん
10/07/24 10:54:14
>>387
% Prolog (その二)
口座番号の入力(_口座番号) :-
write('口座番号を入力してください : '),
get_integer(_口座番号1),
口座番号の入力(_口座番号1,_口座番号).
口座番号の入力(_口座番号,_口座番号) :-
預金口座(_,_口座番号,_),!.
口座番号の入力(_口座番号1,_口座番号) :-
write_formatted('口座番号%tは正しい口座番号ではありません \nもう一度、',[_口座番号1]),
口座番号の入力(_口座番号).
暗証番号の入力と確認(_口座番号) :-
rawmode,
write('暗証番号を入力してください : '),
findall(C,(for(1,N,4),get_char(C),put_char(*)),L),
norawmode,
number_chars(_暗証番号,L),
_暗証番号 is (_口座番号 + 1111) mod 10000,!.
暗証番号の入力と確認(_口座番号) :-
write('暗証番号が一致しませんでした\n'),
fail.
390:デフォルトの名無しさん
10/07/24 10:55:17
>>387
% Prolog (その三)
支払額の入力(_引出額) :-
write('引出額を入力してください : '),
get_integer(_引出額),
預金残高の更新(_口座番号,_引出額,_預金残高) :-
retract(預金口座(_氏名,_口座番号,_預金残高1)),
_預金残高 is _預金残高1 - _引出額,
assertz(預金口座(_氏名,_口座番号,_預金残高)),!.
預金残高を画面へ出力する :-
ひとり分の預金残高を表示する(_口座番号),!.
支払いオペレーション.
391:デフォルトの名無しさん
10/07/24 10:56:58
スレリンク(tech板:936番)
# 問題
#
# 複数の文字列を読み込み,さらに,それらの文字列を繋ぎ合わせる順番を入力し結果を出力するプログラムを作成せよ.
#
# 【実行例】
#
# 何個の文字列を入力しますか?:4
# 入力文字列[1]:Computer
# 入力文字列[2]:Science
# 入力文字列[3]:Tarou
# 入力文字列[4]:Tanaka
#
# 繋ぎ合わせる順番:
# 2
# 4
# 3
# 1
#
# 結果:ScienceTanakaTarouComputer
#
392:デフォルトの名無しさん
10/07/24 10:58:25
>>391
% Prolog
'複数の文字列を読み込み,さらに,それらの文字列を繋ぎ合わせる順番を入力し結果を出力する' :-
催促付き整数入力('何個の文字列を入力しますか?: ',N),
write_formatted('文字列を%t行連続して入力してください\n',[N]),
findall(Line,(for(1,M,N),get_line(Line)),L1),
write('入力した文字列を繋ぎ合わせる順番を入力してください\n'),
findall(Nth,(for(1,M,N),get_integer(Nth)),L2),
findall(A,(member(Nth,L2),list_nth(Nth,L1,A)),L3),
concat_atom(L3,S),
write_formatted('繋ぎ合わせた文字列は: %t\n',[S]).
393:デフォルトの名無しさん
10/07/24 10:59:31
スレリンク(tech板:937番)
# この問題ができません。誰かお願いします。
#
# 入力したDNA塩基配列中にある塩基 t, c, a, gそれぞれの個数をカウントするプログラムを作成せよ.
# 【実行例】
#
# % ./a.out
# tataatccg ← 入力し,リターンを押して ^D
# Thymine (t) : 3
# Cytosine (c) : 2
# Adenine (a) : 3
# Guanine (g) : 1
# %
394:デフォルトの名無しさん
10/07/24 11:00:49
>>393
% Prolog
'入力したDNA塩基配列中にある塩基 t, c, a, gそれぞれの個数をカウントする' :-
get_chars(Chars),
count(member(t,Chars),_t),
count(member(c,Chars),_c),
count(member(a,Chars),_a),
count(member(g,Chars),_g),
write_formatted('Thymine (t) : %t \nCytosine (c) : %t \nAdenine (a) :%t \nGuanine (g) : %t \n',[_t,_c,_a,_g]).
395:デフォルトの名無しさん
10/07/24 11:07:29
スレリンク(tech板:943番)
# 入力したDNA塩基配列中に,atgという並びがいくつあるか調べるプログラムを作成せよ.但し,入力には t, c, a, g以外の文字も入っている.塩基以外の文字は無視すること.
# 【実行例】
#
# % ./a.out
# 1gattatgtga
# 11tgccgatatc
# 21gatatgattc
# (ここで ^D を押す)
# #ATG is 3
# %
396:デフォルトの名無しさん
10/07/24 11:09:07
>>395
% Prolog
'入力したDNA塩基配列中に,atgという並びがいくつあるか調べるプログラムを作成せよ.但し,入力には t, c, a, g以外の文字も入っている.塩基以外の文字は無視すること':-
get_chars(Chars),
atgという並びがいくつあるか(Chars,_いくつ).
atgという並びがいくつあるか([],0).
atgという並びがいくつあるか([a|R1],_いくつ) :-
atgという並び(R1,R2),
atgという並びがいくつあるか(R2,_いくつの一),
_いくつ is _いくつの一 + 1,!.
atgという並びがいくつあるか([_|R1],_いくつ) :-
atgという並びがいくつあるか(R1,_いくつ).
atgという並び(R1,R2) :-
append(_,[t|L1],[g|R2],R1),
\+((member(A,[a,t,c,g]),member(A,L1))),!.
atgという並び(_,[]).
397:デフォルトの名無しさん
10/07/24 11:10:36
スレリンク(tech板:959番)
# [1] 授業単元:C++実習
# [2] 問題文(含コード&リンク): 文字列*bufからIPアドレスを抽出し、int ip[4]にそれぞれ入れよ。(最初に抽出できたものだけで良い)
#
398:デフォルトの名無しさん
10/07/24 11:12:40
スレリンク(tech板:295番)
# # 問題文(含コード&リンク):URLリンク(ime.nu)
# コピーさせていただきました
# ホームページ上からデータを追加、検索したりする問題です。
# # OS:Linux
#
# [1]学籍番号(stnum char(14))、名前(name char(30))、国語(kokugo int)、数学(math int)、理科(science int)
# からなるテーブルseisekiをデータベース上に作る。
#
# [2]ホームページからデータを追加、検索できるようにする。
# 表示結果には、学籍番号、名前、国語、数学、理科、合計を表示させる
#
#
399:デフォルトの名無しさん
10/07/24 11:15:41
>>397
% Prolog (その一)
学籍番号による検索(_学籍番号) :-
seiseki(_学籍番号,_名前,_国語,_数学,_理科),
write_formatted('%t,%t,%t,%t,%t\n',[_学籍番号,_名前,_国語,_数学,_理科] .
名前による検索(_名前) :-
seiseki(_学籍番号,_名前,_国語,_数学,_理科),
write_formatted('%t,%t,%t,%t,%t\n',[_学籍番号,_名前,_国語,_数学,_理科]).
国語の成績による検索(_国語,_国語成績) :-
seiseki(_学籍番号,_名前,_国語,_数学,_理科),
_国語成績.
数学の成績による検索(_数学,_数学成績) :-
seiseki(_学籍番号,_名前,_数学,_数学,_理科),
_数学成績.
理科の成績による検索(_理科,_理科成績) :-
seiseki(_学籍番号,_名前,_理科,_数学,_理科),
_理科成績.
400:デフォルトの名無しさん
10/07/24 11:18:39
>>399 >>397ではなくて >>398でした
% Prolog (その二)
成績の追加(_学籍番号,_名前,_国語,_数学,_理科) :-
学籍番号(_学籍番号),
名前(_名前),
国語(_国語),
数学(_数学),
理科(_理科),
assertz(seiseki(_学籍番号,_名前,_国語,_数学,_理科)).
成績の変更(_学籍番号,_名前,_国語,_数学,_理科) :-
学籍番号(_学籍番号),
名前(_名前),
国語(_国語),
数学(_数学),
理科(_理科),
retract(seiseki(_学籍番号,_,_,_,_)),
assertz(seiseki(_学籍番号,_名前,_国語,_数学,_理科)).
成績の削除(_学籍番号) :-
retract(seiseki(_学籍番号,_,_,_,_)).
401:デフォルトの名無しさん
10/07/24 11:19:53
>>398
% Prolog (その三)
学籍番号(_学籍番号) :-
atom_length(_学籍番号,Len),
Len =< 14,
atom_chars(_学籍番号,Chars),
すべてが数字(Chars),!.
すべてが数字([]) :- !.
すべてが数字([A|R]) :-
member(A,['0','1','2','3','4','5','6','7','8','9']),
すべてが数字(R).
名前(_名前) :-
atom(_名前),
atom_length(_名前,Len),
Len =< 30,!.
国語(_国語) :- integer(_国語).
数学(_数学) :- integer(_数学).
理科(_理科) :- integer(_理科).
402:デフォルトの名無しさん
10/07/24 11:22:21
スレリンク(tech板:302番)
# 【 課題 】10個の国旗を表示するプログラム(日本、アメリカ、イギリス、フランス、ジャマイカ、ベトナム、セネガル、スウェーデン、アイスランド、南アフリカ)
# 指定された国旗を画面に表示する。少なくても8種類以上。 国旗の指定にはマウスでメニューのボタンとかを指定して、選択させること。
# 国旗は図形として描くこと。画像を貼り付けたりしてはならない。
# 【 形態 】1. Javaアプリケーション(main()で開始)
# 【 GUI 】4. 制限なし
# 【 期限 】7月22日までに
# 【 Ver 】1.6.0
# 【 補足 】国旗はそこまで高い完成度は求められない?と思います。
403:デフォルトの名無しさん
10/07/24 11:23:13
スレリンク(tech板:308番)
# 【 課題 】なんでもいいからjavaでつくれとのことで
# URLリンク(ime.nu)
# みたいなみかか変換作りたいです
# 【 形態 】Applet
# 【 期限 】7月19日
# 【 Ver 】1.6.0_20-b02
# 【 補足 】いまさらみかかかと思うかもしれませんがよろしくお願いしやす
404:デフォルトの名無しさん
10/07/24 11:25:06
スレリンク(tech板:311番)
# 【 課題 】1.ビンゴカードをPlayerの人数分作成できる。
# 2.1~75の数字が書かれた玉をランダムに取り出せる。
# 3.カードにその数字があるかをチェックし、あれば数字の枠にマークすることができる。
# 4.リーチ、ビンゴ時に表示することができる。
# 以上の機能を備えたビンゴゲームシュミレーターを作成しなさい。
# 【 補足 】カードは1列目1~15、2列目は16~30……5列目で61~75、というよう
な形が指定されています。
# Freeの有無は指定なしです。
# 丸投げ申し訳ないです。長く複雑かもしれませんが、どうぞよろしくお願いします。
# 初心者故、できましたら軽い注釈を付けてくれると幸いです。
405:デフォルトの名無しさん
10/07/24 11:27:34
>>403
% Prolog 何をするのかわからないな。
みかか定義 :-
L = ['1' - 'ぬ','2' - 'ふ','3' - 'あ','4' - 'う','5' - 'え','6' - 'お','7' - 'や','8' - 'ゆ','9' - 'よ','0' - 'わ',(-) - (ほ),(^) - ('へ'),
'Q'-た,'W'-て,'E'-い,'R'-す,'T'-か,'Y'-ん,'U'-な,'I'-に,'O'-ら,'P'-せ,
('@')-゛,('[')-゜,'A'-ち,'S'-と,'D'-し,'F'-は,'G'-き,'H'-く,'J'-ま,'K'-の,
'L'-り,(';')-れ,(':')-け,(']')-む,'Z'-つ,'X'-さ,'C'-そ,'V'-ひ,'B'-こ,'N'-み,
'M'-も,(',')-ね,('.')-る,('/')-め],
member(A-B,L),
assertz(みかか(A,B)),fail;true.
みかか :-
rawmode,
repeat,
get_char(A),
みかか(A,B),
putchar(B),
A = '\n',
norawmode.
406:デフォルトの名無しさん
10/07/24 11:31:57
スレリンク(tech板:956番)
# [2] 問題文(含コード&リンク):URLリンク(ime.nu)
#
# 問1)検索する文字列を入力し、その位置を返す ユーザ関数 を使ってプログラムを作成しなさい。
#
# 条件 プロトタイプ宣言 : char *MojiSearch(char *m, char *s)
# 引数 1 : 検索対象文字列
# 引数 2 : 検索文字列
# 戻り値 : あった場合 (一致した文字列の先頭アドレス)
# なかった場合 (NULL)
# 標準関数 : MojiSearch()内で strlen(),strncmp() のみ使用可能
#
# char moji[] = "ABCDEFGHJABFGHSKL"; /*検索対象文字列*/
#
# 実行画面例
#
# 1) 検索文字列 ==> HS
# 検索位置 : HSKL
#
# 2) 検索文字列 ==> JN
# 検索位置 : 検索したい文字はありませんでした
407:デフォルトの名無しさん
10/07/24 11:33:52
スレリンク(tech板:956番)
# 問2) 配列データの平均を求める ユーザ関数 を使ってプログラムを作成しなさい。
# 条件 プロトタイプ宣言 : double Average(int *p)
# 引数 : 数値が格納された配列の先頭アドレス
# 戻り値 : 平均
# 実行画面例
# 1) 整数[0] ==> 100
# 整数[1] ==> 80
# 整数[2] ==> 60
# 整数[3] ==> 75
# 整数[4] ==> 89
# 整数[5] ==> 62
# 整数[6] ==> 71
# 整数[7] ==> 50
# 整数[8] ==> 49
# 整数[9] ==> 90
#
# 平均 : 72.6
#
# 2) 整数[0] ==> 100
# 整数[1] ==> 80
# 整数[2] ==> 60
# 整数[3] ==> 75
# 整数[4] ==> 89
# 整数[5] ==> 64
# 整数[6] ==> -1
#
# 平均 : 78.0
408:デフォルトの名無しさん
10/07/24 11:35:25
>>406
% Prolog
検索する文字列を入力し、その位置を返す(_検索対象文字列,_検索文字列,_位置,_検索副文字列) :-
sub_atom(_検索対象文字列,A,B,C,_検索文字列),
_位置 is A + 1,
_残り長さ is B + C,
sub_atom(_検索対象文字列,A,_残り長さ,_,_検索副文字列),!.
検索する文字列を入力し、その位置を返す(_,_,_,_) :-
write('検索したい文字はありませんでした\n'),
!,fail.
409:デフォルトの名無しさん
10/07/24 11:36:32
>>407
% Prolog
入力されたデータの平均を求める :-
findavg(M,(
for(0,N,maxint),
write_formatted('整数[%t] ==> ',[N]),
get_integer(M),
( M = -1,!,fail;true)),
_平均),
write_formatted('平均 = %t\n',[_平均]).