以上のように
コンピュータの中でどういうことが
行われているか
ということについて大体知った
わけですが
今度はそれを実際に実感してみ
ましょう
そのためにはプログラム
計算の指示書を自分たちで実際
に作ってみましょう
そのことをプログラミングと言
います
今回は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が変数の中に入って実行していき
ます
これが入力文です
ただこれら入力文出力文は
計算の本質というよりも人間との
やり取りのために必要な文です
ので
今回はちょっと簡単に説明して
終わりにしましょう
ここの授業ではこの計算のところ
を中心に考えていきたいと思います