Skip to main content

新規ページ

基本情報技術者試験:擬似言語の書き方

今日の目標

  • フローチャートで表した処理を擬似言語で書ける
  • 順次・選択・反復の三つの構造を見分けられる
  • if、for、whileを読んで、簡単な処理を書ける

1. 擬似言語とは

擬似言語は、プログラムの処理手順を、人が読みやすい形で表す言葉です。

フローチャートと擬似言語は、見た目は違いますが、同じアルゴリズムを表しています。

フローチャート 擬似言語
長方形の処理 代入、計算、表示など
ひし形の判断 if又はwhileの条件式
矢印 上から下への処理の流れ
繰返しの戻り矢印 for又はwhile

2. 最初に覚える記号

整数型: hp
hp ← 100
表示する(hp)
  • 「整数型: hp」:整数を入れる変数hpを用意する
  • 「hp ← 100」:hpに100を代入する
  • 「表示する(hp)」:hpの値を表示する

代入と比較を区別する

  • hp ← 100:hpに100を入れる
  • hp = 100:hpと100が等しいか調べる

このプリントでは、次の処理を使います。

  • 入力する():数値を一つ入力する
  • 表示する(値):値を表示する

3. 三大構造

プログラムの基本的な流れは、次の三つで作れます。

  1. 順次:上から順番に処理する
  2. 選択:条件によって処理を分ける
  3. 反復:同じ処理を繰り返す

4. 順次構造

順次構造では、上から下へ一行ずつ処理します。

整数型: hp, damage
hp ← 100
damage ← 30
hp ← hp - damage
表示する(hp)
処理後 hp damage
hp ← 100 100 未定義
damage ← 30 100 30
hp ← hp - damage 70 30

ワーク1

次のプログラムが最後に表示する値を書きなさい。

整数型: playerHp, damage
playerHp ← 100
damage ← 35
playerHp ← playerHp - damage
表示する(playerHp)

答え:(      )


5. 選択構造:if

選択構造では、条件によって実行する処理を変えます。

if (score ≧ 80)
    ゲームクリアを表示する()
else
    ゲーム続行を表示する()
endif
  • 条件が真:ifの下の処理を行う
  • 条件が偽:elseの下の処理を行う
  • 最後にendifを書く

三つ以上に分けるときはelseifを使います。

if (score ≧ 80)
    ランクSを表示する()
elseif (score ≧ 60)
    ランクAを表示する()
else
    ランクBを表示する()
endif

条件は上から調べ、最初に真になった処理だけを実行します。

ワーク2

次の条件を擬似言語で書きなさい。

  • playerHpが0以下なら、ゲームオーバーを表示する
  • それ以外なら、playerHpを表示する
if (         )
    ゲームオーバーを表示する()
else
    表示する(playerHp)
endif

6. 反復構造:for

forは、繰返す回数が決まっているときに使います。

整数型: i

for (i を 1 から 5 まで 1 ずつ増やす)
    表示する(i)
endfor

表示される値:1、2、3、4、5

「1から5まで」なので、5も含み、全部で5回繰り返します。

ワーク3

次のプログラムが表示する値を、順番に全て書きなさい。

整数型: i

for (i を 1 から 4 まで 1 ずつ増やす)
    表示する(i × 10)
endfor

答え:(                    )


7. 反復構造:while

whileは、条件が真である間、処理を繰り返します。

整数型: enemyHp
enemyHp ← 70

while (enemyHp > 0)
    enemyHp ← enemyHp - 30
    表示する(enemyHp)
endwhile
繰返し回数 条件確認時のenemyHp 減算後のenemyHp
1回目 70 40
2回目 40 10
3回目 10 -20
次の確認 -20なので偽 終了

whileでは、条件に使う値を変化させる必要があります。

次のプログラムはcountが変化しないので、終わりません。

整数型: count
count ← 1

while (count ≦ 5)
    表示する(count)
endwhile

正しくは、countを増やします。

整数型: count
count ← 1

while (count ≦ 5)
    表示する(count)
    count ← count + 1
endwhile

ワーク4

空欄を埋め、3、2、1の順番に表示されるようにしなさい。

整数型: count
count ← 3

while (count > 0)
    表示する(count)
    count ← count - (   )
endwhile

8. forとwhileの使い分け

やりたいこと for / while
弾を10発生成する (     )
敵を5体配置する (     )
HPが0より大きい間ゲームを続ける (     )
正しい値が入力されるまで繰り返す (     )
  • 回数が先に分かる → for
  • 終了する条件が分かる → while

9. 総合ワーク

次のプログラムを読み、表を埋めなさい。

整数型: i, count
count ← 0

for (i を 1 から 5 まで 1 ずつ増やす)
    if (i ≧ 3)
        count ← count + 1
    endif
endfor

表示する(count)
i i ≧ 3 count
1
2
3
4
5

最後に表示される値:(      )


10. まとめ

  1. 順次:上から順番に処理する
  2. 選択:if~else~endif
  3. 反復:for~endfor、while~endwhile
  4. 代入は「←」、比較は「=」
  5. 回数が分かるときはfor
  6. 条件が真の間続けるときはwhile
  7. whileでは、条件に関係する値を変化させる