[ [[高橋のページ:http://tortoise1.math.ryukoku.ac.jp/~takataka/index-j.html]] ]
[ [[プログラミングおよび実習II2006]] ]

*プログラミングおよび実習II 2006年12月1日 [#q2d2e632]

#contents

//&color(#ff0000){工事中};

**準備 [#r030fd29]

準備として以下のことを行ってください
-次の郵便番号データファイルを自分のprog2ディレクトリ内に保存する
--[[zipdata29>http://tortoise1.math.ryukoku.ac.jp/~takataka/course2006/prog2/gakunai/zipdata29]] 
--[[zipdata100>http://tortoise1.math.ryukoku.ac.jp/~takataka/course2006/prog2/gakunai/zipdata100]] 
-catコマンドあるいはlessコマンドを使ってそれらの内容を確認する
 $ cat zipdata29
あるいは
 $ less zipdata29

**今日の課題 [#n0aff635]

***課題1201-A (締切:今日の実習開始後すぐ,締切後チェック対象外) [#k16bca8f]

11月30日の演習問題のプリントを提出し,チェックを受けてください.

***課題1201-B (締切:今日の実習終了時,締切後チェック対象外) [#bc903031]

課題Aのプログラムを作成し,zipdata29やzipdata100を使って動作確認できたらチェックを受けてください.
ソースファイルの名前は zipcode1.c としましょう.

***課題1201-C (締切:今日の実習終了時) [#y2abf83b]

課題Bのプログラムに以下の2ステップの改造を施しましょう.改造したソースの名前は,zipcode2.cとしてください.

● ステップ1

以下の[[おまけ>#omake]]にある「ファイル入出力」に関する解説を読み,次のことをやってみましょう
-zipcode1.c でデータを読み込んでいるところを,ファイル(zipdata29 やzipdata100)から読み込むようにする
-正しく動作することを確認
-読み込むファイル名をわざと間違えるとどうなるか観察する

● ステップ2

zipcode1.c では読み込んだデータを順に表示するだけですが,そこを改造して,次のような動作をする(番号を入力するとその番号のデータを表示する)ようにする.
#pre{{
$ ./zipcode2 
100件の郵便番号データを読み込みました
何番目を表示しますか?(範囲外の数を入力すると終了します) 51
[51] 6028073 京都府京都市上京区頭町(西洞院通下長者町上る、
西洞院通中長者町上る、西洞院通中長者町下る)
何番目を表示しますか?(範囲外の数を入力すると終了します) 71
[70] 3306035 埼玉県さいたま市中央区新都心明治生命さいたま新都心ビル(35階)
何番目を表示しますか?(範囲外の数を入力すると終了します) 100
}}


**おまけ ファイル入出力について(もう少しちゃんとした説明は次回の講義でする予定です) [#omake]

次のようなプログラムがあったとします.

http://tortoise1.math.ryukoku.ac.jp/~takataka/course2006/prog2/fileio0.c.png

このプログラムの実行形式が a.out だったとすると,
 $ ./a.out
と実行すれば,キーボードからの入力をscanf()で受け取ってprintf()で表示することができます.
これを次のように書き換えてみます.

http://tortoise1.math.ryukoku.ac.jp/~takataka/course2006/prog2/fileio1.c.png

このプログラムと同じディレクトリ内に
 12  1
という内容のファイル hogehoge があるときにこのプログラムを実行すると,「ファイル hogehoge を読んでそれを表示する」ので,
 x = 12, y = 1
となります.

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS