Lazeのロゴ画像
Laze

Lazeで学ぼう

Lazeを使ってプログラミングの基礎を学んでいきましょう!

1. プログラミングって何?

プログラミングとは「コンピューターにさせたいことを書き出す作業」のことです。プログラミングといえばゲーム制作や競技プログラミングなどをイメージするかもしれませんが、実際は様々な部分でプログラミングは活用されています。

例えば、部活で作るロボットで言えば、最終的にマイコンという部品にプログラムを書き込んで動かすと思いますが、これも立派なプログラミングです。

こういったものは組み込みプログラミングと呼ばれますが、他にもゲームプログラミング、競技プログラミング、Webプログラミングなどなどいろいろな種類のプログラミングがあります。

ここで学べるのはプログラミングの基礎中の基礎なのでどの分野にも応用できるはずです。楽しく学んでいきましょう!

2. さっそく始めてみよう!

さっそくプログラミングに触れてみましょう。次のプログラムを下のエデイタに写してみてください。写し終わったら「実行」ボタンを押して実行してみましょう。

お手本では記号を半角文字({})で書いていますが、全角で書いても全く問題はありません。自分の入力しやすい方を選んでください。ただし全角文字で"を入力するときはを使ってください。

入力するのがめんどくさいという場合はタブキーを押すことで勝手に全部入力してくれます。うまく活用してください。

1
2
3
4関数:実行 () => (){
    //この下の行に書いてみよう
    表示("ようこそLazeの世界へ!");
}
Loading...

//の後はコメントと呼ばれていて、これはプログラムの実行には一切影響を及ぼしません。つまり、メモなどを書くことでプログラムを読みやすくすることができるというわけです。

3. 変数で値を保管してみる

「変数」という言葉に聞き覚えのある人は少ないかもしれません。変数とは値を入れておく箱のようなもので、それぞれの箱 (変数) には名前がついています。次のようなイメージで理解すると良いでしょう。

変数のイメージ図
Preview

では実際にプログラムを書いていきましょう。まずは次のプログラムを写してください。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16関数:実行 () => (){
    // 変数a
    整数: a = 20;
    a = 30;
    表示(a);

    // 変数b
    整数: b = 10;
    表示(b);

    // 四則演算
    表示(a + b);
    表示(a - b);
    表示(a * b);
    表示(a / b);
}
Loading...

先ほど写してもらったプログラムについて見ていきましょう。まずはこの部分です。

1
2
3
4// 変数a
整数: a;
a = 30;
表示(a);

この部分は変数aを宣言している部分です。変数を使う上でまず始めにやるべきことは変数の宣言で、「このプログラムの中ではこんな名前の変数を使いますよ」ということをコンピュータ-に教えてあげます。

Lazeでは<型名>: <変数名>の形で変数の宣言を行います。変数名はその名の通り変数の名前ですが、<型名>については後ほど解説するのでここではいったん省略します。

また変数は宣言するだけでは意味を持たず、代入と参照というプロセスを通じてはじめて意味を持ちます。

代入とは変数に値を入れることで、さっきの図で言えば53.14"Laze"などを変数に代入していることになります。

Lazeでは<変数名> = <値>の形で代入を行います。

参照は代入とは逆で変数の値を確認することで、変数の値を使って別の処理をさせたい場合などに使います。

Lazeでは変数名を書くことでその値を参照できます。

例えば表示(a);の部分は表示という処理 (関数) にaという変数を参照して値を渡しています。

1
2
3// 変数b
整数: b = 10;
表示(b);

この部分は先ほどと同様に変数bを宣言しています。しかし、先ほどは宣言してから代入したのに対して、ここでは宣言と代入を一度に行っています。そのことを変数の初期化と呼びます。

実際は変数の宣言だけ行うことは少なく、多くの場合初期化をすることになります。

1
2
3
4
5
6// 四則演算+α
表示(a + b);
表示(a - b);
表示(a * b);
表示(a / b);
表示(a % b);

この部分は宣言した変数を使って計算をしています。上から足し算、引き算、掛け算、割り算、余りを求める計算です。

複数のものを合わせることもできて、その時は余り、掛け算・割り算、足し算・引き算の順で処理されます。

プログラミングでは×の代わりに*÷の代わりに/を使用することが多いです。 (×÷はキーボードで入力しにくいため)

4. 型ってなんだろう

皆さんは「型」と聞くと何を思い浮かべるでしょうか。世の中にはいろいろな型がありますが、プログラミングにおける型とは変数の値に制限をかけるものと覚えておきましょう。

