コンテンツへスキップ

講義 #5 テーマ1(計算を知る):Ruby でプログラミング(1)

  • by

以上のように

コンピュータの中でどういうことが
行われているか

ということについて大体知った
わけですが

今度はそれを実際に実感してみ
ましょう

そのためにはプログラム

計算の指示書を自分たちで実際
に作ってみましょう

そのことをプログラミングと言
います

今回はrubyというプログラミング言語
を使ってプログラミングをやって

みます

rubyとはプログラムを書くための言葉
の1つ

プログラミング言語の1つです

これは日本人のまつもとさんが
考案した日本発祥のプログラミング言語

世界的にも非常によく使われている
言語の1つです

今回はこれを使っていきましょう

ところでrubyというのは高水準言語

人に分かりやすいように設計されている
プログラミング言語と言われて

おります

それに対してコンピュータのための
言語

コンピュータが実際に理解する
言語のほうは機械語と言われて

います

この2つの差については次のテーマ
のところでもう少し詳しく説明

します

今回はこのrubyrubyにはいろいろな
機能があるんですけれども

そのごくごく単純な機能だけを
使ってプログラミングをしてみ

ましょう

まずプログラムの基本形

rubyのプログラムの例を使ってプログラム
の基本形を見ていきます

こちらにありますのがrubyのプログラム
の例ですし

それを実行したのがこの例です

実際にどういう計算をしている
かというのは実習のところで考えて

いきましょう

このプログラムを見てみますと

いろんな字が並んでますけれども

この灰色の部分が実際に計算を
行う部分です

ここのところでいろいろな命令
が書かれています

じゃあプログラムとはどういう
ものか

いろんなプログラミング言語が
あるんですけれども

いろんなプログラミング言語にも
共通するような一般的なルール

を簡単に説明してみましょう

まずプログラムはプログラムの名前
のファイルに格納されます

例えばこれが1つのプログラムで

それはsqrt.rbというこういう名前
のファイルに格納されています

あるいはこちらも1つのプログラム
ですけれども

これもこういう名前のファイル
にしまわれていてメモリに入って

います

次プログラムは命令の列です

ここにも書いてあるような命令
がずっと並んでます

これを原則的には上から下に順々
に実行していくのがプログラム

です

もちろん例外もありまして繰り返し
文とか条件分岐文などは

その場合ちょっと順序が変わった
りするんですが

原則は上から順々に命令を実行
していくのがプログラムです

もう少し共通のルールを見てみ
ましょう

プログラムでは変数というのが
使われます

これは計算の途中結果を入れる
箱です

要するにデータを入れておく箱
です

その箱には名前をつけることができます

aとかbとかwaとか

ローマ字で名前をつける

アルファベットで名前をつけます

データはメモリというところに
記憶されていたわけです

コンピュータの中では実際には
こういうデータはメモリに記憶

されているんですが

プログラムの中ではこうした変数
という箱のようなものを使って

データをしまっておきます

そうやって計算を作っていきます

それから命令文です

プログラムの中ではコンピュータの
指示を命令として書いていきます

代表的な命令文には代入文繰り返し
文などがあります

そのほかにも条件分岐文なども
ありますが

まず最初にこの代入文

繰り返し文という代表的なところ
を勉強していきましょう

それでは例えばこのrubyのプログラム

このrubyのプログラムを見ながら

実際にrubyというプログラミング言語

こうしたルールがどういうふう
に決まっているかを見ていきましょう

これが今見るプログラムです

これは何を計算するプログラム
かと言いますとこのプログラム

を実行する

この黄色のところをタイプして
打つと

答え11というのが出てきます

これは8+3を計算するプログラム
になっています

その仕組みどうやって8+3を計算
するかは後で実際に見ていきましょう

まずはプログラムの要素を考えて
いきます

まず最初に変数です

計算の途中結果を入れる箱です

このプログラムを見てみますと

abwaという文字が使われています
けれどもこれらが変数です

次に命令文を考えてみましょう

最初に代入文というのを見てみ
ます

代入文というのは変数に計算した
値を格納せよという命令です

例えば1行目に書いてあるのがa
8という代入文です

このイコールというのは数学の
イコールとは違いまして

8をaに代入せよという命令です

ですからこの命令が実行される
とaの中に8が入ります

もう1つ例を見ましょう

これはwawa+1と書かれた命令ですけ
れども

まず最初に例えばwaのところに
9が入っていたとしましょう

そうするとこの右辺の計算をします

wa+1ですから10です

10を計算してそれをwaに代入せよ

ほうり込みなさい格納しなさい
という命令文です

そうすると今までの9が消されて
10が上書きされます

これが代入文です

次に繰り返し文です

繰り返し文は条件が成り立つ間

指定した範囲の命令を繰り返せ
という文です

例えばこれが繰り返し文です

今度は複数の文になっています

これはwhileというのが書いてあると

繰り返し文だとコンピュータは
分かるわけです

ではどこまでが範囲かと言うと

endと書いてあるところまでが範囲
です

このwhileからendまで囲まれたところ

この例では2つ文がありますけれども

この2つの文を繰り返す

これが繰り返し文です

そのときの条件というのがここに
書いてあります

これがbが0より大きかったらこれを
繰り返しなさい

これをやりなさいと

こういうのがこの命令です

その指定範囲がこれです

例えばbが3だったとしましょう

そうしたきにはこの条件が成り
立っています

3は0より大きいですから

bの中身の値が0より大きいので
条件が成り立ってます

ですのでここの部分を実行します

ではbが0だったらどうでしょう

bが0だったらこの条件は成り立
っていません

ですのでこのwhile文はこの指定
範囲をやらないで

endの次の文に飛びます

while文というのはこの条件が成り
立っていると

この指定範囲を実行し毎回毎回
この条件が成り立つかをチェック

して

成り立たなくなったらやめるという
のがwhile文です

では実際にコンピュータになった
つもりで

このプログラムを実行して見て
みましょう

ここで皆さんにちょっと申し上げ
たいんですけれども

プログラムを実行する

プログラムを考えるというとき
には辛抱強くなければいけません

コンピュータは機械ですから

これからやることを辛抱強くやって
くれます

皆さんはそんなこと面倒くさい
と思うかもしれませんが

まずは辛抱強くコンピュータになった
つもりで実験してみてください

ではまず最初の文からいきます

最初の文はa8という代入文です

8をaに入れなさいという文です

ですからaに8が入ります

次の行に行きましょう

次はbに3を入れなさいという代入
文ですのでbに3が入ります

その次はwaにaの右辺の値を入れ
なさい右辺の値というのはaです

aの値は今8ですからwaの中に8が
入ります

次に行きましょう

これが繰り返し文です

条件がbが0より大きければ繰り返し
なさいということなので

bを見てみますと今bの値は3です
から条件が成り立っています

ですから次の文をやります

ここの計算をします

今waの値は8ですから

wa+1が99がwaの値に上書きされます

その次行きましょう

bの値は3です

b-1は2です

ですから2がbの変数の箱の中に
しまわれます

また元に戻ってきます

endまで指定範囲が終わったので

上まで戻ってきてもう1回条件を見
ます

そうするとbの値は2です

ですから下にいきます

そうすると今waの値は9ですから

9+1が計算されて10がwaの値に上書き
されます

次に行きましょう

ここでもbの値は2ですけれども

2-1が計算されてその1がbに上書き
されます

また元に戻ります

まだ0より大きいですね

ですから次に行きます

10+1が計算されてwaのところに上書き
されます

次に行きましょう

b-1が計算されて0です

それがbのところに上書きされます

戻ってきます

そうするとbの値は0です

ですから条件が成り立ってません

ですからここに行きます

このwhile文が終わってこちらに
きます

ここではwaの値を画面に表示せよ
という命令が実行されます

そうするとここで答えが出るわけ
です

これ何をやっていたかと言うと

bの値が3だったんですが3がどんどん
減りながらwhileの繰り返しをぐるぐる

回りました

何回回ったかと言うと3210になるまで
ですので3回回りました

その間にwaの値が1ずつ増えてい
ったわけです

ですからもともとはaも値が8だった
のですけれども

それに1ずつ足されて8+311が計算
されたわけです

つまりこのプログラムは8+3を計算
する

aに入っている値とbに入っている
値のwaを計算するプログラムになっています

ここで皆さん質問があるかもし
れません

ここで命令があるじゃない

さっきの代入文とか繰り返し文
以外の命令がありますよね

実は命令文今までは計算のための
命令文を勉強しましたけれども

もちろんプログラミング言語の中
には人とやり取りするための命令

文も必要です

そういう中に入力文出力文があります

このputsというのは

この括弧の中に入っている変数
の名前

変数の名前が括弧の中に書いて
あるわけですが

この変数の名前の変数に入っている
値を画面に表示せよという命令

です

では入力について考えてみましょう

今はaを8bを3としましたけども

こういうふうに書くとキーボード
から入力をする形になります

この実際の意味は今回は省略します

こういうふうに書くとモニター
のほうでプログラムを実行すると

入力してくださいと

コンピュータが待っていて

そこで例えば8や3を入れると

その右辺の値が入力されたデータ
8

次に入力されたデータ3になって

それがaとbに入って計算が進ん
でいきます

ですからこの入力文をすると

そして8とか3をタイプすると8とか
3が変数の中に入って実行していき

ます

これが入力文です

ただこれら入力文出力文は

計算の本質というよりも人間との
やり取りのために必要な文です

ので

今回はちょっと簡単に説明して
終わりにしましょう

ここの授業ではこの計算のところ
を中心に考えていきたいと思います

Facebooktwittermail

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA