課題
想定するプログラム実行例
次にプログラムのファイル名が仮に「hms.rb」であったとして, 想定される実行例を示します.
秒数を(時間,分,秒)に直します
何秒? 86400 ⏎
86400秒は24時間0分0秒です
$ ruby hms.rb
秒数を(時間,分,秒)に直します
何秒? 934572 ⏎
934572秒は259時間36分12秒です
$ ruby hms.rb
秒数を(時間,分,秒)に直します
何秒? 128 ⏎
128秒は0時間2分8秒です
この実行例でも分かるように,このプログラムではタートルグラフィクスを利用しません. 新たなウインドウは開かず,Terminal(端末)のウインドウ上でデータを入力し,同じウインドウに結果を出力します.
プログラムの作成方法について
今回はプログラムのテンプレートは提供しません. その代わりにプログラムのサンプルをこのページの末尾に示します. 今回のプログラムを作成するヒントにしてください.
Emacsで新しいファイルを作る方法については, 「[課題00]: マンデルブロ集合画像生成プログラム」を参照してください.
プログラムヘッダ
次に示すコードをプログラムの先頭にコピーして入れておくようにして下さい(必要事項は記入して下さい). なおEmacsでRubyファイル(○○○○.rb)を新規作成すると, このヘッダが自動的にファイルの先頭に書き込まれます.
=begin
所属:
氏名:
学生番号:
難易度(5段階評価):
感想など(任意)
=end
[参考] ヘッダの調整
EmacsでRubyファイルを新規作成したときに取り込まれるヘッダは次のファイルに記述されています.
HOME > .emacs.d > template > template.rb
このファイルを編集して保存すれば,次回からは(新たにEmacsを起動すれば),変更後のヘッダが自動的に取り込まれるようになります.
なお「.」から始まる名前のファイル,フォルダ(ディレクトリ)は, 通常は見えないようになっています. Emacsで新規ファイルを作成する画面で「Show hidden files」にチェックを入れれば,「.」から始まる名前のファイルとディレクトリも表示されるようになります.
☑ Show hidden files
データ入力
次のように書くことで,Terminal(端末)ウインドウに質問文を表示しつつ, キーボードから文字列を読み取ることができます.
# 質問文を端末のウインドウに表示して,キーボードから文字列を読み取る
print "何秒? "
str = gets()
この例の場合,読み取った文字列は「変数str」に代入されます. 変数名は自由に決めて構いません.
なお,ここで読み取られるデータは,キーボードから入力された数字が並んでいる文字列です. コンピュータ内部で文字列と数値は異なるデータとして扱われます. 「数字が並んだ文字列」を「数値」として解釈するには文字列を変換する必要があります.
整数への変換 | 文字列.to_i |
---|---|
小数への変換 | 文字列.to_f |
# 質問文を端末のウインドウに表示して,キーボードから文字列を読み取る print "何秒? " str = gets() # 文字列strを整数に変換してsecに代入する sec = str.to_i
データ出力
Terminal(端末)のウインドウにメッセージを表示するにはprintやputsを使います(他の方法もあります).
print "何秒? " str = gets() sec = str.to_i puts "入力された値は#{sec}秒です."
- メッセージを" "で括ります.
- メッセージ内に「#{式}」と書くと式の値を評価してから表示します(この場合「#」以降はコメントとはみなされません).
- putsではメッセージの後に改行します. printでは改行しません.
四則演算と剰余演算
Rubyでの四則演算の演算子は次の通りです.
加算 | + |
減算 | - |
乗算 | * |
除算 | / |
- 乗算の記号は省略できません.
- (整数)/(整数)の結果は「商」になります.
除数,被除数の少なくともどちらか一方が整数でなければ通常の除算と同じ結果になります.
5 / 2 # ==> 2 5.0 / 2 # ==> 2.5 5 / 2.0 # ==> 2.5 5.0 / 2.0 # ==> 2.5
- 算術演算の優先順位の指定
算術演算の優先順位は数学と同じです. また数学と同じように括弧で優先順位を指定できます. ただし計算式の括弧には常に( )を使います. { }や[ ]は使いません.
剰余を計算する演算子もあります.
5 % 2 # ==> 1 9 % 3 # ==> 0 11 % 4 # ==> 3
サンプルプログラム
サンプルプログラムを示します. ブラウザの画面で開いたときに文字化けしてしまう場合には, ダウンロードしてEmacs等で開いてみて下さい.
注意
以下のことに注意して下さい.
- プログラムを変更したら必ず保存してください.
- プログラムを実行してエラーがでたら「よくある質問」を参照してみて下さい. もちろん分からないことがある場合には演習中に質問して下さい.
- プログラムを提出する際には「課題提出に関する注意」を必ず守るようにして下さい.