練習問題ヒント(5月16追記)
P8 練習問題
その1
- 試験点xを入力
- xは60点以上?
- YES:“合格”を表示
- NO:“不合格”を表示
その2
- x%2 == 0 ?
- YES: “偶数”を表示
- NO: “奇数”を表示
その3
- 西暦をxとする(xを代入か初期化)
- x % 100 == 0 ?
- YES:
- x % 400 == 0 ?
- YES: “うるう年”を表示
- NO: “平年”を表示
- NO:
- x % 4 == 0 ?
- YES: “うるう年”を表示
- NO: “平年”を表示
P10 練習問題
問題1.
- カウンタcntを用意
- cnt ← 0
- cnt < 3 の間以下を繰り返す
- “大事なことだから何回も言います” と表示
- cnt ← cnt + 1
問題2.
- sum←0 (sumを初期化)
- 以下を繰り返す(無限ループ)
- キーボードからaを入力
- a == 0 ?
- YES:
- sum を出力
- プログラム終了
- No :
- sum = sum + a
問題3.
- sum←0 (sumを初期化)
- 以下を繰り返す(無限ループ)
- キーボードからaを入力
- a == 0 ?
- YES:
- sum を出力
- プログラム終了
- No :
- a > 0 ?
- YES: sum = sum + a
- NO: 何もしない
P11問題
問題1.
- 整数xを入力
- cnt ← 1
- cnt ⇐ 9 の間以下を繰り返す
- ans ← cnt * x
- x “*” cnt “=” ans(改行) を表示
- cnt ← cnt + 1
問題2.
- cnt ← 1
- cnt ⇐ 10 の間以下を繰り返す
- cnt % 2 == 0 ?
- YES: “偶数”を表示
- NO: “奇数”を表示
問題3.
- cnt ← 0、sum ← 0
- cnt ⇐ 50の間以下を繰り返す
- cnt % 2 == 1 ?
- YES: sum ← sum + cnt
- NO: 何もしない
- sumを表示する
P13問題 問題1. 横に8個(8列)、縦に6個(6行)表示しなきゃない。 それプラス、1行目は黒白黒白黒。。。。2行目は白黒白黒。。。という順番 さてどうしようか? 方針として、まず、2重ループで箱を8列6行表示してみる
アルゴリズム
- cnt_retu ← 0, cnt_gyou ← 0
- cnt_gyou < 6の間、以下を繰り返す
- cnt_retu < 8 の間、以下を繰り返す
- “□”を表示
- cnt_retu ← cnt_retu + 1
- 改行文字を表示
- cnt_gyou ← cnt_gyou + 1
このアルゴリズムが動くと □□□□□□□□ □□□□□□□□ □□□□□□□□ □□□□□□□□ □□□□□□□□ □□□□□□□□ が、表示される。 あとは白黒を何とかすればいいよね! 問題2. 12ページの問題1で指定され段の九々を表示する処理は実現できているはず。 指定された段の九々を表示する処理を 九々(段)という命令で表す。 たとえば 九々(2)を実行すると __2 __4 __6 __8 _10 _12 _14 _16 _18 を出力する。 これを使って、 1.cnt_dan ← 1 2.cnt_dan <= 9 の間、以下を繰り返す あ)九々(cnt_dan) い)改行を表示 う)cnt_dan ← cnt_dan + 1 あとは、九々のところを、12ページの問題2と同じように書く! 問題3. 基本は、問題1と同じ 7x7の繰り返しになっているだけなので繰り返しの回数をかえて、 まずは、これを表示する □□□□□□□ □□□□□□□ □□□□□□□ □□□□□□□ □□□□□□□ □□□□□□□ □□□□□□□ んで、これを表示するときに 1行目 白6黒1 2行目 白5黒2 3行目 白4黒3 4行目 白3黒4 5行目 白2黒5 6行目 白1黒6 7行目 白0黒7 で表示する。 1行目の白と黒を分ける条件式を考えてみよう。 (黒の数と、今考えている行数が一致していることを使っていくぅ)
問題1.(チェッカーフラッグのやつ)
問題1.もうちょいまとまったやつ(チェッカーフラッグのやつ)
問題2.(九々表のやつ)
問題3.(三角模様のやつ)