2008年4月19日 星期六

矩陣相加

基本架構練習:

Private Sub Command1_Click()
'宣告二維陣列
Dim a(2, 2) As Integer, b(2, 2) As Integer, c(2, 2) As Integer
Call datainput(a(), b()) '呼叫資料輸入介面

Call process(a(), b(), c()) '呼叫處理資料介面
Call prn(c()) '呼叫輸出資料介面

End Sub

Public Sub datainput(a() As Integer, b() As Integer)
Dim i As Integer '宣告計數變數
Open Text1.Text For Input As #1 '開啟檔案
For i = 1 To 2 '讀取資料至 a 陣列
Input #1, a(i, 1), a(i, 2) '列運算讀取一列資料
Next
For i = 1 To 2 '讀取資料至 b 陣列
Input #1, b(i, 1), b(i, 2) '列運算讀取一列資料
Next
Close '關閉檔案

End Sub



Public Sub process(a() As Integer, b() As Integer, c() As Integer)
Dim i As Integer '宣告計數變數
For i = 1 To 2 '控制列運算
c(i, 1) = a(i, 1) + b(i, 1) '第 1 行的運算
c(i, 2) = a(i, 2) + b(i, 2) '第 2 行的運算
Next

End Sub

Sub prn(c() As Integer)
Dim i As Integer
'Printer.FontSize = 20 '設定列表機輸出字型大小 (可省略)
'Printer.Print "第五題結果:"
For i = 1 To 2 '每一列的結果輸出
List1.AddItem ("[" & c(i, 1) & " " & c(i, 2) & "]")
'Printer.Print "["; c(i, 1); " "; c(i, 2); "]"
Next
'Printer.EndDoc '結束列印
End Sub


BMI計算

基本架構練習:

Private Sub Form_Load()
Dim tall, weight, BMI, minBMI As Single
Dim i As Integer
minBMI = 1000
Open "e:\vbtest\940304.sm" For Input As #1

For i = 1 To 3
Input #1, tall, weight
Print tall, weight,
tall = tall / 100 '變公尺
BMI = weight / (tall * tall)
'Print BMI,
BMI = (BMI * 10 + 5) \ 10
Print BMI
If minBMI > BMI Then minBMI = BMI
Next i

If minBMI >= 20 And minBMI <= 25 Then
Print "第四題結果:最小BMI 值="; minBMI; ",正常"
Else
Print "第四題結果:最小BMI 值="; minBMI; ",不正常"
End If
Close #1
End Sub

求質數

基本架構練習:

Dim InVal As Integer
Dim i, j As Integer
Dim TmpVal As Integer
Dim ans As Integer '紀錄最近一次整除的數

Private Sub Form_Activate()
InVal = 27
For i = 1 To InVal - 1
TmpVal = InVal Mod i
If TmpVal = 0 Then
ans = i
End If
Next i

If ans = 1 Then
Print InVal; "is a prime number."
Else
Print InVal; "is not a prime number."
End If



End Sub

直角三角形列印

基本架構練習:


Dim InVal As Integer
Dim i, j As Integer

Private Sub Form_Activate()
InVal = 8
For i = 1 To InVal
For j = 1 To i
Print j;
Next j
Print
Next i

End Sub

迴文判斷

基本架構練習:


Dim InVal As Long
Dim OutVal As Long
Dim TmpVal As Long
Dim OldVal As Long

Dim i As Integer

Private Sub Form_Activate()
InVal = 1234321
OldVal = InVal

For i = 1 To 10
TmpVal = InVal Mod 10
OutVal = OutVal * 10 + TmpVal
InVal = InVal \ 10
If InVal = 0 Then Exit For

Next i
Print OldVal
Print OutVal
If OldVal = OutVal Then
Print OldVal; "is a palindrome."
Else
Print OldVal; "is not a palindrome."
End If

End Sub