いろんな言語で宿題ス ..
[2ch|▼Menu]
290:デフォルトの名無しさん
09/06/24 19:14:07
スレリンク(tech板:953番)
# [1] 授業単元: ピラミッドアート
# [2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
課題「ピラミッドアート」

数値を一つ入力し、その個数分の'*'を1辺とする
@ダイヤ型、A八角形、B星型 などを描画する

実行画面例@ダイヤ型
数字(2〜9)を入力してください:3
*
***
*****
***
*

実行画面例A八角形
数字(2〜9)を入力してください:2
**
****
****
**

実行画面例B星型
数字(2〜9)を入力してください:7
* * *
* * *
***
*******
***
* * *
* * *

291:デフォルトの名無しさん
09/06/24 19:16:01
>>290
空白がうまく表示できなかった。
URLリンク(ime.nu)
で確認してください。

292:デフォルトの名無しさん
09/06/24 20:15:45
>>290
% Prolog
URLリンク(nojiriko.asia)

293:デフォルトの名無しさん
09/06/26 16:58:48
スレリンク(tech板:75番)
# [1] 授業単元: C
# [2] 問題文(含コード&リンク):
# キーボードから入力された1以上の整数nについて、次の例に示すように行番号と*を表示するプログラムを作成せよ
# 。また、0や負の数が入力された場合はプログラムが終了するようにせよ。
# 表示結果の例
# 正の整数:6
# 1******
# 2 *****
# 3  ****
# 4   ***
# 5    **
# 6 *


294:デフォルトの名無しさん
09/06/26 17:14:14
>>293
% Prolog 最後6の表示が間違ってるが。

t293(N) :-
  length(L,N),
  append(L1,L2,L),
  not(L2=[]),
  all(L1,' '),
  all(L2,'*'),
  length(L1,N),
  N2 is N + 1,
  concat_atom(L,S),
  write_formatted('%t %t\n',[N2,S]),
  fail;
  true.

all([],_).
all([A|R],A) :- all(R,A).

295:デフォルトの名無しさん
09/06/26 17:16:07
>>294
  all(L1,' '), はスペース2個だと思ってください。

296:デフォルトの名無しさん
09/06/26 18:11:51
スレリンク(tech板:83番)
# [1] 授業単元:プログラミング
# [2] 問題文(含コード&リンク):
# 自分の名前の英字名のASCIIコードを順番に表示するプログラムを作りなさい。

297:デフォルトの名無しさん
09/06/26 18:13:37
>>296
% Prolog

t296(Name) :-
  sub_atom(Name,S,1,R,A),
  not(A=' '),
  char_code(A,C),
  N is S+1,
  write_formatted('%2d: %t\n',[N,C]),
  fail;
  true.

298:デフォルトの名無しさん
09/06/26 18:41:30
スレリンク(tech板:85番)
# [1] 授業単元: プログラミング演習
# [2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)

299:デフォルトの名無しさん
09/06/26 19:17:51
>>298
% Prolog

phon(_フォネティックコードファイル,_文字列) :-
  assertz_フォネティックコード(_フォネティックコードファイル),
  sub_atom(_文字列,_,1,_,A),
  フォネティックコード(A,B),
  write_formatted('%t ',[B]),
  fail;
  true.

assertz_フォネティックコード(_フォネティックコードファイル) :-
  abolish(フォネティックコード/2),
  get_lines(_フォネティックコード,Lines),
  member(Line,Lines),
  split(Line,[','],[A,B]),
  assertz((フォネティックコード(A,B) :- !)),
  fail;
  assertz((フォネティックコード(A,A))).

300:デフォルトの名無しさん
09/06/26 19:32:49
>>298
-- Haskell

import IO
import Data.Char (isAlpha, toLower)
import Data.Maybe (fromJust)

main = do
fname <- getLine
h <- openFile fname ReadMode
phon <- readPhon h
str <- getLine
putStrLn $ t298 phon str
hClose h

readPhon :: Handle -> IO [(Char,String)]
readPhon h = hGetContents h >>= return . map parse . lines
where
parse :: String -> (Char,String)
parse (c:',':p) = (c,p)

t298 :: [(Char,String)] -> String -> String
t298 phon [] = []
t298 phon (x:xs) | isAlpha x = (fromJust $ lookup (toLower x) phon) ++ ' ' : t298 phon xs
| otherwise = x : t298 phon xs

301:デフォルトの名無しさん
09/06/26 19:49:43
>>299 違ったみたい。どこが違ってたか捜してみて下さい。
% Prolog

phon(_フォネティックコードファイル,_文字列) :-
  assertz_フォネティックコード(_フォネティックコードファイル),
  atom_chars(_文字列,Chars),
  phon_1(Chars,XL),
  phon_2(XL).

phon_1([],[]) :- !.
phon_1([A,B|R1],[C,' '|R2]) :-
  フォネティックコード(A,C),
  フォネティックコード(B,_),
  phon_1([B|R1],R2).
phon_1([A,B|R1],[C,' '|R2]) :-
  フォネティックコード(A,C),
  not(フォネティックコード(B,_)),
  phon_1([B|R1],R2).
phon_1([A,B|R1],[A,' '|R2]) :-
  not(フォネティックコード(A,_)),
  フォネティックコード(B,_),
  phon_1([B|R1],R2).
phon_1([A,B|R1],[A|R2]) :-
  not(フォネティックコード(A,_)),
  not(フォネティックコード(B,_)),
  phon_1([B|R1],R2).

phon_2([]).
phon_2([A|R]) :-
  write(A),
  phon_2(R).


302:デフォルトの名無しさん
09/06/26 19:56:51
>>301 さらに訂正。
phon_1([],[]) :- !. の後に、
phon_1([A],[C]) :-
  フォネティックコード(A,C),!.
phon_1([A],[A]) :-
  not(フォネティックコード(A,_)),!.

の2節を追加してください。
URLリンク(nojiriko.asia)
に書き直しておきます。

303:299
09/06/26 20:35:21
なぜこうまでも全編の書き直しを余儀なくされたかというと、
123abc の場合の 123 Alfa ... 3とAlfaの間のスペースを入れることが
難しかったと言うことです。sub_atomで次の文字をこっそり見てしまえば
いいだけの事なのですが、潔しとせずと言うところでしょうか。

304:デフォルトの名無しさん
09/06/26 20:44:07
>>303
前後関係を検査しやすいパターンで記述するので正解じゃないか。
ご苦労様ですw


