6章 いろいろな演算子

前回は、「/」、「*」と、演算子という言葉を覚えました。


今回は、他にもいろいろある演算子を紹介します。


まずは、「%」から、
「/」は数字を割り算するための記号でしたが、「%」は、
割った余りを求める演算子です。


余りを求める

use strict;
my $x = 10;
$x = $x % 3;
print $x;

余りなんかどんなときに使うんだと思うかもしれませんが、
学習段階に置いては、「/」より「%」の方が多く使うかもしれません。
しっかり覚えておきましょう。どんなときに使うかはもう少しあとで紹介します。すこしだけ我慢してください。


次は、「++」です。読み方は、「プラスプラス」または、「プラプラ」なんて呼んだりします。
この演算子は、「変数の値を+1」します。
これまた、よく使う演算子です。Webページなんかにいくと、カウンターが設置されていますよね。
カウンターは、そのページが見られた瞬間に値を+1します。「++」を使う瞬間です。


変数の値を+1する

use strict;
my $x = 10;
$x++;
print $x;

おや、 $x++ なんてちょっと不思議な書き方をしますね。
そうなんです、今まで紹介してきた演算子は、 $x + 10 みたいに、真ん中に置きましたよね。
でも今回は、後ろに置いただけです。だから、こんな風に後ろに置く演算子を「後置演算子(こうちえんざんし)」と呼びます。真ん中に置くものは、「中間演算子(ちゅうかんえんざんし)」なんてたまに呼ばれたりします。実は、前に置く ++$x という「前置演算子(ぜんちえんざんし)」もあります。
この $x++ と ++$x の違いは、プログラマなら必ず説明できなければいけませんが、このブログでは、$x++しか使わないようにします(学習量が多くなってしまうため)。



それでは、今回最後の演算子「--」です。「マイナスマイナス」と呼ばれたりしています。
「++」 は、値を+1しましたよね。ということは、そうです 「--」は、値を-1します。
次のプログラムを実行して確かめてみてください。

変数の値を-1する

use strict;
my $x = 10;
$x--;
print $x;





それにしても、なんでこんな算数にはない演算子があるのでしょうか?
それは、よく使うからです。よく使うから記号として持っておいた方が便利なのです。
$x = $x +1; と打つよりも、 $x++; と書いたほうが、より簡単で便利です。


今回は、「%」、「++」、「--」の3つを習いました。演算子のお話はひとまずココまでとして、次回は、別の内容をお届けしようと思います。

5章 コンピュータに計算させよう

前回は、変数の中身を使って足し算を行いましたね。

今日は、一気に、「引き算」「割り算」「かけ算」をやってしまいましょう。

はは、そんなの小学校でやったよー という声が聞こえてきそうですが、
ここはすこし我慢しておつきあいください。

算数では、

足し算は「+」
引き算は「-」
割り算は「÷」
かけ算は「×」


という記号を用いました。でも、残念ながら、プログラムの世界では、記号が違います。
おっと、安心してください。記号が違うのは、割り算とかけ算の2つだけです。
それでは、その2つを紹介しましょう。

割り算「/(スラッシュ)」
かけ算「*(アスタリスク)」

この2つをしっかり覚えましょう。
僕は、この記事を書くにあたって、算数の割り算の記号「÷」を書こうとしましたが、
あれ?どんな記号だったけとなかなか思いだせないくらいでした、自然と指が「/」の方をタイピングしてしまいます。



それでは、実際に、プログラムを書いてみて本当にその記号が動くのか確かめてみましょう。
つぎの3つのプログラムを用意してみました。

引き算

use strict;
my $x = 10;
$x = $x - 5;
print $x;

割り算

use strict;
my $x = 10;
$x = $x / 5;
print $x;

かけ算

use strict;
my $x = 10;
$x = $x * 2;
print $x;

結果は、それぞれ、 5, 2, 20 となりましたでしょうか。そうなっていれば大成功です。


さて、「おいおい、なんで、記号違うんだよー」と嘆いているところ申し訳ないですが、
今回は、「/」「*」に加えてもう一つ「演算子」という言葉を覚えていきましょう。「えんざんし」と読みます。
演算子」とは、こんな風に、変数(または数値)からなにかを生み出してくれる記号のことを言います。
まだ、説明していないことがありますので、この理解だけでは不十分なのですが、今はこれでよしとしましょう。

