第1章:アルゴリズムの表現とプログラム表記

皆さん、こんにちは!この章では、プログラミングの学習を始める前にとても大切な「アルゴリズムの表現方法」について学びます。「プログラムって難しそう…」と感じる人もいるかもしれませんが、実は私たちの日常はアルゴリズムで溢れています。まずは、コンピュータに命令を伝えるための「共通のルール」をマスターしましょう!

1. アルゴリズムとは何か?

アルゴリズムとは、簡単に言うと「問題を解決するための手順」のことです。コンピュータはとても真面目ですが、自分から工夫することはできません。そのため、私たちが「1番目にこれをやって、2番目にこれをやって…」と正確に指示を出す必要があります。

たとえ話:
カレーを作る手順を想像してみてください。「野菜を切る」→「炒める」→「煮込む」→「ルーを入れる」という手順がありますよね?これが「カレー作りのアルゴリズム」です。手順の順番を間違えると(例えば煮る前にルーを入れると)、うまく作れません。プログラムもこれと同じです。

ポイント

アルゴリズムは「手順の集まり」であり、同じ手順で行えば誰でも(コンピュータでも)同じ結果が得られることが重要です。

2. アルゴリズムを表現する方法

アルゴリズムを他人に伝えたり、自分で整理したりする方法には、主に以下の3つがあります。

1. 自然言語: 日本語などの普通の言葉で説明する方法。
2. フローチャート(流れ図): 図記号を使って処理の流れを可視化する方法。
3. プログラム表記: コンピュータが理解できる形式で書く方法。

共通テストでは、特定のプログラミング言語(PythonやJavaScriptなど)ではなく、「共通テスト用プログラム表記」という独自のルールが使われます。これを理解することが合格への第一歩です!

3. 共通テスト用プログラム表記の基本ルール

「共通テスト用プログラム表記」は、日本語に近い形で書かれています。最初は戸惑うかもしれませんが、以下のルールを覚えれば大丈夫です。

(1) 行番号

各行の先頭には (1), (2) のように行番号がつきます。これは「今、何行目を実行しているか」を指し示すために使われます。

(2) 代入(だいにゅう)

変数(データを入れる箱)に値をいれることを「代入」と言い、記号 \(=\) を使います。

例: \(x = 10\)

数学の「左と右は同じ」という意味ではなく、「右側の値を、左側の箱の中に入れる」という意味なので注意しましょう!

よくある間違い:
\(x = x + 1\) という式を見て、「左右が等しくないから間違いだ!」と思わないでください。これは「今の \(x\) の値に 1 を足して、新しく \(x\) に入れ直す」という、プログラミングではとてもよく使う表現です。

(3) 演算子(計算の記号)

計算に使う記号は、私たちが普段使っているものと少し違うものがあります。
・足し算: \(+\)
・引き算: \(-\)
・掛け算: \(\times\) (または \(*\))
・割り算: \(\div\) (または \(/\))
・割り算の余り: \(\%\) (これがよく出ます!)

豆知識:
「\(10 \% 3\)」の答えはいくらでしょう? \(10 \div 3 = 3\) 余り \(1\) なので、答えは \(1\) です。奇数か偶数かを判定するときによく使われるテクニックですよ。

(4) 表示する

結果を画面に出したいときは、「表示する(値)」と書きます。
例: \(ans = 100\)
  表示する(\(ans\)) → 画面に \(100\) が出ます。

4. ブロック構造(ここが最重要!)

共通テストの表記で最も特徴的なのが、処理のまとまりを表す「縦線」です。もし(条件分岐)や、繰り返し処理を行う際、どこからどこまでがその処理の中身なのかを以下の記号で表します。

(縦線):処理が続いていることを示します。
L (L字):ここで処理のまとまりが終わることを示します。

例えば、「もし \(a > 0\) ならば:」という処理の下に縦線が引いてあれば、その線がある行までは「もし」の条件が当てはまったときに実行される範囲になります。

ポイント

共通テストでは、この「どこからどこまでがひと塊の処理か」を視覚的に捉える力が問われます。字下げ(インデント)と縦線の終わりをしっかりチェックしましょう!

5. 変数と配列の書き方

データを入れるための名前(変数名)は、英小文字のローマ字(\(kingaku\), \(maisu\)など)が使われます。

また、たくさんのデータをまとめて扱う配列(はいれつ)は、先頭を大文字にしたローマ字(\(Kouka\), \(Tensu\)など)で表されます。

例: \(Kouka = [1, 5, 10, 50, 100]\)

配列の中身を取り出すときは、添字(そえじ)を使います。共通テストでは、「添字は 0 から始まる」というルールが一般的です。

例: \(Kouka[0]\) は \(1\)、\(Kouka[1]\) は \(5\) を指します。

よくある間違い:
1番目の要素を \(Kouka[1]\) と書いてしまうミスに注意! プログラムの世界では「1番目は 0番」と数えるのが基本です。

まとめ:この章のキーポイント

・アルゴリズムは「問題を解くための手順」のこと。
・共通テストでは独自の「プログラム表記」が使われる。
・\(=\) は「代入(右から左へ入れる)」を意味する。
・処理の範囲は「縦線(|)」と「L字(L)」で見分ける。
・配列の番号は \(0\) から始まる。

最初は少し難しく感じるかもしれませんが、ルールに慣れてしまえばパズルのように楽しく解けるようになりますよ。次は、具体的な「分岐と繰り返し」について学んでいきましょう!(※詳細は「分岐と繰返し」の章で解説します)