Top / プログラミングおよび実習II / 20051215

[ 高橋のページ ] [ プログラミングおよび実習II? ]

プログラミングおよび実習II 2005年12月15日[edit]

今日の課題: 構造体データの並べかえ[edit]

郵便番号簿データ[edit]

/home/sample/takataka/prog2/ に,以下の郵便番号簿データファイルがおいてあります.コピーして使ってください.

  • zipcode2 講義中でも使った29件分のデータ
  • zipcode3 100件分

ちなみに,zipcode3の方は,

$ head zipcode3      ← headは,ファイルの先頭部を表示するコマンド.詳しくは,man head(tailコマンドもあるよ)
614 8062 京都府八幡市八幡清水井
350 0263 埼玉県坂戸市堀込
951 8142 新潟県新潟市関屋大川前
940 1103 新潟県長岡市曲新町
520 0533 滋賀県滋賀郡志賀町小野朝日
519 0438 三重県度会郡玉城町原
522 0353 滋賀県犬上郡多賀町月之木
105 7219 東京都港区東新橋汐留メディアタワー(19階)
850 0048 長崎県長崎市上銭座町
034 0095 青森県十和田市西二十一番町

てな感じで,郵便番号3桁部,4桁部とも各種取り揃えております.

課題1215-A (締切:12月15日,延長なし)[edit]

演習問題として紙に書いたプログラム(zip.h, qszip.cとzipsort.cの一部)を提出してください.実習開始後すぐに回収してチェックします.

課題1215-B (締切:12月15日,延長なし)[edit]

演習問題で作ったプログラムを改造して,郵便番号簿のデータを並べかえるプログラムを作りましょう(まず上の課題のプログラムを実際に作って動くことを確認してから,改造に取りかかることをおすすめします). 上記の zipcode3 のようなデータを郵便番号7桁で降順にソートできるようにするために,次のようにしてください.

  • 演習問題のソースたち(zip.h, qszip.c, zipsort.c)をコピーしてzip2.h, qszip2.c, zipsort2.cを作り,以下のように改造
  • 「struct zip型」に,int型の新メンバ code3 を追加
  • データ入力時に,各データのメンバcode3に「code1の1万倍+code2」で計算される7桁の整数値を代入
  • ソートの関数では,code3をキーとして並べかえるようにする
  • その他はそのまま

zipcode3を入力ファイルとしてソートできることを確認してください.

余裕のある人は,zipcode3と同じ場所に置いてあるzipcodeを入力として実行してみたらよいでしょう.zipcodeが何件分あるかは,

$ wc zipcode

としてみたらわかります.単純に配列のサイズ(ソース中でNで定義している数)を大きくしただけだと,実行時にエラーが出るかもしれません.その時は高橋にどうしたらいいか聞いてください.


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-08-13 (水) 13:45:19 (1919d)