| English | 意味 |
|---|---|
| notation/nəʊˈteɪʃn/ | 表記法 |
| structured English/ˈstrʌktʃəd ˈɪŋɡlɪʃ/ | 構造化英語 |
| pseudocode/ˈsuːdəʊkəʊd/ | 擬似コード |
| flowchart/ˈfləʊtʃɑːt/ | フローチャート |
| stepwise refinement/ˈstepwaɪz rɪˈfaɪnmənt/ | 段階的精密化 |
| logic statement/ˈlɒdʒɪk ˈsteɪtmənt/ | 論理式 |
| Boolean/ˈbuːlɪən/ | ブール |
| precedence/ˈpresɪdəns/ | 優先順位 |
| De Morgan's law/də ˈmɔːɡənz lɔː/ | ド・モルガンの法則 |
最初のアルゴリズムには書くための言語が存在しなかった
- 1843年、Ada Lovelaceは、Buildされなかったバベッジの解析機械におけるベルヌーイ数の計算手順を発表した。
- プログラミング言語が存在しなかったため、彼女は操作の番号付き表としてアルゴリズムを書き、独自の表記法とした。
- 全てのアルゴリズムはまだこの方法で始まる。何らかの表記法で書き起こし、確認してから、初めてコードに変換する。
- このレッスンは、試験で用いられる3つの表記法、それらの間での移動方法、そして内部の条件の書き方についてである。
3つの表記法
- 構文化された英語:一般的な文、インデント付き、
IF,FOR EACH,REPEATのような固定語彙をいくつか含む。最初のアウトラインに適している。 - 擬似コード:キーワード表記(
IF … ENDIF,WHILE … ENDWHILE,FOR … NEXT)、実際のコードに最も近く、Cambridgeのガイドに基づいて採点される。 - フローチャート:標準形状の図。
START/STOPには角丸長方形、入出力には平行四辺形、プロセスには長方形、判断には菱形、フローには矢印を使用する。

標準形状を用いて描かれた数値の平均を取るフローチャート
In a flowchart, which shape represents a decision?
難易度 1/5 · 100 コイン + 今日初回完了時に小ボーナス付与
A diamond is a decision; rounded rectangle = start/stop, parallelogram = input/output, rectangle = process.
Match each flowchart shape to its meaning.
難易度 2/5 · 140 コイン + 今日初回完了時に小ボーナス付与
Parallelogram = I/O, rectangle = process, rounded rectangle = start/stop, diamond = decision.
Match each notation to its description.
難易度 2/5 · 140 コイン + 今日初回完了時に小ボーナス付与
All three describe the same algorithm at different distances from the code.
解例:構文化された英語から擬似コードへ
- 構文化された英語:総計をゼロに設定する。N個の数値のそれぞれについて、それを総計に加える。総計をNで割り、結果を出力する。
- 各文は1つの構造となる:代入文、その中に代入文を含む
FORループ、その後、代入文と出力文である。
Total <- 0
FOR Index <- 1 TO N
Total <- Total + Number[Index]
NEXT Index
Average <- Total / N
OUTPUT Average
- 文の順序は文句の順序そのものである。何も追加されず、何も省略されない。
In the averaging algorithm, the FOR loop that adds each number to the total is an example of the ____ construct.
難易度 1/5 · 100 コイン + 今日初回完了時に小ボーナス付与
Repeating a block for each number is iteration. The assignment inside it stores the running total.
解例:擬似コードからフローチャートへ
- 同じアルゴリズムを用いる。
STARTは角丸長方形に、Total ← 0とIndex ← 1は長方形に入れる。 - ⟨
FOR⟩ループはIndex <= N?を問う菱形となる。Yes出口は長方形Total ← Total + Number[Index]へ、次にIndex ← Index + 1へ、そして菱形へ上向きに戻る矢印がある。 - No出口は
Average ← Total / Nへ続き、出力の平行四辺形、そしてSTOPへ進む。 - 各ダイヤモンドの両方の出口にラベルを付ける。1つの未ラベル出口を持つダイヤモンドは判断ではない。
段階的詳細化(Stepwise Refinement)
- 段階的細分化とは、アルゴリズムを短いアウトラインとして書き、各ステップをより詳細な下位ステップに展開し、すべてのステップが直接コード化できるようになるまで繰り返すことである。
- 各レベルは上のレベルの構造を維持し、詳細を追加する。アウトラインは破棄されない:それはプログラムの構造となる。
- ステップが1行の擬似言語またはすでに持っている1つのモジュールになった時点で設計は停止する。

