- Chọn ký hiệu, Copy sau đó dán vào VB.NET 09:56:11 Private Sub bttNo0_Clicksender As Object, e As EventArgs Handles bttNo0.Click If lblResult.Text "0" Then lblResult.Text += "0" End
Trang 11 Chương trình máy tính đơn giản
2 ScriptControl
BÀI 4: CÁC HÀM TOÁN HỌC
1 Bài 4
08:33:02
Chương trình máy tính đơn giản
09:56:11
Giao diện thiết kế:
1
2
Trang 2Bài 4 3
Chèn ký hiệu √: - Mở app Character Map trên Windows.
- Chọn ký hiệu, Copy sau đó dán vào VB.NET
09:56:11
Private Sub bttNo0_Click(sender As Object, e As EventArgs) Handles
bttNo0.Click
If lblResult.Text <> "0" Then
lblResult.Text += "0"
End If
End Sub
Private Sub bttNo1_Click(sender As Object, e As EventArgs) Handles
bttNo1.Click
If lblResult.Text <> "0" Then
lblResult.Text += "1"
Else
lblResult.Text = "1"
End If
End Sub
lblResult.Text Click lblResult.Text
lblResult.Text Click lblResult.Text
09:56:11
3
Trang 3Bài 4 5
09:56:11
Private Sub bttDot_Click(sender As Object, e As EventArgs) Handles
bttDot.Click
If lblResult.Text.IndexOf(".") = -1 Then
lblResult.Text += "."
End If
End Sub
lblResult.Text Click lblResult.Text
lblResult.Text Click lblResult.Text
(không làm gì cả)
Private Sub bttInverse_Click(sender As Object, e As EventArgs)
Handles bttInverse.Click
If lblResult.Text.IndexOf("-") = -1 Then
lblResult.Text = "-" + lblResult.Text
Else
lblResult.Text = lblResult.Text.Substring(1)
End If
End Sub
lblResult.Text Click lblResult.Text
lblResult.Text Click lblResult.Text
(xóa dấu -) (thêm dấu -)
lblResult.Text.Substring(1)
: lấy chuỗi từ vị trí 1 đến cuối chuỗi (không lấy vị trí 0)
09:56:11
5
6
Trang 4Bài 4 7
Public Class frmCalc
Dim Operation As String
Dim Num1 As Double
Dim Num2 As Double
Private Sub bttAdd_Click(sender As Object, e As EventArgs)
Handles bttAdd.Click
Num1 = CDbl(lblResult.Text)
Operation = "+"
lblResult.Text = "0"
End Sub
Khai báo các biến sử dụng trong chương trình:
Nút +:
09:56:11
Private Sub bttEqual_Click(sender As Object, e As EventArgs)
Handles bttEqual.Click
Num2 = CDbl(lblResult.Text)
Select Case Operation
Case "+"
lblResult.Text = (Num1 + Num2).ToString
Case "-"
lblResult.Text = (Num1 - Num2).ToString
Case "*"
lblResult.Text = (Num1 * Num2).ToString
Case "/"
If Num2 <> 0 Then
lblResult.Text = (Num1 - Num2).ToString
Else
lblResult.Text = "Chia cho 0"
End If
End Select
End Sub
7
Trang 5Bài 4 9
Private Sub bttSin_Click(sender As Object, e As EventArgs) Handles
bttSin.Click
lblResult.Text = Math.Sin(CDbl(lblResult.Text)).ToString
End Sub
Private Sub bttCos_Click(sender As Object, e As EventArgs)
Handles bttCos.Click
lblResult.Text = Math.Cos(CDbl(lblResult.Text)).ToString
End Sub
Private Sub bttTan_Click(sender As Object, e As EventArgs)
Handles bttTan.Click
lblResult.Text = Math.Tan(CDbl(lblResult.Text)).ToString
End Sub
Các nút sin, cos, tan:
09:56:11
Private Sub bttLog_Click(sender As Object, e As EventArgs) Handles
bttLog.Click
If CDbl(lblResult.Text) > 0 Then
lblResult.Text = Math.Log(CDbl(lblResult.Text)).ToString
Else
MessageBox.Show("Error!")
End If
End Sub
Private Sub bttExp_Click(sender As Object, e As EventArgs)
Handles bttExp.Click
lblResult.Text = Math.Exp(CDbl(lblResult.Text)).ToString
End Sub
Private Sub bttSqrt_Click(sender As Object, e As EventArgs)
Handles bttSqrt.Click
If CDbl(lblResult.Text) >= 0 Then
lblResult.Text = Math.Sqrt(CDbl(lblResult.Text)).ToString
Else
MessageBox.Show("Error!")
End If
End Sub
Các nút log, exp, sqrt: 09:56:11
9
10
Trang 6Bài 4 11
Private Sub bttC_Click(sender As Object, e As EventArgs) Handles
bttC.Click
lblResult.Text = "0"
End Sub
Private Sub bttAC_Click(sender As Object, e As EventArgs)
Handles bttAC.Click
lblResult.Text = "0"
Operation = Nothing
End Sub
Các nút C, AC:
09:56:11
Dùng ScriptControl
09:56:11
Click chuột phải vào cửa sổ Toolbox, chọn Choose Items
11
Trang 7Bài 4 13
ScriptControl
09:56:11
Kéo điều khiển ScriptControl Object vào cửa sổ thiết kế
Bổ sung label lblFormula để hiển thị chuỗi công thức.
Sửa lại mã lệnh cho nút +, -, *, /
Private Sub bttAdd_Click(sender As Object, e As EventArgs)
Handles bttAdd.Click
If Formula = "0" Then
Formula = lblResult.Text + "+"
Else
Formula += lblResult.Text + "+"
End If
lblFormula.Text = Formula
lblResult.Text = "0"
End Sub
Formula
Click
lblResult.Text lblResult.Text
Formula
Formula
Click
lblResult.Text lblResult.Text
Formula
09:56:11
13
14
Trang 8Bài 4 15
09:56:11
Private Sub bttEqual_Click(sender As Object, e As EventArgs) Handles
bttEqual.Click
Formula += lblResult.Text
lblFormula.Text = Formula + "="
lblResult.Text = CalcString(Formula).ToString
Formula = "0"
End Sub
Private Function CalcString(Formula As String) As Double
SC.Language = "VBSCRIPT"
Return Convert.ToDouble(SC.Eval(Formula))
End Function
Formula
Click
lblResult.Text
lblResult.Text
Formula: 52-12*4+25
Dùng ScriptControl để chuyển biểu thức dạng String thành giá trị
Convert.ToDouble(SC.Eval(Formula))
Formula
09:56:11
Các hàm toán học trong lớp
System.Math
Abs Giá trị tuyệt đối
Acos Tính arcos
Asin Tính arsin
Atan Tính artan
Atan2 Tính artan với ngõ vào là tọa độ trên mặt phẳng Cartesian
BigMul Tính phép nhân cho 2 số nguyên 32 bit
Ceiling Làm tròn đến số nguyên nhỏ nhất lớn hơn hay bằng số làm tròn
Cos Tính cos
Cosh Tính cos hyperbolic
DivRem Tính thương và số dư của 2 số nguyên 32 bit
Exp Tính e^x
Floor Làm tròn đến số nguyên lớn nhất nhỏ hơn hay bằng số làm tròn
15
Trang 9Bài 4 17
Log Tính log theo cơ số chỉ định trước, nếu không chỉ ra cơ số thì tính ln
Log10 Tính log cơ số 10
Max Tính max
Min Tính min
Pow Tính lũy thừa
Round Làm tròn
Sign Xác định dấu
Sin Tính sin
Sinh Tính sin hyperbolic
Sqrt Tính căn bậc hai
Tan Tính tang
Tanh Tính tang hyperbolic
Truncate Tính phần nguyên
09:56:11
Các hàm toán học trong lớp
System.Math
Bổ sung thêm phần tính toán số phức:
- Thêm Checkbox chkComplex để chọn tính toán số phức hay tính thông thường
- Khi chọn chế độ tính số phức, bổ sung 2 nút ra, b để nhập phần thực và phần ảo
Bổ sung thêm các menu để thoát chương trình.
09:56:11
17
18
Trang 10Bài 4 19
Bổ sung thêm Reference Numerics để tính toán số phức:
- Chọn menu Project > Add Reference
- Trong vùng Search, gõ vào numerics, sau đó click chọn System.Numerics
09:56:11
Abs(Complex): tính argument của số phức Acos(Complex): tính arcos của số phức Add(Complex, Complex): cộng 2 số phức Asin(Complex): tính arsin của số phức Atan(Complex): tính artag của số phức Conjugate(Complex): tính liên hiệp phức Cos(Complex): tính cos của số phức Cosh(Complex): tính cos hyperbolic của số phức Divide(Complex, Complex): chia 2 số phức Exp(Complex): tính ex
FromPolarCoordinates(Double, Double): tạo số phức từ tọa độ cực
Các phương thức trong System.Numerics 09:56:11
19
Trang 11Bài 4 21
Log(Complex): tính ln của số phức
Log(Complex, Double): tính log của số
phức, cơ số là Double.
Log10(Complex): tính log10 của số phức
Multiply(Complex, Complex): nhân 2 số
phức
Negate(Complex): đổi dấu số phức
Pow(Complex, Double): tính mũ
Pow(Complex, Complex): tính mũ phức
Reciprocal(Complex): nghịch đảo số phức
Sin(Complex): tính sin Sinh(Complex):tính sin hyperbolic Sqrt(Complex): tính căn bậc hai của số phức
Subtract(Complex, Complex): trừ hai số phức
Tan(Complex): tính tang số phức Tanh(Complex): tính tang hyperbolic của
số phức
09:56:11
09:56:11
Xử lý số phức dùng System.Numerics
Imports System.Numerics
- Khai báo không gian tên System.Numerics ở đầu chương trình:
Dim NumComplex1 As Complex = Nothing Dim NumComplex2 As Complex = Nothing
- Khai báo biến phức:
- Gán giá trị cho biến:
NumComplex1 = New Complex(a, b) ' Gán NumComplex1 = a + ib
NumComplex2 = Complex.Add(NumComplex1, New Complex(1, 2))
- Cộng hai số phức:
21
22
Trang 12Bài 4 23
09:56:11
Xây dựng ứng dụng tính toán số phức:
23