305:デフォルトの名無しさん
09/06/26 22:04:55
スレリンク(tech板:46番)
# [1] 授業単元:プログラミング
# [2] 問題文(含コード&リンク):入力した数を2の何乗より大きいかを求めるプログラム。

306:デフォルトの名無しさん
09/06/26 22:15:19
>>305
% Prolog

t305(N,X) :-
for(1,M,N),
2 ^ M > N,
X is M - 1.

307:デフォルトの名無しさん
09/06/26 22:29:32
>>305
-- Haskell

import Data.List (find)
main = do
n <- getLine
let Just m = find ((read n <=) . (2^)) [1..] in print (m-1)

308:デフォルトの名無しさん
09/06/28 14:57:43
「いろんな言語で宿題スレ」の中で
スレリンク(tech板:168番)
スレリンク(tech板:225番)
といったProlog向き問題が未回答となっています。
どなたか、よろしくお願いします。

309:308
09/06/28 14:59:04
「Prologでまったり」スレに書き込んだつもりでした。失礼しました。

310:デフォルトの名無しさん
09/06/29 04:55:03
スレリンク(tech板:162番)
# [1] 授業単元:数値計算
# [2] 問題文(含コード&リンク):の連立1次方程式の解をガウスの消去法用いて解くプログラムを作成しなさい。
#    (この行列を使用してください
#      {{10,-9,0,0,0,0,0,0},
#   {-9,17,-8,0,0,0,0,0},
#   {0,-8,17,-9,0,0,0,0},
# {0,0-9,13,-4,0,0,0},
# {0,0,0,-4,12,-8,0,0},
# {0,0,0,0,-8,10,-2,0},
#   {0,0,0,0,0,-2,2,7}})



311:デフォルトの名無しさん
09/06/29 11:08:26
スレリンク(tech板:856番)
# 【 課題 】百ます計算プログラムの作成
# 足す数、足される数は実行毎にランダムな順番にする。
# スタートボタンを押すと同時に問題が表示され、答えをキー入力しおわるとストップボタンを押す。
# 終了までの時間と、正解数を表示する。

百ます計算ってなんですか? ゲームに参加した人が行、列の先頭から
数字を得て百桝計算し終わるまでの時間でも競うのですか?

312:デフォルトの名無しさん
09/06/29 13:29:06
スレリンク(tech板:184番)
# [1] 授業単元:アルゴリズム
# [2] 問題文(含コード&リンク):
#   URLリンク(kansai2channeler.hp.infoseek.co.jp)


313:デフォルトの名無しさん
09/06/29 13:30:41
>>312
% Prolog
t312(StackIn,StackOut) :-
  new_stack(StackIn,NewStack),
  get_chars(Chars),
  t312_1(Chars,NewStack,StackOut,_).

t312_1([],X,X,true).
t312_1([A|R1],Stack1,Stack2,Return) :-
  stack(A,Stack1,Stack3,Return1),
  t312_2(Return1),
  t312_1(R1,Stack3,Stack2,Return).

t312_2(true) :- !.
t312_2(C) :- write(C).

new_stack(Var,[]) :- var(Var),!.
new_stack([],[]) :- !.
new_stack(Stack,Stack).

stack_1('/',[A|R2],R2,A) :- !.
stack_1(C,Stack1,[C|Stack1],true).

314:デフォルトの名無しさん
09/06/29 13:45:08
>>313 まちがえた。stackという述語のところ。stack/4 stack_1/4
と出てきますが、stack_op/4にします。
% Prolog

t312(StackIn,StackOut) :-
  new_stack(StackIn,NewStack),
  get_chars(Chars),
  t312_1(Chars,NewStack,StackOut,_).

t312_1([],X,X,true).
t312_1([A|R1],Stack1,Stack2,Return) :-
  stack_op(A,Stack1,Stack3,Return1),
  t312_2(Return1),
  t312_1(R1,Stack3,Stack2,Return).

t312_2(true) :- !.
t312_2(C) :- write(C).

new_stack(Var,[]) :- var(Var),!.
new_stack([],[]) :- !.
new_stack(Stack,Stack).

stack_op('/',[A|R2],R2,A) :- !.
stack_op(C,Stack1,[C|Stack1],true).

315:デフォルトの名無しさん
09/06/30 03:45:34
スレリンク(tech板:222番)
# [1] 授業単元:プログラミング
# [2] 問題文(含コード&リンク):
# URLリンク(kansai2channeler.hp.infoseek.co.jp)

316:デフォルトの名無しさん
09/06/30 10:02:40
>>315
% Prolog
URLリンク(nojiriko.asia)

317:デフォルトの名無しさん
09/06/30 10:50:45
スレリンク(tech板:234番)
# [1] 授業単元:確率論
# [2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)


318:デフォルトの名無しさん
09/06/30 14:50:16
スレリンク(tech板:243番)
# [1] 授業単元: プログラミング演習
# [2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)

319:デフォルトの名無しさん
09/06/30 17:28:19
スレリンク(tech板:244番)
# 〔1〕授業単元:C言語
# 〔2〕問題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)


320:デフォルトの名無しさん
09/07/01 04:08:33
スレリンク(tech板:273番)
# 1] 授業単元: 数理計画法
# [2] 問題文(含コード&リンク): シンプレックス法のプログラムを作成せよ。
# [3] 環境
#  [3.1] OS: Windows
#  [3.3] 言語: C
# [4] 期限: 2009年7月1日
# [5] その他の制限: プログラムの授業で習うことはすべてやりました。
# URLリンク(kansai2channeler.hp.infoseek.co.jp)
# のようなプログラムをつくたんですがこの先が悩んでいます。どなたかお願いします。

321:デフォルトの名無しさん
09/07/01 04:10:11
スレリンク(tech板:275番)
# [1] 授業単元:C言語の基礎
# [2] 問題文:年(西暦)、月、日を入力し、入力した、日時の曜日及び、経過した日数を表示したプログラムを作成せよ。

322:デフォルトの名無しさん
09/07/01 16:45:23
>>321
% Prolog
URLリンク(nojiriko.asia)

323:デフォルトの名無しさん
09/07/01 22:46:07
>>318
% Prolog
URLリンク(nojiriko.asia)

324:323
09/07/02 05:34:22
>>318
すみません。間違いが多かったので大幅に書き換えてupしました。
URLリンク(nojiriko.asia)

