*基本的な論理構造 [#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までやる必要はない
--割り切れる数が見つかった段階で繰り返しを中断すればよい
 繰り返しを抜ける

--エラトステネスの篩
---素数リストに加えた数のすべての倍数を探索対象から削除する

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS