基本情報技術者試験:擬似言語の書き方
今日の目標
- フローチャートで表した処理を擬似言語で書ける
- 順次・選択・反復の三つの構造を見分けられる
- 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. 三大構造
プログラムの基本的な流れは、次の三つで作れます。
- 順次:上から順番に処理する
- 選択:条件によって処理を分ける
- 反復:同じ処理を繰り返す
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. まとめ
- 順次:上から順番に処理する
- 選択:if~else~endif
- 反復:for~endfor、while~endwhile
- 代入は「←」、比較は「=」
- 回数が分かるときはfor
- 条件が真の間続けるときはwhile
- whileでは、条件に関係する値を変化させる
No Comments