いろんな言語で宿題ス ..
402:デフォルトの名無しさん
10/01/23 16:25:45
スレリンク(tech板:83番)
# [1]プログラミング演習(大学専門過程演習授業)
# [2] コマンドライン引数で与えられたテキストファイルを読み込み
# 空行でなければ、その行に含まれているスペース、タブを
# 除去したものを標準出力するプログラム。但し英数字と"_"で
# 構成される文字列同士の間には一つのスペースは残す。
# ",'で囲まれた部分に関してはスペース、タブはそのまま残す
# "で囲まれた部分について最後の文字が¥であってはならない。
# 'で囲まれた部分について最後の文字が¥であってはならない。
# (テキストファイルの空行と余計な空白/タブを除去する
# プログラムでクオテーションに配慮したもの)
403:デフォルトの名無しさん
10/01/23 23:22:54
スレリンク(tech板:91番)
# [1] 授業単元:情報処理
# [2] 問題文:
#
# 問1 キーボードから3個の実数(整数でない)値を1行に1組として計5組入力し、
# ファイル(ファイル名data1.txt)に保存する。
#
# 問2
# 問1で作ったファイルから実数値を読み込み、総合計と各組の実数の平均を求める
# ただし、ファイルに書かれている組の数は不明とする。
404:デフォルトの名無しさん
10/01/24 06:23:46
スレリンク(tech板:93番)
# [1] 授業単元:プロトタイプ宣言
# [2] 問題文(含コード&リンク):
# 次の式を以下の条件(値)に基づいて計算.表示するプログラムを作成せよ。ただし式は簡単化せずそのままプログラムすることとして、更に表示するときは計算の答えと合� 錣擦鴇魴�値)も表示して分かりやすくせよ。
#
# 計算する式
# {(a+b)c-a(b-c)}/{(c/b)a+abc-ca}
#
# 条件1
# a=3 b=4 c=2
# a=3 b=4.3 c=2.5
# a=32.6 b=57.82 c=2.543
#
# この問題を、
# 式の分だけを関数化した場合
# 式と出力部分を関数化した場合
# の2つの場合でプログラムを作成せよ
405:デフォルトの名無しさん
10/01/24 06:24:41
スレリンク(tech板:94番)
# [1] C
# [2]
# 反復列 x_n+1=a*x_n(1-x_n),0<=a<=4,0<=x<=1
# に対して、x_nが1周期(不動点)、2周期、4周期、8周期、16周期
# をもつaの範囲について、プログラムを作成して確かめよ。
# ※
# ○周期というのはaがある値のとき、○個の解で振動するという意味です※
406:デフォルトの名無しさん
10/01/24 06:28:27
スレリンク(tech板:95番)
# [1] 授業単元: プログラミング演習
# [2] 問題文(含コード&リンク):URLリンク(ime.nu)
#
# 等しい合計点
#
# 太郎と花子はそれぞれカードを何枚か持っている.各カードには点数が書かれている.
# 太郎のカードと花子のカードを 1 枚ずつ交換して,それぞれの持つカードの合計点数が等しくなるようにしたい.
# どのカードとどのカードを交換したらよいか.
#
# ただし,カードを交換しなくても合計点数が等しい場合でも,必ずカードの交換を行うものとする.
407:デフォルトの名無しさん
10/01/24 07:02:19
スレリンク(tech板:778番)
# 【 課題 】1.任意のWEBページからURLリンク(ime.nu)で始まるハイパーリンクを抽出するプログラムの作成
# URLリンク(ime.nu)
# 2.任意のWEBページ10ページに含まれる単語のうち,上位10位の単語リストとその出現頻度
# URLリンク(ime.nu)
# 【 形態 】1. Javaアプリケーション(main()で開始)
# 【 GUI 】制限なし
# 【 期限 】1/25
# 【 Ver 】1.6.0_14
# 【 補足 】1.に関してはプログラムはあっていると思うのですがなぜか実行
# できないので、実行できたら結果をコピペで教えてもらえたら嬉しいです
# 2.に関しては実行結果があるのですが、上から多い順に並んでいます
# プログラムのどの部分でその並べ替えを行っているのか、またどんな
# アルゴリズムを用いて並べ替えているのかを教えてもらえたら嬉しいです
408:デフォルトの名無しさん
10/01/24 12:47:28
スレリンク(tech板:102番)
# [1] 授業単元:プログラミング演習
# [2] 問題文(含コード&リンク):URLリンク(ime.nu)
#
# ●問2.リストの一部を取り除く関数
#
# 与えられた文字リストの先頭から見ていき、要素が'<'なら自身と(あれば)直前の要素を、'>'なら自身
# と(あれば)直後の要素を取り除く関数editを作成せよ。
# editは与えられたリスト自体を変形し、変形後のリストを返す。
#
# ●問3.いずれか一方のリストに含まれる要素からなるリストを返す関数
#
# 引数として二種の文字リストが与えられると、いずれか一方のリストにのみ含まれる 要素を持つリストを新たに作成し返す関数exclusiveを作成せよ。
#
409:デフォルトの名無しさん
10/01/24 16:43:52
>>408 問2
使用言語:J
edit=:monad define
r=.y#~-.(+._1&|.)(<'>')=y
r#~-.(+.1&|.)(<'<')=r
)
]C=:;/'a<bcd>ef>ghi'
+-+-+-+-+-+-+-+-+-+-+-+-+
|a|<|b|c|d|>|e|f|>|g|h|i|
+-+-+-+-+-+-+-+-+-+-+-+-+
edit C
+-+-+-+-+-+-+
|b|c|d|f|h|i|
+-+-+-+-+-+-+
410:デフォルトの名無しさん
10/01/24 16:50:03
>>408 問3
使用言語:J
exclusive=:dyad def '(x -. y) , y -. x'
]A=:;/'abcdef'
+-+-+-+-+-+-+
|a|b|c|d|e|f|
+-+-+-+-+-+-+
]B=:;/'defghi'
+-+-+-+-+-+-+
|d|e|f|g|h|i|
+-+-+-+-+-+-+
A exclusive B
+-+-+-+-+-+-+
|a|b|c|g|h|i|
+-+-+-+-+-+-+
411:デフォルトの名無しさん
10/01/24 20:46:43
スレリンク(tech板:103番)
# [1] 授業単元:Cプログラミング演習2
# [2] 問題文(含コード&リンク):URLリンク(ime.nu)
# (1) 指定した10 個の整数のうち,指定した数で割り切れる整数の個数を求めるプログラムを作成せよ.
# 以下の関数を利用すること.
# int div_enable(int *in, int num, int divisor)
# in 複数の整数値が格納された配列の(先頭)ポインタ
# num 入力値の数
# divisor 割り切れるかどうかの判定に使う除数
# 戻り値 入力値のうち, divisor で割り切れる整数の数
# 入力に関して
# キーボードから整数(被除数用)をスペース1つずつ空けて10 個入力して改行する.次に除数用
# の自然数を1 つ入力し,改行する.この一連の入力時,例題や解答例のような入力を促す文字
# 等は決して表示しないこと.
# 出力に関して
# 割り切れる整数の個数を数値のみ (+改行)を出力する.指定した数値・改行以外の文字等の出
# 力は一切行わないこと.
412:デフォルトの名無しさん
10/01/24 21:21:01
>>411
使用言語:J
div_enable=: dyad def '+/0=x|y'
]in=:>:i.10
1 2 3 4 5 6 7 8 9 10
3 div_enable in
3
413:デフォルトの名無しさん
10/01/25 05:35:28
スレリンク(tech板:103番)
# [1] 授業単元:Cプログラミング演習2
# [2] 問題文(含コード&リンク):URLリンク(ime.nu)
# (2) 2 つの4×4 行列を2 次元配列に格納し,それらの積を求めるプログラムを作成せよ.以下の関数を
# 利用すること.
# void mult_array(int a0[4][4], int a1[4][4], int result[4][4])
# a0,a1 入力された行列の値が格納された2 次元配列のポインタ
# result 演算結果の行列の値が格納された2 次元配列のポインタ
# 戻り値 なし
# 入力に関して
# キーボードからまず,1 つめの行列の1 行目の4 つの整数をスペース1 つ開けて1 行で入力し,
# 改行する.以下同様に1 つめの行列の2 行目,3 行目,4 行目,2 つめの行列の1・・・4 行目
# を入力する.この一連の入力時,入力を促す文字等は決して表示しないこと.
# 出力に関して
# 1行目に結果の行列の1 行目をスペース1 つあけて特に整形せず数値のみ出力(+改行),以下同
# 様に2 行目,3 行目,4 行目を特に整形せず数値のみ出力する.指定した数値・改行以外の文
# 字等の出力は一切行わないこと.
414:デフォルトの名無しさん
10/01/25 05:37:43
スレリンク(tech板:103番)
# [1] 授業単元:Cプログラミング演習2
# [2] 問題文(含コード&リンク):URLリンク(ime.nu)
#
# (3) 平均値と中央値を求める関数を作成し,その関数を使用して平均値と中央値を出力するプログラム
# を作成せよ.関数は下記の通りとする.
# int median(int *in, int num)
# in 複数の整数値が格納された配列の(先頭)ポインタ
# num 入力値の数
# 戻り値 中央値
# int avg (int *in, int num)
# in 複数の整数値が格納された配列の(先頭)ポインタ
# num 入力値の数
# 戻り値 平均値(四捨五入した整数値, 負の場合丸め方は任意)
# 入力に関して
# キーボードから入力する整数の個数を入力し(最大で128 に対応すること)改行する.次に指
# 定した数の整数をスペース1つずつ開けて1行で入力し,改行する.この一連の入力時,例題
# や解答例のような入力を促す文字等は決して表示しないこと.
# 出力に関して
# 中央値 平均値(+改行)のみ出力.中央値と平均値の間はスペースを1 つ入れること.指定した
# 数値・改行以外の文字等の出力は一切行わないこと.
415:デフォルトの名無しさん
10/01/25 06:03:31
スレリンク(tech板:104番)
#
# 課題1 20 桁までの自然数の足し算と掛け算を浮動小数点演算を用いないで実施するプログラムlongcomp.c を
# 作成し、C のソースコードを提出しなさい。足し算は必須課題、掛け算はオプション課題です。
# 実行形式をlongcomp とした動作仕様は以下である1
# >./longcomp 12345678901234567890 + 12345678901234567890
# >12345678901234567890 + 12345678901234567890 = 24691357802469135780
# >./longcomp 1234567890 * 1234567890
# >1234567890 * 1234567890 = 1524157875019052100
416:デフォルトの名無しさん
10/01/25 06:05:44
スレリンク(tech板:105番)
#
# 課題2 b01, b001 のように二進数をb で始まるように表記する。二進数の集合を、できるだけ少ないノード数
# の二分木に分類するためには、二分木のノードに蓄積する二進数の桁数を可変にすることが有効である。
# こうすることで二進数表記した値(たとえばキーワードとか、位置とか、日付とか)に紐づけられたデータを少ない検索で見つけることができる。
# 扱う二進数の集合を、たとえば
# b00, b001, b0011, b00111, b1000, b11100, b0
# として、これらを図1に示すようにニ分木に分類して、帰りがけ(ポストオーダ)で次のように出力するプログラム(tree) を作成し、C のソースコードを提出しなさい。
# >./tree
# >1 1 1 0 0 000 1100 1 b
#
417:デフォルトの名無しさん
10/01/25 06:14:47
スレリンク(tech板:124番)
# [1] 授業単元: Cプログラミング入門
# [2] 問題文(含コード&リンク): 入力された2つの文字列(日本語その他バイト文字は不可)
# を比較するプログラムを作成せよ。ただし、大文字小文字の違いは無視。単語間に連続して
# スペース・タブが複数入っていても単独のスペースとしない。
#
# [5] その他の制限: 文字列とポインタまでやってます。
# 入力に関して、キーボードから1つ目の文字列を1行で入力し、改行する。
# この時、入力を促す文字は一切表示しない。入力文字数は128文字まで。
# 出力に関して、一致すれば何も表示しない。不一致の場合は最初に不一致となる
# 入力1の文字と入力2の文字(1文字+スペース+1文字+改行)を表示する。
# どちらかが末端の場合は代わりにスペースで埋める。
418:デフォルトの名無しさん
10/01/25 06:22:12
スレリンク(tech板:135番)
# [1] 授業単元:C言語
# [2] 問題文(含コード&リンク):URLリンク(ime.nu)
#
# (1)複数の整数を平均値に近い順にソートするプログラムを作成せよ。
# 平均値は切り捨てして整数値で求めるものとし、平均値との距離が等しい
# 場合は値の小さな整数が優先されるものとする。
#
# 入力に関して
# キーボードからまず、入力する整数の個数を入力(最大で100とする)し、改行。
# 次に指定した数の整数をスペース1つ開けて1行で入力し、改行する。
# この時、入力を促す文字は一切表示しないこと。
# 出力に関して
# ソートした整数をスペース1つのみあけて1行で出力する(+改行)。指定した数改行
# 以外の出力は一切行わないこと。
419:デフォルトの名無しさん
10/01/25 07:12:24
スレリンク(tech板:137番)
# [1] 授業単元: プログラミング概論
# [2] 問題文:"in_file"という名前のファイルの中に18個の整数データが空白や改行コードで区切られて並んでいると仮定した上で、
# この入力ファイルの中のデータを1行に5個ずつきれいに並べて"out_file"という名前のファイルに
# 出力するCプログラムを作成せよ。
# 入力ファイルの内容が
# -1111111111 2222222 333333 4444 55 6 7 8 9 0 1 2 3 4
# 5 6 7890123
# -5666
# の時には、例えば次のような内容を"out_file"に書き出す
# _-1111111111_____2222222______333333________4444__________55
# _________________6_______________7______________8_____________9___________0
# ________________ 1_______________2______________3_____________4___________5
# _________________6_____7890123________-5666
#
420:デフォルトの名無しさん
10/01/25 07:23:27
>>418
;; Common Lisp
(defun sort-ave (lst)
(let ((abs-ave (floor (abs (/ (reduce #'+ lst) (length lst))))))
(sort lst
#'(lambda (a b)
(let ((ax (abs (- (abs a) abs-ave))) (bx (abs (- (abs b) abs-ave))))
(if (= ax bx)
(< a b)
(< ax bx)))))))
(defun main ()
(let ((num (read)) lst)
(cond ((<= num 100)
(dotimes (i num)
(push (read) lst))
(format t "~{~A ~}~%" (sort-ave lst))))))
421:デフォルトの名無しさん
10/01/25 12:56:07
>>418
使用言語:J
f=:monad def '}.|:/:~|:y,:~|y-<.(+/%#)y'
f 0 7 8 9 2 2 5 5 5 3
3 5 5 5 2 2 7 0 8 9
422:デフォルトの名無しさん
10/01/25 15:28:46
スレリンク(tech板:143番)
# [1] データ構造とプログラミング
# [2]
# 演習問題4.5 逆ポーランド記法による入力文字列(空白で区切られている)に対して
、
# 16進数と10進数で答えを返すプログラムrpnを作りなさい。
# (入力例)rpn 5 2 + 7 *
# (出力例)0x31, 49(decimal)
#
423:デフォルトの名無しさん
10/01/25 17:57:56
スレリンク(tech板:147番)
# [1] 授業単元: C++
# [2] 問題文(含コード&リンク):
# 2.
# URLリンク(ime.nu)
# URLリンク(ime.nu)
# URLリンク(ime.nu)
# URLリンク(ime.nu)
# URLリンク(kansai2channeler.hp.infoseek.co.jp)
↑pm1.txt
# URLリンク(kansai2channeler.hp.infoseek.co.jp)
# ↑pm2.txt
# URLリンク(kansai2channeler.hp.infoseek.co.jp)
# ↑pm3.txt
# というファイルがある。
# plus で始まる行の数値を足し,minus で始まる行の数値を引く。
# ファイルの最後まで計算した結果を表示するプログラムを作成せよ。
# データの数は実行前にはわからないものとする。
424:デフォルトの名無しさん
10/01/25 18:07:11
スレリンク(tech板:154番)
# [1] 授業単元: プログラミング演習
# [2] 問題文(含コード&リンク):URLリンク(ime.nu)
# 等しい合計点
#
# 太郎と花子はそれぞれカードを何枚か持っている.
# 各カードには点数が書かれている.太郎のカードと花子のカードを 1 枚ずつ交換して,
# それぞれの持つカードの合計点数が等しくなるようにしたい.
# どのカードとどのカードを交換したらよいか.
#
# ただし,カードを交換しなくても合計点数が等しい場合でも,必ずカードの交換を行うものとする.
# Input
# 入力は,いくつかのデータセットからなる.各データセットは次の形式で与えられ
# n m
# s1
# s2
# ...
# 各データセットの最初の行は空白ひとつで区切られたふたつの数 n と m を含み,
# n は太郎のカードの枚数,m は花子のカードの枚数を表す.続く n+m 行には,
# 各カードの点数が 1 行にひとつずつ並ぶ.
# 最初の n 個の点数 (s1 から sn まで) は太郎のカードの点数,
# 残りの m 個の点数 (sn+1 から sn+m まで) は花子のカードの点数を表す.
# n および m は 100 以下の正の整数とし,カードの点数は 0 以上 100 以下の整数値とする.
# 入力の終わりは,空白ひとつで区切られたふたつの 0 を含む 1 行で示される.
425:デフォルトの名無しさん
10/01/25 19:04:37
>>423
使用言語:J
plus =:+
minus=:-
f=:monad def '+/".;._2(1!:1)y'
f <'pm3.txt'
_316
426:デフォルトの名無しさん
10/01/25 20:18:00
スレリンク(tech板:161番)
# [1] 授業単元: プログラミング演習(木構造と数式処理)
# [2] 問題文(含コード&リンク):
#
# 累乗の計算の逆を行うプログラムを作ってください。
#
# 例
# x*x*xと入力されればx^3と画面に出力する。
#
# x*x*x*aなどの場合はx^3*aと出力されればよい。
#
427:デフォルトの名無しさん
10/01/25 20:42:02
>>413
使用言語:J
mult_array=: +/ .*
]A=:i.4 4
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
A mult_array A
56 62 68 74
152 174 196 218
248 286 324 362
344 398 452 506
428:デフォルトの名無しさん
10/01/26 00:00:16
>>419
使用言語:J
read=: 1!:1
wrire=: 1!:2
format=: 8!:2
a=: read <'in_file'
b=: '13.0'format ".each _5,\cutopen,,;._2 a
(,b,.LF)write<'out_file'
429:デフォルトの名無しさん
10/01/26 01:18:57
スレリンク(tech板:167番)
# 上の105ですが、もう一度質問させて頂きます。
# なぜなら、課題2対しての回答がないからです。
# 皆様よろしくお願いします。
#
# [1] データ構造とプログラミング
# [2]b01, b001 のように二進数をb で始まるように表記する。二進数の集合を、できるだけ少ないノード数
# の二分木に分類するためには、二分木のノードに蓄積する二進数の桁数を可変にすることが有効である。こう
# することで二進数表記した値(たとえばキーワードとか、位置とか、日付とか)に紐づけられたデータを少な
# い検索で見つけることができる。
# 扱う二進数の集合を、たとえば
# b00, b001, b0011, b00111, b1000, b11100, b0
# として、これらを図1に示すようにニ分木に分類して、帰りがけ(ポストオーダ)で次のように出力するプロ
# グラム(tree) を作成し、C のソースコードを提出しなさい。
# >./tree
# >1 1 1 0 0 000 1100 0 1 b
#
430:デフォルトの名無しさん
10/01/26 01:21:28
>>429
ごめんなさい。>>416に既出でした。
431:デフォルトの名無しさん
10/01/26 01:39:43
スレリンク(tech板:174番)
# [1] データ構造とプログラミング
# [2]
# リングバッファを使って、9個のキューを作り、データを追加したり、
# データを取り出すプログラムを完成させなさい。
# 以下の添付にあるプログラムを完成させろという課題です。
# URLリンク(ime.nu)
# 演習問題5.2 リングバッファを使って、9 個のキュー(配列は10 元)を作り、
# データを追加したり(EnQue), データを取り出す(DeQue) プログラムを
# 完成させなさい29。プログラムの動作仕様は以下のようである。
# 1. 数字を入力するとキューが伸びる
# 2. d(deque) を入力するとfront を標準出力に出力
# 3. s(show) を入力するとキューを表示
# 4. キューがいっぱいだったらエラーメッセージを出す
# 5. q で終了
432:デフォルトの名無しさん
10/01/26 06:00:35
>>419
% Prolog ここまでするか、とお思いでしょうが・・
'入力ファイルの中のデータを1行に5個ずつきれいに並べて"out_file"という名前のファイルに出力する'(_整数ならび) :-
入力ファイルの中のデータ(_整数ならび),
最大桁数(_整数ならび,_最大桁数),
_整数表示桁 is _最大桁数 + 2,
concat_atom(['%',_整数表示桁,d],_表示フォーマット),
'1行に5個ずつきれいに並べて'(_整数ならび,_5個組整数ならび),
tell('out_file),
出力する(_5個組整数ならび,_表示フォーマット),
told.
入力ファイルの中のデータ(_整数ならび) :- '"in_file"という名前のファイルの中に18個の整数データが空白や改行コードで区切られて並んでいる'(_整数ならび),!.
'"in_file"という名前のファイルの中に18個の整数データが空白や改行コードで区切られて並んでいる'(_整数ならび) :-
get_lines('infile',Lines),
concat_atom(Lines,' ',S),
split(S,[' '],_整数ならび),
length(_整数ならび,18),!.
'1行に5個ずつきれいに並べて'(_整数ならび,_5個組整数ならび) :- 'N個組'(5,_整数ならび,_5個組整数ならび),!.
出力する([],_) :- !.
出力する([L|R],_表示フォーマット) :- '1行出力する'(L,_表示フォーマット),出力する(R,_整数表示桁).
出力する([L|R],_表示フォーマット) :-
'1行出力する'(L,_表示フォーマット),
出力する(R,_整数表示桁).
'1行出力する'([],_) :- write('\n'),!.
'1行出力する'([N|R],_表示フォーマット) :- write_formatted(_表示フォーマット,[N]),'1行出力する'(R,_表示フォーマット).
433:デフォルトの名無しさん
10/01/26 06:04:00
>>433 (>>432) 訂正
% Prolog 訂正するのを忘れていた。
出力する([],_) :- !.
出力する([L|R],_表示フォーマット) :- '1行出力する'(L,_表示フォーマット),出力する(R,_表示フォーマット).
434:デフォルトの名無しさん
10/01/26 07:16:12
>>374
使用言語:J
rev_string=: ,~/
rev_string 'SEC'
CES
|. 'SEC'
CES
435:デフォルトの名無しさん
10/01/26 07:28:11
>>418
% Prolog (その一) >>421の短さに唖然!
複数の整数を平均値に近い順にソートする(_整数ならび,_平均値に近い順に整列された
整数ならび) :-
'キーボードからまず、入力する整数の個数を入力(最大で100とする)し、改行'(_
入力する整数の個数),
指定した数の整数をスペース1つ開けて1行で入力する(_入力する整数の個数,_整数
ならび),
相加平均(_整数ならび,_平均値の一),
_平均値 is truncate(_平均値の一),
平均値からの隔たりによる整列(_平均値からの隔たりのならび,_平均値からの隔た
りを鍵として付加して整列された整数ならび),
整列した整数をスペース1つのみあけて1行で出力する(_平均値からの隔たりを鍵と
して付加して整列された整数ならび).
'キーボードからまず、入力する整数の個数を入力(最大で100とする)し、改行'(_入力
する整数の個数) :-
repeat,
get_integer(_入力する整数の個数),
_入力する整数の個数 =< 100,!.
指定した数の整数をスペース1つ開けて1行で入力する(_入力する整数の個数,_整数なら
び) :-
length(_整数ならび,_入力する整数の個数),
get_split_line([' '],_整数ならび).
436:デフォルトの名無しさん
10/01/26 07:31:28
>>418
% Prolog (その二) >>435は改行位置を間違えた行が数行あります。
平均値からの隔たりによる整列([X|Xs],_平均値,Ys) :-
U is X - _平均値,
平均値からの隔たりにより分割する(Xs,U,_平均値,Littles,Bigs),
平均値からの隔たりによる整列(Littles,_平均値,Ls),
平均値からの隔たりによる整列(Bigs,_平均値,Bs),
append(Ls,[X|Bs],Ys) .
平均値からの隔たりによる整列([],_,[]).
平均値からの隔たりにより分割する([X|Xs],Y,_平均値,[[U,X]|Ls],Bs) :-
U is X - _平均値,
U =< Y,
平均値からの隔たりにより分割する(Xs,Y,_平均値,Ls,Bs),!.
平均値からの隔たりにより分割する([X|Xs],Y,_平均値,Ls,[[U,X]|Bs]) :-
U is X - _平均値,
U > Y,
平均値からの隔たりにより分割する(Xs,Y,_平均値,Ls,Bs) .
平均値からの隔たりにより分割する([],Y,_,[],[]).
整列した整数をスペース1つのみあけて1行で出力する([]) :- !.
整列した整数をスペース1つのみあけて1行で出力する([[A,B]]) :- write_formatted('%t\n',[A]) :- !.
整列した整数をスペース1つのみあけて1行で出力する([[B,A]|R]) :-
write_formatted('%t ',[A]),
整列した整数をスペース1つのみあけて1行で出力する(R)
437:デフォルトの名無しさん
10/01/26 08:14:42
>>436
# 平均値との距離が等しい場合は値の小さな整数が優先されるものとする。
この判断が漏れている。
438:デフォルトの名無しさん
10/01/26 10:34:26
>>418 間違いが多いようなので書き直し(申し訳ない)
% Prolog (その一)
複数の整数を平均値に近い順にソートする(_整数ならび,_平均値に近い順に整列された
整数ならび) :-
'キーボードからまず、入力する整数の個数を入力(最大で100とする)し、改行'(_
入力する整数の個数),
指定した数の整数をスペース1つ開けて1行で入力する(_入力する整数の個数,_整数
ならび),
相加平均(_整数ならび,_平均値の一),
_平均値 is truncate(_平均値の一),
平均値からの隔たりによる整列(_平均値からの隔たりのならび,_平均値,_平均値か
らの隔たりを鍵として付加して整列された整数ならび),
整列した整数をスペース1つのみあけて1行で出力する(_平均値からの隔たりを鍵と
して付加して整列された整数ならび).
'キーボードからまず、入力する整数の個数を入力(最大で100とする)し、改行'(_入力
する整数の個数) :-
repeat,
get_integer(_入力する整数の個数),
_入力する整数の個数 =< 100,!.
指定した数の整数をスペース1つ開けて1行で入力する(_入力する整数の個数,_整数なら
び) :-
length(_整数ならび,_入力する整数の個数),
get_split_line([' '],_整数ならび).
439:デフォルトの名無しさん
10/01/26 10:39:03
>>418
% Prolog (その二) >>438はやはり改行がうまくいかなかった。
平均値からの隔たりによる整列([X|Xs],_平均値,Ys) :-
U is X - _平均値,
平均値からの隔たりにより分割する(Xs,U,Y,_平均値,Littles,Bigs),
平均値からの隔たりによる整列(Littles,_平均値,Ls),
平均値からの隔たりによる整列(Bigs,_平均値,Bs),
append(Ls,[X|Bs],Ys) .
平均値からの隔たりによる整列([],_,[]).
平均値からの隔たりにより分割する([X|Xs],U,Y,_平均値,[[U,X]|Ls],Bs) :-
V is X - _平均値,
V < U,
平均値からの隔たりにより分割する(Xs,U,Y,_平均値,Ls,Bs),!.
平均値からの隔たりにより分割する([X|Xs],U,Y,_平均値,[[U,X]|Ls],Bs) :-
U is X - _平均値,
X < Y,
平均値からの隔たりにより分割する(Xs,U,Y,_平均値,Ls,Bs),!.
平均値からの隔たりにより分割する([X|Xs],U,Y,_平均値,Ls,[[U,X]|Bs]) :-
平均値からの隔たりにより分割する(Xs,U,Y,_平均値,Ls,Bs) .
平均値からの隔たりにより分割する([],Y,_,[],[]).
整列した整数をスペース1つのみあけて1行で出力する([]) :- !.
整列した整数をスペース1つのみあけて1行で出力する([[A,B]]) :- write_formatted('%
t\n',[A]),!.
整列した整数をスペース1つのみあけて1行で出力する([[B,A]|R]) :-
write_formatted('%t ',[A]),
整列した整数をスペース1つのみあけて1行で出力する(R).
440:デフォルトの名無しさん
10/01/26 10:43:20
すみません。行末あたりに一文字何かが入ってしまったようで改行の制御が
正しくできませんでした。
URLリンク(nojiriko.asia)
に仕上げて書いておきます。
441:デフォルトの名無しさん
10/01/26 11:06:53
スレリンク(tech板:189番)
# [1] データ構造とプログラミング
# [2]
# ツリーにノードを追加するプログラムを完成させなさい。またプログラム中 に使われている要素 mitsugi, emura, satou, yonemura, murai, nakamura, kwkt がツリー上でどのように配置され ているか書きなさい。
# 以下の添付にあるプログラムを完成させろという課題です。
# URLリンク(ime.nu)
442:デフォルトの名無しさん
10/01/26 16:43:14
スレリンク(tech板:193番)
# [1] 授業単元:プロトタイプ宣言とか引数
# [2] 問題文(含コード&リンク):[3〜6]∫x^2 dx(これだと正解は63)を計算するプログラムを作成せよ。
# 尚、積分本体(始点と終点)と関数本体f(x)に分けること。dx=1/N N=(10,1000…10000)誤差評価を行う事。積分範囲を変更すること。x^2の関数を変更すること。
#
443:デフォルトの名無しさん
10/01/26 16:44:31
スレリンク(tech板:197番)
# [1] 計算機概論
# [2] 8bit整数が8つ与えられている。これをunsigned char配列と
# みなしa[]と名付ける。
# unsigned char 整数のor,not演算だけを用いて1<=n<=8からa[n]を
# 計算するC計算式を出力するプログラム
# 例:a[]={1,2,3,4,5,6,7,8}; 出力 return n;
# a[]={1,0,1,0,1,0,1,0}; 出力 return !(!n or 11111110b);
444:デフォルトの名無しさん
10/01/26 17:33:48
スレリンク(tech板:200番)
# [1] 授業単元: プログラミング
# [2] 問題文(含コード&リンク):
# A組、B組、C組にそれぞれn人の生徒がいて、
# A組の生徒が一列に並んでいる。
# このとき、B組の生徒をA組の生徒の隣に並ばせたいが
# なるべく隣同士で身長に差がないようにしたい。
# どうやって計算すればいいでしょう?
# 加えて、C組の生徒もB組の隣に並ばせたい場合はどうすれば?
# (身長の配列) double height_a[n], height_b[n], height_c[n];
445:デフォルトの名無しさん
10/01/26 18:07:57
>>444
% Prolog
なるべく隣同士で身長に差のない並び方(La,Lb,N,LbX) :-
findmin([S,L],ならび候補(La,Lb,N,L,S),Min),
Min = [_,LbX],!.
ならび候補(La,Lb,N,L,S) :-
順列(Lb,N,L),
findsum(U,(for(1,M,N),list_nth(M,La,A),list_nth(M,L,B),U is (B-A) ^ 2),S).
446:デフォルトの名無しさん
10/01/26 19:24:07
スレリンク(tech板:406番)
# 下のような2つのファイルから
# 平均を出したいんですがどのようにすればいいのでしょうか?
# ---file A---
# 1 87
# 2 89
# 3 40
# 4 90
# 5 33
#
# ---file B---
# 1 45
# 2 22
# 3 78
# 4 60
# 5 19
#
# ほしい結果は
# ---file C---
# 1 (87+45)/2
# 2 (89+22)/2
# 3 (49+78)/2
# 4 (90+60)/2
# 5 (33+19)/2
# です。
447:デフォルトの名無しさん
10/01/26 19:50:16
>>444
使用言語:J
よくわかりませんが、こんなふうではだめでしょうか?
A組のならびから身長の順位表をつくる。
B組をこの「A組順」でソートする。
]a=:145+?10#40
178 155 176 179 169 146 161 179 177 153
]b=:140+?10#50
178 167 186 142 165 166 172 173 181 181
a,:(/:~b)/:/:a
178 155 176 179 169 146 161 179 177 153
181 166 173 181 172 142 167 186 178 165
448:デフォルトの名無しさん
10/01/26 20:23:36
>>446
% Prolog
'2つのファイルから平均を出す'('fileA','fileB','fileC') :-
'2つのファイルから2つのならびを取り出す'('fileA','fileB',L1,L2),
fileAのデータを基礎に平均を計算してfileCに出力する('fileC',L1,L2),!.
'2つのファイルから2つのならびを取り出す'('fileA','fileB',L1,L2) :-
get_split_lines('fileA',[' '],L1),
get_split_lines('fileB',[' '],L2),!.
fileAのデータを基礎に平均を計算してfileCに出力する('fileC',L1,L2) :-
tell('fileC'),
fileAのデータを基礎に平均を計算して出力する(L1,L2),
told.
fileAのデータを基礎に平均を計算して出力する([],_) :- !.
fileAのデータを基礎に平均を計算して出力する([[N,A]|R1],L2) :-
member([N,B],L2),
C is (A + B) / 2,
write_formatted('%t (%t+%t)/2=%t',[M,A,B,C]),
fileAのデータを基礎に平均を計算して出力する(R1,L2).
449:デフォルトの名無しさん
10/01/27 02:28:09
スレリンク(tech板:233番)
# [1] 授業単元:プロトタイプ宣言とか引数
# [2] 問題文(含コード&リンク): 入力された数字が偶数なら、trueを返す関数。それ以外ならfalse
450:デフォルトの名無しさん
10/01/27 02:30:31
スレリンク(tech板:232番)
# [1] 授業単元:プロトタイプ宣言とか引数
# [2] 問題文(含コード&リンク): 得点を入力して以下のルールに従った成績を返す関数を実装せよ。
# 90点以上 S
# 80点以上 A
# 60点以上 B
# それ未満 C
451:デフォルトの名無しさん
10/01/27 02:41:54
>>449
% Prolog
入力された数字が偶数なら、trueを返す :-
get_integer(N),
入力された数字が偶数なら、trueを返す(N).
入力された数字が偶数なら、trueを返す(N) :- 0 is N mod 2.
452:デフォルトの名無しさん
10/01/27 02:46:26
>>449
% Prolog
'入力された数字が偶数なら、trueを返す。それ以外ならfalse'(_診断) :-
get_integer(N),
'入力された数字が偶数なら、trueを返す。それ以外ならfalse'(N,_診断).
'入力された数字が偶数なら、trueを返す。それ以外ならfalse'(N,true) :- 0 is N mod 2.
'入力された数字が偶数なら、trueを返す。それ以外ならfalse'(N,false).
453:デフォルトの名無しさん
10/01/27 02:48:11
>>452 (>>449) 訂正
% Prolog
'入力された数字が偶数なら、trueを返す。それ以外ならfalse'(_診断) :-
get_integer(N),
'入力された数字が偶数なら、trueを返す。それ以外ならfalse'(N,_診断).
'入力された数字が偶数なら、trueを返す。それ以外ならfalse'(N,true) :- 0 is N mod 2,!.
'入力された数字が偶数なら、trueを返す。それ以外ならfalse'(N,false).
454:デフォルトの名無しさん
10/01/27 02:58:21
>>450
% Prolog
得点を入力して以下のルールに従った成績を返す(_成績) :-
get_integer(_得点),
得点を入力して以下のルールに従った成績を返す(_得点,_成績).
得点を入力して以下のルールに従った成績を返す(_得点,_成績) :-
以下のルール(_得点,_,_成績).
以下のルール(_得点,'90点以上','S') :- _得点 >= 90,!.
以下のルール(_得点,'80点以上','A') :- _得点 >= 80,!.
以下のルール(_得点,'60点以上','B') :- _得点 >= 60,!.
以下のルール(_得点,'それ未満','C') :- _得点 < 60,!.
455:デフォルトの名無しさん
10/01/27 03:10:28
>>450
% Prolog 少し模索
得点を入力して以下のルールに従った成績を返す(_成績) :-
get_integer(_得点),
得点を入力して以下のルールに従った成績を返す(_得点,_成績).
得点を入力して以下のルールに従った成績を返す(_得点,_成績) :- '得点が90点以上'(_得点,_成績).
得点を入力して以下のルールに従った成績を返す(_得点,_成績) :- '得点が80点以上'(_得点,_成績).
得点を入力して以下のルールに従った成績を返す(_得点,_成績) :- '得点が60点以上'(_得点,_成績).
得点を入力して以下のルールに従った成績を返す(_得点,_成績) :- '得点が60点未満'(_得点,_成績).
'得点が90点以上'(_得点,'S') :- _得点 >= 90,!.
'得点が80点以上'(_得点,'A') :- _得点 >= 80,_得点<90,!.
'得点が60点以上'(_得点,'B') :- _得点 >= 60,_得点<80,!.
'得点がそれ未満'(_得点,'C') :- _得点 < 60,!.
456:デフォルトの名無しさん
10/01/27 06:26:04
>>450
% Prolog
得点を入力して以下のルールに従った成績を返す(_成績) :-
get_integer(_得点),
得点を入力して以下のルールに従った成績を返す(_得点,_成績).
得点を入力して以下のルールに従った成績を返す(_得点,_成績) :- '得点が90点以上の成績はS'(_得点,_成績).
得点を入力して以下のルールに従った成績を返す(_得点,_成績) :- '得点が80点以上の成績はA'(_得点,_成績).
得点を入力して以下のルールに従った成績を返す(_得点,_成績) :- '得点が60点以上の成績はB'(_得点,_成績).
得点を入力して以下のルールに従った成績を返す(_得点,_成績) :- '得点がそれ未満のはC'(_得点,_成績).
'得点が90点以上の成績はS'(_得点,'S') :- _得点 >= 90,!.
'得点が80点以上の成績はA'(_得点,'A') :- _得点 >= 80,_得点<90,!.
'得点が60点以上の成績はB'(_得点,'B') :- _得点 >= 60,_得点<80,!.
'得点がそれ未満の成績はC'(_得点,'C') :- _得点 < 60,!.
457:デフォルトの名無しさん
10/01/27 06:29:40
>>456 訂正 成績がひとつ落ちた
'得点がそれ未満のはC' -> '得点がそれ未満の成績はC'
458:デフォルトの名無しさん
10/01/27 13:39:12
>>449
使用言語:Io
Number even:=method(self % 2 == 0)
Io> 23 even
==> false
Io> 24 even
==> true
459:デフォルトの名無しさん
10/01/27 17:24:57
>>450
使用言語:J
f=: monad def 'y{''CBAS''#~2-~/\0 60 80 90 101'
f 0
C
f 59
C
f 60
B
f 79
B
f 80
A
f 89
A
f 90
S
f 100
S
460:デフォルトの名無しさん
10/01/27 17:34:13
>>449
使用言語:J
even=: 0=2&|
even 23
0
even 24
1
461:デフォルトの名無しさん
10/01/27 17:37:51
>>449
使用言語:Scilab
-->deff('r = even(n)', 'r = modulo(n, 2) == 0')
-->even(23)
ans =
F
-->even(24)
ans =
T
462:デフォルトの名無しさん
10/01/27 17:56:26
スレリンク(tech板:245番)
# [1] 授業単元: プログラミング
# [2] 問題文(含コード&リンク):
# キーボードから正の整数nを入力し、n!を計算して画面表示するプログラムを
# 作成せよ。ただし、階乗を計算する関数のプロトタイプを「void kaiyo(int , int *)」
# とし、第1引数にnを、第2引数に計算結果を格納する変数のポインタを指定すること。
#
463:デフォルトの名無しさん
10/01/27 19:42:34
>>449
使用言語:Arc
arc> (even 5)
nil
arc> (even 4)
t
arc> (def even? (n) (is (mod n 2) 0))
#<procedure: even?>
arc> (even? 23)
nil
arc> (even? 24)
t
464:デフォルトの名無しさん
10/01/27 20:12:02
>>449
使用言語:
(%i26) even(n):=is(mod(n,2)=0);
(%i27) even(23);
(%o27) false
(%i28) even(24);
(%o28) true
(%i29) f(n):=mod(n,2)=0;
(%i30) f(23);
(%o30) 1 = 0
(%i31) f(24);
(%o31) 0 = 0
(%i32) if f(4) then "even" else "odd";
(%o32) even
isがないとtrue,falseの表示にならないようだ。
465:デフォルトの名無しさん
10/01/27 20:16:34
>>464
書き忘れましたが、使用言語は maxima です。
466:デフォルトの名無しさん
10/01/27 21:03:29
>>449
使用言語:scheme(Gauche)
gosh> (even? 23)
#f
gosh> (even? 24)
#t
gosh> (define (even n) (= (modulo n 2) 0))
even
gosh> (even 23)
#f
gosh> (even 24)
#t
467:デフォルトの名無しさん
10/01/27 21:12:54
>>449
使用言語:Common Lisp(xyzzy)
(evenp 23)
nil
(evenp 24)
t
(defun even (n) (= (mod n 2) 0))
even
(even 23)
nil
(even 24)
t
468:デフォルトの名無しさん
10/01/28 00:53:54
>>449
使用言語:十進BASIC
論理式は制御構文でしか使えないので真偽値を受け渡しすることはできないようだ。
なので、真偽値を返す関数は、真のときの値、偽のときの値を適当にきめてやりとりするしかないみたい。
ここでは、真のとき1を偽のとき0を返すようにした。
FUNCTION even(n)
IF MOD(n,2)=0 THEN
LET even=1
ELSE
LET even=0
END IF
END FUNCTION
PRINT even(23)
PRINT even(24)
END
実行結果
0
1
469:デフォルトの名無しさん
10/01/28 05:13:18
>>431
% Prolog Prologでリングバッファは表現できるが無意味。究竟Prologのキューはスタック操作。
'New'(X-X).
'Enque'(_要素,X-[_要素|Y],X-Y).
'Deque'(_要素,[_要素|X]-Y,X-Y).
'Empty'(X-Y) :- X == Y.
キュー操作 :- 'New'(Q1),キュー操作機能選択(Q1).
キュー操作.
キュー操作機能選択(Q1) :-
get_line(_機能選択),
キュー操作機能選択(_機能選択,Q1,Q2),
キュー操作機能選択(Q2),!.
キュー操作機能選択(q,_,_) :- !,fail.
キュー操作機能選択(d,Q1,Q2) :- 'Deque'(_要素,Q1,Q2), write_formatted('%t\n',[_要素]),!.
キュー操作機能選択(s,Q1,Q1) :- キュー表示(Q1),!.
キュー操作機能選択(A,Q1,Q2) :- atom_to_term(A,N,_),'Enque'(N,Q1,Q2),!.
キュー表示(X-X) :- !.
キュー表示(X-Y) :- \+(var(X),var(Y),キュー表示(X-[Y]),!.
キュー表示(X-Y) :- \+(var(Y)),
append(U,Y,X),
concat_atom(U,' ',S),
write_formatted('%t\n',[S]),!.
470:469
10/01/28 05:16:26
ついでに言うとこれは説明不能ww ということは、
重リストを使ったキュー操作はあまり推奨できるプログラムではないのかも。
471:デフォルトの名無しさん
10/01/28 05:40:10
>>462
% Prolog 関数名kaiyoはたぶんミスパンチと思うので
kaijo(0,1) :- !.
kaijo(N,X) :- N1 is N - 1,kaijo(N1,Y),X is N * Y.
472:デフォルトの名無しさん
10/01/28 06:00:53
>>462
% Prolog
'キーボードから正の整数nを入力し、n!を計算して画面表示する' :-
repeat,
催促付き整数入力('正の整数を入れてください :',N),
N >= 0,
kaijo(N,X),
write_formatted('%tの階乗は%tです。\n',[N,X]),!.
kaijo(0,1) :- !.
kaijo(N,X) :- N1 is N - 1,kaijo(N1,Y),X is N * Y.
473:デフォルトの名無しさん
10/01/28 06:27:18
>>426
% Prolog もっと複雑な問題らしい。一応基礎部分ということで。
累乗の計算の逆を行うプログラムの基礎部分(A,A ^ 1) :- atomic(A),!.
累乗の計算の逆を行うプログラムの基礎部分((A * A),A ^ 2) :- atomic(A),!.
累乗の計算の逆を行うプログラムの基礎部分((B * A) * A,A ^ N) :-
累乗の計算の逆を行うプログラムの基礎部分((B * A),A ^ N1),
N is N1 + 1,!.
474:デフォルトの名無しさん
10/01/28 07:38:10
>>426
% Prolog >>473は利用しないことになってしまった。
累乗の計算の逆を行うプログラム(_乗算項,X) :-
乗算項をならびに変換(_乗算項,L1),
quicksort(L1,L2),
累乗の計算の逆を行うプログラム項構成(L2,X).
乗算項をならびに変換(A,[A]) :- atomic(A),!.
乗算項をならびに変換((B*A),[A|R]) :-
atomic(A),
乗算項をならびに変換(B,R).
累乗の計算の逆を行うプログラム項構成([A],A) :- !.
累乗の計算の逆を行うプログラム項構成([A,A|R1],A ^ N) :-
累乗の計算の逆を行うプログラム項部分構成([A,A|R1],[],A ^ N),!.
累乗の計算の逆を行うプログラム項構成([A,A|R1],A ^ N * Y) :-
累乗の計算の逆を行うプログラム項部分構成([A,A|R1],R,A ^ N),!.
累乗の計算の逆を行うプログラム項構成(R,Y),!.
累乗の計算の逆を行うプログラム項構成([A,B|R1],A * Y) :-
累乗の計算の逆を行うプログラム項構成([B|R1],Y),!.
累乗の計算の逆を行うプログラム項部分構成([A],[],A ^ 1) :- !.
累乗の計算の逆を行うプログラム項部分構成([A,A|R1],R,A ^ N) :-
累乗の計算の逆を行うプログラム項部分構成([A|R1],R,A ^ N1),
N is N1 + 1,!.
累乗の計算の逆を行うプログラム項部分構成([A,B|R],[B|R],A ^ 1) :- !.
475:デフォルトの名無しさん
10/01/28 15:26:00
>>449
使用言語:tcl
% proc even {n} {expr $n%2==0}
% even 23
0
% even 24
1
476:デフォルトの名無しさん
10/01/28 15:28:48
>>449
使用言語:Xtal
ix:004>even:fun(n) n%2==0;
ix:005>even(23).p;
false
ix:006>even(24).p;
true
477:デフォルトの名無しさん
10/01/28 15:59:40
>>449
使用言語:Scala
scala> def even(n:Int):Boolean={n%2==0}
even: (Int)Boolean
scala> even(23)
res3: Boolean = false
scala> even(24)
res4: Boolean = true
478:デフォルトの名無しさん
10/01/28 16:17:01
>>449
使用言語:Clojure
user=> (even? 23)
false
user=> (even? 24)
true
user=> (defn even [n] (= (mod n 2) 0))
#'user/even
user=> (even 23)
false
user=> (even 24)
true
479:デフォルトの名無しさん
10/01/28 18:09:44
>>449
使用言語:R
> even <- function(n){n%%2==0}
> even(23)
[1] FALSE
> even(24)
[1] TRUE
480:デフォルトの名無しさん
10/01/28 18:29:39
>>453
問題がfalseとなっているから仕方ないのかも知れないが、
failにしておいた方が無難。call(fail)で真偽値に戻せるから。falseだと、
K-Prolog Compiler version 6.0.4 (C) KLS Research, Inc.
15: ?- fail.
no
16: ?- false.
existence_error: "procedure" found at "false"
Culprit: "false/0"
17: ?-
のようなことになる。
481:デフォルトの名無しさん
10/01/28 22:51:35
スレリンク(tech板:296番)
# [1] 授業単元:プログラミング演習
# [2] 問題文(含コード&リンク):
# 10個の要素を持つ動的な整数配列を作るプログラムを作成しなさい。
# 動的な配列へのポインタを整数ポインタに代入しなさい。
# 次に、ポインタ算術または配列の添字を使って、1から10までの値を配列を構成する整数に代入しなさい。
# 最後に、代入した値を表示し、メモリを解放しなさい。
#
482:デフォルトの名無しさん
10/01/28 22:53:22
スレリンク(tech板:299番)
# [1] 授業単元:コンピュータリテラシー
# [2] 問題文(含コード&リンク):
# あるファイルの名簿を呼びだし、名前もしくは名字で検索しその結果を新しいファイルに保存する。あるファイルの名簿は特に決められていない。
# URLリンク(ime.nu)
483:デフォルトの名無しさん
10/01/28 22:57:40
スレリンク(tech板:307番)
# [1] Cプログラミング入門:
# [2] URLリンク(ime.nu)
# 次のプログラムを作成し二つのファイルを提出せよ。
# 1:0〜99 の 100 個の数字から異なる 30 個を選び,配列 COM[30] に
# 格納せよ.(乱数使用:学籍番号で初期化)学籍番号:200
# 2:次に異なる 6 個の数字を入力し,順番に配列 MAN[6] に格納せよ.
# 3:ソート方法 A を用いて配列 COM,MAN の要素をそれぞれ小さい
# 順に並べよ.
# 4:配列 COM に含まれる配列 MAN の数字の個数 count を求めよ.
# 5:最後に,配列 COM,MAN の全要素,変数 count を
# result.out に書き込め.
# 6:出力形式は自由とするが,main 関数内は 10 行以内にすること.
# ソート方法A
# 1 :作業用の配列として、要素が 100 個の int 型の配列 Work を用意
# する.
# 2 :配列 Work の各要素は、0 に初期化する.
# 3 :ソートしたい配列 x の要素を順番に読んで、Work[ その値 ] を +1
# する.
# 4 :作業3を全ての x の要素について行った後、Work の要素を小さい
# ほうから順番に読んで、Work の値が 0 でなければ、x に書き戻し
# ます。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4386日前に更新/462 KB
担当:undef