プログラミングの基礎

学習の目的

  • 1. プログラミング言語

  • 2. プログラムの基本構造

  • 3. 算術演算子

  • 4. 変数

  • 5. 代入を使ったプログラム

コンピュータで処理を行うためには、考えたアルゴリズムを元にプログラムを作成して実行する必要があります。
プログラムについて学習しましょう。

1. プログラミング言語

プログラミング言語とは、人がプログラムを記述するときに使用する言語のことです。

プログラムとは、コンピュータに処理させたい手順(アルゴリズム)を命令の形式で記述したものです。

作成したプログラムは、ソースプログラムやコードと呼ばれ、プログラムを作成することをプログラミングといいます。

これまでもプログラムを作成しましたが覚えてますか?

はい!Pythonを使ってプログラムを作成しました。

そうそう、Pythonでプログラムを書いて、音を変化させたり、画像の階調を変えたりしました。

Pythonはプログラミング言語と呼ばれるもので、Pythonで書かれたプログラムはソースプログラムと呼ばれます。

しかし、ソースプログラムはそのままではコンピュータは実行できません。その理由を学習しましょう。

プログラムはそのままでは動かない!

Pythonなどで書いたプログラムは、コンピュータに「これをしてね!」と命令するためのものです。

しかし、書いただけのソースプログラムは、そのままでは実行することはできません。

例えば次のようなプログラムを作成したとします。

print("プログラムの学習中")

これは正しいプログラムで、画面に「プログラムの学習中」と表示する命令が記述されています。しかし、このままでは実行することができません。

えっ!!正しいプログラムなのに実行することができないの!!

なんでだろう・・・。

どうして実行できないかは、これまで学んだことを思い出せば気づくかもしれません。

理由は次のとおりです。

なぜ実行できない?

コンピュータは、「print」や「”プログラムの学習中”」といったものは、単なる文字であり、文字コード表から表示した文字の集まりでしかありません。

コンピュータが理解し処理できるのは、「0」や「1」だけで書かれたものだけです。
コンピュータに処理をさせるには、指示を「0」と「1」の組合せで与える必要があります。

この「0」と「1」のみで書かれたプログラムを「機械語(バイナリコード)」といいます。

私たち人間には「print」は“表示する”命令だとわかりますが、コンピュータにとってはただの文字列でしかないのです。

ということは、「0」と「1」でプログラムを作ればいいってことか。

それができればよいのですが、「0」と「1」で人間がプログラムを書くことはとても難しいです。

どうやって機械語にしているかを確認しましょう。

「0」と「1」の機械語にするには?

作ったプログラム(ソースプログラム)をコンピュータが理解できる機械語(バイナリコード)に変換する必要があります。

この変換にはコンパイラとインタプリタの2つの方法があります。

種類 翻訳単位 特徴 代表言語
コンパイラ プログラム ・実行するプログラムをすべて機械語に翻訳してから実行する
・実行速度がインタプリタより速い
・プログラムが完成してからでないと実行することができない
・Java
・C言語
インタプリタ 1命令 ・プログラムの1命令ずつ翻訳・実行をしながら処理を進める
・コンパイラに比べると実行速度は遅い
・作ったところまで実行することが可能である
・Python
・Scratch

Pythonってインタプリタだから遅いの?

コンパイラを使った言語の実行は、インタプリタを使ったプログラミング言語よりは高速に実行することができます。

ただし、現在はコンピュータのハードウェアの速度が速いので、実行速度についてはそれほど気にすることはありません。

2. プログラムの基本構造

プログラムを作るためには、3つの基本構造を覚えるところから始まります。

現在のすべてのプログラムは「順次」、「分岐(選択)」、「反復」3つのプログラム構造の組合せで作成されています。

また、この3つの処理の流れをまとめて制御構造といいます。

順次 分岐(選択) 反復
順次とは、一つ一つ処理を順番に行う。
この場合は、処理1の後に処理2を行う。
分岐(選択)とは、条件に応じて異なる処理を行う。
この場合は、条件がYes(条件が成り立つ)場合は処理1を、
No(条件が成り立たない)場合は処理2を行う。
反復は、繰り返し条件が正しい間処理を繰り返す。
この場合は繰り返し条件が正しい間、処理1を繰り
返し実行する。

ゲームもこの3つだけでできているのかな?

MMORPGなどのオンラインゲームやスマホのアプリ、WindowsなどのOSもすべてこの3つの制御構造の組合せで作られています。

そうなんだ。じゃあこの3つはしっかりできるようにならないといけないですね。

その通りです。もう少し、プログラミングを行うための基礎知識を学習しましょう。

3. 算術演算子

プログラムで四則演算を行うための記号を算術演算子といいます。

算術演算子は、言語などの違いで使用する記号が異なる場合があります。

今回はプログラミングの学習で利用する「Python」の算術演算子について説明を行います。

演算子 記号 説明 例 計算結果
加算 + 2つの数値を足し合わせる 10+4 14
減算 - 2つの数値を引き算する 10-4 6
乗算 * 2つの数値を掛ける 10*4 40
除算 / 2つの数値を割る 10/4 2.5
べき乗 ** 1つ目の数値を2つ目の数値分だけ累乗する 10**4 10000
「10を4回かける(10×10×10×10=10000)」の意味。
整数除算 // 2つの数値を割った商の整数部分を求める 10//4 2
剰余 % 2つの数値を割った余りを求める 10%3 1

数学の計算記号と異なる演算子や、数学には無くPythonにある演算子には注意しましょう。

数学と異なる演算記号

計算の種類 数学での計算記号 Pythonでの計算記号
乗算 × *
除算 ÷ /

数学には無くPythonにある演算子

計算の種類 Pythonでの計算記号
べき乗 **
整数除算 //
剰余 %

これまでもPythonでプログラミングをしてきているので、わかっている場合でももう一度きちんと確認しましょう。

4. 変数

変数とは、データを一時的にしまっておく「名前の付いた箱」のようなものです。

変数につける名前は、出来るだけ見てわかる名前を付けます。例えば、年齢(age)を格納するための変数を作った場合は次のような箱がコンピュータ内に作られます。

参 考

変数名の付け方

プログラミングで最も大切なことの一つが変数名などの名前の付け方です。名前をどのように付けるかのルールを命名規則と呼びます。

代表的なルールは以下のとおりです。
  • 英単語を使う

    price = 1000        #priceは価格を表す

  • 変数名は「アルファベット小文字」とアンダースコア「_」を使う

    tax_rate = 1.1        #単語と単語の間は「_」でつなぐ

  • 数字は先頭では使わない

    value1 = 1        #OK

    1value = 1        #NG

この教材のPythonプログラムもこの形式に合わせていきます。

変数は、データを入れる箱なのでいろいろなデータを入れることができます。
変数の箱にデータを入れることを「代入」といいます。

例えば、Pythonで変数ageに15というデータを代入する場合は次のように記述します。

age = 15

前から不思議に思っていたのだけれど「=(イコール)」って、「同じ」っていうことじゃないの?

数学では「=(イコール)」は「同じ」という意味がありますが、プログラミングでは「代入」を意味しています。

また、「=」記号は代入演算子と呼ばれています。

それでは代入を使ったプログラムを確認してみましょう。

5. 代入を使ったプログラム

例題として、商品の価格から消費税を計算して、税込価格を求めるプログラムを作成します。

今回のプログラムで使う変数は次のとおりです。

変数の内容 変数名 初期値など
商品の価格 price 商品の税抜き価格を保持する。今回は例として1,000を代入する。
消費税率 tax_rate 消費税率を保持する。今回は10%の1.1を代入する。
税込価格 total_price 商品の価格と消費税を掛けて計算した結果を保持する。

プログラムを作るときは、どんなに簡単なものでも手順(アルゴリズム)をまとめるようにしましょう。

アルゴリズムを表す時はフローチャートが便利です。

このスライドでは、フローチャートで利用する演算子もPythonで利用する演算子を使うこととします。

税込価格を求めるフローチャート

最初に変数priceに1,000、tax_rateに1.1を入れてから、税込金額を計算して変数total_priceに入れるのですね。

簡単にできそう!これをPythonで作ればよいってことですね!

そうです。これをPythonで作成すると次のようになります。

price = 1000
tax_rate = 1.1
total_price = price * tax_rate
print(total_price)

このプログラムをGoogle Colabで実行して確かめてみましょう。

Google Colabへは、次のリンクをクリックして移動しましょう。
また、Google Colabでは新しいノートブックを作成し、名前をIP02-04としましょう。

プログラムをGoogle Colabで実行すると次のようになります。

Google Colabでの実行結果

正しく実行され「1100.0」と表示されましたか?

ここで、プログラムで何をしているのか確認します。


プログラムの説明

行番号 Pythonの命令文 説明
1 price = 1000 変数priceに1000を代入する。
2 tax_rate = 1.1 変数tax_rateに1.1を代入する。
3 total_price = price * tax_rate price * tax_rate を計算し変数total_priceに代入する。
4 print(total_price) 変数total_priceを表示する。

プログラムとフローチャートでやっていることって、全く同じなんですね。

ほんとだ!フローチャートの内容をそのままプログラムにしたって感じ。

プログラムで処理する内容をフローチャートで書くときは、1命令単位でフローチャートを書いていくとプログラムが作りやすくなります。そのため、できるだけ、コンピュータで処理を行う命令順を考えてアルゴリズムを考えることが大切です。

それでは、スライドの用語のまとめを確認して、アクティビティに進みましょう。

情 報 こ と ば キ ー ワ ー ド

プログラミング言語

プログラムを記述するときに使用する言語。
プログラム コンピュータに処理させたい手順(アルゴリズム)を命令の形式で記述したもの。
ソースプログラム
(コード)
プログラミング言語を使って作成したプログラム。
プログラミング ソースプログラムを作成すること。
機械語(バイナリコード) 「0」と「1」のみで作られたプログラム。
制御構造 「順次」、「分岐(選択)」、「反復」3つのプログラム構造のこと。
順次構造 一つ一つ処理を順番に行う制御構造。
分岐(選択)構造 条件に応じて異なる処理を行う制御構造。
反復構造 繰り返し条件が正しい間、処理を繰り返す制御構造。
算術演算子 プログラムで四則演算を行うための記号。
変数 プログラムでデータを一時的にしまっておく「名前の付いた箱」。
代入 変数にデータを格納すること。

Well done!

次のステップに進みましょう!

次のステップに進む

← 前のステップにもどる