プログラミング基礎とは?わかりやすく解説

テクノロジ系 ・ 基礎理論(プログラミング) ・ 読む目安8分

変数・分岐・繰り返しに加え、プログラム言語の翻訳とデータ記述言語を学びます。

最初に考えてみよう

コンピュータは、人間のように「いい感じにやって」と言われても動けません。どうすれば、やることの順番や条件を、コンピュータにも分かる形で伝えられるのでしょうか?

解説

プログラムは、コンピュータへの命令を上から順に並べたもの。 どんなプログラムも順次・分岐・反復の3つの形の組み合わせでできています。 同じフロー図の描き方で、1つずつ見ていきます。

1プログラム = 上から順に実行する命令の並び

例:「買い物の送料を決めて支払額を表示する」プログラム。コンピュータは矢印に沿って、上から1つずつ実行します。

開始価格 ← 入力①税込 ← 価格 × 1.1②税込 ≧ 1000 ?③送料 ← 0送料 ← 500税込 + 送料 を表示④終了はいいいえ
  1. ①値を受け取る価格 ← 800
  2. ②処理する税込 ← 800 × 1.1 = 880
  3. ③条件を判断する880 ≧ 1000? → いいえ
  4. ④結果を出す880 + 500 = 1380 を表示

この図には上から順に進む形(順次)と条件で道が分かれる形(分岐)が入っています。 これに同じ所へ戻ってくり返す形(反復)を加えた3つの組み合わせで、どんなプログラムも書けます。

2順次 = 上から1つずつ実行する

いちばん単純な形。処理A → 処理B → 処理C と、書いた順に1回ずつ実行します。

開始価格 ← 800A税込 ← 価格 × 1.1B税込を表示C終了
価格 ← 800
税込 ← 価格 × 1.1
税込を表示→ 880

変数 = 値を入れて、名前で取り出す箱

価格800
税込880

「←」は算数の「等しい」ではなく、右の値を左の箱に入れる(代入)という意味。 順番も大事で、B を A より先に実行すると価格の箱がまだ空なので計算できません。

3分岐 = 条件で道が分かれる

ひし形で条件を判断し、はい/いいえ のどちらか片方の道だけを進みます(①の図の下半分)。

税込 ≧ 1000 ?送料 ← 0送料 ← 500送料を表示はいいいえ
もし 税込 ≧ 1000 なら
送料 ← 0はい の道
そうでなければ
送料 ← 500いいえ の道
送料を表示

試験の形:「a ≧ 5 なら B を表示、そうでなければ C を表示」

a条件の判断表示
77 ≧ 5 → はいB
55 ≧ 5 → はい(5も含む)B
33 ≧ 5 → いいえC

実行されるのはどちらか一方だけ(両方・どちらも無し にはならない)。 「≧(以上)」は境目の数を含み、「>(より大きい)」は含みません。

4反復 = 条件を満たす間くり返す

処理のあと矢印が条件へ戻るのが反復(くり返し)。条件が「いいえ」になった時点で輪から抜けます。

開始合計 ← 0i ← 1i ≦ 3 ?合計 ← 合計 + ii ← i + 1合計を表示終了はい戻るいいえ
合計 ← 0
i ← 1
i ≦ 3 の間 くり返す
合計 ← 合計 + i
i ← i + 1
合計を表示→ 6

1周ずつ箱の中身を追う(試験の解き方)

i ≦ 3 ?合計i
はじめ—01
1周目1 ≦ 3 はい0+1=12
2周目2 ≦ 3 はい1+2=33
3周目3 ≦ 3 はい3+3=64
抜ける4 ≦ 3 いいえ6(表示)4

条件を確かめるのは足す前。i が4になった時点で抜けるので、4は足しません(1+2+3=6)。 抜ける条件(終了条件)がないと、いつまでも止まらない無限ループになります。

5関数 = 処理のまとまりに名前をつけて呼び出す

同じ処理をひとまとまりにして名前をつけておけば、必要なときに名前を書くだけで呼び出せる。

関数 税込(価格)開始a ← 税込(800)結果 ← 価格×1.1結果を返すb ← 税込(1200)a と b を表示終了呼ぶ返すもう一度呼ぶ
  1. ① 呼び出す:税込(800) で関数へジャンプ
  2. ② 関数の中で処理:結果 ← 800×1.1
  3. ③ 結果を返す:880 がメインの a に入り、続きから実行
  4. 同じ関数を 税込(1200) でも使える(→ 1320)

関数を使わない

a ← 800 × 1.1
b ← 1200 × 1.1
c ← 500 × 1.1

同じ計算を3回書く。税率が変わると3か所直す

関数を使う

関数 税込(価格):価格 × 1.1 を返す
a ← 税込(800)
b ← 税込(1200)
c ← 税込(500)

計算は1回だけ定義して3回呼ぶ。直すのは1か所

変数

値を1つ入れる箱

価格 ← 800

配列

同じ種類の値を番号で並べた箱

価格[1], 価格[2]…

関数(サブルーチン)

処理のまとまりに名前→何度も呼べる

税込(800)

コメント

人向けのメモ。実行されない

// 送料の計算

6書いたプログラムを機械語に翻訳する

CPUが直接わかるのは機械語(0と1)だけ。人が書いたプログラムは、翻訳役のソフトが機械語にします。

見るポイント:翻訳役によって「翻訳」と「実行」の順番が違う。 まとめて翻訳してから実行するか、1行ずつ翻訳しながら実行するか。

人が読める高水準言語で書いた。でもCPUがわかるのは機械語(0と1)だけ。

翻訳役:
高水準言語コンパイラ機械語
合計 ← 0・・・
合計 ← 合計 + 5・・・
合計を表示・・・
翻訳役何を・どう翻訳する?
アセンブラアセンブリ言語(記号)→ 機械語。1対1で置き換え
コンパイラ高水準言語 → 機械語。全体をまとめて翻訳してから実行
インタプリタ高水準言語を1行ずつ翻訳しながら実行
リンカ翻訳ではなく、翻訳済みの部品をつなげて実行ファイルにする

JavaScript は、Webブラウザの上で動いてWebページに動き(ボタンを押すと表示が変わる、など)を付けるスクリプト言語です。 事前にコンパイルせず、ブラウザが読みながら実行します。名前は似ていますが、Java とは別の言語です。

7データの書き方 = JSON・XML・HTML・CSV

プログラム同士やWebでデータをやりとりするときの書き方(データ記述言語)です。形式を切り替えて見比べよう。

同じデータ「商品名=ノートPC、価格=98000」を、4つの書き方で比べよう。

形式:
{
  "商品名": "ノートPC",
  "価格": 98000
}

キー:値 の組

波括弧 { } の中に 「キー: 値」の組を並べる。軽くて読みやすく、Web API のデータ交換の定番。

見分け方:キーと値の組→JSON / 自由に決めたタグ→XML / Webページの構造→HTML / カンマ区切りの表→CSV

試験のポイント

ITパスポート試験での問われ方

疑似言語の流れ、言語の翻訳方式、HTML・XML・JSONの表現方法が問われる

間違えやすいポイント

  • 変数を固定値だと思う
  • アセンブラとコンパイラを混同する
  • HTMLを汎用プログラミング言語だと思う

関連用語

機械語、アセンブリ言語、高水準言語、コンパイラ、インタプリタ、JavaScript、HTML、XML、JSON

図解の内容を文章で読む

プログラミング基礎をイメージでつかむ

プログラムは、コンピュータにしてほしい手順を書いたものです。変数・条件分岐・繰り返しで手順を作り、人が読みやすい高水準言語などを翻訳して機械語にします。HTML・XML・JSONは、画面やデータの構造を表すために使います。

たとえると:外国語の指示を通訳して機械に伝えるのがコンパイラなどの翻訳役、荷物に見出しを付けて中身を整理するのがHTML・XML・JSONです。

プログラムの基本部品は、値を入れ替えられる変数、条件による分岐、終了条件まで行う繰り返しです。コンピュータが直接実行する0と1に近い命令が機械語、命令を短い記号で書く低水準言語がアセンブリ言語で、アセンブラが機械語へ翻訳します。人が読み書きしやすい高水準言語は、コンパイラがプログラム全体をまとめて翻訳するか、インタプリタが実行しながら逐次翻訳します。一方、HTML・XML・JSONは主に情報の構造を表すデータ記述言語です。HTMLはタグでWebページの構造、XMLは自由に定義したタグでデータの意味と階層、JSONは波括弧の中にキーと値の組を置いて軽量なデータ交換を表します。なお、JavaScriptはWebブラウザ上で動いてWebページに動きを付けるスクリプト言語で、事前にコンパイルせずに実行されます。名前は似ていますが、Javaとは別の言語です。試験では、実行手順だけでなく、どの翻訳ソフトや記述形式を使うかも区別します。

押さえどころ

  • 変数・分岐・繰り返しで手順を作る
  • 言語は翻訳して機械語にする
  • HTML・XMLはタグ、JSONはキーと値で表す

確認問題(6問)

確認問題を読み込んでいます...

確認問題は本サービスのオリジナル問題です。ログインなしで解けます(結果は保存されません)。

「プログラミング基礎」の過去問(1問)

IPAが公開しているITパスポート試験の公開問題から、このテーマの問題を集めました。

つながるテーマ

この解説をXでシェア

学習を記録して、合格まで続ける

教材と確認問題はこのページで全部無料で使えます。登録すると「プログラミング基礎」の結果や習熟度が記録され、苦手分野の復習提案、試験日までの学習計画、合格準備度の見える化が使えます。最初の7日間は学習記録も無料です。