Bài giảng cung cấp cho người học các kiến thức: Sử dụng phát biểu lặp và bộ định thời, sử dụng vòng lặp, hiển thị kết xuất, đối tượng định thời Timer,... 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 7: Sử dụng phát biếu lặp định thời Chương 7: Sử dụng phát biểu lặp định thời (TIMER) oOo -Nội dung thảo luận: - Sử dụng vòng lặp For … Next - Hiển thị kết xuất TextBox nhiều dịng phép nối chuỗi - Sử dụng lệnh Do … Loop - Sử dụng đối tượng định thời Timer để thực thi mã lệnh thời điểm - Tạo chương trình đồng hồ số công cụ đặt mật định thời Vòng lặp For…Next Vòng lặp cho phép bạn thực thi lặp lại nhóm hay nhiều lệnh số lần đinh Cú pháp: For bien = batdau To ketthuc Khối lệnh gọi thực thi Next Ví dụ: For i = to Beep() Next i Đoạn mã phát bốn tiếng bíp vịng lặp for thay viết bốn hàm beep() 1.1 Hiển thị biến đếm lệnh FOR điều khiển TEXTBOX Biến đếm vòng lặp FOR nhiều biến khác Ta sử dụng để gán hay hiển thị Ví dụ MyForLoop sau hiển thị giá trị biến đếm texbox Textbox khơng có dịng mà có nhiều dịng nhờ thay đổi thuộc tính MultiLine thành TRUE Bạn tạo cuộn đứng cho textbox cách tạo thuộc tính ScrollsBar thành VERTICAL Tìm hiểu chương trình: Chương trình đơn giản này: Chương trình có textbox thiết kế chế độ nhiều dòng nút Khi người dùng click vào nút chương trình thực vịng lặp for điền thơng tin “dịng thứ” với số biến đếm i dò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 7: Sử dụng phát biếu lặp định thời Thiết kế giao diện: Bạn tạo giải pháp add dự án có tên MyForLoop Thiết kế giao diện sau: Đặt thuộc tính cho đối tượng: Texbox1: Name – txtline, MultiLine – TRUE, ScrollsBar – VERTICAL Button1: Name – btnloop, Text – “Lặp” Viết mã: Bạn tạo thủ tục btnloop_Click cách double click vào nút “lặp” form nhập vào đoạn mã sau: Dim i As Integer Dim ch As String ch = Chr(13) & Chr(10) txtline.Text = "" For i = To 23 txtline.Text = txtline.Text & "Dòng thứ " & i & ch 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 7: Sử dụng phát biếu lặp định thời Next Tìm hiểu mã: Chương trình khai báo hai biến: i kiểu số nguyên làm biến đếm cho vòng lặp for ch kiểu xâu chuỗi – String, biến ch gán giá trị 13 – canh lề 10 – dòng Hàm Chr() giúp đổi số thành mã ASCII ký tự Chạy chương trình: Bạn chạy chương trình để xem vịng lặp FOR hoạt động Nâng cao: Bạn tạo biến đếm vịng lặp FOR kiểu khác, ví dụ DOUBLE sau: Dim i As Double Dim ch As String ch = Chr(13) & Chr(10) txtline.Text = "" For i = To 23 Step 0.5 txtline.Text = txtline.Text & "Dòng thứ " & i & ch Next Kết quả: Trong Step 0.5 bước nhảy biến đếm 1.2 Tạo vòng lặp FOR…NEXT phức tạp Ví dụ sau minh họa việc sử dụng biến đếm để tạo tên file, mở hiển thị file ICO chứa đĩa cứng Chúng ta dẫn nơi chứa file ICO muốn, ta dùng file sẵn có thư mục: Icos chép vào bên dự án Tìm hiểu chương trình: Chương trình có điều khiển PictureBox để hiển thị ảnh ICO nút cho phép người dùng click Khi người dùng click vịng lặp FOR bắt đầu Nó duyệt tất ảnh hiển thị ảnh vào khung ảnh 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 7: Sử dụng phát biếu lặp định thời Thiết kế giao diện: Bạn tạo giải pháp thêm vào dự án tên MyLoop_Advanced đồng thời thiết kế giao diện hình: Trong thuộc tính Name đối tượng sau: PictureBox1 – ptbBieutuong, Button1 – btnhienbieutuong Viết mã: Tạo thủ tục btnhienbieutuong_Click cách double click vào nút “hiện biểu tượng” nhập vào đoạn mã sau: Dim i As Integer For i = To ptbBieutuong.Image = System.Drawing.Image.FromFile _ ("D:\Data\Studying\VS.Net 05\Tung buoc lap trinh vb.net\" & _ "Tung buoc lap trinh vb.net\7_Chapter7\Bai tap\MyForloop_Advanced\" & _ "MyForloop_Advanced\Icos\Face" & i & ".ico") MsgBox("Click để thấy hình tiếp theo") Next Tìm hiểu mã: Trong thư mục ICOS file ảnh để tên trùng phần đầu, khác số cuối nên khai báo đường dẫn ta để biến I chạy & i & Vì vịng FOR chạy tương đối nhanh ta quan sát tất ảnh hiển thị nên dùng hàm MsgBox() để nhìn ảnh biến đếm tăng lên Chạy chương trình: Bạn chạy chương trình biết Và kết quả: 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 7: Sử dụng phát biếu lặp định thời 1.3 Sử dụng biến đếm toàn cục (Global) Ở chương trình trên, để thấy ảnh bạn phải click vào hộp thoại Điều gây khó chịu Bây chung ta xây dựng lại chương trình với biến toàn cục phát biểu IF để khắc phục rắc rối Bạn mở lại dự án chế độ viết mã khai báo biến dem đồng thời khởi tạo giá trị cho đặt dòng Public Class Form1 sau: Dim dem As Integer = Trong thủ tục btnhienbieutuong_Click bạn thay đổi sau: ptbBieutuong.Image = System.Drawing.Image.FromFile _ ("D:\Data\Studying\VS.Net 05\Tung buoc lap trinh vb.net\" & _ "Tung buoc lap trinh vb.net\7_Chapter7\Bai tap\" & _ "MyForloop_Advanced\MyForloop_Advanced\Icos\Face" & dem & ".ico") dem += If dem = Then dem = End If Bạn chạy lại chương trình thấy sau lần click vào nút “hiện biểu tượng” ảnh không cần click vào hộp thoại trước Vòng lặp DO LOOP Thay chạy có giới hạn FOR NEXT DO LOOPS chạy không giới hạn điều kiện ghi phần WHILE sai dừng lại Cú pháp: Do while bieuthuc Khối lệnh Loop 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 7: Sử dụng phát biếu lặp định thời Với vòng lặp kiểu từ đầu biểu thức sai vịng lặp khơng thực lệnh khối lệnh Nếu muốn vịng lặp thực thi lệnh bạn dùng cú pháp sau: Do Khối lệnh Loop While Bieuthuc 2.1 Tránh vịng lặp vơ tận Nếu bạn thiết lập điều kiện khơng vịng lặp diễn vơ tận Ví dụ: Dim i As Double = 12 Do i += Loop While i > 12 Vịng lặp khơng dừng lại điều kiện khơng sai 2.2 Dùng vòng lặp Do Loop viết chương trình chuyển đổi nhiệt độ Tạo giải pháp thêm vào dự án tên MyDoLoop_Temperature Bạn tạo kiện Form1_load cách double click vào form nhập vào đoạn mã sau: Dim FTemp, Celsius As Single Dim strFtemp As String Dim Prompt As String = "Điền vào giá trị độ F" Do strFtemp = InputBox(Prompt, "Độ F sang độ C:") If strFtemp "" Then FTemp = CSng(strFtemp) Celsius = Int((FTemp + 40) * / - 40) MsgBox(Celsius, , "Nhiệt độ C là") End If Loop While strFtemp "" Chương trình hộp thoại cho phép bạn nhập vào giá trị độ F để chuyển sang độ C Vịng lặp thực thi liên tục, bạn khơng nhập vào hộp thoại vịng lặp dừng lại Sử dụng từ khóa Until phát biểu Do Loop Nếu ta dùng từ khóa Until chương trình se dừng lại điều kiện ước lượng nhận giá trị TRUE Ví dụ viết lại điều kiện Loop while strFtemp "" sau: Loop Until strFtemp = "" Thì chương trình khơng thay đổi kết thực thi 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 7: Sử dụng phát biếu lặp định thời Sử dụng định thời TIMER Chúng ta quy định khối lệnh thực thời gian xác định với định thời Timer Sử dụng thuộc tính Interval đặt Enalble điều khiển Timer Giá trị Interval 1000 tương ứng với giây Khi thiết đặt, timer phát sinh kiện Time_Tick để thực thi Muốn dừng định thời lúc đặt enable fasle Bây tạo ví dụ DigitalClock tạo đếm với điều khiển Timer Ta đặt đếm giây, thuộc tính enable true sau giây (giá trị interval 1000) hệ thống phát sinh kiện Time_Tick gọi thủ tục bạn thực thi Thiết kế giao diện: Giao diện form gồm nhãn thông tin ngày đồng hồ điện tử sau: Bạn tạo giải pháp add vào dự án Tạo form cách kéo lable đặt điều khiển Timer1 vào form cách nhắp đúp lên điều khiển TOOLBOX Bạn thiết đặt thuộc tính cho lable1 hình Thuộc tính Interval Timer1 bạn đặt 1000 (ứng với s), thuộc tính enable bạn chuyển thành TRUE Viết mã: Bạn tạo thủ tục Timer1_Tick cách double click vào điều khiên Timer1 nhập vào đoạn mã sau: Label1.Text = "Ngày: " & DateTime.Now.Date & Chr(10) Label1.Text &= TimeString Chạy chương trình: Bây bạn chạy chương trình quan sát giao diện Lúc form có đồng hồ điện tử hình: 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 7: Sử dụng phát biếu lặp định thời Sử dụng đối tượng TIMER để hạn chế thời gian Ta sử dụng điều khiển TIMER để khống chế cho tác vụ Bài tập sau MyTimePassWord sử dụng điều khiển TIMER để giới hạn thời gian nhập mật người dùng Tìm hiểu chương trinh: Chương trình có textbox cho phép nhập password Nếu sau 15 giây mà người dùng không nhập mật chương trình đưa thơng báo kết thúc chương trình Ngồi chương trình cịn có nút để click đăng nhập Nếu người dùng không nhập pass thơng báo lỗi chưa nhập pass, nhập chuỗi “matkhau” báo thành cơng, ngược lại báo không đăng nhập Thiết kế giao diện: Tạo giải pháp thêm vào dự án tên MyTimePassWord đồng thời thiết kế giao diện hình Đặt thuộc tính Interval Timer1 15000 ứng với 15s enable TRUE Viết mã: Trước hết ta cài đặt thủ tục Timer1_Tick để xử lý 15 giây mà người dùng chưa đăng nhập Bạn tạo thủ tục cách double click vào TIMER1 nhập mã: MsgBox("Rất tiếc, hết 15 giây.") End Bây tạo thủ tục Button1_Click xử lý đăng nhập: If TextBox1.Text = "" Then 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 7: Sử dụng phát biếu lặp định thời MsgBox("Bạn chưa nhập mật khẩu!") Else If TextBox1.Text = "matkhau" Then Timer1.Enabled = False MsgBox("Bạn đăng nhập thành cơng!") Else MsgBox("Bạn khơng có quyền truy cập!") End If End If Chạy chương trình: Bạn chạy chương trình xem tính ví dụ Tổng kết Bạn làm bảng tổng kết chương làm thêm số tập đơn giản sau: - Viết lại ví dụ MyUserValidation chương sử dụng định thời để giới hạn thờ gian nhập password Biên soạn: Phạm Đức Lập -9- Add: cnt-44-dh, VIMARU ... Đức Lập -6 - Add: cnt-44-dh, VIMARU Hướng dẫn lập trình VB.NET Chương 7: Sử dụng phát biếu lặp định thời Sử dụng định thời TIMER Chúng ta quy định khối lệnh thực thời gian xác định với định thời. .. Đức Lập -4 - Add: cnt-44-dh, VIMARU Hướng dẫn lập trình VB.NET Chương 7: Sử dụng phát biếu lặp định thời 1.3 Sử dụng biến đếm toàn cục (Global) Ở chương trình trên, để thấy ảnh bạn phải click vào... 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 7: Sử dụng phát biếu lặp định thời Sử dụng đối tượng TIMER để hạn chế thời gian Ta sử dụng điều khiển TIMER