さあ、今回は、「/」と「*」と「演算子」この3つを覚えればいいだけ!
次回は、算数にはない記号(演算子)「%」とか「++」とか「--」を見ていくことにしましょう。
これらが使えるようになるとプログラミングが楽しくなりますよ〜。

4章 変数をもっと使う

前回は、「変数」というものを初めて見ましたね。今回は、変数をもっと見ていきましょう。

変数の機能を覚えていますでしょうか?

    • けっこう何でも入れれる
    • 名前を付けなければいけない
    • 箱の中身をとりだすことができる

でした。
前回は、

    • 箱の中身をとりだすことができる

の説明をしませんでしたので、ここでしていこうと思います。

use strict;
my $x = 1;

で変数$xに1を入れましたが、本当に1が入ったか確認する方法はないのでしょうか?
あります。print を使いましょう。 printは画面に表示するという意味でしたね。

print $x;

としてみましょう。
全体のソース(内容)は、

use strict;
my $x = 1;
print $x;

となります。

実行してみましょう。

1

と表示されれば成功ですよ。

こんな風に、printを使うことで、変数の中身をとりだして見ることができました。



さて、
いま、変数に数字の1を入れましたよね。
これに8を足して9という値を作り出してみましょう。

use strict;
my $x = 1;
my $y = $x + 8;

$y = $x + 8 のところが学習ポイントです。
$y は 9 になっていますよ。
ご自身で、 print $y; と付け加えてみて、表示させてみましょう。

さて、ここで $x の値がどうなっているか気になりませんか?
print $x; として $xの中身を見てみると、1のままであることがわかると思います。
では、 $x の値を 9 に変える方法はないのでしょうか?
あります。

$x = $x + 8;

としましょう。

おー、なんだか難しそうですね。
これは先に右辺が処理されます(評価されるという)。

こんな感じで、$xを上書きして使っていきます。


このように「変数」の中身は書き換えたり(上書きしたり)して、どんどん値を変えます。
これが「変数」と呼ばれる所以なのです。

3章 変数を使おう

前回は、

print 'Hello World!';

という「文」を詳しくみてみることをやりました。

今回は、「変数」というものを学びたいと思います。これは、「へんすう」と読みます。
なかなかどんなものか想像しづらいですが、ゆっくり見ていきましょう。


「変数」というのは「箱」をイメージするとわかりやすいです。
いつまでも「箱」のイメージでは、成長(プログラミング能力)は止まってしまいますが、
ひとまず、成長が止まるところまでは、「箱」のイメージにしておきましょう。


では、この「箱」の機能を紹介したいと思います。

    • けっこう何でも入れれる
    • 名前を付けなければいけない
    • 箱の中身をとりだすことができる


ざっとこんな感じです。
「けっこう何でも入れれる」のところですが、それでは学習しづらいので、今回は、
「数字」を入れてみましょう。

use strict;
my $x = 1;

これで、 $xという名前の「変数」(箱ですね)に、数字の1が入りました。

まさに驚愕ですね。何がなんだかという感じかと思います。

まず、 use strict; なんですが、これは「変数」を使うときは必ず付けておきましょう。
なくても動いてしまうのですが、「いいことが起こるおまじない」と思って付けておきましょう。

my $x = 1;

の my ですが、これは「変数」を初めて使うときに my と書きます。
「これはこのプログラムで初めて使う変数です」といった感じの意味です。
実は、この程度の理解では、あまり自由自在にプログラムを扱うことはできないのですが、
初めのうちはこのぐらいの理解で十分です。


$x の 「$(ドル)」も気になりますね。これは、英語でいう「The」にあたるものです。
日本語でいうと、「その」という意味になります。この「$」ですが、
ひとつだけ値を入れれる「変数」の前につけます。


今度は、「=(イコール)」です。この記号は、「代入」という意味で使われます。
「だいにゅう」と読みます。「代入」とは聞き慣れないかもしれませんが、「なにかを入れる」という意味です。
えー「=(イコール)」は「等しい」っていう意味だよ〜 と反論されるかもしれませんが、
それは数学においてのお話です。 プログラミング言語では、数学とは記号の意味を変えてしまって、「代入」という意味で使います。
数学と同じ意味では、「==」とイコールを2つ書くことにPerlの世界ではなります。
初めのうちは、やや親しみにくいですが、「=」で「代入」を意味するのは、プログラムの世界では常識ですので、慣れていきましょう。