325:デフォルトの名無しさん
09/07/02 05:47:42
>>319 @
% Prolog
swap(A,B,L,LX) :-
append(L1,[A|L2],[B|L3],L),
append(L1,[B|L2],[A|L3],LX),!.
swap(A,B,L,LX) :-
append(L1,[B|L2],[A|L3],L),
append(L1,[A|L2],[B|L3],LX),!.

326:デフォルトの名無しさん
09/07/02 08:49:55
>>319 A
% Prolog

t319_2(X) :-
  findall(U,(for(1,N,52),t319_2_1(N,U)),X).

t319_2_1(N,U) :-
  M is N mod 13,
  t319_2_2(M,U).

t319_2_2(1,'A') :- !.
t319_2_2(10,'T') :- !.
t319_2_2(11,'J') :- !.
t319_2_2(12,'Q') :- !.
t319_2_2(0,'K') :- !.
t319_2_2(N,N).

327:デフォルトの名無しさん
09/07/02 09:03:32
>>319 B
% Prolog

t319_3(X) :-
  findall(U,(for(1,N,52),t319_3_1(N,U)),X).

t319_3_1(N,U) :-
  M is N mod 13,
  M2 is (N - 1) // 13,
  t319_2_2(M,U1),
  t319_2_3(M2,U2),
  atom_concat(U1,U2,U).

t319_2_3(0,s).
t319_2_3(1,h).
t319_2_3(2,d).
t319_2_3(3,c).

% どこでswapを使うのかわからない!
% これからカードを「切る」課題でも出てくるのだろうか。

328:デフォルトの名無しさん
09/07/02 09:21:08
>>319
% せっかくだからN回切るのをやってみよう。
% Prolog

t319_cut(N,L) :-
  t319_3(L1),
  t319_cut(N,L1,L).

t319_cut(0,L,L) :- !.
t319_cut(N,L,X) :-
  M1 is (random mod 52) + 1,
  M2 is (random mod 52) + 1,
  swap_nth(M1,M2,L,L1),
  N2 is N - 1,
  t319_cut(N2,L1,X).

swap_nth(M,N,L1,L2) :-
  list_nth(M,L1,A),
  list_nth(N,L1,B),
  swap(A,B,L1,L2).

329:デフォルトの名無しさん
09/07/02 09:55:49
>>319
失礼しました。問題文を読み落としていました。
すべて最初に「切る」ことが指定されていました。
最初に切ってしまうなら、swap_nthではなく、swapでも処理できます。

t319_xx(X) :-
  findall(N,for(1,N,52),L),
  t319_cut(100,L,L1),
   ... ,
のような進行になります。

330:デフォルトの名無しさん
09/07/02 10:54:28
>>319
% Prolog
URLリンク(nojiriko.asia)

331:デフォルトの名無しさん
09/07/03 07:12:07
スレリンク(tech板:472番)
# [1] 授業単元:C言語実習
# [2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
/joyful/img/9658.txt
# {5,21,4,14,12},
# {25,20,15,3,7},
# {24,11,6,1,13},
# {16,2,17,19,8},
# {23,18,22,9,10}
#
# の横の各行を小さい順に並び替えた後、縦の各列を小さい順に並び替え(上が小さくな
るように)
# 結果を出力
#
# 結果は
#
# 5 21 4 14 12
# 25 20 15 3 7
# 24 11 6 1 13
# 16 2 17 19 8
# 23 18 22 9 10
#
# のような形で出力

332:デフォルトの名無しさん
09/07/03 07:32:08
>>331
% Prolog

t331(_行列1,_行列2) :-
  各行を整列する(_行列1,_行列3),
  各列を整列する(_行列3,_行列2),
  member(L,_行列2),
  concat_atom(L,' ',S),
  write_formatted('%t\n',[S]),
  fail;
  true.

各行を整列する([],[]) :- !.
各行を整列する([_行|R1],[_整列された行|R2]) :-
  sort(_行,_整列された行),
  各行を整列する(R1,R2).

各列を整列する(_行列1,_行列2) :-
  行列の転置(_行列2,_行列3),
  各行を整列する(_行列3,_行列4),
  行列の転置(_行列4,_行列2).


333:デフォルトの名無しさん
09/07/03 15:49:25
スレリンク(tech板:511番)
# [1] 授業単元:情報基礎B
# [2] 問題文(含コード&リンク):試験の点数10人分をキーボードから入力し、以下の内容を出力するプログラムを作成せよ。
# 平均点、標準偏差、得点の高い順の点数リスト(出来れば、バブルソート以外のアルゴリズムでお願いします。)

334:デフォルトの名無しさん
09/07/03 16:21:10
>>333
% Prolog (1/2)

t333(_点数ならび,_平均点,_標準偏差,_点数順ならび) :-
  算術平均(_点数ならび,_平均点),
  標準偏差(_点数ならび,_標準偏差),
  quicksort(_点数ならび,_点数順ならび).

算術平均([],N,S,M) :- M is S / N,!.
算術平均([A|R],N,S,M) :- S1 is S + A,算術平均(R,N,S1,M) .

算術平均(L,M) :- length(L,N),算術平均(L,N,0.0,M).

標準偏差([],N,M,S,V) :- V is sqrt(S / (N - 1)),!.
標準偏差([A|R],N,M,S,V) :- S1 is (A - M) ^ 2,S2 is S + S1,標準偏差(R,N,M,S2,V).

標準偏差(L,V) :- length(L,N),算術平均(L,M),標準偏差(L,N,M,0.0,V) .


335:デフォルトの名無しさん
09/07/03 16:22:29
>>333
% Prolog (2/2)

quicksort([],[]) :- !.
quicksort([X|Xs],Ys) :-
  partition(Xs,X,Littles,Gigs),
  quicksort(Littles,Ls),
  quicksort(Bigs,Bs),
  append(Ls,[X|Bs],Ys).

partition([],Y,[],[]) :- !.
partition([X|Xs],Y,[X|Ls],Bs) :- X @=< Y,partition(Xs,Y,Ls,Bs).
partition([X|Xs],Y,Ls,[X|Bs]) :- X @> Y,partition(Xs,Y,Ls,Bs).


