○ 第01回について

3コマ48人
4コマ42人

○ Ruby について

○ RDE の使い方

準備

  1. デスクトップ上に "コンピュータ概論" という名前のフォルダを作りましょう。
  2. フォルダ "コンピュータ概論" を開きます。
  3. 画面イメージ

例題1

文字列の出力

puts "こんにちは"

演習1

  1. 「こんにちは」と出力してみましょう(例題1)。
  2. 「いろはにほへと」と出力してみましょう。
  3. 「寿限無寿限無」と出力してみましょう。
  4. 自分の名前を出力してみましょう。

例題2

階乗の定義と計算

def fact(n)
  if (n > 0) then
    return n * fact(n-1)
  else
    return 1
  end
end

puts fact(10)
puts fact(50)
puts fact(100)

演習2

  1. 10,50,100 の階乗を計算・表示してみましょう(例題2)。
  2. 0,1,2,3,4,5 の階乗を計算・表示してみましょう。

補足

なお、インデントや空白は人間が見易いように揃えているだけですから

def fact(n)
if (n > 0) then
return n * fact(n-1)
else
return 1
end
end

puts fact(10)
puts fact(50)
puts fact(100)
if (n > 0) then return n * fact(n-1)
else return 1
end end
puts fact(10);puts fact(50);puts fact(100)
と書いてもコンピュータにとっては同じことです。

○ オブジェクト・変数・代入

オブジェクト

オブジェクト = コンピュータ内の「もの」、数や文字列や配列など。

変数

変数 = オブジェクトを指し示すための「名前」

ruby の場合は変数名(識別子)として、英小文字(a,b,...z)から始まる英数字の並び (含む '_')が使用できます(ここではそういうことにしておいてください)。

代入

str = "こんにちは"
euler = 2.718281828
x = 12345
a = ["a", "b", 1, 2]
y = x
x = 3.1415

演習3

1行ずつ実行してみましょう

str = "こんにちは"
puts str
euler = 2.718281828
puts euler
x = 12345
puts x
a = ["a", "b", 1, 2]
puts x
y = x
puts y
x = 3.1415
puts x

○ データ型

コンピュータは無限精度の実数を処理することはできません。 整数のみであれば「厳密」に計算できます。 浮動小数点数の場合は「近似」計算(有効桁数は大雑把に10進15桁くらい)となります。 整数と浮動小数点数が混ざった計算の結果は浮動小数点数になります。

+
-
*
/ 整数計算と浮動小数点数計算では挙動が異なる
%剰余整数計算のみ
**冪乗/巾乗

演習4

puts 1.0 + 2.0
puts 2.0 * 3.0
puts 5.0 - 8.0
puts 9.0 / 2.0
puts 1+2
puts 2*3
puts 5-8
puts 9/2
puts 9%2
puts 2**10

演習5

  1. 変数 x に 1 を、y に 2 を、z に 3 を代入して x+y+z と xyz と x2 + y2 + z2 を計算しましょう。
  2. 変数 x に 1.0 を、y に 2.0 を、z に 3.0 を代入して x+y+z と xyz と x2 + y2 + z2 を計算しましょう。
  3. 1年間(閏年でない365日とします)は何時間?何分?何秒?

文字列

+文字列の和

演習6

puts "Hello, " + "world!"
puts "こんにちは" + "Hello"
puts "こんにちは" + " " + "Hello"
puts "寿限無寿限無\n" +
     "五劫の擦り切れ\n" +
     "海砂利水魚の水行末\n" +
     "雲来末風来末\n" +
     "食う寝るところに住むところ\n" +
     "やぶら小路ぶら小路\n" +
     "パイポパイポパイポのシューリンガン、\n" +
     "シューリンガンのグーリンダイ、\n" +
     "グーリンダイのポンポコピーのポンポコナーの長久命の長助\n"

演習7

数(オブジェクト)の文字列への変換、文字列(オブジェクト)の数への変換。
  1. pi = 3.1415
    puts "PI is " + pi
    
  2. pi = 3.1415
    puts "PI is " + pi.to_s  
    
  3. pi = "3.1415"
    puts "PI is " + pi
    
  4. pi = "3.1415"
    puts 1 + pi.to_f