字體:小 中 大 | |
|
|
2009/07/09 20:27:31瀏覽3102|回應1|推薦1 | |
解題程式 Private Sub Form_Load() M = 2 '設變數M初始值為2,用來設定MSF的物件開始有2列 Open "A:\940308.SM1" For Input As #1 '開啟外部檔案 Do While Not EOF(1) '條件迴圈,判斷是否為檔案結尾 Input #1, b, a, OP, y, x '讀取外部變數 MSF.Rows = M '設定MSF元件的列數 ans = "" '設定變數ans初始值為空字串 Select Case OP '判斷運算符號,決定分子分母的計算方法 Case "+" n = b * x + a * y d = a * x Case "-" n = (b * x - a * y) d = a * x Case "*" n = b * y d = a * x Case "/" n = b * x d = a * y End Select If (n Mod d) = 0 Then '如果分子分母整除 ans = n / d '答案直接以整除後的數字表示 Else '找出最大公因數 r = n Mod d 'r變數為餘數 i = d '令變數i為除數 Do While Not r = 0 '判斷餘數是為零 j = i '將除數改為被除數 i = r '將餘數改為除數 r = j Mod i '計算餘數 Loop ans = (n / i) & "/" & (d / i) '計算答案以約分後的分數式表達 End If With MSF .Row = M - 1 '列指標指定到最後一列 .Col = 1: .Text = b & "/" & a '欄指標指定到第1欄,分子1/分母1指定到此欄 .Col = 2: .Text = OP '欄指標指定到第2欄,運算符號指定到此欄 .Col = 3: .Text = y & "/" & x '欄指標指定到第3欄,分子2/分母2指定到此欄 .Col = 4: .Text = ans '欄指標指定到第4欄,運算答案指定到此欄 End With M = M + 1 '變數M加1,代表要新增一列 Loop '讀檔迴圈結尾 T = Array("", "VALUE1", "OP", "VALUE2", "ANSER") '宣告欄位名稱陣列,第o列為空白名稱 '其他列則參考題目要求 With MSF '調整表單 .Row = 0 '列指標指向第0列 For i = 0 To 4 .Col = i: .Text = T(i) '指定欄位名稱 .ColWidth(i) = 1000 '指定每一個欄位的寬度為1000 .ColAlignment(i) = 2 '指定每一個欄位置左對齊 Next i .Height = 220 * M '調整MSF元件高度 End With Form1.Height = 220 * M + 2500 '調整表單高度 End Sub 執行畫面 |
|
( 在地生活|中彰投 ) |