考察で、きちんと場合分けについて調べました。 参考文献の書き方がきちんとしています。 ----- 第3回 基礎プログラミング I レポート課題 氏名:XXXXXXXX 学籍番号:c109XXX 語学クラス:英語3 コース(系):政策マネ A. プログラムに if (指定項目)=="q" break end と入れる ifは~もし~ならという意味がある、またbreakは終了させるコードである この場合""の中に特定の文字を設定しておけばqでなくても他の文字で終了させ ることが出来る 以下は終了専用のプログラム 作成プログラムと解説) プログラム名:while_end.rb #!/usr/koeki/bin/ruby comand=0 #ダミー用のカテゴリ dammy=0 #ダミーその2 damian=0 #ダミーその3 while true STDERR.printf("qを押せば終了します:") #主旨 comand=gets.chomp if comand=="q" #終了用のコマンド break end comand=comand.to_f total+=comand k+=1 end printf("バイバイ\n") #終了時メッセージ もとのプログラムと変更点) 4月27日講義で作成したwhile_caloryをもとにした。数値入力に適した機能を廃 し、終了を指示するだけの役に立たないプログラムである。 実行結果画面)~ pan{c109048}% ./while_end.rb [~/Ruby] qを押せば終了します:q バイバイ% 考察)~ 今回作成したプログラムは完全な無機能プログラムだが、数字を入力すると計算 結果を表示したり、他のキー入力で別のメッセージが出てくるなどの遊び要素を 入れられたかもしれない。 2.プログラム問題 選択A a)考えた設定 今回はAの一日何歩歩いたかを調べるプログラムを作る b)作成プログラムとその解説 プログラム名:while_add.rb #!/usr/koeki/bin/ruby ashi=0 #歩数 total=0 #合計 k=1 #経過時間 while true STDERR.printf("歩いた歩数(%d時間目): ",k) ashi=gets.chomp if ashi=="q" #終了用のコマンド break end ashi=ashi.to_i total+=ashi k+=1 end if k<24 #経過時間が25時間未満の場合のプリント printf("一日の総歩数は%d\n" ,total) end if k>24 #経過時間が25時間以上の場合のプリント printf("%d時間の総歩行数は%d\n" ,k ,total) end c)もとのプログラムとその変更点 基にしたプログラムは4月27日の講義で作成したwhile_caloryを使った、変更 点は経過時間を表示するようにした。また経過時間が一日以上だった場合、最 後のプリントが変わるように設定した。 d)実行画面 type-A 25時間未満(一日)だった場合 1時間歩いた歩数: 1000 2時間歩いた歩数: 2000 3時間歩いた歩数: 2500 4時間歩いた歩数: 3000 5時間歩いた歩数: 3500 6時間歩いた歩数: 4000 7時間歩いた歩数: 4500 8時間歩いた歩数: 5000 9時間歩いた歩数: 5500 10時間歩いた歩数: 6000 11時間歩いた歩数: 6500 12時間歩いた歩数: 7000 13時間歩いた歩数: 7500 14時間歩いた歩数: q 一日の総歩数は58000 type-B 25時間以上だった場合 歩いた歩数(1時間目): 1 歩いた歩数(2時間目): 1 歩いた歩数(3時間目): 1 歩いた歩数(4時間目): 1 歩いた歩数(5時間目): 1 歩いた歩数(6時間目): 1 歩いた歩数(7時間目): 1 歩いた歩数(8時間目): 1 歩いた歩数(9時間目): 1 歩いた歩数(10時間目): 1 歩いた歩数(11時間目): 1 歩いた歩数(12時間目): 1 歩いた歩数(13時間目): 1 歩いた歩数(14時間目): 1 歩いた歩数(15時間目): 12 歩いた歩数(16時間目): 13 歩いた歩数(17時間目): 13 歩いた歩数(18時間目): 124 歩いた歩数(19時間目): 15 歩いた歩数(20時間目): 115 歩いた歩数(21時間目): 113 歩いた歩数(22時間目): 112 歩いた歩数(23時間目): 114 歩いた歩数(24時間目): 1114 歩いた歩数(25時間目): 113 歩いた歩数(26時間目): 113 歩いた歩数(27時間目): q 27時間の総歩行数は1985 e)考察 プログラムの計算があっているか確かめる type-A 1000+2000+2500+3000+3500+4000+4500+5000+5500+6000+6500+7000+7500 58000 type-B 1+1+1+1+1+1+1+1+1+1+1+1+1+1+12+13+13+124+15+115+113+112+114+1114+113+113 1985 今回のプログラムは入力した数値に変わるように設定されている為に規格外 などのときにも想定している、そのためタイムオーバーが起こっても計測を 続ける等の時に活用出来る。しかしこれとは別に24時間で自動的に結果が出 るように設定したものの方がスタンダードだろう。 3.感想 今回の講義ではトラブルが多発したため講義をちゃんと聞くことが出来なかった のが悔やまれる。内容については本格的に踏みこんだものであったと考える。と くに今回新たに出てきたifは今後も活用することになるだろう。 4.参考文献 基礎プログラミング I 第3回 キーボードから入力して計算させるには 「入力し た値をプログラムで使おう」 http://roy/~madoka/2010/r1/03/03_03_theme_01_gets.html 基礎プログラミング I 第3回 キーボードから入力して計算させるには 「条件文のまとめ」 http://roy/~madoka/2010/r1/03/03_08_theme_05_if.html 共同学習者 及川雄寛