次のプログラムを写してください。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20関数:実行 () => (){
    // 整数型の変数a
    整数: a = 10;

    // 実数型の変数b
    実数: b = 5.3;

    // 真偽型の変数c
    真偽: c = 真;

    // 文字列型の変数d
    文字列: d = "Laze";

    // 整数と実数の計算
    表示(a + b);
    表示(a - b);
    表示(a * b);
    表示(a / b);
    // 表示(a % b);
}
Loading...

例えば、先ほどの例では整数型を使用していましたね。整数型はその名の通り整数しか入れることの出来ない型です。他にも実数型や、真偽型、文字列型なんかがあります。

実数型は整数や小数も含めた数全般のみ、真偽型はの二つのみ、文字列型は「あいうえお」などの文字列のみに値を制限します。

5. 配列は変数の集まり

プログラミングでよく使うものの一つに配列というものがあります。配列とは変数が集まったもののことで、同じような値を複数保管しておきたいときによく使います。

ではさっそく使ってみましょう。次のプログラムを写してください。

1
2
3
4
5
6
7
8
9
10
11
12
13
14関数:実行 () => (){
    // 配列の宣言
  	整数: 完全数[3];

    // 配列への代入
    完全数[0] = 6;
    完全数[1] = 28;
    完全数[2] = 496;

    // 配列の参照
    表示(完全数[0]);
    表示(完全数[1]);
    表示(完全数[2]);
}
Loading...

配列も変数の一種なので宣言・代入・参照を行うことが出来ます。しかし通常の変数とは少し変わった方法なのでここで解説していきます。

配列の宣言

1
2// 配列の宣言
整数: 完全数[3];

まずは宣言の部分から解説していきます。Lazeでの配列の宣言は通常の変数の宣言の後ろに[<要素数>]を付けることで行えます。

<要素数>とは配列の要素の数で、要は何個の変数の集まりにしたいかを表す数です。例えば要素数が3なら3つの変数の集まりとしての配列を宣言することになります。

配列への代入

1
2
3
4// 配列への代入
完全数[0] = 6;
完全数[1] = 28;
完全数[2] = 496;

次に代入について解説していきます。Lazeでの配列への代入は<配列名>[<添え字>] = <値>の形で行います。

<添え字>とは何番目に代入するかを示す数で、0番目から始まります。つまり3番目に代入したいときの添え字は2ということになります。

添え字がある以外は通常の変数の代入と同じです。

配列の参照

1
2
3
4// 配列の参照
表示(完全数[0]);
表示(完全数[1]);
表示(完全数[2]);

最後に参照について解説していきます。Lazeでの配列の参照は代入とほぼ同じく<配列名>[<添え字>]の形で行います。

ここでの添え字も代入の時と同じく何番目を参照するかを示すもので、0番目から始まります。

添え字があることを除けば通常の変数の参照と同じです。

6. プログラムを制御してみる

これまででプログラミングの基礎中の基礎中の基礎ぐらいを学んで来ましたが、ここではプログラミングの基礎中の基礎である制御文というものを学びます。

今までプログラムは上から下へと一行ずつ実行されていましたが、時として同じ処理を繰り返したくなったり、変数の値によってその先の処理を変えたくなることがあると思います。 (あります)

そんな時に活躍するのが制御文です。制御文を使えば「繰り返し処理」「条件分岐」などプログラムの制御が行えます

少し難しい内容になりますが、頑張っていきましょう!

まずは次のプログラムを写してください。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21関数: 実行 () => () {
    整数: a = 10;
    整数: b = 50;

    // もし文 (条件分岐)
    もし (a == 5) ならば {
        表示("aは10に等しい");
    }

    // もし-でなければ文
    もし (a < b) ならば {
        表示("aはb未満");
    } でなければ {
        表示("aはb以上");
    }

    // 回繰り返す文 (繰り返し)
    (10) 回繰り返す {
        表示(カウンタ);
    }
}
Loading...

もし文

1
2
3
4// もし文 (条件分岐)
もし (a == 10) ならば {
    表示("aは10に等しい");
}

一番基本的な制御文です。Lazeではもし (<条件>) ならば { <処理> }のように書きます。<条件>のときは<処理>を実行し、の時は実行しません。

つまり条件によって処理を実行したり実行しなかったりということができます。

下に主な比較演算子と論理演算子をまとめましたが、少し難しいと思うので読み飛ばしても全然OKです

比較演算子

値を比較して真偽を返す演算子です。比較演算子は次の5つがあります。

演算子記述例その演算子の機能
<a < baよりbが大きければ真でなければ偽
<=a <= baよりbが大きい、またはaとbが等しければ真でなければ偽
>a > baよりbが小さければ真でなければ偽
>=a >= baよりbが小さい、またはaとbが等しければ真でなければ偽
==a == baとbが等しければ真でなければ偽

論理演算子

演算子記述例その演算子の機能
&&A && BAかつBなら真でなければ偽
||A || BAまたはBなら真でなければ偽
!!AAでなければ真でなければ偽

もし-でなければ文

1
2
3
4
5
6// もし-でなければ文
もし (a < b) ならば {
    表示("aはb未満");
} でなければ {
    表示("aはb以上");
}

Lazeでのもし-でなければ文はもし (<条件>) ならば { <処理1> } でなければ { <処理2> }のように書きます。

もし文では<条件>の時に処理を行ったのに対して、もし-でなければ文では<条件>の時に<処理1>を行い、<条件>の時に<処理2>を行います。

もし文の理解を深めるためにこんな問題を解いてみましょう。

aが5より大きければaは5より大きい、でなければaは5以下を出力する
aが15より小さければaは15以下、でなければaは15より大きいを出力する
aが10以下かまたはbが10以上ならばaが10以下またはbが10以上と出力する

Loading...

Lazeでの「もし文」は他のプログラミング言語だとたいてい「if文」、「もし-でなければ文」は「if-else文」と呼ばれることが多いです

回繰り返す文

1
2
3
4// 回繰り返す文 (繰り返し)
(10) 回繰り返す {
    表示(カウンタ);
}

Lazeでの回繰り返す文は(<回数>) 回繰り返す { <処理> }のように書きます。

<回数>には繰り返す回数を入力して、今何回目の処理なのかをカウンタという名前の変数を参照することで確認できます。 (0回目から始まるので注意)

次以降の制御文は余力のある人向けです。

から-まで文 (難)

1
2
3
4// から-まで文 (繰り返し)
(整数: カウンタ = 0;) から (カウンタ == 10) まで (カウンタ += 1;) {
    表示(カウンタ);
}

(<初期化>) から (<終了条件>) まで (<繰り返し処理>) { <処理> }のように書きます。

<初期化>は一番初めに行われる処理で、繰り返しに使う変数を宣言 (初期化) する事が多いです。

<終了条件>は繰り返しの終わり毎に確認される条件です。この条件がになるとそこで繰り返しを終了します。なので上の例で言えばカウンタが10になった時に繰り返しを終了するので、結局0~9までをループすることになります。

<繰り返し処理><終了条件>の場合 (=繰り返しが続く場合) に実行される処理で、繰り返しに使う変数の値を変える事が多いです。

ほかのプログラミング言語では「から-まで文」を「for文」と呼ぶことが多いです。

7. 関数というまとまり

関数とは値を受け取って何らかの処理をした後に値を返すもので、プログラミングにおいてかなり重要な役割を果たしています。

これだけでは抽象的すぎてよくわからないでしょうからもう少し具体的な例を考えることにします。

例えば2つの値abを受け取ってその和を返すような関数は次のように書けます。

1
2
3関数: 足し算 (整数: a, 整数: b) => (整数: 結果) {
    結果 = a + b;
}

関数は引数 (ひきすう) ・処理・返り値 (戻り値) の三要素から成っています。上の例で言えばabが引数、a + bの部分が処理、結果が返り値になります。

関数を呼び出すときは<関数名> (<引数>)のように呼び出します。 (引数が複数ある場合は,で区切る)

こんな簡単な関数は通常いりませんが、もう少し複雑なことになると関数としてまとめておくと便利なことが多々あります。

例えば10の階乗を求めたいときに10*9*8*7*6*5*4*3*2*1と書くのはちょっとめんどくさいですよね。そういう時に階乗という関数を作っておけば階乗(10)とするだけで簡単に求まります。この方が便利で見やすいのでプログラミングでは好まれるというわけです。

では"階乗"関数を宣言する例を見てみましょう。次のプログラムを写してください。

1
2
3
4
5
6
7
8
9
10
11
12
13// 関数 "階乗" の宣言
関数: 階乗 (整数: n) => (整数: 結果) {
    もし (n == 1) ならば {
        結果 = 1;
    } でなければ {
        結果 = n * 階乗(n - 1);
    }
}

関数: 実行 () => () {
    // "階乗" の呼び出し
    表示(階乗(10));
}
Loading...