ドリル作成ツール VB6
前へ 目次へ 次へ 

 8.問題作成の処理U

 問題文と問題データ及び解答データが作成できたので、ここでは問題と解答のデータをそれぞれ指定の基数に変換する処理を説明する。

'各問(中問題)の終端に"ア"を付けること。
'中問題の末尾に"イ"を付けること。
Private Function Mondai2(cnt As Integer, arry() As Double, bt As Long) As String
'2進数問題作成
    Dim ans As String, mon As String
    Dim n As Integer

    mon = ""
    For n = 1 To cnt
        mon = mon & Left(KAKKO2, 1) & Trim(Str(n)) & Right(KAKKO2, 1) & " "   '番号
        If bt = &HFF Then       '1バイト
            ans = Right("00000000" & Dec2Bin(arry(n)), 8)
        ElseIf bt = &HFFFF Then '2バイト
            ans = Right("0000000000000000" & Dec2Bin(arry(n)), 16)
        Else
            ans = Dec2Bin(arry(n))
        End If
        mon = mon & ans & "ア   "
    Next n
    Mondai2 = Trim(mon) & "イ"
End Function

Private Function Mondai16(cnt As Integer, arry() As Double, bt As Long) As String
'16進数問題作成
    Dim ans As String, mon As String
    Dim n As Integer

    mon = ""
    For n = 1 To cnt
        mon = mon & Left(KAKKO2, 1) & Trim(Str(n)) & Right(KAKKO2, 1) & " "   '番号
        If bt = &HFF Then       '1バイト
            ans = Right("00" & Dec2Hex(arry(n)), 2)
        ElseIf bt = &HFFFF Then '2バイト
            ans = Right("0000" & Dec2Hex(arry(n)), 4)
        Else
            ans = Dec2Hex(arry(n))
        End If
        mon = mon & ans & "ア   "
    Next n
    Mondai16 = Trim(mon) & "イ"
End Function

Private Function Mondai10(cnt As Integer, arry() As Double, bt As Long) As String
'10進数問題作成
    Dim ans As String, mon As String
    Dim n As Integer

    mon = ""
    For n = 1 To cnt
        mon = mon & Left(KAKKO2, 1) & Trim(Str(n)) & Right(KAKKO2, 1) & " "  '番号
        ans = Trim(Str(arry(n)))
        mon = mon & ans & "ア   "
    Next n
    Mondai10 = Trim(mon) & "イ"
End Function

 2進数用Mondai2プロシージャと16進数用Mondai16プロシージャともほぼ同じ処理である。
 コメント「番号」の部分で問題の番号([1]など)を作成し、データをそれぞれの進数に変換している。このとき、1バイトか2バイトかによってけた数をそろえている。Dec2BinプロシージャとDec2Hexプロシージャは共通処理で作成したものである。
 10進数用Mondai10プロシージャは特別な処理はしていない。問題番号とデータを連結しているだけである。
 これら3つのプロシージャでは前提条件にもあったように各問の終わりに半角のア、全体の終わりに半角のイを目印として付けている。


 以上で簡単なプログラムの説明は終わりである。



 プログラムリストと実行ファイル  drilltool01.lzh (39KB)

基数変換.frm 28508
基数変換.frx 1090
基数変換.vbp 1020
基数変換.vbw 137
基数変換.exe 77824
DrillHelp.frm 2681
DrillSub.bas 18301
DrillSub.ini 1229
readme.txt 215
 
 基数変換.exeを実行するにはVisualBASIC6.0のランタイムライブラリが必要です。
 ランタイムライブラリなどは別途用意してください。


前へ 目次へ 次へ 
Copyright © 2003 Hiroshi Masuda 

 

 

inserted by FC2 system