演習に関するよくある質問とそれに対する回答です。
項目
質問と回答
九九を計算し段毎に改行し結果をそのまま表示すると.
1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16…
と,なってしまいます.
これでは列がそろわず九九表とはいえませんね.
列をそろえるためには以下のような方法があります.
・桁数を調べて条件分けにより空白を入れる方法
一つの答えに4文字分のスペースを使うとします.
このとき,答えの桁数を調べて,桁数と足して4になる分の空白をいれることにより,結果の出力の列をそろえることができます.
・Tabを挿入する方法
答えと共にTabを出力することで,一定間隔に答えを並べることができます.
Tabは改行と同じように特殊文字を使うことで出力できます.(教科書P.215参照)
・printf,sprintfメソッドを使用する方法
printfはprintと異なり書式付で文字列を出力するメソッドです.
書式として出力の桁数を指定することにより一定間隔で結果を出力することができます.(教科書P.217参照)
Wordで使用されるフォントによって文字の大きさが異なる場合があります.
それによりコマンドプロンプトでは空白や文字数が合っていればそろっていたのに,ぐちゃぐちゃになってしまうという現象が起きます.
そこで結果の部分のフォントを等間隔フォント(MSゴシック等)にすることでコマンドプロンプトと同じような出力を得られます.
次のようにします.
Math::PI
rubyではモジュール内に定義された定数を::を使ってアクセスします.
print("飲酒可能\n")
を実行すると,
飲酒可能n
となってしまいます.
その場合は-Ksオプションを利用しましょう。
実行の際、
ruby -Ks スクリプトファイル名
とします。
(第1回テキスト 演習1-17, 教科書 p. 15 参照)
Z:\progI> ruby hello.rb <== 基本 Z:\progI> hello.rb <== どうして大丈夫? Z:\progI> hello <== どうして大丈夫?
さらに,
Z:\progI>hello,rb <== どうして大丈夫? Z:\progI>hello/rb <== どうして大丈夫?
print (;a") <== 大丈夫
print ("a", "b") <== warning !
ハッシュの特徴として順番がないことが挙げられます。
そのため、eachメソッドを用いてキーと値を取り出すとしても、
格納した順番で取り出すことができず、どの順番で取り出されるかはわかりません。
(教科書 p. 39, 379 参照)
クリックではなく右クリックをしてください。
右クリックメニューの「対象をファイルに保存(A)...」を選択し、
適当な場所(たとえば、Z:\progI\)に保存したファイルを保存しましょう。
保存したファイルをダブルクリックすることで実行できます。
Meadowの文字コードが正しくない可能性があります.
M-x set-buffer-file-coding-systemと入力しEnterキーを押す.(M-xはAltキーを押しながらx)
sjisと入力してEnterキーを押す.