センター試験数学のプログラム問題をVBAで
センター試験…
今はもう遠いむかしですね~
高校生の時
数学の教師にセンター入試のプログラムのことを
聞いたことがあったのですが
全く教えてもらえませんでした。
こんなもんも教えられないで
よくあの人たちは数学教師を
やっていられたなーと思います。
世の中 結構 甘いですね。
さて、今回のプログラム問題のテーマは
三角形の3辺の長さの関係についてでした。
つまり、
三角形で一番長い辺は
その他の2辺を足したものより小さい。
というやつです。
センター入試のプログラム問題は
最初にネタバレしてしまえば
すごい簡単なんですけど
徐々にネタバレっていうのが
常套手段です。
親切な誘導でもあります。
詳しい問題は2010年1月18日の新聞で確認してください。
問題:a + b + c = N なる自然数a、b、c の組の総数を求める。
ただしa <= b <= c
この条件より
aのとり得る値は
1 <= a <= Int(N/3)
bのとり得る値は
a <= b <= Int((N - a)/2)
とわかります。
a, b が決まれば c はただ1つです。
なので b がいくつあるかが
この問題の山場ですね~
問題番号でいうと「エ」の問題。
例えば
1<= b <= 4 の自然数は
1, 2, 3, 4 の4つです。
式で出そうとすると
4 - 1 + 1 = 4
この「+1」のところを忘れがちです。
上述の b のとり得る値より
b = Int((N - a)/2) - a + 1
になります。
これが問題「エ」の答えですね。
さて、VBAで実行できるように
最初のプログラムを書き直します。
INPUTは、InputBox
Printは、MsgBoxで代用してます。
Sub macro100119a() |
Nを入力します
結果は
次は行番号131-137の所です。
自然数Nを三角形の三辺の長さとなり得る三つの自然数a, b, c (a <= b <= c)の和として表 す方法をすべて列挙し、その総和を求める。
の箇所ですが
ようするに
自然数a, b, c (a <= b <= c) に
a + b > c という条件が増えるということです。
この条件が
三角形で一番長い辺は
その他の2辺を足したものより小さい。
にあたります。
コードはこちら
今度は表示する回数が多いので
PRINT を Debug.Printで代用して
イミディエイト ウィンドウに表示させてみました。
イミディエイト ウィンドウは
「表示」-「イミディエイト ウィンドウ」
で表示できます。
Sub macro100119b() |
結果は
正直に言うと
存在は知っていたものの
イミディエイト ウィンドウを使ったことなかったですが
MsgBoxより断然便利。
今までMsgBoxにかなり時間を無駄にしました。
不覚でした。
| 固定リンク
この記事へのコメントは終了しました。

コメント