カテゴリー
Ruby

プログラムの基礎を知ろう

この章ではRubyのプログラムの基礎について説明します。
初めに先ほどインストールしたRubyのインタプリタが正常にインストールされたかどうかを確認しますので、コマンドプロンプトを起動した後に9と入力してください。
以下の画面が表示されたら、成功です。9 では基礎から説明します。
文字を出力するには以下のように9を使います。
例をみてみましょう。9 これをテキストエディタで書いて、保存してください。
例えば9のように9という形式で保存します。
そして、C の直下にRubyというフォルダを作成して、その中にファイルを入れます。
フォルダ名は自由に付けていただいても結構ですが、この講座ではRubyと付けます。
文字コードの指定は「Notepad++」の場合は「フォーマット」から9を指定してください。
この指定をしてからプログラムを書いて保存します。
どのテキストエディタを使っていても、文字コードは9で保存してください。9 コマンドプロンプトでファイルを実行するためにはそのファイルのある場所まで移動しなくてはいけませんので、「cd C:¥Ruby」と入力します。
つまり、9と書きますとそのファイルのある場所まで移動することが出来ます。
そして、その移動した先で9と入力しエンターキーを押しますと以下のように実行結果が出力されます。9 では例について詳しく説明します。
① printもputsも画面に文字等を出力するための機能を持っています。
print はデータを改行しないで出力します。
printの後のカッコはあってもなくてもいいです。
puts はprintとは違ってデータを改行して出力します。

②文字列を出力する時には必ず9もしくは9で文字を囲んでください。
文字を出力するときにはダブルクォート、シングルクォート自体は出力されません。
ダブルクォートやシングルクォートに囲まれた文字を文字列と言います。
しかしダブルクォートの中のダブルクォートそのものを出力しようとする時には注意が必要です。
例えば9と出力する場合には9のように書いてはいけません。
これを実行すると以下のようなエラーが出ます。9 エラーを出さないためには以下のように書きます。9 つまり、出力させたいダブルクォートの前に9を付けてください。
そうするとダブルクォート自体が出力されます。9 「Notepad++」を使っている場合、9ではなく9という表記になりますが、9と同じ意味です。
シングルクォートの中にシングルクォートそのものを出力させたい場合は以下のように書きます。9 つまり、シングルクォートの前に9を付けて9と書きます。
しかし、ダブルクォートの中にシングルクォートを含める時やシングルクォートの中にダブルクォートを含める時には9を付ける必要はありません。9 結果は以下の通りです。9

③ C言語などの言語は文の終わりにセミコロンを付ける必要がありますが、Rubyは1行に1文書く限り付ける必要はありません。
他の言語経験者でセミコロンを付けるのが慣れているのであればセミコロンを付けても問題ありません。
ですので9のように1行に2文書くとエラーになりますので、どうしても1行に2文書きたい場合は9のように文と文の間に9を付けます。

④ print(123)のようにカッコの中に数値を記述する時にはダブルクォートやシングルクォートで囲う必要はありません。
結果は「123」が出力されます。

⑤プログラムの中にはコメントが書けるのですが、以下の赤枠の箇所がコメントになります。9 「#」の後にコメントを書くと行の末尾までがプログラムに反映されなくなります。
一部のプログラム自体を実行させなくすることやプログラムの意味などを書きます。
複数行のコメントを書きたい場合には9から9の間にコメントを書いてください。

⑥ putsは文を改行してくれますが、printで改行したい場合は以下のようにダブルクォートの中に
9を付けてください。

「Notepad++」を使っている場合、9となります。9 結果は以下のように改行されて出力されます。9 「¥n 」を使って改行が出来るのはダブルクォートの中だけであり、シングルクォートの中で9のように改行文字を書くと以下のようにそのまま改行文字が出力されて、改行の機能はなくなってしまうので注意してください。9
⑦ Rubyで使われるデータをオブジェクトと言います。
例えば「”Hello”」は文字列オブジェクトです。文字列オブジェクトは詳しく言いますとstringクラスのオブジェクトになりますが、詳しい説明は「stringクラスについて知ろう」で説明します。
「123」は数値オブジェクトです。数値オブジェクトは詳しく言いますとIntegerクラスのオブジェクトになりますが、詳しい説明は「Numericクラスについて知ろう」で説明します。9 =>このプログラムは文字コードにUTF-8を使ってコマンドプロンプトで出力していますが、コマンドプロンプトの文字コードはShift_JISですので、出力する時には文字化けしてしまいます。ですので、このUTF-8をShift_JISに変換してから出力しなくてはいけません。
その文字コードの変換をしてくれるのがkconvと呼ばれているライブラリです。
ライブラリとはRubyであらかじめ機能が定義されているファイルの集合体です。
例えば、kconvは文字コードの変換をしてくれる機能を持ちますが、このような便利な機能が集まっているのがライブラリです。
また、ライブラリをプログラムの中に取り込むにはrequireを使用しますが、この例では9と書いています。
⑨このプログラムはUTF-8で作成していますが、それを明記しているのが9の部分です。この記述は決まりきった型なので、このまま覚えてください。
今ではUTF-8は主流の文字コードですので、この教材でもUTF-8を使用します。