336:335
09/07/03 16:56:05
>>333
点数の高い順だと、
partition([],Y,[],[]) :- !.
partition([X|Xs],Y,[X|Ls],Bs) :- X @>= Y,partition(Xs,Y,Ls,Bs).
partition([X|Xs],Y,Ls,[X|Bs]) :- X @< Y,partition(Xs,Y,Ls,Bs).
ですね。

337:デフォルトの名無しさん
09/07/03 17:15:43
スレリンク(tech板:423番)
# [1] 授業単元: 情報処理
# [2] 問題文(含コード&リンク):
#   
#  2つの正整数 m とn とを引数として受け取り、m と n の最大公約数を戻
# り値として返す関数gcd()を作成する。この関数を用いることにより、キー
# ボードから入力した3つの正整数 a, b, c の最大公約数を求めるプログラム
# を書け。
#
# 注意: 最大公約数を計算するには次のような「ユークリッドの互除法」を
# 用いるとよい。
#
# 「ユークリッドの互除法」
#  2つの正の整数 m、n(m>n)の最大公約数を求めるには、m を n で割っ
# て余り r1 を求め、次に n を r1 で割って余り r2 を求め、・・・、この
# ように大きい方を小さい方で割って余りを求め、最後に割り切れたときの除
# 数が求める最大公約数である。
#
# 例)440/380=1余り60 
#   380/60=6余り20  
#   60/20=3 余りなし
#  したがって、440と380の最大公約数は20 

338:デフォルトの名無しさん
09/07/03 17:19:24
>>337
% Prolog

最大公約数をユークリッドの互除法で求める(M,N,N) :-
  0 is M mod N,!.
最大公約数をユークリッドの互除法で求める(M,N,X) :-
  Mod is M mod N,
  最大公約数をユークリッドの互除法で求める(N,Mod,X).

339:デフォルトの名無しさん
09/07/03 19:18:20
>>310
% Prolog
URLリンク(nojiriko.asia)

340:デフォルトの名無しさん
09/07/03 20:37:32
スレリンク(tech板:534番)
# [1] 授業単元:情報処理
# [2] 問題文(含コード&リンク):
# 例えば下図に示すように,通行可能なマス目に'0'が,
# 障害物があって通行不能なマス目に'+'が記されている盤がある.
# 盤の左上をスタート地点,右下をゴール地点として,経路を表示する
# プログラムを作りなさい.
# 盤の例
# 0 0 + 0 +
# + 0 0 0 +
# 0 + + 0 0
# 0 0 + 0 0
# + 0 0 0 0
#
# 例えばこのようなアルゴリズムが考えられる.
#
# 1) 現在位置を表示の後、進行方向に対して,右に進めるなら右に,
# そうでなければ直進,それもだめなら左に,さらにそれもダメなら後退する.
# 2) 1を繰り返してゴールに達したらその旨を表示する.
# ただし,マス目の数分だけ移動してもゴールに達しない場合はその時点で終了する.
#
# 入力形式は、
#
# %> ./a.out 00+0+ +000+ 0++00 00+00 +0000
#
# とする.


341:デフォルトの名無しさん
09/07/03 20:41:34
>>340
% Prolog
URLリンク(nojiriko.asia)

342:デフォルトの名無しさん
09/07/04 03:47:01
スレリンク(tech板:536番)
# [1] 授業単元: C言語演習
# [2] 問題文(含コード&リンク): 乱数を使って配列に値を代入するようにせよ。サイズを変化させて時間を計測してみせよ。
# サイズが十倍になると計算結果は何倍になるか?