今までの理解をまとめると、

こんな感じです。説明が長くなりましたが、
僕は、

my $x = 1;

を見た瞬間に「$xに1を代入しているな」と理解します。

今回は、「変数」に値を入れることを学びました。次回は、この「変数」の使い方をもっとみていきましょう。

2章 print ってなんだろう

さて皆さん Perlを動かせる(実行できる)ようになりましたでしょうか?


今回は、前回登場した

print 'Hello World!';

というのを詳しく見ていこうと思います。
最後の ; (セミコロン)なんかも気になりますねぇ。


プログラムというのは、複数の「文」というものによって成り立ちます。
僕らが使っている日本語なら、
「今日は、いい天気です。」
というので1文です。 最後の「。(句点)」が文の終わりを示しています。
Perlに置いては、「;」が文の終わりを示しています。


print というのは、画面に文字列を表示するための命令です。
これで、Hello World! という文字列が画面に表示されたわけです。
おや、'(シングルクォート)は表示されていませんね。
'(シングルクォート)は、その間にあるものが「文字列」であるということを表しています。
こんな感じで、プログラム言語というのは、色んな記号を用いて、「意味」を示すことができます。

1章 さあプログラミングをはじめよう

こんにちは。ビンゴ中西です。

ここでは、プログラミングは初めてという方を対象に、Perlというプログラミング言語を使って
プログラムの楽しさを知ってもらおうと思います。


Yahoo! だって Googleだって、 はてなだって、みんなプログラムがあるから見れるんだね。
このページを見ているソフト(ブラウザというよ)もプログラムでできているんだよ。

print 'Hello World!';

さあ、上の1行をエディタっていうのを使って打ってみて。
それを実行すると

Hello World!

と表示されたね!!! おめでとう大成功です。


ここで、「エディタ」とか「実行する」という聞き慣れない単語が出てきたと思います。
基本的に、プログラムは、「エディタ」と呼ばれるソフトを使って書いていきます。
「実行する」とはプログラムを動かすことです。

僕が、初めてプログラムをやったときは、

http://www7.big.or.jp/~jawa/index.shtml
http://www7.big.or.jp/~jawa/tips/editor.html

ここのページなんかを参考にしながら色々やってみました。
もうエディタが何かもさっぱりわからないし、Perlをどうやって実行していいかもわからない。
1週間ぐらいかかって実行できた記憶があります。
ああ、そういえば、「Word」っていうソフトで文字を打ったことあるよ! と思って、
「Word」を使ってプログラムを書いてはいけません。
プログラムというのは、上記のように文字をコンピュータが解釈して「なにかを起こしてくれる」ものなのですが、「Word」で書いた文章は、「Word」が読み込むためにあります。これは、どういうことかというと、「Word」で書かれたもの(ファイル)は、「Word」だけが理解できる情報を持っています。

これに対して、「エディタ」と呼ばれる部類のものは、そういった余計な情報は付けません。
ですから、僕らが打った情報だけをそのまま保持してくれる「エディタ」がプログラミングには、必要なのです。



また、Perlのインストールについてですが、Windowsの方は、
http://www.tryhp.net/homeserver04.htm
などが参考になると思います。

現状では、
http://www.activestate.com/store/productdetail.aspx?prdGuid=81fbce82-6bd5-49bc-a915-08d58c2648ca
からたどってダウンロードできるようです。


皆さんもいろいろ検索してなんとかPerlを実行できるようにしてみてください。



以降は、

    • 変数
    • 演算
    • if
    • 配列
    • for(繰り返し)
    • 文字列
    • コンテキスト
    • 関数
    • ハッシュ
    • 課題的な何か
    • リファレンス(初めてにはむずかしいのでやらないかも)

といったことを書いていけたらいいかなと思います。



※この記事の日付は10月1日になっていますが、1日1エントリー(記事)の形で表示したいため、日付をいじってあります。本当は12月に書かれています。1日のうちに複数エントリー(記事)を書いても、日にち単位でエントリーを分けたかったためです。