◎ ruby の実行の仕方(2通り) irb を実行し、 次のいずれかを行えば良い:
load("a.rb")
と打ち込む。(長いプログラム用。)
◎ レベル1. 1 から 10 までの整数を印字せよ。
for i in 1..10 p i ## p は print のこと。 end
◎ レベル2. 1 から 10 までの整数の和を求めよ。
s=0 for i in 1..10 s=s+i end p s
○ 応用問題(例): 15 から 100 までの整数の積を求めよ。
|
◎ レベル 3. 関数を定義し、実行させよ。
def mya ### mya は "aaa" を表示するだけの関数 p "aaa" end def myb ###myb は "bbb" を表示するだけの関数 p "bbb" end ##### 以下で mya,myb を 10回実行させることができる。 for i in 1..10 mya myb end
◎ レベル4. while 文(繰り返し)
n=100 while n>=1 do ### n が1以上の間ずっと繰り返す p n n=n/2 ### n を2で割った商を改めて n とおく。 end
◎レベル 5.
def torikae(a,b,n) r=n% 2 ### r は c を 2で割った余り if (r== 0 ) a1=a else a1=a*b end b1=b^2 n1=n/2 return([a1,b1,n1]) end
上のように(正しく)入力した後、
torikae(1,2,5)
を実行すると、何が得られるか?
◎ 利用例(レベル6)(レベル5の続きに書く。)
a,b,n=1,5,1000 while n>=1 a,b,n=torikae(a,b,n) ## このように変数をいっぺんに代入できる。 end
○
一般に正の数
を レベル4のtorikae(a,b,n) で取り替えちゃった後でも
の値は
変わらないことを納得せよ。(納得するだけでいい。)その後、
上のプログラムをうまく変えて
を求めるプログラムを作れ。
◎最終問題
(レベル7):
のとき、
を
で割ったあまりを求めよ。
ヒント: レベル5のプログラムの計算のそれぞれに、つぎの考えを用いて扱う数を あまり大きくならないようにせよ:
整数
と正の整数
とが与えられたとする。積
を
で割ったあまりは、あらかじめ
を
で割ったあまり
の
積
を
で割ったあまりと等しい。
(もっと一般に、正の整数
が与えられたとき、
かつ
ならば
である。)
なお、積ではなく和や差でも同様のことが成り立つ。
○付記:
ruby では、
は
を「あまりを許した割り算」で
で割った商(つまり33)
を指すのが標準の動作であるが、場合によっては
(プログラム側で動作を指定することにより)
を分数(
と等しいアレ)と認識する場合もある。
そのような場合、上で10/3, n/2 などとある部分は、
それぞれ
10.div(3), n.div(2)
などと書いてやるとよい。