343:デフォルトの名無しさん
09/07/04 03:59:15
>>342
% Prolog
t342(X,Y,Z) :-
  findsum(U1,(for(1,N1,100),U1 is random // 100),X),
  findsum(U2,(for(1,N2,1000),U2 is random // 100),Y),
  Z is Y / X.

findsum(_選択項,_項,_合計値) :-
  findall(_選択項,_項,_値ならび),
  sum(_値ならび,_合計値),!.

sum([],0.0) :- !.
sum([A|R],X) :- sum(R,Y),X is A + Y.


344:デフォルトの名無しさん
09/07/04 04:06:59
スレリンク(tech板:538番)
# [1] 授業単元:プログラミング演習
# [2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)

345:デフォルトの名無しさん
09/07/04 04:24:42
>>344 課題1
% Prolog
space(_文字列,_スペースを挿入された文字列) :-
  atom_chars(_文字列,Chars),
  concat_atom(Chars,' ',_スペースを挿入された文字列).

concat_atom([],_,'') :- !.
concat_atom([A],_,A) :- !.
concat_atom([A|R],S,X) :-
  concat_atom(R,S,Y),
  atom_concat(A,S,B),
  atom_concat(B,Y,X).

346:デフォルトの名無しさん
09/07/04 04:36:04
>>344 課題2
% Prolog

inpro([],[],0) :- !.
inpro([A|R1],[B|R2],X) :-
  inpro(R1,R2,Y),
  X is A * B + Y.


347:343
09/07/04 05:07:58
>>342 間違ってたので直します
% Prolog

t342(X,Y,Z) :-
  findsum(U1,(for(1,N1,100),U1 is random mod 100),X),
  findsum(U2,(for(1,N2,1000),U2 is random mod 100),Y),
  Z is Y / X.

findsum(_選択項,_項,_合計値) :-
  findall(_選択項,_項,_値ならび),
  sum(_値ならび,_合計値),!.

sum([],0.0) :- !.
sum([A|R],X) :- sum(R,Y),X is A + Y.


348:デフォルトの名無しさん
09/07/04 05:16:30
スレリンク(tech板:547番)
# [1] 授業単元:プログラミング
# [2] 問題文(含コード&リンク):
# 下に示すように,非負の整数値を読み込んで,その数を逆順に表示するプログラムを作成せよ。
# なお,負の値を読み込んだ場合は,再入力を促すメッセージを表示すること。
#
# 非負の整数を入力してください: 1963
# 1963 を逆から読むと3691 です.

349:デフォルトの名無しさん
09/07/04 05:32:40
>348
% Prolog

t348 :-
  整数の入力(N),
  number_chars(N,L),
  reverse(L,L1),
  number_chars(N2,L1),
  write_formatted('逆に表示すると %t\n',[N2]).>348

整数の入力(N) :-
  write('非負の整数を入力してください(入力後ピリオドと改行) : '),
  read(N),
  integer(N),
  N >= 0,!.
整数の入力(N) :-
  write('入力されたのは非負の整数ではありませんでした\n'),
  整数の入力(N).

350:デフォルトの名無しさん
09/07/04 05:36:51
スレリンク(tech板:552番)
# [1] 授業単元:情報処理
# [2] 問題文(含コード&リンク):
# (1)
# URLリンク(kansai2channeler.hp.infoseek.co.jp)
# (2)
# URLリンク(kansai2channeler.hp.infoseek.co.jp)

351:デフォルトの名無しさん
09/07/04 05:40:36
>>350 (2)
% Prolog

:- op(450,xfx,分の).

分数の積(A 分の B,C 分の D,X 分の Y) :-
  X is A * C,
  Y is B * D.

352:デフォルトの名無しさん
09/07/04 06:03:29
スレリンク(tech板:559番)
# [1] 授業単元:アルゴリズム
# [2] 問題文(含コード&リンク):url.txtに書き込まれている"http://〜をhttp://〜に書き換えresult.txtに出力せよ

353:デフォルトの名無しさん
09/07/04 06:13:37
>>352
# python2.x
fin = file('url.txt')
fout = file('result.txt','w')
for line in fin.readlines():
fout.write(line.replace('http://','http://'))
fout.close()
fin.close()


354:デフォルトの名無しさん
09/07/04 06:17:58
>>352
% Prolog

t352 :-
  get_chars('url.txt',Chars),
  t352(Chars,Chars2),
  put_chars('result.txt',Chars).

t352([],[]) :- !.
t352(['h','t','t','p',':','/','/'|R1],['h','t','t','p',':','/','/'|R2]) :-
  t352(R1,R2),!.
t352(['t','t','p',':','/','/'|R1],['h','t','t','p',':','/','/'|R2]) :-
  t352(R1,R2),!.
t352([A|R1],[A|R2]) :-
  t352(R1,R2).

355:354
09/07/04 06:20:33
>>352
% Prolog
>>352
また間違い。訂正,Chars -> Chars2 のところがある。

t352 :-
  get_chars('url.txt',Chars),
  t352(Chars,Chars2),
  put_chars('result.txt',Chars2).


356:354
09/07/04 06:55:43
>>352
% Prolog ' は要らなかった。

t352 :-
  get_chars('url.txt',Chars),
  t352(Chars,Chars2),
  put_chars('result.txt',Chars2).

t352([],[]) :- !.
t352([h,t,t,p,:,/,/|R1],[h,t,t,p,:,/,/|R2]) :-
  t352(R1,R2),!.
t352([t,t,p,:,/,/|R1],[h,t,t,p,:,/,/|R2]) :-
  t352(R1,R2),!.
t352([A|R1],[A|R2]) :-
  t352(R1,R2).

357:デフォルトの名無しさん
09/07/04 08:30:39
スレリンク(tech板:586番)
# [1] 授業単元:C+
# [2] 問題文(含コード&リンク):
# URLリンク(kansai2channeler.hp.infoseek.co.jp)

358:デフォルトの名無しさん
09/07/04 08:33:18
>>357
% Prolog
% 1.
% sum1toN(n)と呼び出すと(nは正の整数)、戻り値として 1 から n までの
% 和が返ってくる関数sum1toNを作成せよ。(関数の部分のみ書くこと。)

sum1toN(1,1) :- !.
sum1toN(N,X) :- M is N - 1,sum1toN(M,Y),X is N + Y.


359:デフォルトの名無しさん
09/07/04 08:35:53
>>357
% Prolog
% 2.
% 円の半径をキーボードから入力し、円周の長さと面積を求めて表示する プログラムを次のように作成した。
% 円周の長さと面積を求める部分は関数 circleを使用している。この関数を書け。
% 円周率は#defineで定義している PAI を使ってよい。

% #include <stdio.h>
% #define PAI 3.14159
% 関数circleのプロトタイプ宣言 (省略)
% int main(void ){
% double r, enshu, menseki;
% printf("半径を入力 >>");
% scanf("%lf", &r);
% circle(r, &enshu, &menseki);
% printf("円周 = %f 面積 = %f\n"
% , enshu, menseki);
% return 0;
% }
%
% │ │
% │    関数 circle │
% │ │

pi(3.14159).

circle(_半径,_円周,_面積) :-
  pi(PI),
  _円周 is 2 * _半径 * PI,
  _面積 is _半径 ^ 2 * PI.

360:デフォルトの名無しさん
09/07/04 08:49:25
>>357
% Prolog
% 3.
% 大きさ8のint型配列aに初期値として
% 1 2 3 4 5 6 7 8
% を設定する。これを
% 0 0 1 2 3 4 5 6
% のように要素を右に2つシフトして a[0],a[1]には 0 を入れ、
% その後配列の各要素を
% a[0]=0
% a[1]=0
% <略>
% a[7]=6
%
% のように表示するプログラムを書け。
t357_3 :-
  右にシフト(2,[1,2,3,4,5,6,7,8],_シフトされたならび),
  表示(1,_シフトされたならび).

表示(_,[]) :- !.
表示(N,[A|R]) :-
  M is N - 1,
  write('a[%t]=%t',[M,C]),
  N2 is N + 1,
  表示(N2,R).

右にシフト(0,X,X) :- !.
右にシフト(N,L,X) :-
  append(Y,[_],[0|L]),
  M is N - 1,
  右にシフト(M,Y,X).

361:デフォルトの名無しさん
09/07/04 08:53:20
>>357
% Prolog
% 4.
% 文字列(最大80文字)をキーボードから読み込み、
% その文字列中で文字コードが最大の文字とその文字コードを
%
%   文字コード最大はY <89>
%
% (Yが最大の文字、89がその文字コードを意味する。)
% のように表示するプログラムを次のように作成した。空欄を埋めてプログラム
% を完成せよ。

最大の文字コード(_文字列,_最大の文字コード) :-
  atom_codes(_文字列,[C|R]),
  最大の文字コード(R,C,_最大の文字コード).

最大の文字コード([],X,X) :- !.
最大の文字コード([C|R],_現在の最大コード,_最大の文字コード) :-
  C > _現在の最大コード,
  最大の文字コード(R,C,_最大の文字コード),!.
最大の文字コード([C|R],_現在の最大コード,_最大の文字コード) :-
  C =< _現在の最大コード,
  最大の文字コード(R,_現在の最大コード,_最大の文字コード),!.

362:デフォルトの名無しさん
09/07/04 17:12:40
スレリンク(tech板:606番)
# [1] 授業単元:C
# [2] 問題文(含コード&リンク):
# URLリンク(kansai2channeler.hp.infoseek.co.jp)
# URLリンク(kansai2channeler.hp.infoseek.co.jp)

363:デフォルトの名無しさん
09/07/04 17:14:39
スレリンク(tech板:607番)
# 簡単なデータベース機能を持つプログラムを作成しなさい.対象となるデータは自分で
考えてください.
#   (住所録,商品の在庫,図書,ワールドカップの勝敗....)
#  以下の要件を示します.
#
# 1. ファイルからデータを読み込む機能をつけること.
# 2. データは4つ以上の項目を保持させること.
#  (住所録では、「名前」「住所」「郵便番号」「電話番号」等で4項目以上)
# 3. 並び替えの機能をつけること.また並び替える項目が指定できること.
# 4. 各項目についてデータの検索を行う機能をつけること.また,検索条件を組み合わ
せることができること.
#  (住所録なら,「郵便番号」が 399 で始まって,かつ,「電話番号」が 026 で始ま
る 等)
# 5. データは半角英数字(英語やローマ字)で扱ってよい
# 6. データの追加ができること.
# 7. データの削除ができること.削除は上記の検索と組み合わせることで,ある条件に
合致したデータを削除できること.
# 8. 追加・削除した結果をファイルに保存できること.

364:デフォルトの名無しさん
09/07/05 04:45:28
>>362
% Prolog
URLリンク(nojiriko.asia)

365:デフォルトの名無しさん
09/07/05 23:48:47
場違いか心配ですが・・・。
質問です

?- search(a, f, Path).
Path = [f, d, e,c, b, a] ;
Path = [f, d, b, a]

arc(b,c).
arc(b,d).
arc(c,e).
arc(e,d).
arc(d,f).
arc(e,b).

あるノードから、あるノードまでが到達可能かどうかを調べ経路も表示するプログラムを
作りたいのですがどうすれば良いのでしょうか?memberを使えば良いと言われたのですが
よくわかりません・・・。

366:デフォルトの名無しさん
09/07/06 06:37:37
>>365
一番基本的なものは以下のようなものでしょう。

到達可能(A,B,Log) :-
到達可能(A,B,[A],Log).

到達可能(A,B,L1,Log) :-
  arc(A,B),
  \+ member(B,L1),
  append(L1,[B],Log).
到達可能(A,B,L1,L) :-
  arc(A,C),
  \+ member(C,L1),
  append(L1,[C],L2),
  到達可能(C,B,L2,L).

367:デフォルトの名無しさん
09/07/06 06:47:50
>>365
一般に以下の方を使うのではないかと思います。

到達可能(A,B,Log) :-
  到達可能(A,B,[A],_逆順Log),
  reverse(_逆順Log,Log).

到達可能(A,B,L1,[B|L1]) :-
  arc(A,B),
  \+ member(B,L1).
到達可能(A,B,L1,L) :-
  arc(A,C),
  \+ member(C,L1),
  到達可能(C,B,[C|L1],L).

368:デフォルトの名無しさん
09/07/06 09:15:54
>>363
% Prolog
URLリンク(nojiriko.asia)

369:デフォルトの名無しさん
09/07/06 14:49:42
スレリンク(tech板:673番)
# [1] 授業単元: 構造体
# [2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
n/joyful/img/9688.txt

370:デフォルトの名無しさん
09/07/06 16:26:42
スレリンク(tech板:660番)
# [1] 授業単元:情報
# [2] 問題文(含コード&リンク):
# パソコン甲子園 2008 予選問題 問7 ふしぎな虫
# URLリンク(www.pref.fukushima.jp)

371:デフォルトの名無しさん
09/07/06 16:28:07
>>370
% Prolog
URLリンク(nojiriko.asia)

372:デフォルトの名無しさん
09/07/06 16:51:59
>>369
# 次の各プログラムを作成
#
# 1.線分の長さを求める
#  -両端点の座標値(浮動小数点)を入力
#  -線分の長さを計算、表示
#
# 2.三角形の面積を求める
#  -3頂点の座標軸(浮動小数点)を入力
#  -面積を計算、表示
#
# 2では1つの点を原点に移動させてあとはS=1/2|ad-bc|でお願いします
#
# 補足でこれがありました
# ◆ 平方根を求める関数
#
# double型の関数 sqrt() を使います.仮引数もdouble型です.
#
# 例えばdouble型の変数 len の平方根を求める場合には,次のように呼び出
# します.
#
# sqrt(len)# 関数sqrt()を使用するソースプログラムをコンパイルするときには,
#
# gcc -lm ***.c
#
# のように,コンパイルオプション「-lm」が必要です.
#
#
#
# ・main関数の座標値読み込み部分を省略したものは以下の通りです

373:デフォルトの名無しさん
09/07/06 16:54:54
>>369 (1)
% Prolog
線分の長さ(X1,Y1,X2,Y2,_線分の長さ) :-
  _線分の長さ is sqrt((X2-X1)^2 + (Y2-Y1)^2).

374:デフォルトの名無しさん
09/07/06 18:13:01
>>369 (2)
% Prolog

三角形の面積(X1,Y1,X2,Y2,X3,Y3,_三角形の面積) :-
  一角を原点へ移動(X1,Y1,X2,Y2,X3,Y3,0,0,X22,Y22,X33,Y33),
  _三角形の面積 is abs(X22 * Y33 - Y22 * X33) / 2.

一角を原点へ移動((X1,Y1,X2,Y2,X3,Y3,0,0,X22,Y22,X33,Y33) :-
  X22 is X2 - X1,
  Y22 is Y2 - Y1,
  X33 is X3 - X1,
  Y33 is Y3 - X1.


375:デフォルトの名無しさん
09/07/06 18:21:05
>>374 訂正
一角を原点へ移動((X1,Y1,X2,Y2,X3,Y3,0,0,X22,Y22,X33,Y33) :-
  X22 is X2 - X1,
  Y22 is Y2 - Y1,
  X33 is X3 - X1,
  Y33 is Y3 - Y1.

376:デフォルトの名無しさん
09/07/07 00:47:46
>>366-367さん
回答ありがとうございます。しかし
arc(a,b).
arc(b,c).
arc(b,d).
arc(c,e).
arc(e,d).
arc(d,f).
arc(d,e).

member(X,[X|_]).
member(X,[_|T]) :-
member(X,T).



seach(A,B,Log) :-
search(A,B,[A],_逆順Log),
reverse(_逆順Log,Log).

seach(A,B,L1,[B|L1]) :-
arc(A,B),
\+ member(B,L1).
search(A,B,L1,L) :-
arc(A,C),
\+ member(C,L1),
search(C,B,[C|L1],L).
と作って| ?- search(a, f, Path).
と聞くとnoと出てしまいます・・・。
あと_逆順Logは普通にSとかに置き換えてもいいのですか?

377:デフォルトの名無しさん
09/07/07 03:30:34
>>376
seach と search とありますが,seach/4の定義はsearch/4だと思いますが、
単なる誤植でしょうか。

?- listing(search).
で正しく定義ができているか確認してください。

もしできていないなら、
\+member(B,L1) と \+member(C,L1) を not(member(B,L1)) not(member(C,L1))
に置き換えてみてください。
それから_逆順Log は S でも問題ありません。なぜ最後にreverseするのか
わからない人が多いと思ったのでこの変数名を使いました。

378:デフォルトの名無しさん
09/07/07 06:57:09
>>350 (1)
% Prolog
:- op(300,fx,i).

複素数の割り算(A + iB,C + iD,X + iY) :-
X is (A * C + B * D) / ( C ^ 2 + D ^ 2),
Y is (B * C - A * D) / ( C ^ 2 + D ^ 2).


379:デフォルトの名無しさん
09/07/07 07:59:46
>>350 (1) 書き直し
% Prolog
:- op(300,fx,i).

複素数の割り算(A+iB,C+iD,X+iY) :-
  X is (A * C + B * D) / ( C ^ 2 + D ^ 2),
  Y is (B * C - A * D) / ( C ^ 2 + D ^ 2).

380:デフォルトの名無しさん
09/07/07 14:08:47
スレリンク(tech板:725番)
# [1] 授業単元: プログラミング
# [2] 問題文(含コード&リンク): 整数 nissu をキー入力して、
# 1 月1 日から数えて nissu 日目が何月何日かを表示
# したい。

381:デフォルトの名無しさん
09/07/07 14:14:42
>>380
% Prolog
t380 :- get_line(Line),atom_to_term(Line,Nissu,_),
  'N日後は'(0,Nissu,2009/1/1,_年/_月/_日),
  write_formatted('%t月%t日\n',[_月,_日]).

'N日後は'(N,N,_年/_月/_日,_年/_月/_日).
'N日後は'(M,N,_年_1/_月_1/_日_1,_年/_月/_日) :-
前日・今日(_年_1/_月_1/_日_1,_年_2/_月_2/_日_2),
M2 is M + 1,
'N日後は'(M2,N,_年_2/_月_2/_日_2,_年/_月/_日).
前日・今日(_前日の年 / 12 / 31,_年 / 1 / 1) :- 一つ違い(_前日の年,_年),!.
前日・今日(_年 / 2 / 29,_年 / 3 / 1) :- うるう年(_年),!.
前日・今日(_年 / 2 / 28,_年 / 3 / 1) :- \+(うるう年(_年)),!.
前日・今日(_年 / _前月 / 30,_年 / _月 / 1) :- 一つ違い(_前月,_月),member(_前月,[4,6,9,11]),!.
前日・今日(_年 / _前月 / 31,_年 / _月 / 1) :- 一つ違い(_前月,_月),member(_前月,[1,3,5,7,8,10,12]),!.
前日・今日(_年 / _月 / _前日,_年 / _月 / _日) :- 一つ違い(_前日,_日),!.

うるう年(_年) :- 0 is _年 mod 400,! .
うるう年(_年) :- 0 is _年 mod 100,!,fail.
うるう年(_年) :- 0 is _年 mod 4,!.
うるう年(_年) :- \+(0 is _年 mod 4),fail.

一つ違い(M,N) :- integer(M),!,N is M + 1 .
一つ違い(M,N) :- integer(N),!,M is N - 1 .

382:デフォルトの名無しさん
09/07/07 14:18:05
>>381 ちょっと読みづらかったか。

'N日後は'(N,N,_年/_月/_日,_年/_月/_日).
'N日後は'(M,N,_年_1/_月_1/_日_1,_年/_月/_日) :-
  前日・今日(_年_1/_月_1/_日_1,_年_2/_月_2/_日_2),
  M2 is M + 1,
  'N日後は'(M2,N,_年_2/_月_2/_日_2,_年/_月/_日).

383:デフォルトの名無しさん
09/07/07 14:21:40
>>381 もう一度訂正。バックトラックしてくると具合の悪いことになる。

'N日後は'(N,N,_年/_月/_日,_年/_月/_日) :- !.
'N日後は'(M,N,_年_1/_月_1/_日_1,_年/_月/_日) :-
  前日・今日(_年_1/_月_1/_日_1,_年_2/_月_2/_日_2),
  M2 is M + 1,
  'N日後は'(M2,N,_年_2/_月_2/_日_2,_年/_月/_日).


384:デフォルトの名無しさん
09/07/07 15:03:39
# スレリンク(tech板:904番)
# ・課題の内容
# TCP/IPプロトコルを用い、通信するプログラムを作成せよ。
# ・条件
# キーボードから文字列を1行入力し、それを送信するプログラム(tcp_snd1)と、
# それを受信するプログラム(tpc_rec1)の2つを作成せよ。
# tcp_snd1では、送信先の計算機の名前をプログラムの引数で指定できるようにせよ。
# tcp_rec1では、コネクションの要求あったら、コネクションを張り、
# 要求した計算機のIPアドレスを表示せよ。
# メッセージを受信するたびに、通信回数を[]で括って表示し、
# その後にメッセージを表示せよ。
# 空行が入力されたら、tcp_snd1もtcp_rec1の双方が終了するようにせよ。
# ポートとして、9000を利用せよ。

385:デフォルトの名無しさん
09/07/07 16:08:17
>>384
% Prolog
URLリンク(nojiriko.asia)

386:デフォルトの名無しさん
09/07/07 17:29:44
スレリンク(tech板:732番)
# [1] 授業単元: プログラミングC
# [2] 問題文(含コード&リンク):
# キーボードから半角英数で文字列を入力し、英字については大文字を小文字に、小文字
を大文字にするプログラムを作成せよ。
#
# 実行例 文字列入力 :AbCdEfG123
#     変換文字列 :aBcDeFg123


387:デフォルトの名無しさん
09/07/07 17:49:22
>>386
% Prolog

t386 :-
  get_line(Line),
  atom_chars(Line,Chars),
  大文字小文字変換(Chars,Chars2),
  atom_chars(Line2,Chars2),
  write_formatted('%t\n',[Line2]).

大文字小文字変換([],[]) :- !.
大文字小文字変換([A|R1],[B|R2]) :-
  A @>= 'A',
  A @=< 'Z',!,
  to_lower(A,B),
  大文字小文字変換(R1,R2).
大文字小文字変換([A|R1],[B|R2]) :-
  A @>= a,
  A @=< z,!,
  to_upper(A,B),
  大文字小文字変換(R1,R2).
大文字小文字変換([A|R1],[A|R2]) :-
  大文字小文字変換(R1,R2).



388:デフォルトの名無しさん
09/07/07 18:08:35
スレリンク(tech板:733番)
# [1] 授業単元: プログラミングC
# [2] 問題文(含コード&リンク):
# キーボードから半角英数で文字列を入力し、これを数字(0→9)、
# 大文字(A→Z)、
# 小文字(a→z)の順に並べ替えるプログラムを作成せよ。
# ヒント:並べ替えアルゴリズムは、バブルソート(隣接交換法)を
# 使うと簡単だろう。
# 文字列長はstrlen命令を使うとよい。みたいです。

389:デフォルトの名無しさん
09/07/07 18:11:42
>>388
% Prolog

t388 :-
  get_line(Line),
  atom_chars(Line,Chars),
  バブルソート(Chars,_整列した文字ならび),
  atom_chars(Line2,_整列した文字ならび),
  write_formatted('%t\n',[Line2]).

バブルソート(L,X) :-
  整順が崩れるまで(L,L2),
  バブルソート(L2,X),!.
バブルソート(L,L).

整順が崩れるまで([A],[A]) :- !,fail.
整順が崩れるまで([A,B|R1],[A|R2]) :-
  A @=< B,
  整順が崩れるまで([B|R1],R2).
整順が崩れるまで([A,B|R1],[B,A|R1]) :-
  A @> B.

390:デフォルトの名無しさん
09/07/07 18:28:46
>>377さん
誤植でした;;
無事出来ました
ちなみに述語がmemberだけで出来ると
聞いたのですが出来るのでしょうか?
出来るとしたらどんな感じに
なるのでしょうか?

391:デフォルトの名無しさん
09/07/07 20:35:12
>>390
member/2だけではうまくいかなかった。

member(A,B,L,[A,B]) :- member((A,B),L).
member(A,B,L,[A|R1]) :- member((A,C),L),member(C,B,L,R1).

?- member(a,f,[(a,b),(b,c),(b,d),(c,e),(e,d),(d,f),(d,e)],S).

ならうまくいくかな。

392:デフォルトの名無しさん
09/07/07 23:30:00
>>391さん
ヒントとしては
?- \+(member(a, [b,c])).
yes
となり
rev2(L, R) :-
rev2(L, [], R).
rev2([], R, R).
rev2([H|T], L, R) :-
rev2(T, [H|L], R).
みたいに
rev1([], []).
rev1([H|T], R) :-
rev1(T, R1),
append(R1, [H], R).
appendを使わないようにしようって事です
どうなんでしょうか?

393:デフォルトの名無しさん
09/07/08 04:01:54
スレリンク(tech板:762番)
# [1] 授業単元: 情報処理\u2160
# [2] 問題文: 乗算合同法で整数乱数を生成.。
# 区間(0.1)の一様にして、1以上、ある特定の整数の乱数を生成する。

394:デフォルトの名無しさん
09/07/08 04:06:06
>>393
% Prolog

乗算合同法による乱数発生(_初期値,Y,X) :-
  乗算合同法(16087,_初期値,65535,Y,X).

乗算合同法(A,N,_法,N,X) :-
  X is N / _法.
乗算合同法(A,N,_法,Y,X) :-
  乗算合同法演算(A,N,_法,M),
  乗算合同法(A,M,_法,Y,X).

乗算合同法演算(A,N,_法,M) :-
  M is (A * N) mod _法.

395:デフォルトの名無しさん
09/07/08 04:11:39
>>392
>>367 がそれに当たるつもりなのですが。
ただLogが逆順に生成されますね。

396:デフォルトの名無しさん
09/07/08 06:38:43
>>395さん
成る程、丁寧にありがとうございました

397:デフォルトの名無しさん
09/07/08 07:57:55
スレリンク(tech板:764番)
# [1] 授業単元:プログラミング入門
# [2] 問題文(含コード&リンク):
# 問3:1週間の売り上げ一覧を表示するプログラムを作成せよ。
#    実行例  野菜の1週間の売り上げた合計数量と合計金額
#                             合計  合計
#         種類 単価 月 火 水 木 金 土 日 数量  金額
#         レタス 150 50 55 60 65 70 75 80 455  68250
#         トマト  50 20 25 30 35 40 45 50 245  12250
#         もやし  20 10 15 20 25 30 35 40 175  3500
#         ナスビ  40 5  10 15 20 25 30 35 140  5600

398:デフォルトの名無しさん
09/07/08 11:24:22
>>397
% Prolog
URLリンク(nojiriko.asia)

399:デフォルトの名無しさん
09/07/08 12:51:07
スレリンク(tech板:757番)
# 【質問テンプレ】
# [1] 授業単元:C言語
# [2] 問題文(含コード&リンク): 二次元配列を使って以下のファイルを読み込み、
# 同じように表示しなさい。
#  【test.dat】
#   ** ** **
#   ** ** **
#   ** ** **

400:デフォルトの名無しさん
09/07/08 13:00:02
>>399
% Prolog
t399 :-
  二次元構造の読み込み('test.dat',_二次元構造),
  member(A,_二次元構造),
  concat_atom(L,' ',S),
  write_formatted('%t\n',[S]),
  fail;
  true.

二次元構造の読み込み(File,_二次元構造) :-
  open(File,Input),
  findall(L,(repeat,get_line(Input,X),(X=end_of_file,!,fail;
                   split(X,[' '],L))),_二次元構造),
  close(Input),!.


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

4630日前に更新/314 KB
担当:undef