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