段階的細分化は、各ステップをコード化できるまでに展開する
Stepwise refinement is the technique of:
難易度 1/5 · 100 コイン + 今日初回完了時に小ボーナス付与
You refine a high-level outline level by level, adding detail while keeping the structure.
worked example: 3つのレベル
- レベル1: 受験結果を処理する。
- レベル2: 各得点を入力する。平均を計算する。合格者数を数える。レポートを出力する。
- レベル3で「合格者数を数える」を細分化する:
Passes ← 0、次に各得点に対してFOR、IF Mark >= 40 THEN Passes ← Passes + 1。 - 「段階的細分化を説明せよ」と問われた場合、3つの考え方を答える:アウトラインから始め、各ステップをより小さなステップへ展開し、各ステップがプログラム可能になった時点で停止する。
Stepwise refinement: outline to code
Step down the levels. You start with the whole task in one line and keep expanding each step into smaller ones — until every step is simple enough to code directly.
In stepwise refinement, each new level replaces the level above it, so the original outline is thrown away.
難易度 1/5 · 100 コイン + 今日初回完了時に小ボーナス付与
Each level keeps the structure of the one above and adds detail. The outline becomes the shape of the finished program.
論理式(Logic Statements)
- 論理文はブール条件であり、
TRUEかFALSEのいずれかであり、IF、WHILE、またはUNTILを制御する。 - これは比較演算子(
=,<>,<,>,<=,>=)がAND,OR,NOTで結合して構成されている。 Mark >= 0 AND Mark <= 100は範囲内の得点のみで真となる。Age < 12 OR Age >= 65は子供および年金受給者で真となる。

AND、OR、NOTで結合された比較演算子が1つの条件を作る
優先順位と括弧
- 演算子は固定された優先順位で適用される:
NOTが最初、次にAND、次にOR。 - つまり
A OR B AND CとはA OR (B AND C)を意味し、(A OR B) AND Cではない。A = TRUE,B = FALSE,C = FALSEの場合、前者はTRUEであり、後者はFALSEである。 - 条件が
ANDとORを混合する場合は常に括弧を使用する。コストはゼロであり、曖昧さを解消する。
Put the logic operators in order of precedence, highest (evaluated first) to lowest.
難易度 3/5 · 200 コイン + 今日初回完了時に小ボーナス付与
NOT binds tightest, then AND, then OR — use brackets when in doubt.
With no brackets, what does A OR B AND C mean?
難易度 1/5 · 100 コイン + 今日初回完了時に小ボーナス付与
AND has higher precedence than OR, so it is evaluated first. Bracket the condition anyway, so nobody has to remember.
デ・モルガンの法則
- デ・モルガンの法則:
NOT (A AND B)は(NOT A) OR (NOT B)と同じであり、NOT (A OR B)は(NOT A) AND (NOT B)と同じである。 - 言葉で表すと、「not (registered and paid)」は「not registered, or not paid」を意味する。
- 条件を簡略化したり確認したりするために使用される:
AとBの値を選び、両辺を計算し、すべての場合で一致することを確認する。
By De Morgan's law, NOT (A AND B) is the same as (NOT A) OR (NOT B).
難易度 1/5 · 100 コイン + 今日初回完了時に小ボーナス付与
NOT distributes over the bracket and flips AND↔OR; likewise NOT (A OR B) = (NOT A) AND (NOT B).
worked example: 言葉からの条件
- ルール:登録しており、かつ、支払い済みまたは奨学金がある場合、ただし休学していない場合にのみ学生は試験を受けることができる。
- ブール変数名:
Registered、Paid、Bursary、Suspended。 - 文:
Registered AND (Paid OR Bursary) AND NOT Suspended。 Paid OR Bursaryの括弧は不可欠である。これがない場合、ANDが先に結合され、奨学金は受け取っているが登録していない学生でも入学してしまう。
Which conditions are equivalent to NOT (Registered AND Paid)? Select all that apply.
難易度 2/5 · 140 コイン + 今日初回完了時に小ボーナス付与
De Morgan turns NOT of an AND into an OR of the NOTs. The AND version is too strict: a student who is registered but has not paid should make the original condition TRUE, and it makes the AND version FALSE.
見落としやすいポイント
a = 1 OR 2は条件ではない。a = 1 OR a = 2を書く:ORの両側は完全な比較である必要がある。NOTはそれに続く要素にのみ適用される。NOT A AND Bは(NOT A) AND Bを意味する。- ダイヤモンドには2つのラベル付き出口が必要であり、ループには戻り矢印が必要である。戻り矢印のないフローチャートはループではない。
- 構造化英語もまだ正確である。「得点を扱う」はステップ但不是;「得点を合計に加える」はステップである。
To test whether a is 1 or 2, the correct condition is:
難易度 1/5 · 100 コイン + 今日初回完了時に小ボーナス付与
Each side of OR must be a full comparison: a = 1 OR a = 2. Writing a = 1 OR 2 is a common error.
理解できましたか
- 1つのアルゴリズムに対する3つの表記:構造化英語、擬似言語、フローチャート(ダイヤモンド=判断、逆矢印=ループ)
- 段階的細分化:アウトライン → 各ステップを展開 → ステップがコード化可能になったら停止
- 論理文はブール条件;優先順位 NOT → AND → OR なので、それらを混合するものは括弧で囲む
- ド・モルガンの法則:
NOT (A AND B)=NOT A OR NOT B;NOT (A OR B)=NOT A AND NOT B