様式9 +-------------------------------------+----------------+----------------------+ | システム名(コード): ALGOPAK | | システム報告書概要 | +-------------------------------------+ +----------------------+ | モジュール名(コード): CQUEEN | ライブラリ-登録番号: | +-------------------------------------+---------------------------------------+ | 作成者・学生番号: 南和子 30SS1145 | 文書作成者・学生番号: 南和子 30SS1145 | +-------------------------------------+---------------------------------------+ | 作成期間: 60/07/ ー / / | 文書作成期間: 61/01/ ー / / | +-------------------------------------+---------------------------------------+ | 親モジュール: | 子モジュール: | +-------------------------------------+---------------------------------------+ | 講義名・課題名: | 参考文献(著者名、書名、出版社、発行年)| +-------------------------------------+ | | 開発形態: 新規 | Wirth,アルゴリズム+データ構造=プロ | +-------------------------------------+ | | 形式: コンプリート | グラム,日本コンピュータ協会,1979 | +-------------------------------------+---------------------------------------+ | 利用対象者: 一般 | 格納メディア形式: フロッピーディスク | +-------------------------------------+---------------------------------------+ | 目的(問題解説、機能解説−制限事項)| 格納メディア番号、ファイル名: 85-5080,CQUEEN | | 8クィーン問題を解くプログラム +---------------------------------------+ | | 記述言語・走行OS: TURBO PASCAL | | バックトラックの例 +---------------------------------------+ | | 走行条件(ハードウェア、ソフトウェア)| | | PC-9801,MS-DOS | | | | | | | +-------------------------------------+---------------------------------------+ | キーワード(適用分野、手法など) : | 分類コード(CRコードを使用) : | | 有限オートマトン | | +-------------------------------------+---------------------------------------+ | 呼び出し法: CQUEEN | | | +-----------------------------------------------------------------------------+ | 操作手順(コンプリートプログラム(メインプログラム)の場合:1.システム起動手順、2.データ入出力 | | 手順と形式、3.終了手順) | | (サブルーチンの場合:1.呼び出し形式-引き数の並べ方-、2.親ルーチン、3.子ルー | | チン、4.その他) | | (サブルーチンはなし) | | | | 1. >TURBO | | | | >Y | | | | >R | | | | B:CQUEEN.SRC | | | | 2. 出力:A1,A2,・・・・,A8 というような形式ですべての場合を出力。 | | | | (ただし、i行Ai列にクイーンが置かれている。) | | | | 3. >Q | | | | (ただし、ドライブAには、TURBO PASCALのシステム、 | | | | ドライブBには、85-5080をセットして、システムを起動。) | | | | | | | | | | | | | | | +-----------------------------------------------------------------------------+ 注. システム1つにつき1枚作成 必要な場合モジュール1つにつき1枚作成(インターフェース仕様書-様式1-に追加) 様式7 +-------------------------------------+----------------+----------------------+ | システム名: ALGOPAK | | 問題解説 | +-------------------------------------+ +----------------------+ | モジュール名: CQUEEN | ライブラリ-登録番号: | +-------------------------------------+---------------------------------------+ | 作成者: 南和子 30SS1145 | 文書作成者: 南和子 30SS1145 | +-------------------------------------+---------------------------------------+ | 作成期間: 60/07/ ー / / | 文書作成期間: 60/07/ ー / / | +-------------------------------------+---------------------------------------+ | | | 8個のクイーンを互いに他をとることができないように、チェス盤の | | | | 上に配置する。 | | | | 従って、チェスの規則から、ひとつのクイーンは盤上で、それと同じ | | | | 列、行、および対角線上にあるすべてのコマをとることができるので、 | | | | 各列にはただ1つのクイーンしか置くことができない。 | | | | そのようなクイーンの配置の仕方をすべて求める。 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-----------------------------------------------------------------------------+ 様式6 +-------------------------------------+----------------+----------------------+ | システム名: ALGOPAK | | アルゴリズム流れ図 | +-------------------------------------+ +----------------------+ | モジュール名: CQUEEN | ライブラリ-登録番号: | +-------------------------------------+---------------------------------------+ | 作成者: 南和子 30SS1145 | 文書作成者: 南和子 30SS1145 | +-------------------------------------+---------------------------------------+ | 作成期間: 60/07/ ー / / | 文書作成期間: 60/07/ ー / / | +-------------------------------------+---------------------------------------+ | | | ++-------++ +-----+ +-------+ +---------+ | | !!PROGRAM!! +PARAME + +OUTPUT + !TEXT ! | | !! EIGHT !!--!->+ TER +---->! !---->! ! | | !! !! ! + + + + ! ! | | ++-------++ ! +-----+ +-------+ +---------+ | | ! | | ! +---------+ | | ! ! $I AA ! | | !->! ------- ! | | ! ! ! | | ! +---------+ | | ! | | ! +---------+ | | ! ! $I AB ! | | !->! ------- ! | | ! ! ! | | ! +---------+ | | ! | | ! +---------+ | | ! ! $I AC ! | | !->! ------- ! | | ! ! ! | | ! +---------+ | | ! | | ! +--------++ +---------+ | | ! !FOR I:=1!! !A[I]:=TRU! | | -->! TO 8 DO!!---->!E ! | | ^ ! !! ! ! | | ! +--------++ +---------+ | | ! ! | | ! +--------++ +---------+ | | ! !FOR I:=2!! !B[I]:=TRU! | | ! ! TO 16 D!!---->!E ! | | ! !O !! ! ! | | ! +--------++ +---------+ | | ! ! | | ! +--------++ +---------+ | | ! !FOR I:=-!! !C[I]:=TRU! | | ! !7 TO 7 D!!---->!E ! | | ! !O !! ! ! | | ! +--------++ +---------+ | | ! ! | | ! ++-------++ | | ! !!TRY(1) !! | | !-!! !! | | !! !! | | ++-------++ | | | | | | | | | | | | | +-----------------------------------------------------------------------------+ 様式6 +-------------------------------------+----------------+----------------------+ | システム名: ALGOPAK | | アルゴリズム流れ図 | +-------------------------------------+ +----------------------+ | モジュール名: CQUEEN | ライブラリ-登録番号: | +-------------------------------------+---------------------------------------+ | 作成者: 南和子 30SS1145 | 文書作成者: 南和子 30SS1145 | +-------------------------------------+---------------------------------------+ | 作成期間: 60/07/ ー / / | 文書作成期間: 60/07/ ー / / | +-------------------------------------+---------------------------------------+ | | | | | | | | | | | | | | | +-------+ +---------+ | | +I + !INTEGER ! | | -->! !---->! ! | | ! + + ! ! | | ! +-------+ +---------+ | | ! | | ! +-------+ +--------++ +---------+ | | ! +A + !ARRAY [1!! !BOOLEAN ! | | !->! !---->!..8] !!---->! ! | | ! + + ! !! ! ! | | ! +-------+ +--------++ +---------+ | | ! | | +-----+ ! +-------+ +--------++ +---------+ | | +VAR + ! +B + !ARRAY [2!! !BOOLEAN ! | | + +--!->! !---->!..16] !!---->! ! | | + + ! + + ! !! ! ! | | +-----+ ! +-------+ +--------++ +---------+ | | ! | | ! +-------+ +--------++ +---------+ | | ! +C + !ARRAY [-!! !BOOLEAN ! | | !->! !---->!7..7] !!---->! ! | | ! + + ! !! ! ! | | ! +-------+ +--------++ +---------+ | | ! | | ! +-------+ +--------++ +---------+ | | ! +X + !ARRAY [1!! !INTEGER ! | | -->! !---->!..8] !!---->! ! | | + + ! !! ! ! | | +-------+ +--------++ +---------+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-----------------------------------------------------------------------------+ 様式6 +-------------------------------------+----------------+----------------------+ | システム名: ALGOPAK | | アルゴリズム流れ図 | +-------------------------------------+ +----------------------+ | モジュール名: CQUEEN | ライブラリ-登録番号: | +-------------------------------------+---------------------------------------+ | 作成者: 南和子 30SS1145 | 文書作成者: 南和子 30SS1145 | +-------------------------------------+---------------------------------------+ | 作成期間: 60/07/ ー / / | 文書作成期間: 60/07/ ー / / | +-------------------------------------+---------------------------------------+ | | | ++-------++ +-----+ +-------+ +---------+ | | !!PROCEDE!! +VAR + +K + !INTEGER ! | | !!RE PRIN!!--!->+ +---->! !---->! ! | | !!T !! ! + + + + ! ! | | ++-------++ ! +-----+ +-------+ +---------+ | | ! | | ! +--------++ +-----+ | | ! !FOR 1 TO!! /WRITE/ | | -->! 8 DO !!----> /(X[K]/ | | ^ ! !! /:4) / | | ! +--------++ +-----+ | | ! ! | | ! +-----+ | | ! /WRITE/ | | !- /LN / | | / / | | +-----+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-----------------------------------------------------------------------------+ 様式6 +-------------------------------------+----------------+----------------------+ | システム名: ALGOPAK | | アルゴリズム流れ図 | +-------------------------------------+ +----------------------+ | モジュール名: CQUEEN | ライブラリ-登録番号: | +-------------------------------------+---------------------------------------+ | 作成者: 南和子 30SS1145 | 文書作成者: 南和子 30SS1145 | +-------------------------------------+---------------------------------------+ | 作成期間: 60/07/ ー / / | 文書作成期間: 60/07/ ー / / | +-------------------------------------+---------------------------------------+ | | | ++-------++ +-----+ +-------+ +---------+ | | !!PROCEDU!! +PARAME + +I + !INTEGER ! | | !!RE TRY !!--!->+ TER +---->! !---->! ! | | !! !! ! + + + + ! ! | | ++-------++ ! +-----+ +-------+ +---------+ | | ! | | ! +-----+ +-------+ +---------+ | | ! +VAR + +J + !INTEGER ! | | !->+ +---->! !---->! ! | | ! + + + + ! ! | | ! +-----+ +-------+ +---------+ | | ! T: | | ! +--------++ +-------+ +-------------------------+ | | ! !FOR J:= !! !IF A[J] ! !X[I]:=J; A[J]:=FALSE; B[I! | | -->!1 TO 8 D!!---->! AND B[ ! ---->!+J]:=FALSE; C[I-J]:=FALSE! | | !O !! !I+J] AN ! ^ ! ! | | +--------++ !D C[I-J ! ! +-------------------------+ | | !] + ! ! T: | | ! ! ! +-------+ ++-------++ | | ! ! ! !IF I<8 + !!TRY(I+1!! | | ! ! ! ! +--!->!!) !! | | ! ! ! ! + ! !! !! | | +-------+ ! +-------+ ! ++-------++ | | ! ! ! F: | | ! ! ! ++-------++ | | ! ! ! !!PRINT !! | | ! ! -->!! !! | | ! ! !! !! | | ! ! ++-------++ | | ! ! | | ! +-------------------------+ | | ! !A[J]:=TRUE; B[I+J]:=TRUE;! | | !-! C[I-J]:=TRUE ! | | ! ! | | +-------------------------+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-----------------------------------------------------------------------------+