Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
フローチャート練習問題
問題 1. 支給額計算①問題 2. 支給額計算②問題 3. 項目チェック問題 4. 日付妥当性判定問題 5. 奇遇の判定問題 6. 合計を取る問題 7. 給与支給表①問題 8. 昇順チェック問題 9. 給与支給表②問題 10. マージ 1:1問題 11. マージ N:N問題 12. マージ&コントロールブレイク問題 13. テーブルサーチ問題 14. メモリーSORT
問題 1. 支給額計算①
社員コード
氏名
基本給
日数
社員区分
社員区分=0(社長の時) 役職手当=1,000,000社員区分=1(部長の時) 役職手当= 500,000社員区分=2(課長の時) 役職手当= 300,000社員区分=3(係長の時) 役職手当= 100,000社員区分=4(社員の時) 役職手当= 0社員区分=5(パートの時) 役職手当= 0
上記データを読み、社員コード、氏名、支給額を出力する。
パート以外は、基本給+役職手当てを支給額とし、パートは、基本給欄に日給が入っているので日給×日数を支給額とする。
( 3 )
問題 2. 支給額計算②
社員コード
氏名
基本給
扶養人数
扶養人数1人目 10,000円扶養人数2人目 5,000円扶養人数3人目 3,000円扶養人数4人目以降毎に 2,000円
上記データを読み、支給額を計算し、社員コード、氏名、支給額を出力する。
支給額=基本給+扶養手当
( 2 )
問題 3. 項目チェック
社員コード
氏名
社員区分
配偶者有無
勤労学生
寡婦・夫
未成年者
老年者
社員区分 0~5 以外エラー配偶者有無 0,1,2 以外エラー勤労学生 0,1 以外エラー寡婦・夫 0,1,2 以外エラー未成年者 0,1 以外エラー老年者 0,1 以外エラー
1) 上記データを読み各項目のチェックを行い、いずれか1つでもエラーの時 は社員コードとERR それ以外は社員コードとOKを出力する。
2) 上記データを読み各項目のチェックを行い、全項目がエラーの時は、社員 コードとERR それ以外は社員コードとOKを出力する。
( 3 )
問題 4. 日付妥当性判定
西暦年 月 日
上記データを読込、入社年月日の妥当性をチェックし、社員コード、氏名、入社年月日と入社年月日が誤っていればERR、正しければOKを出力する。
(閏年考慮の事)
社員コード
氏名
入社年月日
( 4 )
問題 5. 奇遇の判定
西暦年 月 日
上記データを読込、データレコード№が奇数レコードであれば奇数、偶数レコードであれば偶数という文字を出力する。
社員コード
氏名
入社年月日
( 5 )
問題 6. 合計を取る
上記データを読込、基本給の全社員合計を計算し出力する。
社員コード
基本給
( 6 )
問題 7. 給与支給表①
給与データを読み給与支給表を出力する。
1) 明細行 総支給額=基本給+諸手当+残業手当
2) 総合計 各項目の全社員合計を取る
3) 1頁には明細行を60行出力するものとし、60行を超えると頁わ換える。頁は1からカウントする。
部課コード
社員コード
諸手当
基本給
残業手当
給与データ
給与支給表
*** 給与支給表 *** ページ Z9部課 社員 基本給 諸手当 残業手当 総支給額 99 99999 Z,ZZZ,ZZ9 Z,ZZZ,ZZ9 Z,ZZZ,ZZ9 Z,ZZZ,ZZ9
総合計 ZZ,ZZZ,ZZ9 Z,ZZZ,ZZ9 Z,ZZZ,ZZ9 Z,ZZZ,ZZ9
( 7 )
問題 8. 昇順チェック
上記データは、本来社員番号の小さい人から大きい人に昇順に並んでいなければならない。そこで、このデータを読み確かに昇順になっていいるかを調べ、もし小から大になっていなければ、小になったカードをエラーとし社員番号とERRを出力し、昇順になっているデータは、何も出力しない。(尚、エラーとなった社員番号は昇順チェックの対称としない)
社員コード
( 8 )
問題 9. 給与支給表②
部課コード、社員コードで分類されている給与データを読み給与支給表を出力する。
1) 明細行 総支給額=基本給+諸手当+残業手当
2) 部課計 各項目の同一部課内の合計を取る
3) 総合計 各項目の全社員合計を取る
4) 1頁には明細行を60行出力するものとし、60行を超えると頁わ換える。頁は1からカウントする。
部課コード
社員コード
諸手当
基本給
残業手当
給与データ
給与支給表
*** 給与支給表 *** ページ Z9部課 社員 基本給 諸手当 残業手当 総支給額 99 99999 Z,ZZZ,ZZ9 Z,ZZZ,ZZ9 Z,ZZZ,ZZ9 Z,ZZZ,ZZ9
部課計 ZZ,ZZZ,ZZ9 Z,ZZZ,ZZ9 Z,ZZZ,ZZ9 Z,ZZZ,ZZ9総合計 ZZ,ZZZ,ZZ9 Z,ZZZ,ZZ9 Z,ZZZ,ZZ9 Z,ZZZ,ZZ9
( 9 )
問題 10. マージ 1:1
社員コードで分類されている給与データAと給与データBをマージして、給与データCを作成する。給与データA・B共に同じ社員コードは無いものとする。
給与データA
給与データB
給与データC
( 10 )
問題 11. マージ N:N
社員コードで分類されている給与データAと給与データBをマージして、給与データCを作成する。給与データA・B共に同一社員コードがN件有るものとする。
給与データA
給与データB
給与データC
( 11 )
問題 12. マージ&コントロールブレイク
給与データA・B共に、部課コード>社員コードで分類されており、給与データAはn月締め分のファイルで、給与データBは1月~n-1月締め分のファイルである。
両ファイルを部課コード・社員コードをKEYとしてマージし、1月~n月締迄の合計表を作成する。
社員コードブレイクで1~n月の合計を出力し、部課コードブレイクで部課計を出力し、EOFで総合計を出力する。(給与データA・B、年間給与支給表のフォーマットは問題9を参照)
給与データA
給与データB
年間給与支給表
( 12 )
問題 13. テーブルサーチ
部課名テーブル部課コード 部課名
01 総務02 経理03 人事05 教育09 工事12 システム13 企画15 調査17 資料室18 研究室20 営業
部課コードを読み対応する部課名を部課名テーブルより探し出力する。
部課名テーブルに無い部課コードはエラーとし部課コードとERRを出力する。
部課コード
部課コード
部課名一覧表
( 13 )
問題 14. メモリーSORT
TABLE WORKA得意先コード 得意先名
50
メモリー内に上図のテーブルが有り 大50個の得意先を記憶している。但し現在得意先コード順にはなっていないので、これを得意先コードの小→大(昇順)に並べ替えたい。作業エリアとしてWORKAを使用して、このテーブルを分類する。
( 14 )
問題10.
N
Y
N
Y
Y
N
N
Y
N N
Y Y
A,Bファイルオープン
給与データA読込
データ有りか
AKEY←給与データAの社員コード
AKEY←HIVALUE
給与データB読込
データ有りか
BKEY←給与データBの社員コード
BKEY←HIVALUE
AKEY=HIVALUE&
BKEY=HIVALUE
終了
AKEY<BKEY
給与データC←給与データA
給与データC書きこみ
給与データA読込
データ有りか
AKEY←給与データAの社員コード
AKEY←HIVALUE
給与データC←給与データB
給与データC書きこみ
給与データB読込
データ有りか
BKEY←給与データAの社員コード
BKEY←HIVALUE
スタート
A,Bファイルクローズ
問題11.
Y
N
N
N
Y Y
N N
Y Y
A,Bファイルオープン
AKEY=HIVALUE&
BKEY=HIVALUE
終了
AKEY<BKEY
給与データC←給与データA
給与データC書きこみ
給与データC←給与データB
給与データC書きこみ
AKEY=BKEY
給与データC←給与データA,B
給与データC書きこみ
給与データA読込
データ有りか
AKEY←給与データAの社員コード
AKEY←HIVALUE
スタート
A,Bファイルクローズ
終了
給与データA読込処理
給与データA読込処理
給与データB読込処理
給与データA読込処理
給与データA読込処理
給与データB読込処理
給与データB読込処理
給与データB読込
データ有りか
AKEY←給与データBの社員コード
BKEY←HIVALUE
終了
給与データB読込処理
問題12.
N
Y
A,Bファイルオープン
スタート
給与データA読込処理
給与データB読込処理
給与データB集計処理
AKEY1<BKEY1
DKEY1←AKEY1 DKEY1←BKEY1
DKEY1≠HI-VALUE
総合計印刷
OLD-DKEY1←DKEY1
DKEY1≠OLD-DKEY1
基本給課計←0諸手当課計←0
残業手当課計←0
A,Bファイルクローズ
終了
PAGE←0LINE←99
基本給総計←0諸手当総計←0
残業手当総計←0
LINE←LINE+1
LINE>60
ヘッダー印刷
LINE←1
A B CD
課計出力
PAGE←PAGE+1
N
Y
N
Y
N
Y
AKEY2<BKEY2
基本給←給与データAの基本給諸手当←給与データAの諸手当
残業手当←給与データAの残業手当
AKEY2=BKEY2
給与データA読込処理
給与データA読込処理
給与データB読込処理
給与データB読込処理
給与データB集計処理
給与データB集計処理
基本給←給与データAの基本給+基本給B
諸手当←給与データAの諸手当+諸手当B
残業手当←給与データAの残業手当+残業手当B
基本給←基本給B諸手当←諸手当B
残業手当←残業手当B
AKEY1<BKEY1
DKEY1←AKEY1
DKEY1←BKEY1
DKEY1←AKEY1
DKEY1←BKEY1
基本給課計←基本給課計+基本給諸手当課計←諸手当課計+諸手当残業手当課計←残業手当課計+残
業手当基本給課計←基本給課計+基本給諸手当課計←諸手当課計+諸手当残業手当課計←残業手当課計+残
業手当
基本給課計←基本給課計+基本給諸手当課計←諸手当課計+諸手当残業手当課計←残業手当課計+残
業手当
基本給総計←基本給総計+基本給諸手当総計←諸手当総計+諸手当残業手当総計←残業手当総計+残
業手当
基本給総計←基本給総計+基本給諸手当総計←諸手当総計+諸手当残業手当総計←残業手当総計+残
業手当
基本給総計←基本給総計+基本給諸手当総計←諸手当総計+諸手当残業手当総計←残業手当総計+残
業手当
明細印刷処理 明細印刷処理 明細印刷処理
A B C
D
課計出力
N N
Y Y
N
Y
Y
N
給与データA読込
データ有りか
AKEY1←給与データAの部課
AKEY2←給与データAの部課、社員コー
ド
AKEY1,2←HI-VALUE
戻る
給与データA読込処理
給与データB読込
データ有りか
CKEY1,2←HIVALUE
戻る
給与データB読込処理
BKEY2=CKEY2&BKEY2≠HIGH-
VALUE
基本給B←基本給B+給与データBの基本給諸手当B←諸手当B+給与データの諸手当
残業手当B←残業手当B+給与データBの残業手当
戻る
給与データB集計処理
BKEY2←CKEY2
基本給B←0諸手当B←0
残業手当B←0
給与データB読込処理
CKEY1←給与データBの部課
CKEY2←給与データBの部課、社員コー
ド
明細印刷処理
LINE←LINE+1
LINE>60
ヘッダー印刷
LINE←1
明細印刷
戻る
LINE←LINE+1
LINE>60
ヘッダー印刷
LINE←1
課計印刷
課計出力
戻る
PAGE←PAGE+1
問題13.
START
ファイルOPEN
部課コード読込
データ終りか?
IX1←1
IX1>11
部課コード=TABLE部課(IX1)
部課コード、エラー出力
IX1←IX1+1
ファイルCLOSE
END
明細印刷
部課名←TABLE部課名(IX1)
問題14.
Y N
START
IX1←0
IX1 ← IX1+1IX2 ← IX1+1
TABLE( IX1 ) <TABLE( IX2 )
WORKA ←TABLE( IX1 )
TABLE( IX1 )←TABLE(IX2)
TABLE( IX2 )←WORKA
IX1>50
終了