Nội dung thảo luận:
– Sử dụng biến để chứa dữ liệu của chương trình
– Nhận dữ liệu nhập bằng cách sử dụng hàm
InputBox
– Hiển thị thông điệp bằng
MsgBox
– Làm việc với những biến dữ liệu khác nhau
– Sử dụng các toán tử toán học và hàm trong công thức
– Sử dụng các phương thức toán học trong lớp
System.Math của .NET
Chúng ta đã biết cách tạo mới một chương trình VS.NET và thực thi chúng như thế nào. Trong 5 chương kế tiếp chúng ta sẽ làm quen với cách viết mã VB – phát biểu, từ khóa, cú pháp – là các yếu tố quan trọng tạo nên một chương trình VB.
Sau phần này chúng ta có thể yên tâm tạo mới một chương trình VB chuyên nghiệp hơn.
Chú ý:
– Khi muốn sử dụng một biến trong VS.NET bạn phải khai báo trước bằng câu lệnh
Dim. Nếu muốn dùng mà không khai báo thì phải đặt phát biểu
Option Explicity Off. Điều này khuyến cáo là không nên.
– Việc chuyển kiểu trong VS.NET rất được xem trọng. Bạn phải thường xuyên sử dụng các hàm chuyển kiểu như
CIint, CLong,CType…để khiến các biến tương thích với nhau. Việc thực hiện các phép tính giữa các biến cũng phải cùng kiểu.
-
Các phần tử của một phát biểu chương trình VISUAL BASIC
Một phát biểu trong VS.NET là bất cứ thứ gì kết hợp giữa từ khóa, thuộc tính, hàm, toán tử phương thức, các biểu tượng trong VB có thể tạo nên một chỉ thị hợp lệ được nhận dạng và hiểu được bởi trình biên dịch VB.
Ví dụ:
End là một
phát biểu để chấm dứt chương trình.
Các nguyên tắc để xây dựng nên phát biểu của chương trình được gọi là
cú pháp – Syntax.
Trước hết chúng ta sẽ làm quen về cách sử dụng biến, kiểu dữ liệu trong VB.
-
Sử dụng biến để chứa thông tin
Trong VB.NET bạn cần khai báo biến trước khi sử dụng nó.
Việc khai báo được tiến hành bằng câu lệnh
Dim. Cấu trúc của phát biểu là
Dim + tên biến + As + kiểu dữ liệu. Phát biểu này có thể đặt ở bất kỳ đâu nhưng thường được đặt ở đầu mỗi thủ tục, nơi cần dùng biến. Ví dụ:
Dim LastName As String
Phát biểu trên khai báo một biến tên là
LastName có kiểu dl là
String.
Sau khi đã khai báo biến thì bạn có thể thoải mái gán hay lưu thông tin vào biến, ví dụ:
LastName = “Duc Lap”
Và có thể gán nội dung biến cho thuộc tính của đối tượng, ví dụ:
Label1.Text = LastName
-
Sử dụng biến trong chương trình
Chúng ta sẽ làm quen với cách thay đổi giá trị của biến trong chương trình qua bài tập đơn giản
VariableTest:
Giao diện của form thiết kế như sau
Nó gồm hai nút là
Hien thi – Button1, Ket thuc – Button và hai nhãn
Label1, Label2.
- Tìm hiểu cách thực thi chương trình:
Chương trình sẽ khai báo một biến có tên
LastName và tạo cho nó hai giá trị khác nhau là hai chuỗi (String) đồng thời gán giá trị chuỗi đó cho thuộc tính
Text của hai nhãn khi người dùng click vào nút
Hien thi.
Tạo thủ tục Button1_Click bằng cách double click vào nút
Hien thi trên form trong giao diện thiết kế và nhập chính xác đoạn mã sau:
Dim LastName As String
LastName = “Đức Lập”
Label1.Text = LastName
LastName = “LVP Office”
Label2.Text = LastName
Chú thích mã:
– Phát biểu thứ nhất khai báo một biến có tên
LastName có kiểu
String. Bạn không lo lắng nếu có một dòng gạch xanh dưới chân biến. Có dòng này là vì ta chưa khởi tạo giá trị cho biến.
– Phát biểu thứ hai gán giá trị “Đức Lập” cho biến, phát biểu thứ 3 gán giá trị của biến cho thuộc tính Text của nhãn Label1. Tương tự cho các phát biểu còn lại.
Chú thích về qui ước khai báo biến:
– Không có khoảng trắng trong tên biến. Tên biến bắt đầu bằng dấu gạch chân ‘_’ hay chữ cái.
– Tên biến có chiều dài tùy thích nhưng nên đặt tên cho gợi nhớ và không nên dài quá 33 ký tự.
– Không nên đặt tên biến trùng với các từ khóa, tên thuộc tính, phương thức chuẩn của VB để tránh gặp lỗi khi biên dịch.
-
Sử dụng biến để chứa dữ liệu nhập từ ngoài vào
Biến thường dùng để nhận thông tin của người dùng nhập vào từ các điều khiển như
TextBox, ListBox, Menu,…
Trong ví dụ sau đây với bài tập
InputBox chúng ta sẽ sử dụng một hàm có tên
InputBox. Khi bạn gọi hàm này chương trình sẽ hiển thị một cửa sổ nhỏ bao gồm một TextBox cho phép nhập liệu. Khi đồng ý, họ ấn nút OK và dữ liệu trong ô sẽ trả về cho nơi gọi hàm.
Thiết kế giao diện:
Bạn tạo mới một giải pháp có tên InputBox và thêm một dự án có cùng tên. Tiếp theo thiết kế giao diện như hình:
Chương trình bao gồm hai nút là
InputBox – Button1, Ket thuc – Button2 và một nhãn có tên
Label1.
Viết mã:
Tạo thủ tục Button1_Click bằng cách double click vào nút
InputBox trên form và nhập đoạn mã sau:
Dim prompt, FullName As String
prompt = “Nhập tên đầy đủ:”
‘FullName = CStr(Me.IsInputChar(prompt))
FullName = InputBox(prompt)
Label1.Text = FullName
Chú ý: Có thể bạn sẽ gặp một thông báo lỗi với hàm
Inputbox này. Nó báo
Inputbox là một không gian tên chứ không phải là một hàm nên không thể sử dụng như ta đã gọi nó. Thực ra thì lỗi này phát sinh do bạn đặt tên của dự án cũng như solution là
Inputbox trùng với tên hàm. Đây cũng là một chú ý khi đặt tên giải pháp và tên của dự án không nên đặt tên trùng với tên hay từ khóa trong VB.NET, có thể gây những lối không nên gặp và khó giải quyết. Bây giờ bạn tạo một giải pháp mới có tên
Inputbox1 và làm như trên là xong.
Bây giờ chúng ta sẽ tạo một chương trình mới có chức năng tương tự nhưng có xuất kết quả nhờ biến. Chương trình gồm một ô textBox cho nhập tên. Khi người dùng click vào nút hiển thị thì thông tin về tên trong ô textbox sẽ được hiển thị dưới dạng một thông báo nhờ hàm
MsgBox().
-
Sử dụng biến nhận kết quả xuất, ví dụ ImportValueOfVariable
Giao diện chương trình:
Bạn tạo mới dự án
ImportValueOfVariable và thêm vào một dự án như đã biết. Tạo giao diện như hình.
Double click vào nút
hiển thị và nhập đoạn mã sau:
Dim FullName As String = TextBox1.Text
If FullName = “” Then
MsgBox(“Bạn chưa nhập tên”)
Else
MsgBox(FullName, , “Thông tin nhập”)
End If
Ghi chú mã:
– Hàm
MsgBox: có tác dụng hiện một hộp thoại chứa thông điệp. Cấu trúc của hàm như sau:
ButtonClicked=MsgBox(Prompt, Buttons, Tittle).
Prompt là thông điệp cần hiển thị
Buttons là con số cho biết những nút nhấn hay biểu tượng sẽ hiển thị trong hộp thoại
Tittle là tiêu đề hiển thị trên hộp thoại
ButtonClicked được dùng để nhận về kết quả của hàm
Trong trường hợp chỉ muốn hiển thị thì các đối số
Buttons, Tittle và biến
ButtonClicked không cần có.
Bây giờ bạn chạy thử chương trình xem.
Ở ví dụ trên, chúng ta đã sử dụng biến FullName để nhận về giá trị thuộc tính Text của
TextBox1 và xuất giá trị biến này nhờ hàm MsgBox.
-
Làm việc với các kiểu dữ liệu đặc thù
VS.NET cung cấp rất nhiều kiểu dữ liệu giúp ta định nghĩa biến. Bảng sau liệt kê chúng:
Kiểu dữ liệu |
Kích thước |
Phạm vi |
Ví dụ |
Short |
16-bit |
-32,678 – 32,767 |
Dim S as Short
S = 12500 |
Integer |
32-bit |
-2,147,483,648 đến 2,147,483,647 |
Dim I as Integer
S = 4000 |
Long |
64-bit |
-9,233,372,036,854,775,808 đến 9,233,372,036,854,775,807 |
Dim L as Long
L = 3988890343 |
Single |
32-bit (dấu phảy động) |
-3.402823E38 đến 3.402823E38 |
Dim Sg as Single
Sg = 899.99 |
Double |
64-bit (dấu phảy động) |
-1.797631348623E308 đến 1.797631348623E308 |
Dim D as Double
D=3.1.4159265 |
Decimal |
128-bit |
Trong khoảng +/-79,228×1024 |
Dim Dc as Decimal
Dc=7234734.5 |
Byte |
8-bit |
0-255 |
Dim B as Byte
B=12 |
Char |
16-bit |
0-65,536 |
Dim Ch As Char
Ch=”L” |
String |
Nhiều ký tự |
Chứa 0 đến 2 tỷ ký tự |
Dim St As String
St=”Đức Lập” |
Boolean |
16-bit |
Hai giá trị True hay False |
Dim Bl As Boolean
Bl = True |
Date |
64-bit |
Từ 1/1/1 đến 31/12/9999 |
Dim Da As Date
Da=#16/07/1984 |
Object |
32-bit |
Bất kỳ kiểu đối tượng nào |
Dim Obj As Object |
Sau đây chúng ta sẽ xây dựng một chương trình có tên
MyDataTypes cho phép người dùng chọn kiểu dữ liệu. Các kiểu dữ liệu sẽ được liệt kê trong một danh sách
ListBox1. Khi người dùng click chọn kiểu dữ liệu tương ứng nào thì một thông báo về độ dài và một ví dụ được đưa ra trong một ô TextBox.
Sử dụng các kiểu dữ liệu cơ sở
Bạo tạo trong form các điều khiển gồm
ListBox, TextBox và một
Button như hình.
– Khai báo biến: Bạn khai báo các biến (đặt dưới dòng Public Class Form1) :
Dim Sh As Short
Dim I As Integer
Dim L As Long
Dim Sg As Single
Dim Db As Double
Dim Dc As Decimal
Dim B As Byte
Dim Ch As Char
Dim Str As String
Dim Bo As Boolean
Dim Da As Date
– Tạo thủ tục Form1_Load để thêm các mục chọn cho ListBox1 như sau:
ListBox1.Items.Add(“Short”)
ListBox1.Items.Add(“Integer”)
ListBox1.Items.Add(“Long”)
ListBox1.Items.Add(“Single”)
ListBox1.Items.Add(“Double”)
ListBox1.Items.Add(“Decimal”)
ListBox1.Items.Add(“Byte”)
ListBox1.Items.Add(“Char”)
ListBox1.Items.Add(“String”)
ListBox1.Items.Add(“Boolean”)
ListBox1.Items.Add(“Date”)
– Tạo thủ tục ListBox1_SelectedIndexChanged để hiện thông tin trên TextBox1 như sau:
Select Case ListBox1.SelectedIndex
Case 0
TextBox1.Text = “Độ dài: -32,678 – 32,767. Ví dụ: “
Sh = 1000
TextBox1.Text &= Sh
Case 1
I = 4000
TextBox1.Text = “Độ dài: -2,147,483,648 đến 2,147,483,647. Ví dụ: “
TextBox1.Text &= I
Case 2
L = 3988890343
TextBox1.Text = “Độ dài: -9,233,372,036,854,775,808 đến 9,233,372,036,854,775,807. “ & _
“Ví dụ: “
TextBox1.Text &= L
Case 3
Sg = 899.99
TextBox1.Text = “Độ dài: -3.402823E38 đến 3.402823E38 “ & _
“Ví dụ: “
TextBox1.Text &= Sg
Case 4
Db = 3.14159265
TextBox1.Text = “Độ dài: -1.797631348623E308 đến 1.797631348623E308. “ & _
“Ví dụ: “
TextBox1.Text = Db
Case 5
Dc = 7234734.5
TextBox1.Text = “Độ dài: Trong khoảng +/-79,228×1024. “ & _
“Ví dụ: “
TextBox1.Text &= Dc
Case 6
B = 12
TextBox1.Text = “Độ dài: 0-255. “ & _
“Ví dụ: “
TextBox1.Text = B
Case 7
Ch = “L”
TextBox1.Text = “Độ dài: 0-65,536. “ & _
“Ví dụ: “
TextBox1.Text &= Ch
Case 8
Str = “Đức Lập”
TextBox1.Text = “Chứa 0 đến 2 tỷ ký tự. “ & _
“Ví dụ: “
TextBox1.Text &= Str
Case 9
Bo = True
TextBox1.Text = “True hay False. “ & _
“Ví dụ: “
TextBox1.Text &= Bo
Case 10
Da = Now.Date
TextBox1.Text = “Từ 1/1/1 đến 31/12/9999. “ & _
“Ví dụ: “
TextBox1.Text &= CStr(Da)
End Select
– Tạo thủ tục Button1_Click để kết thúc chương trình:
End
Bạn thử chạy chương trình và click chọn tất cả các mục trong ListBox để hiện thông tin về độ dài cũng như các ví dụ của từng kiểu dữ liệu.
Kiểu dữ liệu tự định nghĩa
Visual Basic cũng cho phép ta tự định nghĩa kiểu dữ liệu của riêng mình – gọi là kiểu dữ liệu cấu trúc hay kiểu dữ liệu tự định nghĩa bởi người dùng (User – Defind Type hay UDT) bằng phát biểu
Structure. Phát biểu này phải xuất hiện ở đầu form hay trong đơn thể mã code module giống như các biến khai báo
Public. Ví dụ:
Structure Employee
Dim name As String
Dim DateOfBirth As Date
Dim age As Date
End Structure
Sau khi đã tạo mới một UDT bạn có thể sử dụng nó ngay trong thủ tục hay chương trình. Ví dụ:
Dim Worker1 As Employee
Worker1.name = “Lê Thị Lan”
Worker1.age = Date.FromOADate(12 / 1 / 1983)
-
Hằng số: Biến không cho thay đổi giá trị
Trong VB cũng như nhiều ngôn ngữ khác tồn tại khái niệm hằng. Hằng là một biến đặc biệt không thay đổi giá trị. Nó cũng giống như biến nhưng không tồn tại khái niệm gán lưu giá trị mới cho hằng số. Hằng số được khai báo bằng từ khóa
Const. Ví dụ:
Const PI As Double = 3.14159265
Label1.Text = PI
Bạn có thể tạo ví dụ sau: tạo mới một giải pháp và thêm vào một dự án nhỏ cùng tên là
ConstantValue.
Chương trình sẽ hiển thị giá trị của một hằng được khai báo với từ khóa
Const. Để làm được việc này, các bạn thiết kế giao diện như hình sau:
Mã chương trình tương đối đơn giản. Bạn tạo thủ tục Button1_Click và thêm vào đoạn mã như sau:
Const PI As Double = 3.14159265
Label1.Text = PI
-
Làm việc với toán tử trong VISUAL BASIC.NET
Visual Basic.NET cung cấp các toán tử cơ bản sau:
Toán tử |
Mô tả |
+ |
Phép cộng |
– |
Phép trừ |
* |
Nhân |
/ |
Chia |
\ |
Chia lấy phần nguyên |
^ |
Mũ lũy thừa |
& |
Nối chuỗi |
8.1. Các toán tử cơ sở: +, -, *, /
Chúng ta sẽ sử dụng các toán tử đơn giản này để làm ví dụ
BasicMath sau:
Giao diện:
Chương trình gồm hai textbox cho phép nhập hai giá trị để gán cho hai biến
value1 và
value2, bốn radiobutton cho phép chọn bốn toán tử khác nhau, khi đã nhập đầy đủ hai giá trị thì có thể thực hiện tính bằng cách nhấp chọn nút ‘thực hiện tính’ và kết quả hiển thị trong ô textbox3 – kết quả.
Bạn tạo một giải pháp và thêm một dự án cùng tên
BasicMath đồng thời thiết kế giao diện như hình.
– Khai báo biến: bạn khai báo 2 biến
value1, value2 ở đầu lớp
form1 như sau:
Dim value1, value2 As Double
– Tạo thủ tục Button1_Click bằng cách double click vào nút ‘thực hiện tính’ và nhập đoạn mã sau:
If TextBox1.Text = “” Or TextBox2.Text = “” Then
MsgBox(“Bạn cần nhập đầy đủ hai giá trị”)
Else
value1 = CDbl(TextBox1.Text)
value2 = CDbl(TextBox2.Text)
If RadioButton1.Checked = True Then
TextBox3.Text = value1 + value2
End If
If RadioButton2.Checked = True Then
TextBox3.Text = value1 – value2
End If
If RadioButton3.Checked = True Then
TextBox3.Text = value1 * value2
End If
If RadioButton4.Checked = True Then
TextBox3.Text = value1 / value2
End If
End If
Chú thích mã:
– Hàm CDbl là hàm chuyển kiểu sang kiểu Double.
Thực thi chương trình:
Bạn ấn phím F5 hay nút start để chạy chương trình.
8.2. Sử dụng các toán tử : \, Mod, ^, &
Chúng ta tiếp tục sử dụng bốn toán tử khác gồm: chia lây nguyên (\), chia lấy dư (Mod), mũ lũy thừa (^), nối chuỗi (&) trong bài tập
AdvancedMath sau đây:
Chương trình
Advanced cũng tương tự như chương trình
BasicMath các bạn vừa xây dựng ở trên. Nó chỉ thay thế các toán tử mà thôi.
Chúng ta sẽ xây dựng chương trình này.
Giao diện chương trình như sau:
Bạn cũng tạo một giải pháp mới và thêm vào một dự án có cùng tên là
AdvancedMath và thiết kế giao diện như hình.
– Khai báo biến: bạn khai báo hai biến ở đầu lớp Form1 như sau:
Dim value1, value2 As Double
– Tạo thủ tục Button1_Click như sau:
If TextBox1.Text = “” Or TextBox2.Text = “” Then
MsgBox(“Bạn phải nhập đầy đủ hai giá trị”)
Else
value1 = TextBox1.Text
value2 = TextBox2.Text
If RadioButton1.Checked = True Then
TextBox3.Text = value1 \ value2
End If
If RadioButton2.Checked = True Then
TextBox3.Text = value1 Mod value2
End If
If RadioButton3.Checked = True Then
TextBox3.Text = value1 ^ value2
End If
If RadioButton4.Checked = True Then
TextBox3.Text = value1 & value2
End If
End If
Bạn chạy chương trình như đã biết. Tất cả đều suôn sẻ cho đến toán tử thứ tư ‘&’ thì xảy ra lỗi nếu bạn nhập vào hai textbox hai giá trị
value1 hay
value2 là hai chuỗi ví dụ value1 là “sinh” và value2 là “nhật”.
Lỗi này gọi là lỗi thực thi – runtime error phát sinh khi chạy chương trình. Màn hình lỗi như sau:
Bạn có thể khắc phục lỗi này một cách không triệt để bằng cách thay đổi kiểu hai biến ở phát biểu khai báo chúng như sau:
Dim value1, value2 As String
Bạn chạy lại chương trình để xem phương thức thực thi của toán tử ‘&’. Nhưng nếu bạn nhập giá trị “sinh” “nhật” để thực hiện một trong ba toán tử ‘\’, ‘Mod’, ‘^’ thì chương trình lại phát sinh lỗi như trên.
Để khắc phục triệt để lỗi này bạn phải sử dụng một số hàm chuyển kiểu sẽ được bàn ở các chương sau.
-
Làm việc với các phương thức trong thư viện .NET
Thư viện .NET cung cấp rất nhiều phương thức hữu ích. Chúng ta sẽ làm quen với các phương thức được cung cấp bởi lớp
Math trong thư viện .NET.
Bộ khung làm việc .NET FRAMEWORK là một tính năng mới trong VS.NET, nó chia sẻ môi trường lập trình và là nền tảng của hệ điều hành windows trong tương lai. Bộ khung này bao gồm tập hợp các lớp thư viện mà bạn có thể đem vào sử dụng trong dự án của mình bằng phát biểu
Imports.
Trước hết chúng ta sẽ làm quen với lớp System.Math của .Net FrameWork. Bảng sau sẽ liệt kê danh sách một số phương thức thông dụng trong lớp Math:
Phương thức |
Mục đích |
Abs(n) |
Trả về trị tuyệt đối của n |
Atan(n) |
Trả về Artang của n (n – radian) |
Cos(n) |
Trả về cosin của góc n (n – radian) |
Exp(n) |
Trả về en |
Sign(n) |
Trả về -1 nếu n<0 và 1 nếu n>0, 0 nế n=0 |
Sin(n) |
Trả về sin của góc n (n – radian) |
Sqrt(n) |
Trả về căn bậc hai của n |
Tan(n) |
Trả về tang của góc n (n – radian) |
Bây giờ chúng ta làm quen với các phương thức trên thông qua ví dụ
MyFrameWorkMath.
Tìm hiểu chương trình:
Chương trình này chỉ đơn giản là tính căn bậc hai của số 144 và đưa kết quả ra một ô textbox khi người dùng nhấn vào nút button có tên ‘Tính căn bậc hai’.
Giao diện chỉ đơn giản như sau:
– Khai báo sử dụng lớp
Math trong chương trình: bạn đặt phát biểu sau ở bên trên phát biểu Public Class Form1:
Imports System.Math
Lệnh này cho phép bạn sử dụng, gọi đến phương thức, thuộc tính, đối tượng có trong lớp
Math của thư viện hệ thống
System dùng xử lý các số học.
– Tạo thủ tục Button1_Click bằng cách double click vào nút ‘Tính căn bậc hai’ và gõ đoạn mã sau:
Dim ketqua As Double
ketqua = Sqrt(144)
TextBox1.Text = ketqua
Chạy chương trình:
Bạn chạy chương trình như đã biết và xem kết quả.
-
Thứ tự ưu tiên của toán tử
Visual Basic qui ước thứ tự ưu tiên các toán tử như sau:
() à
^ à
– (dấu âm) à
*/ (toán tử nhân, chia) à
\ (phép chia nguyên) à
Mod (lấy phần dư) à
+- (toán tử cộng, trừ) .
Bài tập bổ trợ:
- Mô phỏng mô hình máy tính đơn giản với các toán tử đã biết. Nhập dữ liệu bằng các nút như Calculator của hệ điều hành Windows.
- Tìm hiểu về phép tính toán trên các số nguyên lớn.