第3回中間試験 オンライン試験(配点10点、時間 20分)
ルール
- メールや、何らかのファイル交換によることも含め、試験中に他人とコミュニケーションをしてはならない。
- ノート、教科書、自分のホームディレクトリに存在するファイル、Web
ページは参照、利用してよい。 検索エンジンを利用しても良い。
- コミュニケーションを禁止する意味で、
試験中に自分の公開 Web ページなど、他人が読める情報を更新してはならない。
- 問題1のプログラムと実行結果、問題2のプログラムを1通のメールに添付して に送ること。
解答の提出以外にメーラープログラムを利用してはならない。
- 解答メールの Subject を 0630-Answer とすること。
問題1 (6点)
/edu/f/ad2/mid-3.dat には 200万個の整数データが
書式なしで書き込まれている。
このファイル中の以下の3つの場所にある整数データを以下の順序で読み取り、
出力するプログラムを作りなさい。プログラムと実行結果を提出すること。
入力ファイルを複数回オープンしてはならず、ランダムアクセスを行う必要がある。
- 100 万番目のデータ。(先頭のデータを 0番目とする。)
- 自分の学籍番号の下 3桁を整数とみなして、その値を N としたとき、
N*100 番目のデータ。
- 上記 2 で読み取られた整数値を M として、 M番目のデータ。
1 の値は 999 になるはずである。2 と 3 の答えは人によって異なるが、いずれも 100未満の整数である。
問題2 (4点。
ただし、1限の筆記試験問題 3 とこの問題の得点のうち、どちらか高い方のみが有効。)
2つの入力ファイルに書式付きで書き込まれた
ソート済みの整数列をマージして、
結果を書式付きでファイルに出力するプログラムを作成しなさい。
- 配列、ベクタを使わずに実現すること!
- 実行時に「リダイレクション(コマンドラインにおける < や > )」
を利用してはならない。
- 入力ファイルの例として /edu/f/ad2/sample_data/{sorted100-1.data,
sorted100-2.data}
を用いてテストせよ。
- 処理対象のファイル名は、プログラム中に書き込んでしまっても良い。
(実行時に指定できなくても良い。)