ProgI/FAQのページ


演習に関するよくある質問とそれに対する回答です。

項目


質問と回答

九九表を作ったのですが,桁が増えていくと列がずれてきてみにくくなるのですが,どうにかなりませんか?

九九を計算し段毎に改行し結果をそのまま表示すると.
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に貼付けると,折角フォーマットをそろえたのにぐちゃぐちゃになってしまいます.

Wordで使用されるフォントによって文字の大きさが異なる場合があります.
それによりコマンドプロンプトでは空白や文字数が合っていればそろっていたのに,ぐちゃぐちゃになってしまうという現象が起きます.
そこで結果の部分のフォントを等間隔フォント(MSゴシック等)にすることでコマンドプロンプトと同じような出力を得られます.

Mathモジュールの定数PIをrequireなしで利用する方法は?

次のようにします.

Math::PI

rubyではモジュール内に定義された定数を::を使ってアクセスします.

Meadowの設定は正しいのに日本語の表示結果が変なんですが...

print("飲酒可能\n")

を実行すると,

飲酒可能n

となってしまいます.

その場合は-Ksオプションを利用しましょう。
実行の際、

ruby -Ks スクリプトファイル名

とします。
(第1回テキスト 演習1-17, 教科書 p. 15 参照)

コマンドプロンプトでの実行で,ruby hello.rb としなくてもhello.rbなどでも実行できてしまいます.

Z:\progI> ruby hello.rb        <== 基本
Z:\progI> hello.rb       <== どうして大丈夫?
Z:\progI> hello            <== どうして大丈夫?

さらに,

Z:\progI>hello,rb       <== どうして大丈夫?
Z:\progI>hello/rb       <== どうして大丈夫?

printと"("の間にスペースを入れると,warning: don't put space before argument parentheses と表示されるときと,されないときがあります.どうしてなんでしょう.

print (;a")    <== 大丈夫
print ("a", "b")  <== warning !

ハッシュのeachメソッドで出力される順番と格納した順番が違うのですが,正しいのでしょうか.

ハッシュのeachメソッドで出力される順番と教科書の出力順番(p.41)が違うのですが,正しいのでしょうか.

ハッシュの特徴として順番がないことが挙げられます。
そのため、eachメソッドを用いてキーと値を取り出すとしても、
格納した順番で取り出すことができず、どの順番で取り出されるかはわかりません。
(教科書 p. 39, 379 参照)

演習1-2ですが,クリックすると×印のアイコンが出てしまうのですが,どうしたらいいでしょう.

クリックではなく右クリックをしてください。
右クリックメニューの「対象をファイルに保存(A)...」を選択し、
適当な場所(たとえば、Z:\progI\)に保存したファイルを保存しましょう。
保存したファイルをダブルクリックすることで実行できます。

実行結果の日本語が文字化けしてしまうのは何が原因でしょうか.

Meadowの文字コードが正しくない可能性があります.

  1. 最初に
     M-x set-buffer-file-coding-system
    と入力しEnterキーを押す.(M-xはAltキーを押しながらx)
  2. 次に
     sjis
    と入力してEnterキーを押す.
    ステータスバーの左端の表示が,S\--となっていればOKです.

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS