網路城邦
上一篇 回創作列表 下一篇   字體:
【電腦軟體設計】電腦軟體設計-丙級-術科測驗2站-第3題
2009/07/09 20:27:31瀏覽3077|回應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


執行畫面


( 在地生活中彰投 )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=zdzo&aid=2891365

 回應文章


等級:
留言加入好友
真好,還可以這樣子解!
2009/07/09 23:36
真好,還可以用這樣子寫!

以前考試,還要自己寫結構,
結合指標,
自製一個像 Excel 的串序鏈
再加上堆疊.......

看完老師的解答..

唉,那我的堆疊真的用不上了!
還要記得很清楚,
先進先出,還是後進先出!

想到就頭痛!