Hướng dẫn cách sử dụng biến và toán tử trong VB.NET

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.

  1. 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.

  1. 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

  1. 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:

  • Thiết kế giao diện:

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.

  • Viết mã:

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.

  1. 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().

  1. 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.

  1. 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ệuKích thướcPhạm viVí dụ
Short16-bit-32,678 – 32,767Dim S as Short

S = 12500

Integer32-bit-2,147,483,648 đến 2,147,483,647Dim I as Integer

S = 4000

Long64-bit-9,233,372,036,854,775,808 đến 9,233,372,036,854,775,807Dim L as Long

L = 3988890343

Single32-bit (dấu phảy động)-3.402823E38 đến 3.402823E38Dim Sg as Single

Sg = 899.99

Double64-bit (dấu phảy động)-1.797631348623E308 đến 1.797631348623E308Dim D as Double

D=3.1.4159265

Decimal128-bitTrong khoảng +/-79,228×1024Dim Dc as Decimal

Dc=7234734.5

Byte8-bit0-255Dim B as Byte

B=12

Char16-bit0-65,536Dim Ch As Char

Ch=”L”

StringNhiều ký tựChứa 0 đến 2 tỷ ký tựDim St As String

St=”Đức Lập”

Boolean16-bitHai giá trị True hay FalseDim Bl As Boolean

Bl = True

Date64-bitTừ 1/1/1 đến 31/12/9999Dim Da As Date

Da=#16/07/1984

Object32-bitBất kỳ kiểu đối tượng nàoDim 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ở

  • Giao diện chương trình

Bạo tạo trong form các điều khiển gồm ListBox, TextBox và một Button như hình.

cackieudlcoso

  • Viết mã:

– 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

  • Chạy chương trình:

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)

  1. 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:

hien contant

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

  1. 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:

  • Tìm hiểu chương trình:

Giao diện:

pheptoan

Chương trình gồm hai textbox cho phép nhập hai giá trị để gán cho hai biến value1value2, 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ả.

  • Xây dựng giao diện:

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.

  • Viết mã:

– 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:

  • Tìm hiểu chương trình:

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.

  • Thiết kế giao diện:

Giao diện chương trình như sau:

nhanchia

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.

  • Viết mã:

– 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

  • Chạy chương trình:

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:

bug loi

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.

  1. 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ứcMụ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’.

  • Xây dựng giao diện:

Giao diện chỉ đơn giản như sau:

tinh can bac 2

  • Viết mã:

– 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ả.

  1. 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.

Viết một bình luận