プログラミング基礎知識

そもそもプログラムって何? 〜初心者でも10分で分かる基礎〜

この記事で学べること

  • プログラムとは「指示書」である 
  • コンピュータは「スイッチの集まり」で動いている機械
  • 「ON/OFF」を数字で表現すると?
  • 10進数から2進数への変換(ちょっとだけ体験) 
  • プログラミング言語は「翻訳機」

プログラムとは「指示書」である

コンピュータに指示できるアイテム、それが「プログラム」です。

そのプログラム(指示書)を作ることを「プログラミング」といい、それを作る人を「プログラマー」といいます。

指示とはどういったものか、料理で例えてみましょう。

カレーを作る時、こんな手順を踏みますよね。

1:お肉、野菜を切る

2:お肉、野菜を炒める

3:水を入れる

4:ルーを溶かす

5:煮込む

カレー完成!

この料理の各手順、これがプログラムの本質です。

プログラムとは、コンピュータに「何をどの順番でやるか」を伝える指示書のことです。

このプログラムがあることで、コンピュータは「メールを送信したり、電話をかけたり、ゲームで遊んだり」することができるようになっています。

でも、どんな指示が必要か、パッとは出てこないですよね。

料理なら分かるのに…と思うかもしれません。

それは、料理には馴染みがあるからです。

なので、まずはコンピュータとはどういったものなのか、ざっくりと知って馴染みのあるものにしていきましょう。

※深くまでいくと分からなくなるので、ざっくりいきましょう

コンピュータは「スイッチの集まり」で動いている機械

コンピュータはたくさんのスイッチが集まって動いています。

皆さんの身近にもある部屋の電気スイッチを思い浮かべてください。

電気つけよ〜 → スイッチを押す → 電気がつく(ON)

電気消そ。 → もう一度同じスイッチを押す → 電気が消える(OFF)

実は、コンピュータの中には、この「ON/OFF」を切り替える小さなスイッチがぎっしり詰まっているんです。

さて、ぎっしり詰まっているとはどれくらいだと思いますか?

・・・何十個?

・・・何千個?

いいえ。

なんと、何億個も!

この何億個のスイッチが超高速で切り替わることで、YouTubeや、LINEなどのアプリは動いています。

僕たちがいつも使っているYouTubeやLINEも、コンピュータの中では「ON」と「OFF」しか知らないんです。

衝撃ですよね。

「ON」「OFF」のたった二つしかなくても、それを組み合わせることで、すごいことができるんです。

プログラムとスイッチの関係

少しコンピュータのことが分かってきましたね。

実は、プログラムを書くということは、このスイッチをどう動かすかを決めることなんです。

次の章では、この「ON」と「OFF」を使って、どうやって数を表現するのか見ていきましょう。

「ON/OFF」を数字で表現すると?

本題に入る前に、〇〇進数といった言葉が出てきます。

難しく聞こえるかも知れません。理解したい気持ちはすごくわかります。

「進数って何?意味がわかんない!」ってなるかも知れません。

ですが、完璧に理解しようとせず、「へぇ〜そうなんだ〜」っていう感覚で読んでください。

ではいきましょう!


コンピュータが使う数字は2種類だけ

コンピュータは「ON」と「OFF」しか分からないので、数字も特別な方法で表現します。

僕たちが普段使っている数字は10進数です。

「0, 1, 2, 3, 4, 5, 6, 7, 8, 9」この10種類の数字を組み合わせて使っています。

一方、コンピュータが使う数字は2進数です。

「0, 1」この2種類だけ!

〇〇進数って何?

〇〇進数とは、何種類で数えるかを表しています。

2進数なら2種類(0と1)

10進数なら10種類(0〜9)

16進数なら16種類(今回は割愛します)

なぜコンピュータは2種類だけなのか?

それは、スイッチが「OFF(0)」か「ON(1)」の2つしかないからです。

スイッチ2個で何種類表現できる?

家の電気スイッチが2つ並んでいると想像してみましょう。

「左のスイッチ、右のスイッチ」

この2つのスイッチで、何種類のパターンを作れるでしょうか?

答えは4種類です!

左のスイッチ右のスイッチ
OFFOFF
OFFON
ONOFF
ONON

この様に表すことができます。

OFFを2進数の0 ONを2進数の1で考えるとこうなります。

左のスイッチ右のスイッチ2進数10進数
OFFOFF000
OFFON011
ONOFF102
ONON113

スイッチが増えれば増えるほど、もっと大きな数を表現できます。

こうやってコンピュータは動いています。

少しずつ分かってきましたか?

徐々にコンピュータについて分かってきたんじゃないでしょうか?

次の章では、ちょっとだけ実践してみましょう。

10進数から2進数への変換に挑戦してみます。

※もしちょっとしんどいなぁって思ったら、ここは内部的に動いていることなので飛ばしちゃって大丈夫です。

10進数から2進数への変換(ちょっとだけ体験)

ここからは、実際に手を動かしてみましょう。