カテゴリー
Ruby

テキストエディタをインストールしよう

Rubyのプログラムを書くためにテキストエディタを使用しますので、以下のいずれかのテキストエディタをインストールしてください。

9

カテゴリー
Ruby

Rubyとは何か

Rubyは まつもとゆきひろ が1995年に開発した言語です。
C言語はコンパイルを行って実行ファイルを作成してからプログラムを実行しますが、Rubyはその都度プログラムを翻訳しながら実行します。
コンパイルとはプログラムをコンピューターが理解できるように翻訳する作業のことを言います。
ではRubyを実行するための準備をします。
Rubyでプログラムを実行するにはプログラムを解釈するソフトウェアが必要です。これをインタプリタと言いますが、これを今からインストールしますので、以下の順番通りに進んでください。
〇以下のURLにアクセスしてください。1 〇以下の赤枠のダウンロードをクリックします。1 〇ダウンロードをクリックしますと以下の画面が表示されますので、その中の以下の赤線で囲まれている箇所をクリックします。1 〇 次に以下の画面に移りますので、その中のDownloadをクリックしてください。1 〇次に以下の画面に移りますので、その中の1をクリックしてください。この箇所はバージョンのアップにより変わる可能性がありますので、その時の最新のバージョンをクリックしてください。1 〇「Ruby1.9.3-p286」をクリックしますと以下の画面が表示されますので、実行をクリックしてください。1 実行をクリックしますと以下の画面が表示されますので、日本語もしくは英語を選択して、OKをクリックしてください。1 〇次に以下の画面が表示されますので1を選択して、Nextをクリックしてください。1 〇次に以下の画面が表示されますので「Add Ruby executables to your PATH 」に印を付けて、Installをクリックしてください。8 〇 Installをクリックしますとインストールが始まります。9 〇これでインストールは終わりましたので、Finishをクリックしてください。9

カテゴリー
Cシャープ

例外処理について知ろう

この章では例外処理について説明します。
例外とは、プログラムの実行過程で発生するエラーのことを言います。
0による除算や配列の添え字の数を超えて実行しようとするとエラーが起こります。
例外が起こったときに、予想外の動きをしないためには例外処理を行う必要があります。
例外処理をすることで プログラムが途中で中断されることなく続けることができるメリットがあります。
では例をみてみましょう。11 C#には例外を処理するためのクラスが備わっているのですが、それがExceptionクラスです。
このクラスを基本として、様々な例外処理が行われます。
例えばこの例のDivideByZeroExceptionクラスは Exception クラスの子クラスですが、0で除算した際の例外処理を行います。1 この例の処理の場合はcatchの引数に1と記述し、次にcatchのブロック内に1という形式で記述します。
Messageはプロパティですが、ここに例外の文字列が格納されています。
結果は以下の通りです。1 例外クラスはDivideByZeroExceptionだけではないので、他の例外も紹介します。111 この例では配列の要素数が3なのに4つ入れようとしているので、例外が発生します。
この例外を扱うクラスはIndexOutOfRangeExceptionです。
配列の要素数を超えてデータを入れようとすると、この例外クラスが実行されます。1 結果は以下の通りです。1 今まで2つの例外1 を見てきましたが、catchは1つだけしか書くことができないわけではなく、何個でも書くことが出来ます。1 以下のように複数のcatch文を書く事が出来ます。111 では次の説明に移ります。
今までは2つの例外1 を別個に書いていましたが、
これらに代わって
「Exception」を使うことで
どの例外でも補足することが
可能になります。
Exceptionクラスは今まで説明してきた例外クラスの親クラスに当たります。
では例をみてみましょう。11 結果は以下の通りです。1 次は例外をプログラマが明示的に投げる方法について説明します。
明示的に例外を投げるにはtryのブロック内に1という構文で書きます。1 では例をみてみましょう。111 この例は変数がnullであればthrowで例外をcatchに送っています。
throw 文は例外が起こる箇所に挿入します。
ArgumentNullExceptionクラスは値がnullである可能性があるプログラムに使用されます。
結果は以下の通りです。1

カテゴリー
Cシャープ

DateTime構造体について知ろう

この章ではDateTime構造体について説明します。
DateTime構造体は日付や時刻関係の出力や取得に役立つ構造体の一種です。
では例をみてみましょう。1 現在の日付と時間を得たいのであれば以下の構文で書きます。1 この例では以下の箇所です。1 例えば 
2012/05/30 22:30:55 
と現在の日付と時間が出力されます。
次は今日の日付を取得する方法について説明します。1 今日の日付を取得する構文は以下の通りです。1 例えば
2012/05/30 0:00:00 
と、出力されます。
現在の日付と時間を協定世界時(世界標準の時刻)で得たいのならば以下の形式で書きます。1 協定世界時と日本の時刻との時差は9時間です。
日本時間の方が9時間進んでいます。1 次は個別に年や時間を取得する方法について説明します。111 11次はDateTimeオブジェクトをフォーマット形式の文字列に変換するToStringメソッドについて説明します。
他にも似たようなメソッドが多数存在します。11 では例をみてみましょう。1 11この章の最後にまとめて標準日時書式指定文字列の表を載せます。
次の例をみてみましょう。11 1スペースの都合でToStringを2行で書いていますが、1行で書いても結構です。11

111111111111111111

カテゴリー
Cシャープ

列挙型について知ろう

この章では列挙型について説明します。
「列挙型」は結びつきがある要素をひとまとめにして、新しい型として定義することを言います。
詳しい説明は例の後に行います。111 列挙型は宣言を行うことが必要ですが、構文は次のようになります。1 以下の箇所がこの例の列挙型の定義ですが、配列のようにデータのまとまりを作ります。
そして、列挙型のリストには先頭から1と順番に値が与えられます。
数値だけを1と与えられても何がなんだかわかりません。
そこでcatsが0,dogsが1,tigerが2と数値を割り当てるわけです。1 列挙型の宣言をした後は列挙型の変数を宣言し、データを入れます。1 この例では以下の箇所です。1 この例では列挙型の変数に値を入れた後にswitch文で判定を行なっています。
列挙型のリストには先頭から順番に値が与えられると言いましたが、出力するには以下のように書きます。
この例は0が出力されます。この中に「(int)」という箇所がありますが、これをキャストと呼ぶことは説明しました。
この例の場合には整数型にキャストして列挙型に割り当てられている数値を出力しています。11

カテゴリー
Cシャープ

構造体について知ろう

この章では構造体について説明します。
構造体はバラバラの異なる型のデータを持つ複数の変数を1つの型として扱うことが出来ます。
それに対して配列は単一のデータ型しかまとめて扱う事はできません。
例えば、学生の情報をデータに残したい時に、成績はint型,身長はdouble型,名前はchar型など様々なデータ型を1つにまとめて扱いたい時に構造体は便利です。1 構造体型を宣言する時はstructを使います。
構造体の中には変数、メソッド、プロパティ、コンストラクタなどを書くことが出来ます。
しかしデストラクタは書けません。
では例をみてみましょう。111 構造体を基本構文の通り1のように作って、そのブロックの中に変数やメソッドなどを記述します。
変数やメソッドにアクセスするにはMainメソッドの中で1と宣言してから、1という形式で値を代入します。
構造体のメソッドに値を渡す場合には1という形式でデータを渡します。
引数は省略できます。1 1結果は以下の通りです。1 次は構造体にコンストラクタを使用した例です。1111 構造体でコンストラクタを使うためにはnewが必要です。1 この例では1です。1

カテゴリー
Cシャープ

占いプログラムを作ろう

この章では占いプログラムを作成します。1111 このプログラムはランダムな数を生成して、その数を基に占いを行います。
乱数を導き出すためにRandomクラスを使用します。
今までは自身でクラスを作成してきましたがRandomクラスはC#で定義されているクラスです。
Randomクラスのオブジェクトは以下のように作成します。1 その後に1という構文で書きますと0以上のランダムな整数を生成します。
以下の例を見るとNextの引数がカラですが、このように引数に何も書かないと「1394375729」のようなランダムな乱数を生成します。1 1のように引数に数値が入っている場合にはその数までの乱数を生成します。
気を付けないといけないのは1の場合には1から7ではなくて0から6までの乱数を生成することです。
その他に「ここからここまで」と指定したい場合には1のようにカンマを挟んで数値を記述します。
この例の場合には「1から100」です。
「1から101」ではありません。

カテゴリー
Cシャープ

名前空間について知ろう

この章では名前空間について説明します。
C#で機能が定義されているクラスライブラリ(クラスが保管されているファイル)には多くのクラスがあります。
さらには自身で作ったクラスもあります。
そして、自身のクラスやクラスライブラリにはメソッドが多数ありますが、その中にはクラス名が同じで、さらに同じ名前のメソッドがあるわけです。
その名前の衝突を防ぐために名前空間が存在します。111

カテゴリー
Cシャープ

インターフェイスについて知ろう

インターフェイスは抽象クラスと使い方がほとんど同じなのですが、インターフェイスもメソッドの宣言だけをして、メソッドの中身は受け継いだクラスで書きます。 
抽象クラスは中身のある普通のメソッドも書けましたが、インターフェイスは中身のあるメソッドやstaticメソッドを一切書くことは出来ません。1 実装とは何らかの機能を加えていく作業のことを言います。
では例をみてみましょう。1111111 抽象クラスの章で説明した例をインターフェイスを使って書き換えた例です。
以下がインターフェイスを定義した箇所です。1111 結果は以下の通りです。1