2014年7月12日土曜日

H25春 午前問8

流れ図の問題は実際に値を代入して確認するのが一番早いと思う。

どうしても頭に入ってこないのならば、身近な言語に置き換えてしまってもよいのかもしれないですね。



Sub(x as Integer, y as Integer)
    Dim q As Integer, r As Integer
    q = 0
    r = x


    '①
    Do
        
        if r < y Then Exit Do '②
        
        r = r - y
        q = q + 1
    '③
    Loop

    '④

    Debug.Print q
    Debug.Print r

End Sub

例えばVBAだとこんな感じ

選択肢を見ると割り算の処理であることが明白。
あとは、どっちで割るのかとか、どっちが商でどっちがあまりなのかということなので

それらの関係がはっきりわかる、具体的な値を代入して結果を確認してみる。
たとえば、5÷3=1 余り2 を例に考えてみる。

x = 5
y = 3とすると

①の時点で
x = 5, y = 3, q = 0, r = 5

②では、
if 5 < 3 Then となるので False ループを継続する

③の時点で
x = 5, y = 3, r = 2, q = 1 

ここの処理を見ると割る数(y)を1つ取り除き
qの値が1つ増えているので、 yが割る数でq は商を表している雰囲気を感じとれるとよいのかな
でも、実際に結果を見るのが一番確実なので続ける。

②では、
if 2 < 3 Then となり Trueになりループを抜けることになる

④の時の各値は
x = 5, y = 3, r = 2, q = 1となり

5÷3=1 余り2 と比較すると

xが割られる数で
yが割る数
qが商
rが余り
ということになる。

答え イ

戻る

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。