様式9 +-------------------------------------+----------------+----------------------+ | システム名(コード): ALGOPAK | | システム報告書概要 | +-------------------------------------+ +----------------------+ | モジュール名(コード): PMGSORT(A218) | ライブラリ-登録番号: | +-------------------------------------+---------------------------------------+ | 作成者・学生番号: 増沢善子21SS1159 | 文書作成者・学生番号: 増沢善子21SS1159 | +-------------------------------------+---------------------------------------+ | 作成期間: 62/01/ ー / / | 文書作成期間: 62/02/ ー / / | +-------------------------------------+---------------------------------------+ | 親モジュール: ALGOS | 子モジュール: | +-------------------------------------+---------------------------------------+ | 講義名・課題名: 卒業研究 | 参考文献(著者名、書名、出版社、発行年)| +-------------------------------------+ | | 開発形態: 移植 | SARA BAASE,COMPUTER ALGORITHMS | +-------------------------------------+ | | 形式: サブルーチン | ADDITION WESLEY 1981 | +-------------------------------------+---------------------------------------+ | 利用対象者: 一般 | 格納メディア形式: フロッピーディスク | +-------------------------------------+---------------------------------------+ | 目的(問題解説、機能解説−制限事項)| 格納メディア番号、ファイル名: | | 一本のファイルに入っている数字の列 +---------------------------------------+ | | 記述言語・走行OS: TURBO PASCAL    | | を、3本のテープを使い小さい順に並 +---------------------------------------+ | | 走行条件(ハードウェア、ソフトウェア)| | べる。 データの個数から適切な連続し | PC−9801 | | | | | たフィボナッチ数を指定する。 | MS−DOS | +-------------------------------------+---------------------------------------+ | キーワード(適用分野、手法など) : | 分類コード(CRコードを使用) : | | POLYPHASE MERGE SORT | | +-------------------------------------+---------------------------------------+ | 呼び出し法: MGSORT(VAR T:WKFILE; MAXBLK,F1,F2:INTEGER) | | | +-----------------------------------------------------------------------------+ | 操作手順(コンプリートプログラム(メインプログラム)の場合:1.システム起動手順、2.データ入出力 | | 手順と形式、3.終了手順) | | (サブルーチンの場合:1.呼び出し形式-引き数の並べ方-、2.親ルーチン、3.子ルー | | チン、4.その他) | | 1 TYPE | | | | WKFILE=ARRAY[0..2] OF TEXT; | | | | EXTERNAL PROCEDURE pmgsort(VAR T:wkfile; maxblk,f1,f2:integer); | | | | | | | | T[0]:入力ファイルを割り当てておく | | | | T[1]:出力ファイルを割り当てておく | | | | T[2]:作業ファイルを割り当てておく | | | | maxblk:polyphase merge sort におけるブロック化数 | | | | f1,f2:となり合う2つのフィボナッチ数 (ただし f1>f2) | | | | | | | | | | | | | | | | | | | +-----------------------------------------------------------------------------+ 注. システム1つにつき1枚作成 必要な場合モジュール1つにつき1枚作成(インターフェース仕様書-様式1-に追加) 様式7 +-------------------------------------+----------------+----------------------+ | システム名: ALGOPAK | | 問題解説 | +-------------------------------------+ +----------------------+ | モジュール名: EXTERNAL SORTING | ライブラリ-登録番号: | +-------------------------------------+---------------------------------------+ | 作成者: 三村晶子 20SS1143 | 文書作成者: 三村晶子 20SS1143 | +-------------------------------------+---------------------------------------+ | 作成期間: 60/08/ ー 60/11/ | 文書作成期間: 60/10/ ー 60/12/ | +-------------------------------------+---------------------------------------+ | 1本のテープにファイルされている数字の列をブロックに分け, フィボナッチ数 | | 列を利用してTAPE0, TAPE1, TAPE2の3本のテープによりソートす | | る。 | | このプログラムでは, 1つのブロックには5つの数字が入るようになっている( | | MAXBLK=5)。よって, データ数は[5*{F(I)+F(I−1)}]個 | | 以上用意するか, 又は, データ数から適切なF(I),F(I−1)を選択しなけ | | ればならない。(F(I),F(I−1)は, 連続する2つのフィボナッチ数を表 | | す) | | 実行する前に, データファイルを”TAPE0”にコピーする。実行時に, F( | | I),F(I−1)を指定すると, 実行を開始し, 結果は”TAPE1”に出力さ | | れる。 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-----------------------------------------------------------------------------+ 様式6 +-------------------------------------+----------------+----------------------+ | システム名: ALGOPAK | | アルゴリズム流れ図 | +-------------------------------------+ +----------------------+ | モジュール名: PMGSORT-1 | ライブラリ-登録番号: | +-------------------------------------+---------------------------------------+ | 作成者: 三村晶子 20SS1143 | 文書作成者: 三村晶子 20SS1143 | +-------------------------------------+---------------------------------------+ | 作成期間: 60/07/ ー 60/09/ | 文書作成期間: 60/09/ ー 60/11/ | +-------------------------------------+---------------------------------------+ | | | | | | | ++-------++ +-----+ ++-------++ +--------++ +---------+ | | !!MODULE !! +TYPE + !!WKFILE !! !ARRAY !! !TEXT ! | | !!SORTING!!--+--+ +-+-!! !!--![0..2] !!--! ! | | !! !! ! + + ! !! !! ! !! ! ! | | ++-------++ ! +-----+ ! ++-------++ +--------++ +---------+ | | ! ! ++-------++ +--------++ +---------+ | | ! ! !!BLK !! !ARRAY !! !INTEGER ! | | ! +-!! !!--![1..500]!!--! ! | | ! !! !! ! !! ! ! | | ! ++-------++ +--------++ +---------+ | | ! +---------+ | | ! !PMGSORT ! | | +--+---------+ | | ! +---------+ | | ! | | ! +---------+ | | ! !YOMIKAKI ! | | +--+---------+ | | +---------+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-----------------------------------------------------------------------------+ 様式6 +-------------------------------------+----------------+----------------------+ | システム名: ALGOPAK | | アルゴリズム流れ図 | +-------------------------------------+ +----------------------+ | モジュール名: PMGSORT-2 | ライブラリ-登録番号: | +-------------------------------------+---------------------------------------+ | 作成者: 三村晶子 20SS1143 | 文書作成者: 三村晶子 20SS1143 | +-------------------------------------+---------------------------------------+ | 作成期間: 60/07/ ー 60/09/ | 文書作成期間: 60/09/ ー 60/11/ | +-------------------------------------+---------------------------------------+ | +---------+ +---------+ | | !YOMIKAKI ! +REWRITE + | | +---------+----+REWRITE + | | ! ! +RESET + | | +---------+ +---------+ | | ! | | +---------+ ++-------++ | | !FOR I:=1 ! !!YOMU !! | | !TO F1 !-+-!! !! | | ! ! ! !! !! | | +---------+ ! ++-------++ | | ! ! ! | | ! ! ++-------++ | | ! ! !!BSORT !! | | ! ! !! !! | | ! ! ++-------++ | | ! ! ! | | ! ! +--------++ +---------+ | | ! ! !FOR J:=1!! +WRITE + | | ! ! !TO !!----+(T[1]) + | | ! ! !MAXBLK !! + + | | ! ! +--------++ +---------+ | | ! ! ! | | ! ! +---------+ | | ! ! +WRITELN + | | ! ! +(T[1]) + | | ! ! +---------+ | | ! ! ! | | ! +------+ | | +--------++ ++-------++ | | !FOR I:=1!! !!YOMU !! | | !TO F2 !!-+-!! !! | | ! !! ! !! !! | | +--------++ ! ++-------++ | | ! ! ! | | +---------+ ! ++-------++ | | !REW:=0, ! ! !!BSORT !! | | !RES:=1, ! ! !! !! | | !KEEP:=2 ! ! !! !! | | +---------+ ! ++-------++ | | ! ! ! | | +-----------+! +--------++ +---------+ | | !FI[RES]:=F1!! !FOR J:=1!! +WRITE + | | !,FI[KEEP]:=!! !TO !!----+(T[2]) + | | !F2,RESET !! !MAXBLK !! + + | | +-----------+! +--------++ +---------+ | | ! ! ! | | +---------+ ! +---------+ | | !OWARI ! ! +WRITELN + | | +---------+ ! +(T[2]) + | | ! ! ! + + | | +---------+ ! +---------+ | | ! ! | | +------+ | +-----------------------------------------------------------------------------+ 様式6 +-------------------------------------+----------------+----------------------+ | システム名: ALGOPAK | | アルゴリズム流れ図 | +-------------------------------------+ +----------------------+ | モジュール名: PMGSORT-3 | ライブラリ-登録番号: | +-------------------------------------+---------------------------------------+ | 作成者: 三村晶子 20SS1143 | 文書作成者: 三村晶子 20SS1143 | +-------------------------------------+---------------------------------------+ | 作成期間: 60/07/ ー 60/09/ | 文書作成期間: 60/09/ ー 60/11/ | +-------------------------------------+---------------------------------------+ | +---------+ | | !OWARI ! | | +---------+ | | ! ! | | +---------+ | | ! | | +--------++ +---------+ | | !REPEAT !! !CLOSE(T[R! | | ! !!-+-!EW],CLOSE! | | ! !! ! !(T[RES]) ! | | +--------++ ! +---------+ | | ! ! ! | | ! ! +----------+ | | ! ! !REWRITE(T ! | | ! ! ![REW],RES ! | | ! ! !ET(T[RES])! | | ! ! +----------+ | | ! ! +--------++ ++-------++ | | ! ! !REPEAT !! !!MGSORT !! | | ! ! ! !!---+-!! !! | | ! ! ! !! ! !! !! | | ! ! +--------++ ! ++-------++ | | ! ! ! ! ! | | ! ! +-----------+ ! +-------+ ++--------+ | | ! ! !FI[RES]:=FI! ! !UNTIL + !!EXIT ! | | ! ! ![RES]-FI[KE! +-!EOF +--!! ! | | ! ! !EP],FI[REW]! ! + !! ! | | ! ! !:=FI[KEEP] ! +-------+ ++--------+ | | ! ! +-----------+ | | ! ! ! | | ! ! +-------------------+ | | ! ! !REW:=(REW+2)MOD 3, ! | | ! ! !RES:=(RES+2)MOD 3, ! | | ! ! !KEEP:=(KEEP+2)MOD 3! | | ! ! +-------------------+ | | ! ! ! | | ! ! +-------+ ++--------+ | | ! ! !UNTIL + !!EXIT ! | | ! +-!FI[RES]=0+--!! ! | | ! ! + !! ! | | ! +-------+ ++--------+ | | ! | | +--------++ +---------+ | | !FOR R:=0!! !CLOSE ! | | !TO 2 !!--!(T[R]) ! | | ! !! ! ! | | +--------++ +---------+ | | | | | | | | | | | | | | | +-----------------------------------------------------------------------------+ 様式6 +-------------------------------------+----------------+----------------------+ | システム名: ALGOPAK | | アルゴリズム流れ図 | +-------------------------------------+ +----------------------+ | モジュール名: PMGSORT-4 | ライブラリ-登録番号: | +-------------------------------------+---------------------------------------+ | 作成者: 三村晶子 20SS1143 | 文書作成者: 三村晶子 20SS1143 | +-------------------------------------+---------------------------------------+ | 作成期間: 60/07/ ー 60/09/ | 文書作成期間: 60/09/ ー 60/11/ | +-------------------------------------+---------------------------------------+ | +---------+ ++-------++ +-----+ +-------+ ++-------++ | | !PMGSORT ! !!PROCEDU!! +PARAMET+ + T + !!WKFILE !! | | +---------+--!!RE !!-+-+ ER +-+-! !--!! !! | | ! ! !!MGSORT !! ! + + ! + + !! !! | | +---------+ ++-------++ ! +-----+ ! +-------+ ++-------++ | | +-------------+ ! +-------+ +---------+ | | ! ! +MAXBLK,F1+ !INTEGER ! | | ! +-!,F2 !--! ! | | ! + + ! ! | | ! +-------+ +---------+ | | ! +-----+ +-------+ +---------+ | | ! +VAR + +R1,R2,I,J+ !INTEGER ! | | +-+ +-+-!,REW,RES,!--! ! | | ! + + ! +KEEP + ! ! | | ! +-----+ ! +-------+ +---------+ | | ! ! +-------+ +--------++ +---------+ | | ! ! + BF + !ARRAY !! !INTEGER ! | | ! +-! !--![1..5] !!--! ! | | ! ! + + ! !! ! ! | | ! ! +-------+ +--------++ +---------+ | | ! ! +-------+ +--------++ +---------+ | | ! ! + FI + !ARRAY !! !INTEGER ! | | ! +-! !--![0..2] !!--! ! | | ! ! + + ! !! ! ! | | ! ! +-------+ +--------++ +---------+ | | ! ! +-------+ ++-------++ | | ! ! + X + !!BLK !! | | ! +-! !--!! !! | | ! + + !! !! | | ! +-------+ ++-------++ | | ! ++-------++ +-----+ +-------+ ++-------++ | | ! !!PROCEDU!! +PARAMET+ + X + !!BLK !! | | +-!!RE !!-+--+ ER +---! !---!! !! | | ! !! !! ! + + + + !! !! | | ! ++-------++ ! +-----+ +-------+ ++-------++ | | ! ! +-----+ +-------+ +---------+ | | !MGSORT ! ! + VAR + +I,J,K + !INTEGER ! | | +---------+ +--+ +---! !---! ! | | ! ! ! + + + + ! ! | | +---------+ ! +-----+ +-------+ +---------+ | | +-------------+ | | ! +--------++ +--------++ +-------+ +------------+ | | ! !FOR I:=2!! !FOR J:= !! !IF X[J-1+ !K:=X[J-1], ! | | +-!TO !!--!MAXBLK !!--!] > X[J] +--!X[J-1]:=X[J]! | | !MAXBLK !! !DOWNTO I!! ! + !X[J]:=K ! | | +--------++ +--------++ +-------+ +------------+ | | | | | | | | | | | | | | | | | +-----------------------------------------------------------------------------+ 様式6 +-------------------------------------+----------------+----------------------+ | システム名: ALGOPAK | | アルゴリズム流れ図 | +-------------------------------------+ +----------------------+ | モジュール名: PMGSORT-5 | ライブラリ-登録番号: | +-------------------------------------+---------------------------------------+ | 作成者: 三村晶子 20SS1143 | 文書作成者: 三村晶子 20SS1143 | +-------------------------------------+---------------------------------------+ | 作成期間: 60/07/ ー 60/09/ | 文書作成期間: 60/09/ ー 60/11/ | +-------------------------------------+---------------------------------------+ | +---------+ | | !MGSORT ! | | +---------+ | | ! ! | | +---------+ | | ! ++-------++ +-----+ +-------+ +---------+ | | ! !!PROCEDU!! +PARAMET+ +TAPE1, + !TEXT ! | | +-------!!RE !!-+-+ ER +--!TAPE2, !--! ! | | ! !! !! ! + + +TAPE3 + ! ! | | ! ++-------++ ! +-----+ +-------+ +---------+ | | ! ! +-----+ +-------+ +---------+ | | ! ! + VAR + + A,B + !INTEGER ! | | ! +-+ +--! !--! ! | | ! ! + + + + ! ! | | ! ! +-----+ +-------+ +---------+ | | ! +---------+ ! +---------+ | | ! !YOMU ! ! +READ + | | +--+---------+ +---+(TAPE1) + | | ! ! + + | | +---------+ +---------+ | | ! | | +---------+ | | +READ + | | +(TAPE2) + | | + + | | +---------+ | | ! | | +--------++ +-------+ +---------+ | | !WHILE !! !IF A