10進数を2進数に変換する方法を、2つの例題で学びます。

変換のルール

10進数を2進数にするには、「半分にする」を繰り返します。

その時、次の2つを記録します。

半分にした時の数

あまりの数

【重要ポイント】

きれいに半分にすることが目的ではありません!

半分にした数が小数点になる場合は、はみ出ないように半分にします。

例: 5を半分にする → 2.5ではなく、2あまり1

例題1: 10進数の「5」を2進数にしてみよう

ステップごとに見ていきましょう。

5を半分にしていきます。

ステップ1
5 ÷ 2 = 2 あまり 1

ステップ2
2 ÷ 2 = 1 あまり 0

ステップ3
1 ÷ 2 = 0 あまり 1 ← ここで終了!

【重要】半分にした数が0になるまで続けます。

あまりを下から順に読むと…

1 → 0 → 1

つまり、10進数の「5」は、2進数では「101」と表現できます!

例題2: 10進数の「10」を2進数にしてみよう

今度は少し大きい数でやってみましょう。

10を半分にしていきます。

ステップ1
10 ÷ 2 = 5 あまり 0

ステップ2
5 ÷ 2 = 2 あまり 1

ステップ3
2 ÷ 2 = 1 あまり 0

ステップ4
1 ÷ 2 = 0 あまり 1

あまりを下から順に読むと…

1 → 0 → 1 → 0

10進数の「10」は、2進数では「1010」です。

できましたか?

【よくある間違い】

「半分にした数」が1になった時点で止めてしまうことです。

0になるまで続けることを忘れずに!

変換の手順まとめ

このように、次の手順を繰り返すだけです。

数を半分にする

あまりを記録する

「半分にした数」が0になるまで繰り返す

あまりを下から順に読む

これで10進数を2進数に変換できます!

練習問題(任意)

もっと練習したい人は、次の数を2進数に変換してみましょう。

10進数の「7」→ 2進数では?(答え: 111)

10進数の「15」→ 2進数では?(答え: 1111)

※答えは次回の記事で解説します。

お疲れさまでした!

ここまでで、コンピュータの基本的な仕組みが分かってきたと思います。

プログラムは指示書

コンピュータはスイッチの集まり

スイッチのON/OFFを2進数で表現

10進数と2進数は変換できる

次回の記事では、「プログラミング言語とは何か」を解説します。

いよいよ、実際にプログラムを書く段階に近づいてきました!

プログラミング言語は「翻訳機」

コンピュータは「0」と「1」の二つだけで動いています。

でも、0100100…みたいな感じでプログラムを書くのはほぼ無理です。

それができたら、もはや暗号ですよね。

人間にも読める言葉が必要

それを解決してくれるのがプログラミング言語という、人間にも読める言葉です!

プログラミング言語は、僕たちとコンピュータがやり取りをすることができる言葉です。

具体例: 「こんにちは」を表示する

例えば「こんにちは」これをコンピュータが表示しようと思うと、このような2進数が必要です。

こ          ん           に          ち           は

01001000  01100101  01101100  01101100  01101111

※実際の文字コードを簡略化したイメージです

この2進数だけではちょっと読めないし、覚えられません…。

プログラミング言語なら簡単!

Javaというプログラミング言語なら、こう書くだけです。

System.out.println("こんにちは");

たったこれだけ!

コンピュータが自動的に「0と1」に翻訳して実行してくれます。

プログラミング言語は「翻訳機」

つまり、プログラミング言語は僕たちとコンピュータの翻訳機なんです!

僕たちは、日本語や英語に近い言葉でプログラムを書きます。

それを、プログラミング言語が「0と1」に翻訳してくれます。

コンピュータは、その「0と1」を受け取って実行します。

この仕組みがあるから、僕たちはプログラムを書くことができるんです!

まとめ この記事で学んだことを振り返りましょう!

✅ プログラムはコンピュータへの指示書

✅ コンピュータはON/OFFのスイッチの集まり

✅ スイッチのON/OFFを2進数(0と1)で表現  

✅ 10進数は半分にしていくことで2進数に変換できる 

✅ プログラミング言語は僕たちとコンピュータの翻訳機  これで、プログラムがどうやって動いているのか、基本が分かりましたね!

 次回は「プログラミング言語の種類」について解説します。

Java、Python、JavaScript…どれを学べばいいの?という疑問に答えます!

関連記事

次に読むべき記事

この記事を読んだあなたには、次の記事がおすすめです!

プログラミング言語の種類と選び方(11月27日公開予定)
→ Java、Python、JavaScript…どれを学べばいい?

Java入門 〜最初のプログラムを書く〜(12月9日公開予定)
→ 実際にプログラムを書いてみよう!

もっと詳しく知りたい人へ

2進数って何がすごいの? 〜深掘り編〜 (12月4日公開予定)
→ 2進数の計算方法をもっと詳しく解説

プログラマーになるには? 〜学習ロードマップ〜                   → これからプログラミングを学ぶ人へ( 準備中)