Bài giảng Hướng dẫn lập trình VB.NET - Chương 11: Sử dụng mảng và tập hợp (Collection)

10 26 0
Bài giảng Hướng dẫn lập trình VB.NET - Chương 11: Sử dụng mảng và tập hợp (Collection)

Đang tải... (xem toàn văn)

Thông tin tài liệu

Bài giảng cung cấp cho người học các kiến thức: Sử dụng mảng và tập hợp (Collection), tổ chức thông tin dữ liệu, dự trữ mảng dữ liệu, xử lý tập hợp các đối tượng điều khiển trên form,... Hi vọng đây sẽ là một tài liệu hữu ích dành cho các bạn sinh viên đang theo học môn dùng làm tài liệu học tập và nghiên cứu. Mời các bạn cùng tham khảo chi tiết nội dung bài giảng.

Hướng dẫn lập trình VB.NET Chương 11: Sử dụng mảng tập hợp Chương 11: Sử dụng mảng tập hợp (Collection) oOo -Nội dung thảo luận: - Tổ chức thông tin liệu có chiều dài cố định mảng động - Dự trữ mảng liệu định nghĩa lại kích thước mảng - Xử lý tập hợp đối tượng điều khiển form - Sử dụng vòng lặp For Each…Next để duyệt qua danh sách tập hợp đối tượng - Tạo tập hợp riêng bạn để quản lý liệu chuỗi Khi chương trình trở nên lớn lượng thông tin liệu lớn, bạn dùng biến mà cịn cần đến cơng cụ lưu trữ, xử lý tốt mảng Mảng chứa danh sách phần tử định dạng Chúng ta nhóm đối tượng vào thành tập hợp để dễ quản lý, dùng vòng lặp For each…Next để duyệt qua phần tử tập hợp Các tính VB.NET: - Mảng có số sở - Hàm Lbound trả giới hạn thấp mảng Hàm Ubound trả giới hạn mảng Số phần tử mảng Ubound()-1 - VB.NET dùng lớp System.Collections để xử lý tập hợp - Bạn chứa điều khiển mảng mảng bạn khai báo kiểu Object Làm việc với mảng biến Mảng giúp quản lý liệu lớn dễ dàng Việc truy cập phần tử mảng thông qua số 1.1 Tạo mảng Việc khai báo mảng tương tự khai báo biến Việc khai báo thường chứa thông tin như: - Tên mảng: Tên đại diện cho mảng, việc truy cập phần tử mảng gồm tên mảng số mảng - Kiểu liệu: Tất phần tử mảng phải có kiểu - Kích thước mảng: Là số chiều mảng - Số phần tử mảng: Số phần tử tối đa mảng Biên soạn: Phạm Đức Lập -1- Add: cnt-44-dh, VIMARU Hướng dẫn lập trình VB.NET Chương 11: Sử dụng mảng tập hợp 1.2 Khai báo mảng cố định Cú pháp chung khai báo mảng có kích thước là: Dim ArrayName(Dim1Index, Dim2Index) As DataType Trong đó: - ArrayName: tên mảng - Dim1Index Dim2Index: hai chiều mảng - Datatype: kiểu liệu mảng Khi chưa xác định kiểu cụ thể, dùng kiểu Object Ví dụ: Khai báo Dim Employee(4) As String khai báo mảng chiều chứa phần tử có tên Employee có kiểu String Bạn khai báo mảng cách tồn cục module từ khóa Public sau: Public Employee(4) As String Mảng chiều có dạng: Employee Để khai báo mảng hai chiều mang tên ScoreBoard bạn khai báo sau: Dim ScoreBoard(1, 4) As Short Mảng gồm 2*5 = 10 phần tử tương ứng với 10 vng gồm hai dịng cột đánh số từ 1.3 Làm việc với phần tử mảng Sau khai báo, bạn sử dụng mảng Việc truy cập vào phần tử mảng nhờ tên mảng số mảng đặt ngoặc đơn, số số nguyên, biến nguyên hay biểu thức có giá trị Để duyệt qua tất phần tử mảng, dùng vịng lặp For…Next Ví dụ: employee(3) = "Thanh Van" Phát biểu gán cho phần tử có số thứ (tại ô thứ 4) tên “Thanh Van” ScoreBoard(0, 2) = 12 Phát biểu gán cho phần tử dòng 0, cột giá trị 12 Biên soạn: Phạm Đức Lập -2- Add: cnt-44-dh, VIMARU Hướng dẫn lập trình VB.NET Chương 11: Sử dụng mảng tập hợp 1.4 Tạo sử dụng mảng có kích thước cố định Bây ta tạo ví dụ MyFixedArray sử dụng mảng chiều có tên nhietdo để ghi lại giá trị nhiệt độ cao thấp hàng ngày tuần Mảng khai báo đầu form gán giá trị hàm InputBox nhờ vòng lặp For…Next Tồn nội dung mảng sau lại hiển thị lại vào textbox nhờ vòng lặp For…Next Thiết kế giao diện: Tạo giải pháp thêm vào dự án có tên MyFixedArray Thiết kế giao diện hình: Trong đó: nút button1 có text “Điền nhiệt độ”, button2 “Hiển thị nhiệt độ”, button3 “Thoát” Viết mã: Trước hết ta khai báo mảng nhietdo dòng Public Class Form1 sau: Dim nhietdo(6) As Single Khai báo nghĩa tất thủ tục, hàm sử dụng mảng Tiếp theo ta tạo kiện nhập vào giá trị nhiệt độ tuần cách tạo thủ tục Button1_Click nhập mã sau: Private Sub Button1_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles Button1.Click Dim Prompt, tieude As String Dim i As Short Prompt = "Điền vào nhiệt độ ngày." For i = To UBound(nhietdo) tieude = "Ngày " & (i + 1) nhietdo(i) = CInt(InputBox(Prompt, tieude)) Next End Sub Biên soạn: Phạm Đức Lập -3- Add: cnt-44-dh, VIMARU Hướng dẫn lập trình VB.NET Chương 11: Sử dụng mảng tập hợp Trong đó, hàm Ubound(nhietdo) hàm lấy số mảng nhietdo, trường hợp Sau ta cho hiển thị giá trị nhiệt độ bảy ngày tuần giá trị nhiệt độ trung bình thủ tục Button2_Click người dùng click vào nút “Hiển thị nhiệt độ” sau: Private Sub Button2_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles Button2.Click Dim ketqua As String Dim i As Short Dim tong As Single = ketqua = "Nhiệt độ tuần: " & vbCrLf & vbCrLf For i = To UBound(nhietdo) ketqua = ketqua & "Ngày " & (i + 1) & _ vbTab & nhietdo(i) & vbCrLf tong = tong + nhietdo(i) Next ketqua = ketqua & vbCrLf & _ "Nhiệt độ trung bình: " & _ Format(tong / 7, "0.0") TextBox1.Text = ketqua End Sub Thủ tục lại sử dụng vòng lặp For…Next để duyệt lại phần tử mảng sau gán giá trị thủ tục button1_Click Biến ketqua dùng để làm chuỗi kết xuất gộp giá trị phần tử mảng Sau lần gộp ta sử dụng số vbCrLf để khiến dấu ngắt dòng dấu đầu dòng (tương đương với hai hàm Chr(13) Chr(10)) Hằng vbTab để phân cách phần ghi ngày ghi nhiệt độ Bạn tạo thủ thục Button3_Click nhập phát biểu End để kết thúc chương trình Chạy chương trình: Bạn chạy chương trình nhập đủ giá trị nhiệt độ ngày cho hiển thị giá trị lên xem 1.5 Tạo mảng động Việc dùng mảng thuận tiện Tuy nhiên bạn chưa biết xác số phần tử mảng sao? Ví dụ bạn muốn để người dùng nhập vào nhiệt độ tùy thích, nhập nhiều độ xác cao VB giải việc mảng động Kích thước mảng động định chương trình thực thi không định lúc viết mã Việc khai báo trước kích thước mảng khơng cần thiết cần dành chỗ trước cho mảng Các bước tạo mảng động: Biên soạn: Phạm Đức Lập -4- Add: cnt-44-dh, VIMARU Hướng dẫn lập trình VB.NET - Chương 11: Sử dụng mảng tập hợp Chỉ định tên kiểu cho mảng thiết kế form, ví dụ Dim nhietdo() As Single - Thêm mã xác định kích thước mảng chương trình thực thi Ví dụ chương trình chạy bạn hỏi xem người dùng muốn nhập ngày, ví dụ: Dim songay As Integer songay = InputBox("Ban muon nhap bao nhieu ngay?", "Tao mang dong") - Dùng biến songay để định lại kích thước mảng (trừ mảng tính từ 0) Ví dụ If songay > Then ReDim nhietdo(songay - 1) - Tiếp theo ta dùng hàm Ubound(nhietdo) để xác định số phần tử mảng Bây làm lại ví dụ sử dụng mảng động: - Trước hết, bạn khai báo lại mảng động khai báo biến songay chứa số ngày người dùng muốn nhập đoạn mã dòng khai báo lớp form1: Dim nhietdo() As Single Dim songay As Integer - Sau sửa lại mã thủ tục Button1_Click sau: Dim Prompt, tieude As String Dim i As Short Prompt = "Điền vào nhiệt độ ngày." 'Nhap so muon ghi nhiet songay = InputBox("Ban muon nhap bao nhieu ngay?", "Tao mang dong") If songay > Then ReDim nhietdo(songay - 1) For i = To UBound(nhietdo) tieude = "Ngày " & (i + 1) nhietdo(i) = CInt(InputBox(Prompt, tieude)) Next - Tiếp theo thay số thủ tục Button2_Click biến songay: ketqua = ketqua & vbCrLf & _ "Nhiệt độ trung bình: " & _ Format(tong / songay, "0.0") - Bạn dùng phát biểu Try…Catch để bắt lỗi người dùng nhập vào số nhỏ - Chạy lại chương trình kết rõ ràng linh động Dự trữ sẵn mảng phát biểu REDIM Trong ví dụ trên, định lại kích thước từ khóa REDIM Khi định lại kích thước liệu cũ mảng hết Các phần tử có giá trị hay NULL Để giữ nguyên giá trị phần tử cũ, bạn dùng từ khóa Preserve kèm phát biểu Redim Ví dụ: If songay > Then ReDim Preserve nhietdo(songay - 1) Với phát biểu phần tử nhận giá trị hay NULL Biên soạn: Phạm Đức Lập -5- Add: cnt-44-dh, VIMARU Hướng dẫn lập trình VB.NET Chương 11: Sử dụng mảng tập hợp Ví dụ ta định nghĩa mảng động: Dim mangdong() As string Sau tái định nghĩa kích thước mảng 200: Redim mangdong(200) As String mangdong(200) = 200 Giờ ta mở rộng mảng với câu lệnh Preserve: Redim Preserve mangdong(300) Khi giá trị phần tử mangdong(200) 200 Việc tái định nghĩa mảng đa chiều tương tự Làm việc với tập hợp đối tượng Collection Tiếp theo làm quen với tập hợp Tập hợp tương tự mảng dùng để xử lý phần tử kiểu đối tượng, có khối lượng kích thước lớn Trong VB, điều khiển form nhóm thành tập hợp gọi Controls Collection – tập hợp điều khiển Mỗi thành phần điều khiển bạn cho vào form đưa vào tập hợp điều khiển Mỗi tập hợp chương trình có tên riêng để ta tham chiếu đến Bạn dùng Object Browser để xem tập hợp đối tượng hệ thống, điều hướng dẫn cụ thể chương 13 3.1 Tham chiếu đến đối tượng tập hợp Bạn tham chiếu đến đối tượng tập hợp thông qua số mảng Trong VB đối tượng đưa vào tập hợp theo thứ tự đảo ngược, tức phần tử đưa vào sớm có số cao ngược lại, phần tử đưa vào sau có số nhỏ Ví dụ, để truy cập thuộc tính Text đối tượng phần tử sau form bạn sử dụng số thứ tự sau: Controls(0).Text="phần tử cuối cùng" Muốn truy cập phần tử khác form, bạn sử dụng số khác 0, 1,…Ví dụ vịng lặp for…next sau in tiêu đề đối tượng form: For i = To ketqua &= Controls(i).Text & vbCrLf Next Bạn dùng vịng lặp For…Next trên, nhiên hiệu dễ hiểu bạn nên dùng vòng lặp For Each…Next 3.2 Sử dụng vịng lặp For Each…Next Mặc dù bạn tham chiếu đến phần tử tập hợp riêng lẻ thao tác tập hợp duyệt từ đầu đến cuối tập hợp vòng lặp For Each…Next Các thao tác thường gặp là: di chuyển đối tượng, xếp, đổi tên hay thay đổi lại kích thước tồn tập hợp Cú pháp vòng lặp sau: Biên soạn: Phạm Đức Lập -6- Add: cnt-44-dh, VIMARU Hướng dẫn lập trình VB.NET Chương 11: Sử dụng mảng tập hợp Dim CtrlVar As Control For Each CtrlVar in controls Khối lệnh xử lý đối tượng tập hợp Next Ví dụ sau ta sử dụng tập hợp đối tượng Controls để xử lý đối tượng form, ví dụ MyControlsCollection Tìm hiểu chương trình: Chương trình có form Trên form có ba nút nhấn Khi người dùng nhấn vào nút thứ có text “Đổi tên” nút nhấn đổi text thành “Đã đổi tên”, nút nhấn thứ hai di chuyển sang trái 40 đơn vị đổi text từ “Di chuyển” thành “Đã di chuyển”, nút nhấn thứ ba có text “Đứng yên” người dùng click vào nút đổi text thành “Đây đứng yên” nút khác di chuyển sang trái 40 Thiết kế form: Form có giao diện sau: Các bạn tạo giải pháp thêm vào dự án có tên MyControlsCollection thiết kế form hình Viết mã: Khai báo biến Ctrl dòng khai báo lớp form1 sau: Dim ctrl As Control Tạo thủ tục btndoiten_Click nhập mã sau (ở nút nhấn “Đổi tên” có thuộc tính Name “btndoiten”): Private Sub btndoiten_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btndoiten.Click For Each ctrl In Controls Biên soạn: Phạm Đức Lập -7- Add: cnt-44-dh, VIMARU Hướng dẫn lập trình VB.NET Chương 11: Sử dụng mảng tập hợp If ctrl.Name = "btndoiten" Then ctrl.Text = "Đã đổi tên" End If Next End Sub Trong đoạn mã ta sử dụng vòng lặp for each … next để duyệt qua phần tử tập hợp điều khiển controls form Ta dùng phát biểu if để lọc điều khiển có thuộc tính Name “btndoiten” để thao tác Tương tự bạn tạo thủ tục btnmove_Click nhập mã sau (nút nhấn có text “Di chuyển” có thuộc tính Name “btnmove”): Private Sub btnmove_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles btnmove.Click For Each ctrl In Controls If ctrl.Name = "btnmove" Then ctrl.Text = "Đã di chuyển" ctrl.Left = ctrl.Left + 40 End If Next End Sub Thủ tục btnstatic_Click (btnstatic tên nút “Đứng yên”): Private Sub btnstatic_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles btnstatic.Click For Each ctrl In Controls If ctrl.Name = "btnstatic" Then ctrl.Text = "Đây đứng yên" Else ctrl.Left = ctrl.Left + 40 End If Next End Sub Chạy chương trình: Cơng việc bạn ấn F5 để chạy chương trình xem thành làm Tự tạo tập hợp người dùng VB cho phép tạo tập hợp người dùng để lưu trữ từ thành phần điều khiển nút nhấn, nhãn,… đến kiểu đơn giản chuỗi, số nguyên kiểu sở khác tương tự mảng Cú pháp khai báo: Dim MyCollection As New Collection() Trong MyCollection tên tập hợp, phương thức New khởi tạo vùng nhớ cho tập hợp Sau tạo tập hợp bạn dùng phương thức add để thêm phần tử dl vào tập hợp Để duyệt tập hợp bạn dùng vòng lặp for each next biết Trong ví dụ sau làm quen với cách sử dụng tập hợp danh sách địa Internet người dùng sử dụng gần Để gọi trình duyệt IE, bạn dùng phương thức System.Dyagnostics.Process.Start Biên soạn: Phạm Đức Lập -8- Add: cnt-44-dh, VIMARU Hướng dẫn lập trình VB.NET Chương 11: Sử dụng mảng tập hợp Tìm hiểu chương trình: Chương trình có form gồm textbox hai nút nhấn Ô textbox cho phép nhập vào địa website, nút nhấn thứ để người dùng click vào duyệt trang web có địa ghi ô textbox, ô nhấn thứ hai để liệt kê tất trang web người dùng duyệt cách nhập địa URL vào ô textbox Thiết kế giao diện: Bạn tạo giải pháp thêm dự án tên MyURLCollection thiết kế giao diện sau: Viết mã: Trước hết ta tạo tập hợp để chứa tên địa web mà người dùng thăm phát biểu sau đặt dòng khai báo lớp form1: Dim URLsVisited As New Collection() Với phát biểu tất thủ tục form truy cập đến tập hợp Tiếp theo tạo thủ tục Button1_Click nhập mã sau: Private Sub Button1_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles Button1.Click URLsVisited.Add(TextBox1.Text) System.Diagnostics.Process.Start(TextBox1.Text) End Sub Phương thức Add(TextBox1.Text) thêm vào tập hợp phần tử có nội dung thuộc tính text ô textbox1 Sau ta tạo thủ tục Button2_Click cho phép người dùng liệt kê tất trang web duyệt người dùng (các phần tử tập hợp): Private Sub Button2_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles Button2.Click Dim URLname, AllURLVisited As String Biên soạn: Phạm Đức Lập -9- Add: cnt-44-dh, VIMARU Hướng dẫn lập trình VB.NET Chương 11: Sử dụng mảng tập hợp For Each URLname In URLsVisited AllURLVisited = AllURLVisited & URLname & vbCrLf Next MsgBox(AllURLVisited, MsgBoxStyle.Information, _ "Websites Visited") End Sub Chạy chương trình: Ấn F5 chạy chương trình Bạn nhập địa khác địa localhost bạn có kết nối Internet Tập hợp COLLECTION ứng dụng VBA Bạn viết ứng dụng macro cho ứng dụng văn phòng ngôn ngữ VBA (Visual Basic for Application) Trong ứng dụng tập hợp đóng vai trị quan trọng Có thể tham khảo thêm sách trang Appress.Com Tổng kết chương Làm bảng tổng kết chương học Đồng thời dùng tập hợp thay cho tập mảng chương trước Biên soạn: Phạm Đức Lập - 10 VIMARU Add: cnt-44-dh, ... soạn: Phạm Đức Lập -2 - Add: cnt-44-dh, VIMARU Hướng dẫn lập trình VB.NET Chương 11: Sử dụng mảng tập hợp 1.4 Tạo sử dụng mảng có kích thước cố định Bây ta tạo ví dụ MyFixedArray sử dụng mảng chiều... Đức Lập -8 - Add: cnt-44-dh, VIMARU Hướng dẫn lập trình VB.NET Chương 11: Sử dụng mảng tập hợp Tìm hiểu chương trình: Chương trình có form gồm textbox hai nút nhấn Ơ textbox cho phép nhập vào... thước mảng không cần thiết cần dành chỗ trước cho mảng Các bước tạo mảng động: Biên soạn: Phạm Đức Lập -4 - Add: cnt-44-dh, VIMARU Hướng dẫn lập trình VB.NET - Chương 11: Sử dụng mảng tập hợp Chỉ

Ngày đăng: 08/05/2021, 17:10

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan