アマグラミング

プログラミング初心者が勉強したことを復習とメモがてら書いているだけです。

Rubyを学ぼう

(49)クラスの継承について学ぼう

クラスというのはオブジェクトの雛形になるものです。 まあ、例えばたい焼きを作る時に、型に入れてたい焼きをつくりますけども 金属製の型の方がクラスで出来たたい焼きの方がオブジェクトと考えられます。 ですので、オブジェクトであるたい焼と金型である…

(48)クラス変数について学ぼう

クラス変数について勉強しましょう。 クラス内で使用するインスタンス変数はオブジェクトごとに異なる値を 格納できるものでした。 それに対してクラス変数はクラスから作成された全てのオブジェクトで共有できる 変数です。 全てのオブジェクトで共有されて…

(47)クラス内の定数について学ぼう

定数について勉強をしましょう。 クラス内で定数を定義してみます。 クラス内でもメソッド内では定義できないらしいです。 #coding utf-8class Shopping TAX = 0.08 def initialize(ini = 0) @sum = ini end def buy(money) @sum = @sum+money end def total…

(46)アクセスメソッドを学ぼう

アクセスメソッドについて勉強しましょう。 クラスの中で使われているインスタンス変数もクラスの外からは使用できません。 インスタンスメソッドを経由する必要があります。 つまりそれを目的としたメソッドを定義しないといけません。 class Cats def init…

(45)initializeメソッドについて学ぼう

インスタンスメソッドの中でinitializeメソッドというものがあります。 このメソッドをクラス内に書いておくと、オブジェクトを作った時に 自動的に呼び出されます。 intializeメソッドを使うことでオブジェクト作成時に必ず実行したい処理を メソッドを呼び…

(44)インスタンス変数について学ぼう

インスタンス変数を勉強していきましょう。 メソッド内でローカル変数を使用することも出来ますが、 ローカル変数はメソッド定義を超えることはできない。 インスタンス変数はクラス内で全メソッドで共通して使用することができます。 一度作成されたインス…

(43)ローカル変数とグローバル変数について

変数について学んでいきましょう。 スコープという言葉があります。 スコープというのは変数の有効範囲のことです。 ローカル変数とグローバル変数がありますが ローカル変数のスコープの範囲は その変数が宣言されたブロック、メソッド定義、クラス/モジュ…

(42)変数の予約語について

変数の勉強をしていきましょう。 実は変数の名前の付け方の時に説明してないことがあります。 まあ、多分、してない。 つけちゃいけない名前っていうのがあって、予約語といいます。 というのも最初から使われているんです。 以下のものです。 BEGIN class e…

(41)インスタンスメソッドについて学ぼう

インスタンスメソッドについて勉強していきましょう。 クラスの中に具体的に何をさせたいのかを書いていく必要があります。 その処理を記述するのがメソッドとなります。 メソッドは実行する処理をまとめたものですが、通常のメソッドがプログラム中の いつ…

(40)クラスを作ってみる。

Rubyの特徴として、すべての要素がオブジェクトであるというのは以前にも書いてきたと思いますが、それらのオブジェクトは全て何かしらのクラスに属しています。 属しているクラスによって、どのように振る舞うのかが決まります。 クラスはオブジェクトを作…

(39)今まで使っていたメソッド呼び出しと引数について感想

メソッドについて説明します。 Rubyではすべての手続をメソッドと言います。 メソッドの本来の意味はオブジェクト、あるいは何かのデータにくっついた手続き という意味です。 例えばオブジェという変数になにかのオブジェクトが格納されているとして object…

(38)ソースコードに文字コードの設定を書いておく

さて前回はコンソール上で文字コードを指定してプログラムを実行しました。 次のような記述を行うことでコンソール上で指定した場合と同じことができます。 #! ruby -K[kcode] kcodeの部分には文字コードによって値が違います。 これをソースコードの先頭に…

(37)コンソールでの文字コードの指定

いまさらですけど、 文字コードの指定についての勉強をします。 つーのも #coding utf-8 と書くのは文字コードの指定と言っていましたけど、 これが機能しているのかって結構謎なんですよね。 前回の雑談でも書いていますけど、ソースコードに #coding utf-8…

(36)メソッドの戻り値について、キーワード引数について

メソッドの戻り値について勉強しようと思います。 メソッドの処理結果を呼び出し元で受け取ることができます。 そのときの値、処理結果を戻り値といいます。 そしてメソッドが戻り値を返すとも言います。 まあとにかく書いてみますね。 def nemeless(a,b) re…

(35)メソッド定義の中の変数

メソッドを定義する時に使用する引数はそのメソッド定義の中でしか使えません。 どういうことかっていうと def ramen(type) puts "へい#{type}ラーメン一丁!" end ramen("とんこつ") こんな文があったとして def ramen(type) puts "へい#{type}ラーメン一丁…

(34)引数を配列として受ける

実引数が、つまりメソッドを呼び出す側の引数が 仮引数、つまりメソッド定義側で指定されている引数の数が少ない場合は デフォルトを設定しておけばよかったわけでしたが、 じゃあ多かった場合はどうなるかと言うと、やはりエラーになります。 しかし仮引数…

(33)条件分岐で日本語を使う。(雑談という名の私の戦いの記録なのであるドゴーン!)

こんにちは。 今回はずっとできなかった条件分岐の際に日本語を用いたら なぜかすべてelseに判定にいくことについて考えようと思います。 前にシェルだとかコンソールだとか、文字コードのことを調べたりしましたが・・・ まあちょっと色々確認してみようと…

(32)メソッド定義の引数

メソッドでは引数(ひきすう)を付けて呼び出すことが出来ます。 まあ、引数ってなんだよと思われるかもしれません。 私もC言語の勉強などで触ってはいますが、ちょっと自信がないです。 メソッドに与えるオプションというかなんというか とにもかくにもまず…

(31)メソッド定義について学ぼう

ではメソッドの定義について勉強していきましょう。 メソッドっていまいちなんなのかよくわかってないんだけどね。 まあメソッドの定義の書き方を見ていきましょう。 def メソッド名 (引数) 処理 end このdefってなんの略でしょうね。 いま、ちょっと調べる…

(30)ちょっと休憩

こんにちは、管理人です。 といっても、これを書いている間も別に公開は一切してないので ただ、なんとなく日記のような、メモのようなものなのですが・・・ ここまでも一応人に見せる前提で書いてきてはいるのですが、 正直、どうなのかなあ、もし人が見た…

(29)redoについて学ぼう

redoについて勉強していきます。 redoは繰り返し処理の中で実行されると、今実行している繰り返しを もう一度はじめから行います。 最初からですよ。 では書いてみましょう。 count = 10 while count < 25 doputs "#{count}お金がないよおー" count = count …

(28)nextを学ぼう

nextを学んでいきましょう。 nextは繰り返し処理の中で実行すると、 ブロック内のnext以降の処理が行われず 次の繰り返しへ進みます。 まあスキップみたいなものですかね では書いてみます。 for i in 1..10 if i == 5 then next end puts i*i end こうした…

(27)breakを学ぼう

それではbreakについて学んでいきましょう。 breakを実行すると、繰り返しを停止します。 繰り返し処理をするのはいままで勉強したのだと・・・ while,until,for,each,upto,downto,step,times,loopとかですかね。 まあ、まだまだあるかもしれませんが、 まず…

(26)loop文を学ぼう

loopメソッドを学びましょう。 loopメソッドはループを無限に繰り返します。 書き方としては loop{ 処理 } もう少し具体的に書くと num = 0 loop{ puts "number #{num}" num = num+1 } これを仮に実行すると凄い速さで繰り返します。 CtrlキーとCを同時押し…

(25)stepメソッドを学ぼう

stepメソッドを学んでいきましょう。 まず書き方は オブジェクト.step(limit, stepno) do |変数|処理end ほかにも波括弧を使う書き方がありますが、 とりあえず一つの書き方を覚えておけばいいと思うので説明しません。 まあ、たいして変わらないんですが・…

(24)timesメソッド、uptoメソッド、downtoメソッド

timesメソッドについて学んでいきましょう。 timesメソッドは指定した回数を繰り返し処理してくれます。 構文としては オブジェクト.times do |変数|<文>処理end 例えば 5.times do puts "Hello" end とでも書いたなら このように繰り返されます。 5.times…

(23)三項演算子(条件演算子)(?:)

三項演算子は条件式の結果によって返す値が異なります。 書き方は 条件式 ? 真の時の値 : 偽の時の値 こんなかんじです。 簡単な式で書くと a ? b : c aが真ならbを、そうでないならcを。 もうすこし具体的に書くと score = 75 test = score >70 ? "合格…

(22)論理演算子補足、演算子の優先順位

以前、if文の勉強あたりで、条件式に使うので論理演算子を勉強したと思います。 &&とか||とか!などを使ったやつですね。 これらはじつは他にもあるようなので、補足していきます。 といっても、内容は被っていて a && b は a and b でも同じ a || b は …

(21) unless文と修飾子について学ぼう。

unless文はif文と条件式の判定が逆になっています。 while文とuntil文の関係に似てますね。 基本的な構文はif文と同じで unless 条件式 then 処理 条件式の結果が偽の時に実行されるelse 処理 条件式の結果が真の時に実行されるend こんな感じです。 unless…

(20) each文を学ぼう。

さて、for文は for 変数 in オブジェクト do繰り返す処理end(じつはdoは省略可能) ですが、each文は オブジェクト.each do |変数|繰り返す処理end (じつはdoは省略可能) こうです。 じつはfor文はRubyの内部構造でeachメソッドを実行しているらしいです…

(19)範囲オブジェクト、for文

for文では指定したオブジェクト(配列だとかハッシュ、範囲を表すオブジェクトなど)から順に値を取り出しながら繰り返しを行います。 では、範囲オブジェクトについて説明すると 指定した最初の値と最後の値の範囲を表すオブジェクトです。 繰り返し処理と一…

(18)until文を学ぶ

繰り返しの一種として、前回はwhile(ホワイル)文を学びました。 今回はuntil文について学んでいきたいと思います。 until文はwhile文が条件式が真(ture)の間、繰り返しを行うことに対して、 until文は偽(false)の間、繰り返すという点が違います。 書き方は…

(17)while文を学ぼう。

while文をやっていきましょう。 プログラミングをしていると同じ処理を行いたい時があります。条件を指定することによって、処理を繰り返すことをループと呼びます。 ここではwhileによる繰り返しについて説明します。 while <条件式> do <文>(処理)en…

(16)%記法について

今まではダブルクォーテーションや、式展開などをしない場合シングルクォーテーションなどで囲って、文字列を表示してきました。 例えば puts "はじめまして” puts 'はじめまして’ などですね。 %記法で書くこともできます。 例えば puts %Q(はじめまして) …

(15)オブジェクトの変換

オブジェクトの変換について さて、以前から文字列と数値の組み合わせだと足し算ができないなあ ということは気づいていました。 しかし、gets.to_i など文字列での入力を数値に変換するなどもやっていきました。 こうした変換についてやっていこうと思いま…

(14) ハッシュを覚えよう。

ハッシュについて勉強していきましょう。 ハッシュというのは keyとvalue(値)というペアでデータをまとめることができるものです。 形としてはこのような形になります。 例 users_age = {"matsuyama" => 21,"katayama" => 35} 変数に波括弧で全体を囲い、k…

(13)配列を学ぶ

配列オブジェクトの勉強をしていきましょう。 配列っていうのは、複数の値を変数にまとめて管理したいときなどに使います。 変数 = ["あ",1,"a"] こんな感じで代入する値をカンマで区切って、全体を[]で囲みます。 まあちょっとやってみましょう。 これをput…

(12)オブジェクトとかインスタンスとかメソッドとかクラスとかってなんなのさ。あんたrubyのなんなのさっ!

さて、ここらでオブジェクトというものを知っておきましょう。 なんせrubyはおぶじぇくとしこー言語ですからねっ! というわけで大枠を理解しておこうと思います。 そもそもオブジェクトの意味は本来「物」なわけですが そんなことはこのさい関係ないでしょ…

