講評: 確認しました。 追記: 学籍番号が 2061 年度入学生のものになっています。 こういうレポートが毎回かけるとよいと思います。 ---- 学籍番号;c106XXXX 氏名;XXXXXXXX 語学クラス;中国語XX 系;環境系 筆記問題 A; 試験などの合格発表の時に使うことが出来るのではないでしょうか。 合格点を予め決めておけば、点数を入力して規定の点数を超えた人だけを 表示するプログラムもできるはずだ。また、点数の高い順に並び替え出来れば 首席合格者を探すことも簡単にできる。 B; デリバリ−を扱っている店の電話番が注文を届けるために必要な情報は :相手の名前 :相手の住所 :注文された商品名 :相手の電話番号 :届けて欲しい時間 である。 C; 上記の情報をコマンドラインに入力された時 相手の名前 の情報は ARGV[0] に 相手の住所 の情報は ARGV[1] に 注文された商品名 の情報は ARGV[2]に 相手の電話番号 の情報は ARGV[3]に 届けて欲しい時間 の情報は ARGV[4]に 各々しまわれる。 プログラミング問題 A:a 考えた設定 デリバリ−を扱っている店舗の、電話番が使っていそうの プログラムを作成しました。 A:b 作成プログラムコード STDERR.print("注文情報入力\n") STDERR.print("姓名 住所 電話番号 商品名 時間指定 の順に入力して下さい。\n") exit(1) end name = ARGV[0] address = ARGV[1] tell = ARGV[2] goods = ARGV[3] time = ARGV[4] printf("注文確認\n") printf("お客様名: %s \n",name) printf("お客様住所: %s \n",address) printf("お客様電話番号 %s \n",tell) printf("注文商品 %s \n",goods) printf("お届け予定時間 %s \n",time) A:c 元にしたプログラムからの変更点 airline.rbを参考にしました。 お客の情報を入力するために、 ARGVを 4個 に増やしました。 他は、print文の中身を変えたことです。 A:d 結果画面 irsv{c106185}% ./reservation.rb [~/Ruby] 注文情報入力 姓名 住所 電話番号 商品名 時間指定 の順に入力して下さい。 irsv{c106185}% ./reservation.rb トウホクシミン サカタシタカミダイ2-23-14 09012345678 特上すし 19:30 注文確認 お客様名: トウホクシミン お客様住所: サカタシタカミダイ2-23-14 お客様電話番号 09012345678 注文商品 特上すし お届け予定時間 19:30 A:e 結果の考察 実行した結果は、入力した結果が表示されたので 成功と言える、ちなみに、入力した名前と電話番号、住所は 架空のものです。 B:a 考えた設定 ユーザーが入力した数値をかけ算するプログラム を作成しました。 B:b 作成したプログラムコード #!/usr/koeki/bin/ruby if ARGV[0] == nil STDERR.print("計算します。数値を「 x 空白文字 y」 の順に入力して下さい。\n") exit(1) end subx = ARGV[0].to_i suby = ARGV[1].to_i printf("計算結果は\n") printf("%s × %s = %s \n",subx, suby, subx * suby) B:c もとにしたプログラムからの変更点 airline.rb を参考にして作成しました。 入力する数値が2つのため ARGV を2つに変更し 数値なので ARGV のあとに to_i を追加して 計算できるようにしました。 B:d 結果画面 irsv{c106185}% ./twomulti.rb [~/Ruby] 計算します。数値を「 x 空白文字 y」 の順に入力して下さい。 irsv{c106185}% ./twomulti.rb 1 2 [~/Ruby] 計算結果は 1 × 2 = 2 irsv{c106185}% ./twomulti.rb 2 4 [~/Ruby] 計算結果は 2 × 4 = 8 irsv{c106185}% ./twomulti.rb 4 8 [~/Ruby] 計算結果は 4 × 8 = 32 irsv{c106185}% ./twomulti.rb 8 16 [~/Ruby] 計算結果は 8 × 16 = 128 irsv{c106185}% [~/Ruby] B:e 結果の考察 まず、結果を確かめ算しました。 1*2 2 OK 2*4 8 OK 4*8 32 OK 8*16 128 OK 計算結果は合っているので成功したといえる。 ARGV を 増やせば さらに計算出来る数値が増える。 しかし、このプログラムではかけ算以外は出来ない仕様と なっている。 参考文献 西村まどか 先生のホームページ 2007年 後期 基礎プログラミング2 第6回 プログラム実行時に情報を一緒に入力するには 航空予約券 http://roy/~madoka/2007/r2/06/06-03-airline.html 感想 今回のプログラミングは数値としてコンピューターに 認識させるには to_i が必要なことを思い出せたので プログラムを完成出来たことよりも、復習できたことの 方が重要だったと思います。 次回もこの調子で頑張ります。 作成したプログラム