[ [[高橋のページ: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
となります.