(11) Ruby勉強中の開発環境の再構築をしてみたい。 (雑談)

と、いうことでここらで少し開発環境をもう一度整えたいと思います。 なぜかというとですね、 色々と某掲示板などで、うまくいかないやーい。 などと書き込んでみましたところ、windows環境でコマンドプロンプトで 勉強続けていくのは・・・どうなんじゃろ的…

(10)&& || getsメソッド、 if文 case文

前回は比較演算子の勉強とif文をやりましたね。 rubyに直接関係あるわけではないですが、 コマンドプロンプトの操作についてちょっと書いときます。 コマンドプロンプトって、↑キー使ってコマンドを繰り返す事が出来るんですよ。 ちなみに↑を2回押すとこの場…

(09)比較演算子、if文

前回は変数の代入に数値を使った式の説明と 同じ変数名を使った代入について説明しました。 さて x = x + 1 など同じ変数名を使った変数の定義の書き換えが出てきましたが この書き方は省略できます。 というかその書き方はよく出てきますので説明します。 …

(08) 変数の数値による代入、同じ変数名を使った代入、変数の代入による雑感

さて、前回は変数を使って文章を表現してみました。 前回は基本的に文章に文字列を用いていました。 ところで、触れなかったのですが、 これってできると思います? puts 10 + "個欲しい、10個!!" うーん、なにが10個ほしいんだか・・・ ま、出来ませんで…

(07)変数を使って文章を表現してみる。

前回は変数と定数について学びました。 変数を使って文章を作ってみます。 Aさんはカレーが好きです。 Bさんはカレーが好きです。 Cさんはカレーが好きです。 これを変数を使わずにやると puts "Aさんはカレーが好きです。" puts "Bさんはカレーが好きです。…

(06) 変数と定数

前回は計算をしてみましたね。 今回は変数と定数について説明していきます。 他のプログラミング言語によくある 宣言を必要としないところがRubyの特徴のようです。 というのも例えば、RubyはC言語で作られているらしいですが、C言語にも変数は あります。 …

(05) 計算をしてみよう。四則演算など。

前回はprint,puts,pメソッドについて学びましたね。今回は、pメソッドの説明の際に触れた計算について触れたいと思います。 計算には四則演算が使えます。つまり、足し算、引き算、掛け算、割り算、ですね。 そして、余りの計算もできます。 ではこの説明が…

(04)printメソッド、putsメソッド、pメソッド

前回は文字コードの指定 # coding: utf-8 コメントの打ち方 # ここにコメントを書く putsメソッド puts "なんでも書くといいさ” を学びましたね。 今回は他にもメソッドを覚えて行きましょう。 テキストエディタを開いて、 前回使ったファイルを使ってもいい…

(03)文字コードの指定、コメントの打ち方、putsメソッド

前回の復習をしましょう。 前回は、インストールが出来ているか。 そして、これから作っていくファイルを保存していく場所を コマンドプロンプトで作りましたね。 では次に、文字を打って表示してみましょう。 テキストエディタを開きます。 私はAtomを使い…

(02)rubyのインストールの確認と、ファイルの保存先をつくりましょう。

さて、前回は勉強する上で必要な環境を整えました。 とりあえずコマンドプロンプト開きましょう。 コマンドプロンプト自体の操作はここでは最低限の説明にします。 これはRubyの説明をする場所なので。 コマンドプロンプトの説明はコマンドプロンプトの説明…

(01)Rubyの開発環境を構築する。

まずはじめに、Rubyを学ぶ準備をしましょう ちなみにwindows版の説明です。 というかOSがMacだったりLinuxみたいな上級者(偏見?) に私が言えることはないのではないですか。 選ばれし民は自分でなんでも解決できるはずです(偏見) というか、もう、そう…

Rubyとは

Rubyはプログラムをする人が楽しくプログラミングするために作られたプログラミング言語です。 プログラミングとはコンピュータにおこなわせたい作業を記述することです。ただし、この作業はコンピュータの都合に合わせねばならない面倒さもあります。楽しく…