目次に戻る  前のページへ  次のページへ


計算してみよう --四則演算と剰余--

  1. 演算

    「計算機」というくらいですからコンピュータは計算をするのが仕事です.プロ グラミング言語においても,いわゆる科学計算とは無縁のプログラムでも中では 計算を行っているのが普通です.ただし,計算と言ってもさらに正確には「演算」 であって,この中には「論理演算」というものもありますので,単純な数値計算 以外のものが多く含まれています.ここでは,演算の中のもっとも基本となる 「四則演算」と実際によく利用される「剰余」について学習します.

  2. 四則演算の記号

    表1に四則演算および剰余に利用する記号について示しておきます.×や÷と言 う演算記号がASCII文字 (アメリカにおいてコンピュータで文字を表現するため に用意されている文字) に無いので通常とは違う記号になっています.また, 「剰余」とは割算における答え (商) を求めるのではなく,余りの方を求める演 算です.

    表1 四則演算記号

    演算記号
    足し算 (和) +
    引き算 (差) -
    かけ算 (積) *
    割算 (商) /
    あまり (剰余) %

  3. 演算と型

    先ほど紹介した変数の型は演算を行う際に重要になってくることがあります.ま ずは,次の例で試してみましょう.なお,これからのスクリプトはこのように ソース を用意していますので,リンク部分を右クリックして「リンク先をディスクに 保存」すれば,ダウンロード可能です.ダウンロードの際に保存先を聞かれるダ イアローグウィンドウ (図1) が出てきますので,今回作業しているディレクト リ (フォルダ) である ruby2004 に保存先を指定してダウンロードを 行います.次回からはそのディレクトリ (フォルダ) が最初から指定されるよう になります.

    図1 保存先選択ダイアローグ

    print "1 + 1 = ", 1 + 1, "\n"
    print "1 + 1.0 = ", 1 + 1.0, "\n"
    print "1 - 1 = ", 1 - 1, "\n"
    print "1 - 1.0 = ", 1 - 1.0, "\n"
    print "1 * 2 = ", 1 * 2, "\n"
    print "1 * 2.0 = ", 1 * 2.0, "\n"
    print "1 / 2 = ", 1 / 2, "\n"
    print "3 / 2 = ", 3 / 2, "\n"
    print "1.0 / 2 = ", 1.0 / 2, "\n"
    print "1 / 2.0 = ", 1 / 2.0, "\n"
    print "1 / 3 * 3 = ", 1 / 3 * 3, "\n"
    print "1 % 3 = ", 1 % 3, "\n"
    print "5 % 3 = ", 5 % 3, "\n"
    

    動作については納得が出来ますでしょうか.整数型の演算では小数部分は一切無 視されますので,割算で影響が出てきます.また,整数型と浮動小数点数型の混 じった演算においては,自動的に浮動小数点数としての演算が行われます.

    剰余については,初めて扱うときには分かりにくい人が多いようです.大学生で も,「1を3で割った余り」が理解できない人もときどきいて授業で苦しんでい ますが,一度分かったらなんてことはない計算です.

    文字列も演算が行われる場合があります.次の スクリプト を試してみましょう.

    str1 = "abc "
    str2 = "def"
    
    sum = str1 + str2
    pro = str1 * 5
    
    puts sum, pro
    

    文字列に関しては,文字列どうしの和と文字列と整数値の積が可能となっていま す.

  4. 自己代入

    「自己代入」もプログラミングにおいて非常に重要な概念です.また,プログラ ミング言語と数学の最も異なる点とも言えるもので,数学的な常識があると余計 に理解しにくいものですので,これはこれとして覚えて行く方がよいでしょう.

    次のような スクリプト を実行してみます.このスクリプトには文法的なエラーは ありません.

    a = 1
    a = a + 2
    a = a + 3
    
    puts a
    

    先ほど等号の記号 (=) はプログラミング言語においては「代入」であると紹介 しました.2行目と3行目は数学的にはおかしいことになりますが,ここでは代 入であるので,正常に動作します.これは,最初に a の値を1に設定 (このような操作を「初期化」と言います.) しました.2行目ではその a に2を足したものを改めて a に代入することを意味し ています.3行目も同様の操作で値が3に増えている変数 a に対して,3を足してその後でその値6を改めて変数 a に代 入します.そこで,結果としては6が得られます.自己代入は四則演算 以外にも論理演算でも行われますが,そちらはややこしいので今は触れ ません.また,自己代入演算子として簡略化されたものが定義されてい ます.例えば,上の例の和であれば,2行目は次のように書き直すこと が出来ます.

    a += 2 

    そのほかの演算子についても,次のスクリプトで試してみましょう.

    a = 1
    puts a += 2
    puts a -= 5
    puts a *= 7
    puts a /= 3
    puts a %= 2
    

    初めのうちは,省略しないで書く方が間違いが少ないかも知れません.また,動 作を実際に紙と鉛筆で確かめながら,スクリプトを作成して行く方が確実でしょ う.


 目次に戻る  前のページへ  次のページへ