プログラミング入門Ⅰ (No.8) 入力を利用する

プログラミング入門Ⅰ (No.8)
入力を利用する
[問題1]次の計算をするフローチャートを書きなさい。
(1-1)
変数 M を入力し、1 から M までの整数の和を計算して答を出力する。
ただし、答は変数 S に入るようにし、カウンタ用変数として K を使う。
(例)M=5 を入力すると、1+2+3+4+5 を計算する。
《8-1》
[問題1:続き]次の計算をするフローチャートを書きなさい。
(1-2)
変数 a と b に数値を入力し、a から b までの整数の和を計算して答を出力する。
ただし、答は変数 S に入るようにし、カウンタ用変数として K を使う。
(例)a=5, b=10 を入力すると、5+6+7+8+9+10 を計算する。
(1-3)
変数 M と N に数値を入力し、M を N 回足し算して答を出力する。
ただし、答は変数 S に入るようにし、カウンタ用変数として K を使う。
(掛け算を足し算の繰り返しで求める。)
《8-2》
[問題2] a÷b を引き算の繰り返しで計算するために以下のようなフローチャートを書いた。
(考え方) 変数 a と b に数値を入力する。a から b を引けなくなるまで繰り返して引く。引いた回数と余
りが答になる。余りは変数 R に入るようにし、回数を数えるカウンタ用変数として K を使う。
このフローチャートに従って計算を行ったときの途中経過と結果を書きなさい。
(2-1) a = 20, b = 6 を入力したとき
はじめ
a
①
a 入力
①
②
b 入力
②
③
R=a
③
④
K=0
④
⑤
R = R-b
⑤
⑥
K = K+1
⑥
⑦ Yes
R
K
R
R
K
R
K
R
K
⑧
おわり
出力結果は[K =
,R=
(2-2) a = 5, b = 5 を入力したとき
a
K
⑦
R≧b
No
K, R
出力
⑧
b
b
R
K
]になる。
(2-3) a = 3, b = 8 を入力したとき
R
K
a
①
①
②
②
③
③
④
④
⑤
⑤
⑥
⑥
⑦
⑦
⑧
⑧
出力結果は[K =
,R=
]になる。
《8-3》
b
出力結果は[K =
R
K
,R=
R
K
]になる。
プログラミング入門Ⅰ (No.8-2)
締切: 6/6 (土)
井芹研究室前の箱へ
学籍番号:
氏
名:
クラス:
[問題3]前の[問題2]のフローチャートに従って処理すると、大体の場合は正しく答が出るが、ある場合には
割り算としては誤った答になってしまう。このことについて、[問題2]の結果をもとに考えなさい。
(3-1) 一般に、a と b がどういう関係にある場合に誤りになりますか?
(3-2) なぜそうなってしまうのか?どこが悪いのだろうか?原因(理由)は何でしょう?
(3-3) それでは、フローチャートをどのように改良すればよいでしょうか?
(3-4) 改良後のフローチャートを書きなさい。
また、3 つの場合の途中経過を書いてチェックしてみなさい。
(3 つの場合すべてで正しい答えが出るようにならなければいけませんね。)
フローチャートと途中経過表は裏に書いてください。 ⇒
[問題4]今日の授業の内容に関する質問・感想を書きなさい。
《8-4》
[改良後のフローチャート]
(1) a = 20, b = 6 を入力したとき
a
b
R
K
R
K
R
K
R
K
①
②
③
④
⑤
⑥
⑦
⑧
出力結果は[K =
(2) a = 5, b = 5 を入力したとき
a
b
R
,R=
(3) a = 3, b = 8 を入力したとき
K
R
K
a
①
①
②
②
③
③
④
④
⑤
⑤
⑥
⑥
⑦
⑦
⑧
⑧
出力結果は[K =
]になる。
,R=
]になる。
《8-5》
b
出力結果は[K =
R
K
,R=
R
K
]になる。