Microsoft Small Basic

Program Listing: PZCJ416.000
' 問
' 2010年大学入試センター試験
' 情報関係基礎(第3問の問2)一部改
' 朝日新聞 2021年6月17日 教育面より
' Small Basic バージョン by たかはしのんき

Begin:
TextWindow.Write("n? ")
n = TextWindow.ReadNumber()

' 正の整数を漢数字で表示する手順を考えよう。
' 図1のように、配列 Suji と配列 KuraiMoji に、漢数字を格納しておく。
' なお Suji[1] と KuraiMoji[1] には、空文字を格納しておく。

Suji = "2=二;3=三;"
Suji = Suji + "4=四;5=五;6=六;"
Suji = Suji + "7=七;8=八;9=九;"
KuraiMoji = "4=千;3=百;2=十;"
' 図1 文字の配列を初期化する手続き

' 一万未満の数 n を漢数字で表示する哲好きを図2に示す。
' ただし、二つの整数 a ≥ 0、b > 0 に対し、Math.Floor(a / b) は
' a を b で割った商の整数部分を、Math.Remainder(a, b) は
' a を b で割った余りを、それぞれ計算する。

kurai = 1000
For keta = 4 To 1 Step -1
d = Math.Floor(n / kurai)
If d <> 0 Then
If [オ] Then
TextWindow.Write([カ])
Else
TextWindow.Write([キ])
TextWindow.Write([ク])
EndIf
EndIf
n = Math.Remainder(n, kurai)
kurai = Math.Floor(kurai / 10)
EndFor
' 図2 一万未満の数宇 n 漢数字表示する手続き

' [オ]の解答群
' ⓪ keta <> 1 ① keta = 1 ② (d = 1) And (keta <> 1)
' ③ (d = 1) And (keta = 1) ④ (d >= 2) And (keta <> 1) ⑤ (d >= 2) And (keta = 1)

' [カ]~[ク]の解答群
' ⓪ "一" ① Suji[d] ② KuraiMoji[d]
' ③ "十" ④ Suji[keta] ⑤ KuraiMoji[keta]
' ⑥ "百" ⑦ Suji[n] ⑧ KuraiMoji[n]
' ⑨ "千" ⑩ Suji[kurai] ⑪ KuraiMoji[kurai]

TextWindow.WriteLine("")
Goto Begin