情報処理II

情報処理Ⅱ
2007年12月3日(月)
その1
本日の内容

90分でプログラム作成



ISBN-13チェックデジット計算プログラム
配列・ポインタなどを活用して,何もない状態から「動くもの」を
つくる
時間の余裕があれば,プログラムの修正や拡張を試みる
2
ISBN

ISBN (International Standard Book Number,
国際標準図書番号)は,世界共通で書籍を特定するための
番号のこと.



2006年までは10桁(ISBN-10)
• 例:4-8399-2064-8
2007年からは13桁(ISBN-13)
• 例:978-4-89471-266-9
ISBNをキーワードにして検索エンジンにかければ,書籍情
報が見つかる.
3
チェックデジット

符号の入力誤りなどを検出するために付加される数字.
「チェックディジット」「検査数字」ともいう.
4-8399-2064-8
978-4-89471-266-9

どうやって?




ランダムな数字を付加…顧客のID管理でよく用いられる
他の桁から計算して付加…ISBNもこの方式
求めることができる?
13桁の数字列があったときに,チェックデジットの正誤を判
定できる?
4
ISBN-13 チェックデジット計算プログラム

基本仕様



コマンドライン引数をISBN-13のうち12桁分の数字とする.
ただしハイフン(「-」)はつけない.
チェックデジットをつけたISBN-13のコードを出力する.
コマンドライン引数が複数あれば,それぞれに対して処理する.
5
仕様とは



プログラミングにおける仕様とは,完成するソフトウェアが満
たすべき条件のこと.
仕様を文書化したものを「仕様書」という.
仕様を自分で決めるときのアドバイス



仕様は「何を入力にとり」「どんな処理をして」「何を出力する
か」で決まる.
一度文章にしてみる.プログラムを作るうちに,仕様を変えるこ
ともある.
まずは簡単な(小さな)対象で正しく動くプログラムを作り,それ
から仕様を拡張していくとよい.
仕様とは - はてなダイアリー:http://d.hatena.ne.jp/keyword/%BB%C5%CD%CD
6
機能拡張(案)





ハイフンを許す.ハイフンがあれば,「-数字」としてチェック
デジットを出力する.
13桁の入力があるときに,その正誤を判定する.
文字列参照に,「ポインタ(または配列)変数とint型変数」
ではなく「ポインタ変数のみ」を使用する.
チェックデジットを求める「機能」を,「関数」として定義し,呼
び出す.
ISBN-10の入力を許す.
7