◎ 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) などと書いてやるとよい。