*基本的な論理構造 [#a645199b]
**順次処理 [#yfb80752]
-変数の入れ替え
整数 x, y, t
x ← 3, y ← 8
t ← x
x ← y
y ← t
**分岐処理 [#c7638ea1]
-おみくじ
整数 r
r ← random(10)
もし r≧8 ならば
| 「大吉です」を表示する
を実行し,そうでなくもし r≧3 ならば
| 「吉です」 を表示する
を実行し,そうでなければ
| 「凶です」 を表示する
を実行する
**反復処理 [#i5909806]
-1から順に整数の和を求める
整数 a
a ← 0
a ← a + 1
a ← a + 2
a ← a + 3
a ← a + 4
a ← a + 5
a ← a + 6
a ← a + 7
a ← a + 8
a ← a + 9
a ← a + 10
a を表示する
-1から順に整数の和を求める(反復)
整数 a, i
a ← 0
i を 1 から 10 まで 1 ずつ増やしながら,
| a ← a + i
を繰り返す
a を表示する
**発展課題 [#p31d6ec5]
-状態遷移(■には整数が入る)
整数 s, goal
文字列 c
s ← 0, goal ← 0
goal=0 の間,
| state(s) と「にいます」を表示する
| もし s=3 ならば
| | goal ← 1
| を実行し,そうでなければ
| | 「AかBの船を選んで下さい」 を表示する
| | c ← input()
| | s ← nextState(s, c)
| を実行する
を繰り返す
「おめでとう」 を表示する
関数 文字列 state(整数 s)
| もし s=■ ならば
| | 「港」を返す
| を実行し,そうでなくもし s=■ ならば
| | 「カメ島」を返す
| を実行し,そうでなくもし s=■ ならば
| | 「海賊島」を返す
| を実行し,そうでなければ
| | 「宝島」を返す
| を実行する
関数終了
関数 整数 nextState(整数 s, 文字列 c)
| もし s=0 ならば
| | もし c="A" ならば
| | | ■を返す
| | を実行し,そうでなければ
| | | ■を返す
| | を実行する
| を実行し,そうでなくもし s=1 ならば
| | もし c="A" ならば
| | | ■を返す
| | を実行し,そうでなければ
| | | ■を返す
| | を実行する
| を実行し,そうでなくもし s=2 ならば
| | もし c="A" ならば
| | | ■を返す
| | を実行し,そうでなければ
| | | ■を返す
| | を実行する
| を実行し,そうでなければ
| | ■を返す
| を実行する
関数終了
-素数を求める
整数 i, j, sosu
i を 2 から 1000 まで 1 ずつ増やしながら,
| sosu ← 1
| j を 2 から i-1 まで 1 ずつ増やしながら,
| | もし i % j = 0 ならば
| | | sosu ← 0
| | を実行する
| を繰り返す
| もし sosu = 1 ならば
| | | iと「 」を改行なしで表示する
| を実行する
を繰り返す
--i-1までやる必要はない
--割り切れる数が見つかった段階で繰り返しを中断すればよい
繰り返しを抜ける
--エラトステネスの篩
---素数リストに加えた数のすべての倍数を探索対象から削除する