194
MỤC LỤC MỤC LỤC 1 LỜI NÓI ĐẦU............................................6 CHƯƠNG 1 7 TỔNG QUAN VỀ MÁY TÍNH..................................7 1.1. CÁC KHÁI NIỆM CƠ BẢN............................7 1.1.1. Thông tin- Biểu diễn và xử lý thông tin......7 1.1.2. Khái niệm Tin học - Informatics..............8 1.1.3. Khái niệm Công nghệ thông tin................8 1.1.4. Hệ đếm.......................................8 1.1.5. Các lĩnh vực ứng dụng của Tin học...........11 1.2. CƠ BẢN VỀ MÁY TÍNH.............................12 1.2.1. Lịch sử máy tính............................12 1.2.2 Các loại máy tính............................14 1.2.3 Các linh kiện phần cứng cấu thành lên máy tính cá nhân............................................15 1.2.4. Nguyên lý hoạt động của máy tính............17 1.3. TỔNG QUAN VỀ HỆ ĐIỀU HÀNH......................18 1.3.1. Hệ điều hành MS-DOS.........................18 1.3.2. Hệ điều hành Windows........................20 CHƯƠNG 2 26 TỔNG QUAN VỀ MẠNG MÁY TÍNH............................26 2.1. KHÁI NIỆM...................................... 26 2.1.1. Mạng LAN....................................26 2.1.2. Mạng MAN....................................26 2.1.3. Mạng WAN....................................27 2.2. INTERNET....................................... 28 2.2.1. Khái niệm...................................28 2.2.2. Lịch sử.....................................29

VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

  • Upload
    lythu

  • View
    225

  • Download
    0

Embed Size (px)

Citation preview

Page 1: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

MỤC LỤCMỤC LỤC 1LỜI NÓI ĐẦU............................................................................................................6CHƯƠNG 1................................................................................................................7TỔNG QUAN VỀ MÁY TÍNH..................................................................................7

1.1. CÁC KHÁI NIỆM CƠ BẢN............................................................................71.1.1. Thông tin- Biểu diễn và xử lý thông tin.....................................................71.1.2. Khái niệm Tin học - Informatics................................................................81.1.3. Khái niệm Công nghệ thông tin.................................................................81.1.4. Hệ đếm.......................................................................................................81.1.5. Các lĩnh vực ứng dụng của Tin học.........................................................11

1.2. CƠ BẢN VỀ MÁY TÍNH..............................................................................121.2.1. Lịch sử máy tính.......................................................................................121.2.2 Các loại máy tính......................................................................................141.2.3 Các linh kiện phần cứng cấu thành lên máy tính cá nhân.........................151.2.4. Nguyên lý hoạt động của máy tính..........................................................17

1.3. TỔNG QUAN VỀ HỆ ĐIỀU HÀNH.............................................................181.3.1. Hệ điều hành MS-DOS............................................................................181.3.2. Hệ điều hành Windows............................................................................20

CHƯƠNG 2..............................................................................................................26TỔNG QUAN VỀ MẠNG MÁY TÍNH..................................................................26

2.1. KHÁI NIỆM...................................................................................................262.1.1. Mạng LAN...............................................................................................262.1.2. Mạng MAN..............................................................................................262.1.3. Mạng WAN..............................................................................................27

2.2. INTERNET.....................................................................................................282.2.1. Khái niệm.................................................................................................282.2.2. Lịch sử......................................................................................................292.2.3. Các dịch vụ cơ bản trên Internet..............................................................30

CHƯƠNG 3..............................................................................................................33THUẬT TOÁN.........................................................................................................33

3.1. KHÁI NIỆM...................................................................................................333.2. MỘT SỐ PHƯƠNG PHÁP BIỂU DIỄN THUẬT TOÁN............................34

3.2.1. Đặc tả tự nhiên (Liệt kê từng bước).........................................................34

Page 2: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

3.2.2. Sử dụng sơ đồ khối..................................................................................343.3. CÁC CẤU TRÚC CƠ BẢN CỦA THUẬT TOÁN.......................................36

3.3.1. Cấu trúc tuần tự........................................................................................363.3.2. Cấu trúc rẽ nhánh.....................................................................................373.3.3. Cấu trúc lặp..............................................................................................38

3.4. MỘT SỐ THUẬT TOÁN THƯỜNG GẶP...................................................403.4.1. Bài toán tính tổng một dãy số..................................................................403.4.2 Bài toán tính tích một dãy số.....................................................................423.4.3 Bài toán đếm.............................................................................................423.4.4. Bài toán tìm giá trị lớn nhất, giá trị nhỏ nhất...........................................44

CHƯƠNG 4..............................................................................................................46TỔNG QUAN VỀ VISUAL BASIC 6.0..................................................................46

4.1. GIỚI THIỆU VỀ VB 6.0................................................................................464.2. CÀI ĐẶT VISUAL BASIC 6.0......................................................................464.3. LÀM QUEN VỚI MÔI TRƯỜNG VISUAL BASIC 6.................................47

4.3.1. Khởi động môi trường vb6.......................................................................474.3.2. Các công cụ trong môi trường lập trình...................................................484.3.3. Cửa sổ Project Explorer...........................................................................494.3.4. Properties Windows.................................................................................504.3.5. Biên dịch và chạy đề án...........................................................................51

4.4. TẠO MỘT ĐỀ ÁN ĐẦU TIÊN.....................................................................514.4.1. Bài toán....................................................................................................514.4.2. Khởi động VB và tạo một đề án mới.......................................................524.4.3. Thiết kế giao diện.....................................................................................524.4.4. Viết Code.................................................................................................534.4.5. Lưu đề án..................................................................................................554.4.6. Chạy chương trình....................................................................................564.4.7. Dừng chương trình...................................................................................56

4.5. MỞ ĐỀ ÁN ĐÃ CÓ.......................................................................................564.6. THOÁT KHỎI VISUAL BASIC...................................................................57

CHƯƠNG 5..............................................................................................................58BIỂU MẪU VÀ MỘT SỐ ĐIỀU KHIỂN THÔNG DỤNG.....................................58

5.1. MỘT SỐ KHÁI NIỆM...................................................................................585.1.1. Khái niệm thuộc tính, phương thức và sự kiện........................................585.1.2. Mối quan hệ giữa Thuộc tính – Phương thức – Sự kiện..........................60

2

Page 3: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

5.2. ĐIỀU KHIỂN FORM (BIỂU MẪU).............................................................615.2.1 Thuộc tính.................................................................................................615.2.2. Sự kiện......................................................................................................62

5.3. NHÃN – LABEL............................................................................................635.3.1. Thuộc tính................................................................................................635.3.2. Sự kiện......................................................................................................635.3.3. Ví dụ.........................................................................................................63

5.4. NÚT LỆNH – COMMAND BUTTON..........................................................645.4.1. Thuộc tính................................................................................................645.4.2. Sự kiện......................................................................................................655.4.3. Ví dụ.........................................................................................................65

5.5. HỘP VĂN BẢN – TEXTBOX......................................................................675.5.1. Thuộc tính................................................................................................675.5.2. Sự kiện......................................................................................................685.5.3. Ví dụ.........................................................................................................69

5.6. ĐIỀU KHIỂN HỘP KIỂM – CHECKBOX...................................................705.6.1. Thuộc tính................................................................................................705.6.2. Sự kiện......................................................................................................715.6.3. Ví dụ.........................................................................................................71

5.7. ĐIỀU KHIỂN NÚT TÙY CHỌN – OPTIONBUTTON...............................735.7.2. Sự kiện......................................................................................................735.7.3. Ví dụ.........................................................................................................73

5.8. ĐIỀU KHIỂN KHUNG – FRAME................................................................755.8.1 Thuộc tính.................................................................................................755.8.2. Ví dụ.........................................................................................................75

5.9. ĐIỀU HỘP DANH SÁCH – LISTBOX........................................................755.9.1. Thuộc tính................................................................................................755.9.2. Sự kiện......................................................................................................775.9.3. Phương thức.............................................................................................775.9.4. Ví dụ.........................................................................................................77

5.10. ĐIỀU KHIỂN HỘP KẾT HỢP - COMBOBOX..........................................795.10.1. Thuộc tính..............................................................................................79

5.11. ĐIỀU KHIỂN THỜI GIAN – TIMER.........................................................825.11.1 Thuộc tính...............................................................................................825.11.3. Ví dụ.......................................................................................................82

3

Page 4: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

5.12. ĐIỀU KHIỂN HỘP ẢNH – PICTUREBOX...............................................835.12.1. Thuộc tính..............................................................................................835.12.3. Phương thức...........................................................................................845.12.3. Ví dụ.......................................................................................................84

5.13. BÀI TẬP.......................................................................................................85CHƯƠNG 6..............................................................................................................88NGÔN NGỮ LẬP TRÌNH VISUAL BASIC...........................................................88

6.1. BIẾN, HẰNG.................................................................................................886.1.1. Biến..........................................................................................................886.1.2. Hằng.........................................................................................................89

6.2. KIỂU DỮ LIỆU..............................................................................................896.2.1. Kiểu số.....................................................................................................896.2.2. Kiểu xâu ký tự (String).............................................................................906.2.3. Kiểu Boolean............................................................................................916.2.4. Kiểu Date.................................................................................................926.2.5. Kiểu Variant.............................................................................................936.2.6. Kiểu Object..............................................................................................936.2.6. Kiểu mảng- ARRAY...............................................................................94

6.4. HÀM KIỂU TRA KIỂU DỮ LIỆU................................................................956.5. CHUYỂN ĐỔI KIỂU DỮ LIỆU....................................................................956.6. CÁC CẤU TRÚC ĐIỀU KHIỂN...................................................................96

6.6.1. Câu lệnh lựa chọn If…Then…Else..........................................................966.6.2. Câu lệnh lựa chọn Case..........................................................................1006.6.3. Cấu trúc lặp For…Next..........................................................................1036.6.4. Cấu trúc lặp Do … Loop........................................................................104

6.7. GỠ LỖI CHƯƠNG TRÌNH.........................................................................1056.7.1. Một số giải pháp giảm lỗi.......................................................................1056.7.1. Gỡ lỗi......................................................................................................106

6.8. HỘP THOẠI THÔNG BÁO – MESSAGE Box..........................................1106.8.1. Khái niệm...............................................................................................1106.8.2. Hộp thông báo MsgBox.........................................................................110

6.9. HỘP THOẠI NHẬP LIỆU - INPUTBOX...................................................1126.10. BÀI TẬP.....................................................................................................113

CHƯƠNG 7............................................................................................................115xỬ LÝ TẬP TIN.....................................................................................................115

4

Page 5: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

7.1. MỘT SỐ VẤN ĐỀ LIÊN QUAN................................................................1157.2. CÁC HÌNH THỨC TRUY CẬP TẬP TIN..................................................1167.3. XỬ LÝ DỮ LIỆU TRONG TẬP TIN VỚI CÁC HÀM I/O.......................117

7.3.1. Mở tập tin...............................................................................................1177.3.2. Đọc dữ liệu từ tập tin..............................................................................1187.3.3. Ghi dữ liệu vào tập tin............................................................................1207.3.4. Đóng tập tin............................................................................................122

CHƯƠNG 8............................................................................................................123TỔ CHỨC CHƯƠNG TRÌNH...............................................................................123PHỤ LỤC 1.............................................................................................................129PHÂN PHỐI ỨNG DỤNG.....................................................................................129PHỤ LỤC 2.............................................................................................................137TẠO HELP BẰNG HTML HELP WORKSHOP..................................................137

1. Cài đặt HTML Help Workshop......................................................................1372. Tạo các tệp hướng dẫn.....................................................................................1373. Tạo file Help....................................................................................................1374. Sử dụng tệp Help.chm.....................................................................................142

PHỤ LỤC 3.............................................................................................................142SỬ DỤNG DLL VÀ WINDOWS API...................................................................142

1. Giới thiệu về DLL và API..............................................................................1422. Cách sử dụng hàm API....................................................................................144

TÀI LIỆU THAM KHẢO......................................................................................147

5

Page 6: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

LỜI NÓI ĐẦUHiểu rõ cách thức hoạt động của phần mềm và hơn nữa là có thể tùy biến hoặc

xây dựng phần mềm phục vụ công việc, kiến thức lập trình là nhu cầu tất yếu.

BASIC là 1 ngôn ngữ lập trình được hãng Microsoft xây dựng và giới thiệu từ cuối những thập niên 1950. Qua quá trình phát triển Visual Basic ra đời và phiên bản Visual Basic 6.0 ra đời vào khoảng năm 1997. Ngoài thế mạnh là một ngôn ngữ lập trình trên windows, ta có thể sử dụng ngôn ngữ này để viết các đoạn chương trình nhúng trên các phần mềm khác như Ms word, ms Excel, hay AutoCAD….

Giáo trình này được xây dựng với mục đích làm tài liệu học tập chính thức cho sinh viên ngành Xây dựng công trình giao thông và ngành Kỹ thuật xây dựng của Trường Đại học Giao thông Vận tải.

Trong quá trình biên soạn giáo trình này chúng tôi đã nhận được rất nhiều sự ủng hộ của các đồng nghiệp tại Khoa Công nghệ thông tin, chúng tôi cũng nhận được sự hỗ trợ, góp ý của các giảng viên của Bộ môn Tự động hóa Thiết kế cầu đường, Khoa Công trình.

Chúng tôi xin trân trọng cảm ơn và mong muốn nhận được các góp ý của độc giả để giáo trình được hoàn thiện hơn.

Mọi góp ý xin gửi về [email protected].

Tháng 6/2014

Các tác giả

6

Page 7: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

CHƯƠNG 1

TỔNG QUAN VỀ MÁY TÍNH

1.1. CÁC KHÁI NIỆM CƠ BẢN

1.1.1. Thông tin- Biểu diễn và xử lý thông tinThông tin theo nghĩa thông thường của đời sống hàng ngày được hiểu như là

sự thông báo, cắt nghĩa, ... Thông tin tồn tại dưới nhiều dạng và được lưu trữ nhờ vật mang tin như tờ báo, quyển sách, băng ghi âm, đĩa từ, ...

Thông tin về một đối tượng là các dữ kiện về đối tượng đó. Thông tin có khả năng làm thay đổi sự hiểu biết của con người, là nguồn gốc của nhận thức. Trước thời điểm nhận thông tin, có một cái gì đó ta chưa biết, chưa xác định (bất định). Chẳng hạn ta biết sinh viên A học ở Trường Đại học Giao thông vận tải nhưng không biết ở khoa nào, lớp nào thì việc tìm đến sinh viên A có một độ bất định nào đó. Bây giờ, giả sử biết thêm sinh viên A học ở khoa Công nghệ thông tin của trường, thì điều này đã làm giảm độ bất định ở trên. Như vậy tính bất định đã thay đổi khi nhận thêm thông tin.

Ta xét một ví dụ khác: Nếu biết A đã thi đạt kỳ thi học kỳ môn Tin học đại cương, nhưng chưa biết được bao nhiêu điểm thì việc xác định điểm của A có một độ bất định nào đó. Nếu biết thêm A đạt điểm 7 hoặc 8 thì lượng thông tin bổ sung này sẽ làm giảm độ bất định trên. Tính bất định của sự kiện lúc đầu thể hiện ở 1 trong 6 (điểm có thể là 5, 6, 7, 8, 9, 10) và lúc sau là 1 trong 2 (điểm có thể là 7 hoặc 8). Tính bất định gắn liền với khái niệm xác suất. Xác suất càng nhỏ thì độ bất định càng lớn, hay nói cách khác, lượng thông tin tỷ lệ nghịch với xác suất của sự kiện.

Thông tin thường được biểu diễn qua các bộ ký hiệu. Ví dụ, ta có tập đối tượng X cần biểu diễn (tập các thí sinh chẳng hạn). Chọn một tập hữu hạn Y các chữ và số làm bảng chữ cái, ta gọi một dãy hữu hạn các chữ cái đó là một từ trên Y (ở đây là số báo danh). Với mỗi phần tử x X ta gán một từ y Y và gọi là mã của x (Y gọi là bảng mã). Phép tạo mã tương ứng này cần đảm bảo tính chất với x1≠x2 (x , x2 X) sẽ có y1≠y2 (y1 , y2 Y) là mã tương ứng của chúng. Khi biết mã số (số báo danh), bằng phép giải mã ta sẽ tìm được đối tượng tương ứng (thí sinh).

Thông tin đưa vào MTĐT (để lưu trữ, tính toán, ...) thực chất là dãy các tín hiệu nhị phân hay còn gọi là các bit (binary digit), nó tương ứng với các trạng thái của các mạch điện tử bên trong máy tính. Vì vậy, trong xử lý thông tin tự động, dạng mã quan trọng được dùng là mã nhị phân. Thông tin được mã hóa trên bảng chữ cái gồm 2 ký hiệu là chữ số 0 và chữ số 1.

7

Page 8: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Ví dụ, với bảng mã ASCII, là bộ mã tiêu chuẩn của Mỹ, mỗi ký tự (chữ cái, chữ số, ký tự đặc biệt) tương ứng với một mã 7 bit. Như vậy bảng mã với mỗi bit có 2 trạng thái cho phép mã hóa 27=128 ký tự. Với bảng mã ANSI, hay còn gọi là ASCII mở rộng, mỗi ký tự được mã hóa bằng 8 bit, và như vậy lượng ký tự có thể mã hóa được là 28=256 ký tự. Cuối những năm 80 của thế kỷ trước, bảng mã UNICODE được giới thiệu. Bảng mã này có thể sử dụng 16 bit để mã hóa một ký tự, nên lượng ký tự có thể mã hóa được là 216=65536 ký tự. Hiện nay UNICODE đã trở thành một tiêu chuẩn được chấp nhận rộng rãi vì nó có thể mã hóa được các ký tự của tất cả các ngôn ngữ trên thế giới.

1.1.2. Khái niệm Tin học - InformaticsTheo bách khoa mở toàn thư wikipedia: Tin học là ngành nghiên cứu về việc

tự động hóa xử lý thông tin bởi một hệ thống máy tính cụ thể hoặc trừu tượng. Với cách hiểu hiện nay, tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc xử lý thông tin. Trong nghĩa thông dụng, tin học còn có thể bao hàm cả những gì liên quan đến các thiết bị máy tính hay các ứng dụng tin học văn phòng.

Về định nghĩa thế nào là tin học, Edsger Dijkstra đã tóm tắt bằng câu sau đây: quan hệ giữa tin học với máy tính không khác gì quan hệ giữa thiên văn học với kính viễn vọng.

Ngoài ra, chúng ta còn biết đến một khái niệm khác: Tin học là ngành khoa học công nghệ nghiên cứu các phương pháp, các quá trình xử lý thông tin một cách tự động dựa trên các phương tiện kỹ thuật mà chủ yếu là máy tính điện tử.

1.1.3. Khái niệm Công nghệ thông tin Công nghệ thông tin viết tắt CNTT, (tiếng Anh: Information Technology hay

là IT) là ngành ứng dụng công nghệ quản lý và xử lý thông tin

CNTT là ngành sử dụng máy tính và phần mềm máy tính để chuyển đổi, lưu trữ, bảo vệ, xử lý, truyền, và thu thập thông tin.

Ở Việt Nam:khái niệm CNTT được hiểu và định nghĩa trong nghị quyết Chính phủ 49/CP kí ngày 04/08/1993 : Công nghệ thông tin là tập hợp các phương pháp khoa học, các phương tiện và công cụ kĩ thuật hiện đại - chủ yếu là kĩ thuật máy tính và viễn thông - nhằm tổ chức khai thác và sử dụng có hiệu quả các nguồn tài nguyên thông tin rất phong phú và tiềm năng trong mọi lĩnh vực hoạt động của con người và xã hội.

1.1.4. Hệ đếmHệ đếm được hiểu như tập các ký hiệu và tập các qui tắc xác định dùng để

biểu diễn và tính giá trị các số. Trước hết hãy xét những hệ đếm quen thuộc, đại diện cho hai cách đếm là: hệ đếm La Mã (đếm không theo vị trí) và hệ đếm thập phân (đếm theo vị trí).

8

Page 9: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Hệ đếm La Mã: Mỗi ký hiệu biểu thị một giá trị (I=1, V=5, X=10, D=500, M=1000). Nó có các qui tắc, chẳng hạn: n ký hiệu đứng cạnh nhau cho biết ký hiệu đó được lặp lại n lần, ví dụ: II=2, III=3, XXX=30; hai ký hiệu trong đó ký hiệu lớn đứng trước biểu thị tổng của hai ký hiệu đó, ví dụ: VI=6, XI=11, ... Như vậy trong hệ đếm La Mã, mỗi ký hiệu chỉ đại diện cho một giá trị, không phụ thuộc vào vị trí của nó trong biểu diễn.

Hệ đếm thập phân: Sử dụng 10 ký hiệu (là các chữ số: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9). Qui tắc tính giá trị: giá trị của mỗi ký hiệu phụ thuộc vào bản thân ký hiệu đó và vị trí của nó trong biểu diễn. Ví dụ: trong số 555, chữ số 5 hàng đơn vị chỉ 5 đơn vị, chữ số 5 hàng chục chỉ 50 đơn vị (5*101), chữ số 5 hàng trăm chỉ 500 đơn vị (5*102). Số lượng các chữ số dùng trong hệ thập phân (10 chữ số) gọi là cơ số của hệ đếm. Số mũ của cơ số 10 xác định giá trị định lượng của mỗi đơn vị.

Hệ đếm thập phân chỉ là một trường hợp riêng khi chọn cơ số là 10. Tổng quát, bất kỳ một số nguyên b > 1 nào cũng đều có thể chọn làm cơ số. Lúc đó các ký hiệu của hệ đếm là 0, 1, 2, ..., b-1.

Trong tin học, các hệ đếm thường được sử dụng là: hệ cơ số 2 (hệ nhị phân) chỉ dùng 2 ký hiệu {0, 1} hệ cơ số 8 dùng các ký hiệu {0, 1, 2, 3, 4, 5, 6, 7} hệ cơ số 16 dùng các ký hiệu {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}. Khi cần phân biệt số ở hệ đếm nào, ta có thể sử dụng cơ số làm chỉ số, ví dụ: 1012 , 58 , 516 .

MTĐT chỉ có thể tác động trực tiếp với các số nhị phân, trong khi đó con người lại thường làm việc trên hệ thập phân. Vì thế cần phải có thuật toán để chuyển đổi số từ hệ đếm này sang hệ đếm khác. Để chuyển đổi số từ hệ đếm cơ số b1 sang hệ đếm cơ số b2 , người ta thường dùng hệ thập phân làm trung gian: chuyển số từ hệ đếm cơ số b1 sang hệ thập phân, sau đó chuyển tiếp số từ hệ thập phân sang hệ đếm cơ số b2.

a. Biến đổi số ở hệ đếm bất kỳ sang hệ thập phânCho số N= (dn-1dn-2...d1d0d-1d-2...d-m) ở hệ đếm cơ số b. Để tìm biểu diễn của N

trong hệ thập phân, ta tiến hành theo các bước:

Viết N dưới dạng đa thức:

N = dn-1 bn-1 + dn-2 bn-2 + ... + d1 b1 + d0 b0 + d-1 b-1 + d-2 b-2 + ... + d-mb-m

Sử dụng phép toán của hệ thập phân để tính giá trị đa thức.

Ví dụ:

1110,12 = 1.23 + 1.22 + 1.21 + 0.20 + 1.2-1 = 14,5

D3F,416 = D.162 + 3.161 + F.160 + 4.16-1

= 13.162 + 3.161 + 15.160 + 4.16-1= 3391,25

9

Page 10: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

b. Biến đổi số ở hệ thập phân sang hệ đếm cơ số bất kỳTrước hết cần tách phần nguyên và phần thập phân (nếu có), rồi tiến hành biến

đổi chúng riêng biệt sang hệ đếm cơ số b. Sau đó bằng cách ghép nối các kết quả ta thu được giá trị cần tìm.

Để biến đổi phần nguyên N, ta chia nguyên nó cho b được thương số là N 1 và số dư d1. Sau đó lại lấy N1 chia nguyên cho b, được thương số là N2 vào số dư là d2, ... Lặp lại quá trình đó đến khi thương số Nk=0, ta sẽ có kết quả cần tìm là (dk ... d2d1).

Ví dụ: 5210 = ?2 . Ta thực hiện theo thuật toán như sau:

Phép chia nguyên Thương số Số dư

52 : 2 26 0

26 : 2 13 0

13 : 2 6 1

6 : 2 3 0

3 : 2 1 1

1 : 2 0 1

Như vậy 5210 = 1101002

Ví dụ: 5850610 = ?16 . Ta thực hiện theo thuật toán như sau:

Phép chia nguyên Thương số Số dư

58506 : 16 3656 10

3656 : 16 228 8

228 : 16 14 4

14 : 16 0 14

Như vậy 5850610 = E48A16

Để biến đổi phần thập phân 0,M ta nhân nó với b, được phần nguyên của kết quả là d1, phần thập phân còn lại sau khi lấy kết quả trừ đi d1 là 0,M1. Sau đó lấy 0,M1 nhân với b, được phần nguyên của kết quả là d2, phần thập phân còn lại sau khi lấy kết quả trừ đi d2 là 0,M2, ... Tiếp tục lặp lại quá trình này, nó có kết thúc hoặc lặp vô hạn, khi đó tùy theo yêu cầu mà quyết định dừng khi nào. Ta sẽ có kết quả cần tìm là (0,d1d2d3 ...)

10

Page 11: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Ví dụ: 0,687510 = ?2

Phép nhân Kết quả Phần nguyên

0,6875 * 2 1,375 1

0,375 * 2 0,75 0

0,75 * 2 1,5 1

0,5 * 2 1,0 1

Như vậy: 0,687510 = 0,10112

Từ đây suy ra: 52,687510 = 110100,010112

Ví dụ: 0,843510 = ?16

Phép nhân Kết quả Phần nguyên

0,8435 * 16 13,496 13

0,496 * 16 7,936 7

0,936 * 16 14,976 14

0,976 * 16 15,616 15

... ... ...

Như vậy: 0,843510 = 0,D7EF...16

Từ đây suy ra: 58506,843510 = E48A,D7EF...16

c. Biểu diễn thông tin trong máy tínhMTĐT xử lý cả dữ liệu số và phi số, nhưng cả hai loại dữ liệu này khi đưa vào

máy đều là dãy các tín hiệu nhị phân, thường được thể hiện bằng các chữ số 0, 1 (gọi là các bit). Theo nghĩa đó MTĐT xử lý dữ liệu bằng số, và bit là đơn vị thông tin. Số được biểu diễn dưới dạng nhị phân chính là một dãy các bit liên tiếp. Các số, các ký hiệu, các lệnh máy được biểu diễn trong máy tính thông qua các dãy nhị phân với độ dài xác định, gọi là từ máy. Độ dài từ máy là đặc trưng của từng họ máy. Các độ dài từ máy thông dụng là 8, 16, 32, ... bit. Độ dài từ máy là xác định, do vậy dải số có thể biểu diễn được bên trong máy tính là hữu hạn.

1.1.5. Các lĩnh vực ứng dụng của Tin họcTin học ngày nay đã trở thành động lực sản xuất của xã hội. MTĐT khác các

máy móc khác ở chỗ nó gia công thông tin chứ không gia công nguyên vật liệu. Sản phẩm của MTĐT là những thông tin hướng dẫn các hoạt động thực tiễn. Ban đầu tin học chủ yếu phục vụ các vấn đề khoa học kỹ thuật, người sử dụng khi đó cũng chủ yếu là những nhà chuyên môn trong các lĩnh vực đó. Sự phát triển nhanh chóng của MTĐT và mạng Internet cho phép tin học xâm nhập vào mọi lĩnh vực. Do sự phát triển nhanh, mạnh và rộng khắp của tin học nên sẽ rất khó để nói hết được những ứng dụng của nó, dưới đây chỉ tóm lược một số phần mềm ứng dụng cơ bản, phổ biến hiện nay.

11

Page 12: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

a. Phần mềm toán họcMathematica: là phần mềm cho phép tính toán từ đơn giản như các tính toán

số học đến phức tạp hơn, như: các bài toán về đa thức, đại số tuyến tính, tìm giới hạn, tìm đạo hàm, tính tích phân, giải phương trình vi phân, khai triển Taylor, ... Ngoài ta phần mềm này còn cho phép vẽ biểu đồ và đồ thị.

Matlab: phần mềm này có thể thực hiện được các tính toán tương tự như Mathematica. Ngoài ra Matlab còn dùng kỹ thuật đồ họa 3 chiều để thiết kế các mô hình trong khoa học kỹ thuật hoặc làm các đoạn phim hoạt hình đơn giản.

b. Phần mềm văn phòng- Bộ phần mềm văn phòng nổi tiếng nhất, có mặt ở hầu hết các máy tính hiện

nay là Microsoft Office. Trong bộ phần mềm này có những chương trình:

- Word: để soạn thảo, lưu trữ, sửa chữa, in ấn các văn bản.

- Excel: để tạo lập, lưu trữ, sửa chữa, in ấn các bảng tính, ví dụ: bảng lương, bảng thống kê bán hàng, ...

- PowerPoint: để tạo lập các bản báo cáo (slide) và trình bày báo cáo.

- Access: là một hệ quản trị cơ sở dữ liệu.

- FrontPage: để xây dựng các trang Web.

- Outlook: để trao đổi, quản lý thư điện tử, lập lịch làm việc, …

c. Phần mềm thiết kế- AutoCAD: để tạo lập và quản lý các bản vẽ kỹ thuật.

- Sap: để tính toán kế cấu và ổn định lực học.

- 3D Max: là một công cụ mạnh, có sự hỗ trợ của multimedia để phục vụ cho công tác thiết kế.

d. Một số thuật ngữ trong Tin họcPhần mềm; Phần cứng; Hệ điều hành; Phần mềm ứng dụng; Ngôn ngữ lập

trình; Phần mềm tiện ích......

1.2. CƠ BẢN VỀ MÁY TÍNH 1.2.1. Lịch sử máy tính

Lịch sử kỹ thuật tính toán đã có từ lâu đời. Công cụ tính toán của con người bắt đầu từ những thứ rất thô sơ như ngón tay, hòn sỏi, rồi đến bàn tính gảy, máy tính cơ, máy tính cơ điện. Đến năm 1946, việc chế tạo thành công máy tính ENIAC tại Mỹ được coi như mốc đánh dấu sự ra đời của MTĐT đầu tiên trên thế giới. Từ khi có MTĐT, kỹ thuật tính toán đã chuyển sang một giai đoạn mới.

Năm Sự kiện

Trước CN Bàn tính gảy ở Trung Quốc

12

Page 13: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

1642 Máy tính cơ, làm được phép cộng (Blaise Pascal)

1670 Máy tính cơ, làm được cộng,trừ,nhân,chia,căn bậc 2 (Leibnitz)

1842 Máy tính có thể lập trình để tính tự động (Charles Babbage)

1890 Herman Hollerith thiết kế hệ thống có thể lưu thông tin trên bìa đục lỗ, đọc ra bằng tế bào quang điện, thành lập công ty IBM

1946 Máy ENIAC (Eckert, Mauchly), gồm 18000 bóng chân không, giá 500000$

1958 Máy tính đầu tiên dùng bóng bán dẫn transitor (IBM 7090)

1964 Máy tính đầu tiên dùng mạch tích hợp IC (IBM 360)

1976 Hãng DEC giới thiệu máy vi tính VAX 11/780

1981 Hãng IBM đưa ra máy vi tính IBM PC

Bảng 1.1 Một số mốc trong lịch sử phát triển máy tính

Hình 1.1 Máy tính điện tử ENIAC

Sự phát triển của MTĐT từ năm 1946 đến nay đã trải qua nhiều thế hệ. Mỗi thế hệ là một bước phát triển lớn và được xác định căn cứ vào tiêu chuẩn kỹ thuật và mức độ phong phú của phần mềm.

Thế hệ thứ nhất (khoảng 1946-1955): Dùng bóng đèn điện tử, độ tin cậy thấp, tiêu hao nhiều năng lượng, tốc độ tính toán chỉ từ vài nghìn đến vài chục nghìn phép tính một giây. Phần mềm chưa phát triển, chủ yếu dùng ngôn ngữ máy để lập trình. Thế hệ MTĐT này thường chỉ dùng trong mục đích nghiên cứu khoa học.

Thế hệ thứ hai (khoảng 1955-1965): Dùng bóng bán dẫn thay đèn điện tử, tiêu thụ năng lượng ít hơn, bộ nhớ có dung lượng lớn hơn, tốc độ khoảng vài chục

13

Page 14: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

nghìn phép tính một giây. Đã bắt đầu xuất hiện một số NNLT bậc cao như FORTRAN, COBOL, ... Về ứng dụng, đã bắt đầu dùng vào các mục đích tính toán trong quản lý kinh tế, thống kê, ...

Thế hệ thứ ba (khoảng 1965-1980): Dùng mạch tích hợp thay cho bóng bán dẫn, tốc độ tính toán lên đến hàng triệu phép tính một giây. Các tiến bộ khác phải kể đến: xuất hiện nhiều hệ điều hành tốt hơn, có khả năng sử dụng bộ nhớ ảo, đa chương trình, các thiết bị ngoại vi phát triển rất mạnh mẽ. Phần mềm phát triển đa dạng, ứng dụng trong nhiều lĩnh vực.

Thế hệ thứ tư (khoảng từ sau 1980): Dùng mạch tích hợp cỡ lớn VLSI, sự phát triển của mạng máy tính, các kiến trúc song song, tốc độ tính toán lên đến nhiều triệu, thậm chí hàng tỷ phép tính một giây. Về ứng dụng, đã được sử dụng trong tất cả mọi lĩnh vực.

Dựa trên kích thước, kiến trúc vật lý, tính năng, tốc độ và quy mô xử lý, người ta phân chia MTĐT thành các loại: Máy tính lớn (mainfraim), máy tính mini (mini computer) và máy vi tính (micro computer). Các máy tính lớn có giá thành rất đắt, thường được sử dụng vào các lĩnh vực quan trọng, đòi hỏi nhiều tính toán phức tạp. Thuộc loại này có thể kể đến các máy Cray, IBM 3090/300, Gen/Blue, ... Các máy tính mini có giá thành vừa phải, thích hợp cho các mục đích chuyên dùng. Một số máy loại này là PDP, HP-300, IBM 360, Sun 4, ... Các máy vi tính xuất hiện từ cuối những năm 70 của thế kỷ 20. Các máy vi tính có kích thước nhỏ, giá thành rẻ hơn các loại máy trên, nên đã dần được sử dụng rộng rãi, kể cả trong những công ty nhỏ, trường học, hộ gia đình hay chỉ cho cá nhân. Chính vì thế phiên bản máy vi tính đầu tiên của hãng IBM được gọi là máy tính cá nhân (Personal Computer, viết tắt là PC). Máy vi tính của IBM chiếm thị phần lớn nhất vào đầu những năm 1980, nên dần dần người ta gần như đồng nghĩa từ PC với từ máy vi tính.

Cần lưu ý rằng cách phân loại trên chỉ là tương đối, cần quan tâm đến cả yếu tố thời gian. Nhiều máy vi tính ngày nay có tính năng sử dụng vượt xa các máy tính lớn vào những năm 1970.

1.2.2 Các loại máy tính Theo Quyết định số 21/2007/QĐ-BGDĐT ngày 31 tháng 5 năm 2007 của Bộ

trưởng Bộ Giáo dục và Đào tạo

- Máy Mainframe- Máy Mini- Máy vi tính cá nhân, đặt bàn (PC)- Máy vi tính xách tay- Máy Palmtop.

14

Page 15: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Cấu tạo máy vi tính cá nhân (Các thành phần - Các thiết bị của máy tính) – PC

1.2.3 Các linh kiện phần cứng cấu thành lên máy tính cá nhâna. Bộ xử lý trung tâm

Bộ xử lí trung tâm (tiếng Anh  Central Processing Unit - CPU), CPU có thể được xem như não bộ – một trong những phần tử cốt lõi nhất của máy vi tính. Nhiệm vụ chính của CPU là xử lý các chương trình vi tính và dữ kiện. CPU có nhiều kiểu dáng khác nhau. CPU là một mạch xử lý dữ liệu theo chương trình được thiết lập trước. Nó là một mạch tích hợp phức tạp gồm hàng triệu transitor trên một bảng mạch nhỏ. Bộ xử lý trung tâm bao gồm Khối điều khiển và Khối tính toán.

b. Bo mạch chủBo mạch chủ (Bo mạch chính) kết nối các thiết bị với nhau trong máy tính cá

nhân. Một cách hiểu khác: có thể so sánh bo mạch chủ trong phần cứng giống như vai trò của hệ điều hành trong phần mềm.

Thuật ngữ Bo mạch chủ thường dùng nhiều nhất trong ngành công nghiệp máy tính nói chung như một từ dành riêng, mặc dù có rất nhiều thiết bị khác cũng có thể có bản mạch chính được gọi là "bo mạch chủ".

Bo mạch chủ của máy tính trong tiếng Anh là motherboard hay mainboard và thường được nhiều người gọi tắt là: mobo, main.

c. Bộ nhớ trongBộ nhớ trong được chia làm 2 phần: bộ nhớ truy cập ngẫu nhiên

(Random Access Memory -RAM) và bộ nhớ chỉ đọc (Read-Only Memory - ROM ).

Bộ nhớ truy cập ngẫu nhiên là bộ nhớ chính của máy tính. RAM được gọi là bộ nhớ truy xuất ngẫu nhiên vì nó có đặc tính: thời gian thực hiện thao tác đọc hoặc ghi đối với mỗi ô nhớ là như nhau, cho dù đang ở bất kỳ vị trí nào trong bộ nhớ, do mỗi ô nhớ của RAM được xác định thông qua địa chỉ của nó. Thông thường, mỗi ô nhớ là một byte (8 bits), tuy nhiên hệ thống lại có thể đọc ra hay ghi vào nhiều byte (2, 4, 8 byte).

RAM khác biệt với các thiết bị bộ nhớ tuần tự (sequential memory device) chẳng hạn như các băng từ, đĩa; mà các loại thiết bị này bắt buộc máy tính phải di chuyển cơ học một cách tuần tự để truy cập dữ liệu.

Bởi vì các chip RAM có thể đọc hay ghi dữ liệu nên thuật ngữ RAM cũng được hiểu như là một bộ nhớ đọc-ghi (read/write memory), trái ngược với bộ nhớ chỉ đọc ROM (read-only memory).

RAM thông thường được sử dụng cho bộ nhớ chính (main memory) trong máy tính để lưu trữ các thông tin thay đổi, và các thông tin được sử dụng hiện hành.

15

Page 16: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Cũng có những thiết bị sử dụng một vài loại RAM như là một thiết bị lưu trữ thứ cấp (secondary storage).

Thông tin lưu trên RAM chỉ là tạm thời, chúng sẽ mất đi khi mất nguồn điện cung cấp.

d. Bộ nhớ ngoàiBộ nhớ ngoài của máy tính hiện nay bao gồm nhiều thiết bị khác nhau như: ổ

cứng, đĩa quang, đĩa mềm, USB,… Tuy nhiên ổ đĩa cứng là thiết bị nhớ ngoài chính được sử dụng trong hầu hết các máy tính.

Ổ đĩa cứng  hay còn gọi là ổ cứng (Hard Disk Drive- HDD) là thiết bị dùng để lưu trữ dữ liệu trên bề mặt các tấm đĩa hình tròn phủ vật liệu từ tính. Ổ đĩa cứng là loại bộ nhớ "không thay đổi" (non-volatile), có nghĩa là chúng không bị mất dữ liệu khi ngừng cung cấp nguồn điện cho chúng. Ổ đĩa cứng là một thiết bị rất quan trọng trong hệ thống bởi chúng chứa dữ liệu thành quả của một quá trình làm việc của những người sử dụng máy tính. Những sự hư hỏng của các thiết bị khác trong hệ thống máy tínhcó thể sửa chữa hoặc thay thế được, nhưng dữ liệu bị mất do yếu tố hư hỏng phần cứng của ổ đĩa cứng thường rất khó lấy lại được.

Ổ đĩa quang (CD, DVD) Bộ nhớ dùng cho xuất, nhập dữ liệu với dung lượng lớn hoặc trao đổi dữ liệu, phần mềm với những máy tính khác. Sử dụng sao lưu dữ liệu và các mục đích khác. Đây không phải là thiết bị bắt buộc đối với hệ thống phần cứng máy tính cá nhân.

Ổ đĩa mềm Bộ nhớ dùng cho xuất nhập dữ liệu với dung lượng thấp (phụ thuộc từng loại đĩa mềm). Đây không phải thiết bị bắt buộc phải có.

e. Một số thiết bị khácBo mạch đồ hoạ: thiết bị có chức năng xuất hình ảnh ra màn hình máy tính,

giúp người sử dụng giao tiếp với máy tính.

Bo mạch âm thanh: thiết bị có chức năng xuất tín hiệu âm thanh ra các thiết bị phát âm thanh (loa), đây không phải thiết bị bắt buộc phải có.

Bo mạch mạng: thiết bị có chức năng kết nối các máy tính với nhau thành một mạng máy tính, giúp máy tính có thể trao đổi thông tin với các máy tính khác trên phạm vi rộng (có thể đến toàn thế giới). Đây không phải thiết bị bắt buộc phải có.

Vỏ máy tính: thiết bị định vị và bảo vệ các thiết bị khác. Vỏ máy tính là một thiết bị dùng gắn kết và bảo vệ các thiết bị phần cứng trong máy tính,đồng thời cũng có vai trò tản nhiệt cho máy tính. Vỏ máy tính có nhiều thể loại khác nhau, các thiết kế riêng biệt của vỏ máy tính đã tạo ra các sự khác biệt của các hãng máy tính khác nhau và các model khác nhau trong cùng một hãng.

16

Page 17: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Nguồn máy tính: thiết bị cung cấp năng lượng cho các thiết bị khác hoạt động.

Màn hình máy tính: thiết bị trợ giúp giao tiếp giữa con người và máy tính.

Bàn phím: thiết bị nhập dữ liệu, giao tiếp con người với máy tính

Chuột: thiết bị nhập dữ liệu, giao tiếp con người với máy tính.

Các thiết bị ngoại vi thường kết nối với máy tính cá nhân: Modem, Webcam, Micro, Loa máy tính, Máy in, Máy quét, Máy ảnh số.

1.2.4. Nguyên lý hoạt động của máy tínhVon Neumann là người đề xuất ra nguyên lý làm việc của máy tính số, và

nguyên lý này vẫn được dùng làm cơ sở cho hầu hết các MTĐT hiện nay. Theo đó thì MTĐT làm việc theo chương trình có trong bộ nhớ của nó. Để đảm bảo nguyên tắc này, MTĐT cần phải gồm đủ 5 thành phần cơ bản: bộ nhớ để ghi thông tin, bộ số học logic để thực hiện các tính toán, bộ điều khiển, các thiết bị nhập và thiết bị xuất dữ liệu.

Máy tính phải thi hành được các lệnh của người dùng đưa vào. Một chương trình thực chất là một chuỗi các lệnh, nhằm thực hiện những công việc nào đó. Một tập hợp các qui ước để viết nên các dòng lệnh đưa vào máy, cho máy nhận diện và thi hành gọi là ngôn ngữ. Ngôn ngữ được thực hiện trực tiếp dựa trên qui ước của các mạch điện tử trong máy gọi là ngôn ngữ máy. Mỗi loại máy có một ngôn ngữ riêng. Ngôn ngữ máy có ưu điểm là máy hiểu được ngay, nhưng nó quá khác biệt so với ngôn ngữ của con người, nên việc xây dựng, kiểm thử chương trình rất khó khăn.

Từ đầu những năm 60 của thế kỷ trước đã bắt đầu xuất hiện những ngôn ngữ lập trình (NNLT) bậc cao. Gọi là ngôn ngữ bậc cao vì các ngôn ngữ này thường sử dụng những từ khóa dựa trên tiếng Anh, có cấu trúc gần gũi hơn với ngôn ngữ của con người. Các NNLT luôn không ngừng phát triển, các NNLT mới luôn xuất hiện, ngày càng hoàn thiện hơn để đáp ứng những nhu cầu ngày một cao về qui mô, chất lượng, độ tin cậy, ... của phần mềm. Trên thực tế, sự phát triển của các ngôn ngữ lập trình gắn liền với sự phát triển của công nghệ phần mềm và của tin học. Một chương trình viết bằng một NNLT nào đó gọi là chương trình nguồn. Chúng ta cần phải có một chương trình dịch cho NNLT đó để dịch các chương trình nguồn bằng NNLT này ra ngôn ngữ máy, khi đó MTĐT mới có thể hiểu và thực hiện.

Để tự động hóa một số công việc của người vận hành máy, cũng như quản lý, khai thác các thiết bị phần cứng hiệu quả hơn, từ những năm 1960 người ta đã xây dựng các hệ điều hành cho máy tính. Ngày nay nói đến một hệ thống máy tính, ta phải hiểu đó là thiết bị phần cứng và hệ điều hành cài đặt trên nó. Các hệ điều hành ngày càng phát triển để đáp ứng nhu cầu không có giới hạn của người dùng và sự

17

Page 18: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

thay đổi, tiến bộ liên tục của phần cứng. Một số hệ điều hành tiêu biểu hiện nay là: MS-DOS, Windows, Linux, ...

1.3. TỔNG QUAN VỀ HỆ ĐIỀU HÀNH Hệ điều hành (HĐH) là tập hợp các chương trình đặc biệt dùng để tổ chức,

phối hợp hoạt động của các thiết bị phần cứng, tạo ra môi trường làm việc cho các chương trình ứng dụng và giao diện với người dùng. HĐH là một phần mềm không thể thiếu trên bất kỳ máy tính nào. HĐH tự động được tải vào bộ nhớ sau khi khởi động máy tính.

Hiện nay có rất nhiều HĐH cho các hệ máy khác nhau. Số lượng các HĐH cho máy vi tính cũng không ít, nhưng trên thế giới cũng như ở Việt Nam từ trước tới nay sử dụng phổ biến các HĐH của hãng Microsoft là MS-DOS và Windows.

1.3.1. Hệ điều hành MS-DOSMột trong những HĐH đầu tiên cho các máy vi tính là MS-DOS (Microsoft

Disk Operating System), thường gọi tắt là DOS. MS-DOS đã phát triển qua nhiều phiên bản từ 1.0 đến 6.0 rồi dần được thay thế bởi HĐH Windows. Tuy nhiên, nhiều tư tưởng và qui định của DOS vẫn được áp dụng trong Windows. Ngoài ra, có nhiều phần mềm được viết từ khi HĐH Windows chưa phổ biến, chúng chỉ chạy được trên nền DOS, nên ngay cả trong Windows vẫn cho phép chúng ta tạo ra môi trường DOS ảo, giống như khi dùng MS-DOS để chạy được các phần mềm cũ.

a. Một số khái niệmTệp tin (file): là tập hợp các thông tin được tổ chức lưu trữ thành một đơn vị

độc lập. Có hai loại tệp tin là: tệp tin dữ liệu và tệp tin chương trình. Mỗi tệp tin có một tên, gồm 2 phần, được phân cách bằng dấu chấm (.) là: phần tên và phần mở rộng. Đặt tên tệp tin trên DOS phải tuân theo một số qui tắc: phần tên không quá 8 ký tự, phần mở rộng không quá 3 ký tự và không chứa dấu cách.

Thư mục (directory): để tạo sự dễ dàng và thuận lợi trong việc quản lý và truy xuất đến các tệp tin, DOS cho phép tổ chức các tệp tin thành từng nhóm, gọi là thư mục. Có thể ví thư mục như những tủ hồ sơ để chứa hồ sơ là các tệp tin. Trong thư mục có thể tạo những thư mục con của nó. Thư mục mà bên trong không có thư mục con cũng không có tệp tin nào thì gọi là thư mục rỗng. Thư mục hiện hành là thư mục mà ta đang làm việc, nó được thể hiện trên dấu nhắc của DOS. Tên thư mục cũng không được đặt quá 8 ký tự.

Dựa trên khái niệm thư mục, DOS tổ chức dữ liệu trên đĩa một cách logic dưới dạng hình cây, với “gốc” là ổ đĩa, rồi phân chia tiếp ra các thư mục, từ các thư mục có thể đến các thư mục con của nó, ... và cuối cùng “lá” là các tệp tin. Cách tổ chức dữ liệu trên đĩa của HĐH Windows cũng tương tự như vậy, chỉ có điều trên

18

Page 19: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Windows có thể đặt tên tệp tin và tên thư mục với độ dài lớn hơn, có thể bao gồm cả dấu cách.

Đường dẫn (path): Để truy cập đến một thư mục hay một tệp tin ta phải chỉ ra nó nằm ở đâu tính từ thư mục hiện hành. Các thông tin này được trình bày bằng cách liệt kê tên các thư mục và tệp tin, giữa hai thư mục hoặc tệp tin sử dụng dấu sổ chéo (\). Dãy thư mục và tệp tin đó gọi là đường dẫn. Nếu phải xác định thư mục hoặc tệp tin ở ổ đĩa khác với ổ đĩa hiện hành thì cần chỉ ra tên ổ đĩa, kèm theo dấu hai chấm (:). Tên ổ đĩa thường ký hiệu A cho ổ đĩa mềm, C, D cho ổ đĩa cứng, ...

Ví dụ một đường dẫn: C:\GIAOTRINH\THDC\CHUONG1.DOC

Các ký tự đại diện: thường được sử dụng khi phải làm việc với nhiều tệp tin có chung một tính chất nào đó. Có hai loại ký tự đại diện là: ‘?‘ đại diện cho 1 ký tự tại vị trí nó đứng và ‘*‘ đại diện cho nhiều ký tự kể từ vị trí nó đứng.

b. Một số qui ướcMột lệnh của DOS được viết bắt đầu từ dấu nhắc của DOS trên màn hình.

Giữa phần lệnh và phần thông tin phía sau phải có ít nhất một dấu cách. Trong lệnh của DOS không phân biệt chữ hoa và chữ thường. Sau khi viết xong lệnh, gõ phím Enter để thực hiện lệnh đó.

Trong cách viết lệnh sau đây, phần đặt giữa dấu < và dấu > là bắt buộc phải có, nếu không lệnh sẽ sai cú pháp, còn phần đặt giữa dấu [ và ] là phần lựa chọn, tùy theo yêu cầu mà có cần sử dụng hay không.

c. Một số lệnh làm việc với thư mục:1) Tạo thư mục mới:

MD [đường dẫn] <tên thư mục> <ENTER>

Trong đó: [đường dẫn] là tên ổ đĩa, tên các thư mục để xác định thư mục cần làm việc, tức là thư mục mà ta sẽ tạo thư mục mới trong nó, <tên thư mục> là tên thư mục mới cần tạo, <ENTER> là gõ phím Enter trên bàn phím.

Ví dụ trên ổ đĩa C hiện hành có thư mục GIAOTRINH, cần tạo một thư mục mới có tên VANPHONG:

MD GIAOTRINH\VANPHONG <ENTER>

2) Xóa một thư mục rỗng:RD [đường dẫn] <tên thư mục> <ENTER>

3) Chuyển đến một thư mục:CD [đường dẫn] <tên thư mục> <ENTER>

Thư mục sau khi được chuyển đến sẽ trở thành thư mục hiện hành.

Chuyển đến thư mục cha:CD .. <ENTER>

19

Page 20: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Chuyển đến thư mục gốc:CD\ <ENTER>

4) Xem nội dung thư mục:DIR [đường dẫn] [tên thư mục] [/p] <ENTER>

Nếu chỉ dùng DIR thì ta sẽ xem được nội dung của thư mục hiện hành: nó có những thư mục con nào, tệp tin nào, kích thước từng tệp tin là bao nhiêu byte. Tham số /p để xem từng trang màn hình, dùng khi số lượng tệp tin của thư mục cần xem lớn.

d. Một số lệnh làm việc với tệp tin1) Xóa tệp tin:

DEL [đường dẫn] <tên tệp tin> <ENTER>

Để xác định tên tệp tin cần chỉ rõ tên và phần mở rộng. Có thể sử dụng các ký tự đại diện để xóa cùng lúc nhiều tệp tin có chung những tính chất nào đó.

Ví dụ: xóa tất cả các tệp tin có phần mở rộng là TMP trong thư mục THDCDEL GIAOTRINH\THDC\*.TMP <ENTER>

2) Đổi tên tệp tin:REN [đường dẫn] <tên tệp tin> <tên mới> <ENTER>

3) Sao chép tệp tin:COPY <Nguồn> <Đích> <ENTER>

Trong đó phần <Nguồn> cần chỉ ra các tệp tin cần sao chép và phần <Đích> chỉ ra ổ đĩa hoặc thư mục sẽ sao chép các tệp tin trên vào.

1.3.2. Hệ điều hành Windowsa. Một số đặc điểm

HĐH Windows là bước phát triển tiếp theo của MS-DOS. Khác biệt dễ nhận thấy nhất của Windows so với DOS là nó có giao diện đồ họa, với các thực đơn (menu), cửa sổ và biểu tượng. Các thao tác trên Windows rất trực quan và dễ dàng, người sử dụng không cần phải nhớ và gõ những dòng lệnh như trên DOS. Windows đã có một quá trình phát triển khá dài, từ giữa những năm 80 của thế kỷ 20, dần dần thay thế DOS và trở thành HĐH được sử dụng nhiều nhất trên thế giới.

Những phiên bản được sử dụng rộng rãi đầu tiên là Windows 3.0 và Windows 3.1. Các phiên bản được sử dụng phổ biến hiện nay là Windows 98, Windows 2000, Windows XP. Nếu máy tính đã cài đặt HĐH Windows, sau khi khởi động máy, Windows sẽ tự động nạp và chạy.

Sau khi đăng nhập, sẽ xuất hiện màn hình nền (desktop) của Windows (các ví dụ ở đây là trên phiên bản Windows XP). Mỗi biểu tượng trên màn hình thường đại

20

Page 21: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

diện cho một chương trình. Muốn thực hiện chương trình nào ta nháy đúp chuột vào biểu tượng đó. Chúng ta cũng có thể tạo các biểu tượng (shortcut) trên màn hình cho bất kỳ tệp tin hay thư mục nào cần thường xuyên dùng tới. Thanh tác vụ (taskbar) phía dưới màn hình cho biết các ứng dụng nào đang thực hiện.

Nút Start chứa đựng nhiều chức năng quan trọng của Windows. Trong Start, chọn All Programs ta sẽ có danh sách các chương trình đã cài đặt trên máy, muốn chạy chương trình nào chỉ cần bấm chuột vào biểu tượng tương ứng. Để tắt máy chọn Turn Off Computer --> Turn Off, để khởi động lại máy chọn Turn Off Computer --> Restart.

Hình 1.2 Màn hình desktop của Windows XP

21

Page 22: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Hình 1.3 Giao diện sau khi bấm chọn nút Start

Hình 1.4 Giao diện sau khi chọn All Programs

Hình 1.5 Giao diện sau khi chọn Log Off

Hình 1.6 Giao diện sau khi chọn Turn Off Computer

Con chuột là thiết bị giao tiếp chủ yếu dùng trong giao diện đồ họa. Chuột thường có hai phím: phím trái và phím phải. Một số thao tác cơ bản với chuột:

- Bấm chuột (hoặc còn gọi là nháy chuột, kích đơn, ... ) là thao tác ấn vào nút trái chuột, dùng để chọn một đối tượng nào đó.

- Bấm chuột phải là thao tác ấn vào nút phải chuột, thường dùng để kích hoạt bảng chọn tức thời (bảng chọn gồm những chức năng nào còn phụ thuộc vào ngữ cảnh).

22

Page 23: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

- Bấm đúp chuột (hoặc còn gọi là nháy kép, kích đúp, ...) là thao tác bấm nhanh 2 lần liên tiếp phím trái chuột, thường dùng để kích hoạt một đối tượng nào đó.

Thao tác kéo-thả: bấm và giữ phím trái chuột, kéo chuột tới vị trí dự định, nhả phím bấm ra. Thao tác này dùng để di chuyển vị trí hay thay đổi kích thước một đối tượng.

Để thực hiện các công tác quản lý tệp tin, ta cần mở chương trình Windows Explorer, bằng cách nháy đúp vào biểu tượng trên màn hình desktop, hoặc bấm tổ

hợp phím tắt: + E.

Hình 1.7 Giao diện menu theo ngữ cảnh

Hình 1.8 Giao diện Windows Explorer

b. Các thao tác trong Windows ExplorerHiển thị nội dung: Phía bên trái màn

hình Windows Explorer là tổ chức thư mục,

23

Page 24: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

cách tổ chức này cũng giống như ở DOS. Khi chọn một thư mục nào đó (bằng cách bấm chuột vào nó) thì danh sách các tệp tin và thư mục con của nó xuất hiện ở bên phải màn hình. Ta có thể sắp xếp và xem các tệp tin này theo nhiều cách khác nhau (theo tên, theo kiểu, ...) bằng cách bấm chuột phải ở màn hình bên phải, chọn Arrange Icons By, sau đó chọn cách sắp xếp tương ứng.

Chọn cách sắp xếp các biểu tượng tệp tin

Đóng/mở thư mục: để mở một thư mục ta chọn biểu tượng dấu cộng , để đóng một thư mục ta chọn biểu tượng dấu trừ .

Chọn đối tượng (tệp tin và thư mục): để chọn một tệp tin (hoặc thư mục) ta bấm chuột vào nó, để chọn nhiều tệp tin liền nhau ta bấm chuột vào tệp tin đầu, giữ phím Shift rồi bấm chuột vào tệp tin cuối, để chọn nhiều tệp tin không liền nhau, ta giữ phím Ctrl rồi lần lượt bấm chọn các tệp tin.

Sao chép đối tượng (các tệp tin và thư mục từ thư mục nguồn sang thư mục đích): tìm đến thư mục nguồn, nơi chứa đối tượng. Đánh dấu chọn đối tượng cần sao chép. Bấm chuột phải để mở menu, chọn Copy. Cuối cùng tìm đến thư mục đích, bấm chuột phải, chọn Paste trên bảng chọn tức thời. Nếu muốn thay vì sao chép, ta chuyển đối tượng từ thư mục nguồn sang thư mục đích (đối tượng đó không còn trong thư mục nguồn), chỉ việc thay Copy bằng Cut.

Hình 1.9 Menu chọn khi Copy Hình 1.10 Menu chọn khi Paste

Đổi tên tệp tin, thư mục: cChọn một đối tượng (tệp tin hoặc thư mục), bấm chuột phải vào đối tượng, chọn chức năng Rename trong bảng chọn, cuối cùng gõ tên mới.

24

Page 25: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Xóa tệp tin, thư mục: chọn một đối tượng (tệp tin hoặc thư mục), bấm chuột phải vào đối tượng, chọn chức năng Delete trong bảng chọn hoặc gõ phím Delete trên bàn phím. Chú ý: rằng các tệp tin, thư mục sau khi thực hiện các thao tác trên không bị xóa hẳn, mà chỉ bị đưa vào thùng rác. Nếu muốn phục hồi ta chỉ cần vào thùng rác, chọn các tệp tin, thư mục cần phục hồi, bấm chuột phải, chọn Restore. Nếu muốn xóa hẳn tệp tin, thư mục nào, thì ta cần giữ phím Shift khi chọn chức năng Delete.

Hình 1.11 Biểu tượng thùng rác

Thao tác trong Windows Explorer chủ yếu sử dụng chuột, ngoài các thao tác đơn giản, nên tận dụng thêm khả năng kéo-thả. Chẳng hạn để sao chép các tệp tin vào một thư mục nào đó, ta có thể đánh dấu chọn các tệp tin đó rồi kéo và thả vào thư mục đích. Để xóa các tệp tin, ta có thể bấm chọn các tệp tin đó, rồi kéo và thả vào biểu tượng thùng rác.

Chúng tôi chỉ giới thiệu ở đây một số kiến thức cơ bản nhất, vì các khả năng của HĐH Windows rất phong phú, không thể đề cập hết trong giáo trình này. Tuy nhiên với giao diện đồ họa, trực quan, việc tự học và làm chủ các thao tác, khai thác các chức năng khác của Windows sau khi đã nắm được những kiến thức cơ bản là hoàn toàn không khó.

25

Page 26: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

CHƯƠNG 2

TỔNG QUAN VỀ MẠNG MÁY TÍNH

2.1. KHÁI NIỆMMạng máy tính hay hệ thống mạng (tiếng Anh: computer network hay

network system), là một tập hợp các máy tính tự hoạt được kết nối nhau thông qua các phương tiện truyền dẫn để nhằm cho phép chia sẻ tài nguyên: máy in, máy fax, tệp tin, dữ liệu....

Các thành phần của mạng có thể bao gồm:

Các hệ thống đầu cuối (end system) kết nối với nhau tạo thành mạng, có thể là các máy tính hoặc các thiết bị khác. Nói chung hiện nay ngày càng nhiều các loại thiết bị có khả năng kết nối vào mạng máy tính như điện thoại di động, PDA, tivi,...

Môi trường truyền (media) mà các thao tác truyền thông được thực hiện qua đó. Môi trường truyền có thể là các loại dây dẫn (dây cáp), sóng điện từ (đối với các mạng không dây).

Giao thức truyền thông (protocol) là các quy tắc quy định cách trao đổi dữ liệu giữa các thực thể.

2.1.1. Mạng LAN LAN (Local Area Network), hay còn gọi là "mạng cục bộ", là mạng tư nhân

trong một toà nhà, một khu vực (trường học hay cơ quan chẳng hạn) có cỡ chừng vài km. Chúng nối các máy chủ và các máy trạm trong các văn phòng và nhà máy để chia sẻ tài nguyên và trao đổi thông tin. LAN có 3 đặc điểm: giới hạn về tầm cỡ phạm vi hoạt động từ vài mét cho đến 1 km; thường dùng kỹ thuật đơn giản chỉ có một đường dây cáp (cable) nối tất cả máy; vận tốc truyền dữ liệu thông thường là 10 Mbps, 100 Mbps, 1 Gbps, và gần đây là 10 Gbps.

Các kiến trúc mạng kiểu LAN thông dụng bao gồm: - Mạng bus hay mạng tuyến tính. Các máy nối nhau một cách liên tục thành

một hàng từ máy này sang máy kia. Ví dụ của nó là Ethernet (chuẩn IEEE 802.3).

- Mạng vòng. Các máy nối nhau như trên và máy cuối lại được nối ngược trở lại với máy đầu tiên tạo thành vòng kín. Thí dụ mạng vòng thẻ bài IBM (IBM token ring).

- Mạng hình sao.

2.1.2. Mạng MANMạng MAN (Metropolitan Area Network), hay còn gọi là "mạng đô thị", là

mạng có cỡ lớn hơn LAN, phạm vi vài km. Nó có thể bao gồm nhóm các văn phòng

26

Page 27: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

gần nhau trong thành phố, nó có thể là công cộng hay tư nhân và có đặc điểm: chỉ có tối đa hai dây cáp nối; không dùng các kỹ thuật nối chuyển.

Có thể hỗ trợ chung vận chuyển dữ liệu và đàm thoại, hay ngay cả truyền hình. Ngày nay người ta có thể dùng kỹ thuật cáp quang (fiber optical) để truyền tín hiệu., vận tốc hiện nay có thể đạt đến 10 Gbps.

Ví dụ của kỹ thuật này là mạng DQDB (Distributed Queue Dual Bus) hay còn gọi là bus kép theo hàng phân phối (tiêu chuẩn IEEE 802.6).

2.1.3. Mạng WAN WAN (Wide Area Network), còn gọi là "mạng diện rộng", dùng trong vùng địa lý lớn thường cho quốc gia hay cả lục địa, phạm vi vài trăm cho đến vài ngàn km. Chúng bao gồm tập họp các máy nhằm chạy các chương trình cho người dùng. Các máy này thường gọi là máy lưu trữ(host) hay còn có tên là máy chủ, máy đầu cuối (end system). Các máy chính được nối nhau bởi các mạng truyền thông con (communication subnet) hay gọn hơn là mạng con (subnet). Nhiệm vụ của mạng con là chuyển tải các thông điệp (message) từ máy chủ này sang máy chủ khác.

Hình 2.1 Các kiểu nối trong WAN

Mạng con thường có hai thành phần:- Các đường dây vận chuyển còn gọi là mạch (circuit), kênh (channel), hay

đường trung chuyển (trunk). - Các thiết bị nối chuyển. Đây là loại máy tính chuyện biệt hoá dùng để nối

hai hay nhiều đường trung chuyển nhằm di chuyển các dữ liệu giữa các máy. Khi dữ liệu đến trong các đường vô, thiết bị nối chuyển này phải chọn (theo thuật toán đã định) một đường dây ra để gửi dữ liệu đó đi. Tên gọi của thiết bị này là nút chuyển gói (packet switching node) hay hệ thống trung chuyển (intermediate system). Máy tính dùng cho việc nối chuyển gọi là "bộ chọn đường" hay "bộ định tuyến" (router).

27

Page 28: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Hầu hết các WAN bao gồm nhiều đường cáp hay là đường dây điện thoại, mỗi đường dây như vậy nối với một cặp bộ định tuyến. Nếu hai bộ định tuyến không nối chung đường dây thì chúng sẽ liên lạc nhau bằng cách gián tiếp qua nhiều bộ định truyến trung gian khác. Khi bộ định tuyến nhận được một gói dữ liệu thì nó sẽ chứa gói này cho đến khi đường dây ra cần cho gói đó được trống thì nó sẽ chuyển gói đó đi. Trường hợp này ta gọi là nguyên lý mạng con điểm nối điểm, hay nguyên lý mạng con lưu trữ và chuyển tiếp (store-and-forward), hay nguyên lý mạng con nối chuyển gói.

Có nhiều kiểu cấu hình cho WAN dùng nguyên lý điểm tới điểm như là dạng sao, dạng vòng, dạng cây, dạng hoàn chỉnh, dạng giao vòng, hay bất định.

2.2. INTERNET 2.2.1. Khái niệmTheo bách khoa mở toàn thư wikipedia:

Hình 2.2 Một phần của World Wide Web, bao gồm một số siêu liên kết

Internet là một hệ thống thông tin toàn cầu có thể được truy nhập công cộng gồm các mạng máy tính được liên kết với nhau. Hệ thống này truyền thông tin theo kiểu nối chuyển gói dữ liệu (packet switching) dựa trên một giao thức liên mạng đã được chuẩn hóa (giao thức IP). Hệ thống này bao gồm hàng ngàn mạng máy tính nhỏ hơn của các doanh nghiệp, của các viện nghiên cứu và các trường đại học, của người dùng cá nhân, và các chính phủ trên toàn cầu.

Về ý nghĩa chung, một internet (chữ "i" viết thường, viết tắt cho inter-network) là một mạng được tạo ra bởi một vài mạng khác. Nhưng danh từ riêng,

28

Page 29: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Internet là một hệ thống quốc tế nối nhiều máy tính với nhau (cùng với những thông tin và phục vụ cho những người dùng nó) thông qua giao thức TCP/IP (bộ giao thức chuyển gói dữ liệu). Như vậy, internet lớn nhất có tên là Internet.

2.2.2. Lịch sửTiền thân của mạng Internet ngày nay là mạng ARPANET. Cơ quan quản lý dự án nghiên cứu phát triển ARPA thuộc bộ quốc phòng Mỹ liên kết 4 địa điểm đầu tiên vào tháng 7 năm 1969 bao gồm: Viện nghiên cứu Stanford, Đại học California, Los Angeles, Đại học Utah và Đại học California, Santa Barbara. Đó chính là mạng liên khu vực (Wide Area Network - WAN) đầu tiên được xây dựng.

Thuật ngữ "Internet" xuất hiện lần đầu vào khoảng năm 1974. Lúc đó mạng vẫn được gọi là ARPANET. Năm 1983, giao thức TCP/IP chính thức được coi như một chuẩn đối với ngành quân sự Mỹ và tất cả các máy tính nối với ARPANET phải sử dụng chuẩn mới này. Năm 1984, ARPANET được chia ra thành hai phần: phần thứ nhất vẫn được gọi là ARPANET, dành cho việc nghiên cứu và phát triển; phần thứ hai được gọi là MILNET, là mạng dùng cho các mục đích quân sự.

Giao thức TCP/IP ngày càng thể hiện rõ các điểm mạnh của nó, quan trọng nhất là khả năng liên kết các mạng khác với nhau một cách dễ dàng. Chính điều này cùng với các chính sách mở cửa đã cho phép các mạng dùng cho nghiên cứu và thương mại kết nối được với ARPANET, thúc đẩy việc tạo ra một siêu mạng (SuperNetwork). Năm 1980, ARPANET được đánh giá là mạng trụ cột của Internet.

Mốc lịch sử quan trọng của Internet được xác lập vào giữa thập niên 1980 khi tổ chức khoa học quốc gia Mỹ NSF thành lập mạng liên kết các trung tâm máy tính lớn với nhau gọi là NSFNET. Nhiều doanh nghiệp đã chuyển từ ARPANET sang NSFNET và do đó sau gần 20 năm hoạt động, ARPANET không còn hiệu quả đã ngừng hoạt động vào khoảng năm 1990.

Sự hình thành mạng xương sống của NSFNET và những mạng vùng khác đã tạo ra một môi trường thuận lợi cho sự phát triển của Internet. Tới năm 1995, NSFNET thu lại thành một mạng nghiên cứu còn Internet thì vẫn tiếp tục phát triển.

Với khả năng kết nối mở như vậy, Internet đã trở thành một mạng lớn nhất trên thế giới, mạng của các mạng, xuất hiện trong mọi lĩnh vực thương mại, chính trị, quân sự, nghiên cứu, giáo dục, văn hoá, xã hội... Cũng từ đó, các dịch vụ trên Internet không ngừng phát triển tạo ra cho nhân loại một thời kỳ mới: kỷ nguyên thương mại điện tử trên Internet.

2.2.3. Các dịch vụ cơ bản trên Internet - Email: Điện thư hoặc thư điện tử viết tắt là email (electronic mail) là một

phương pháp dùng để phác thảo, gửi, lưu trữ, và nhận các lời nhắn qua các hệ thống truyền thông điện tử. Thuật ngữ email vừa là danh từ vừa là động từ áp dụng trong

29

Page 30: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

hai trường hợp cả hệ thống điện thư ngoại bộ dựa trên giao thức chuyển thư đơn giản (SMTP: Simple Mail Transfer Protocol) lẫn các hệ thống mạng nội bộ cho phép người dùng gữi thư điện tử cho nhau nội trong cùng một tổ chức. Những tổ chức cộng tác cùng nhóm này thường hay dùng các giao thức mạng web toàn cầu cho dịch vụ điện thư nội bộ. Điện thư thường hay dùng để gữi các lời nhắn bậy bạ, hoặc “điện thư lậu” (spam), nhưng các chương trình gạn lọc có khả năng tự động bỏ đi phần nào những cái này.

Thuật ngữ Email trên nền web và Webmail ám chỉ việc hiện thực một chương trình xem e-mail dưới dạng một ứng dụng web cho phép người dùng truy cập e-mail của họ thông qua một trình duyệt web, thay vì sử dụng chương trình xem email nên nền máy tính để bàn như Microsoft Outlook, Mozilla Thunderbird hay Eudora. (Cần Chú ý: thuật ngữ "Web" là nói gọn của thuật ngữ "World Wide Web" (mạng toàn cầu), và đôi khi có thể viết ở dạng chữ thường.) Một webmail khách thường được cung cấp bởi dịch vụ email, cho phép khách hàng của nó truy cập thư được lưu trữ trên máy chủ của dịch vụ, nhưng cũng có những ngoại lệ.

Từ Webmail còn được dùng chung với các danh từ khác như dịch vụ webmail hay nhà cung cấp webmail để chỉ đến một dịch vụ email được cung cấp thông qua một website (khác với dịch vụ email, thường phải gắn liền với việc kết nối internet). Mặc dù không nhất thiết phải sử dụng một chương trình webmail, việc sử dụng một chương trình webmail thường là phần quan trọng khi đưa ra dịch vụ webmail, đôi khi như là cách duy nhất để người dùng có thể tiếp cận email của họ, và đôi khi những phương pháp khác cũng được thêm vào như giao thức POP3 hoặc IMAP4 và chuyển tiếp email.

Dịch vụ Webmail đầu tiên là Hotmail. Những nhà cung cấp Webmail phổ biến nhất hiện nay là Yahoo! Mail, Windows Live Hotmail and Gmail. Những nhà cung cấp Webmail khác bao gồm Inbox.com, AIM Mail, Mail.com, Fastmail.FM, Lycos Mail, BlueTie, Everyone.net, and LuxSci. Người dùng cũng có thể chạy một phần mềm Webmail trên máy chủ Web của chính mình. Những phần mềm Webmail thương mại bao gồm Outlook Web Access (OWA), Laszlo Mail, Atmail and SmarterMail. Phần mềm Webmail mã nguồn mở bao gồm Horde IMP, OpenWebmail (dựa trên NeoMail), RoundCube, Zimbra, và SquirrelMail. Nhiều trường Đại học và phổ thông sử dụng những phần mềm đó để giúp sinh viên và giảng viên của trường có thể xem email qua trang Web. Nhiều nhà cung cấp dịch vụ Internet cũng đưa ra Webmail cho khách hàng của mình. Có một vài ứng dụng quản lý webmail, mà bạn có thể dùng nó để kiểm tra tất cả những email từ bất kỳ nhà cung cấp nào. Mail2Web.com và Email4Web.com là những ứng dụng phổ biến.

- Telnet: TELNET (viết tắt của TELecommunication NETwork cũng có thể là TErminal NETwork hay TELetype NETwork) là một giao thức mạng (network

30

Page 31: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

protocol) được dùng trên các kết nối với Internet hoặc các kết nối tại mạng máy tính cục bộ LAN. Tài liệu của IETF, STD 8, (còn được gọi là RFC 854 và RFC 855) có nói rằng:

Mục đích của giao thức TELNET là cung cấp một phương tiện truyền thông chung chung, có tính lưỡng truyền, dùng độ rộng 8 bit, định hướng byte.

TELNET thường được dùng để cung cấp những phiên giao dịch đăng nhập, giữa các máy trên mạng Internet, dùng dòng lệnh có tính định hướng người dùng. Tên của nó có nguồn gốc từ hai chữ tiếng Anh "telephone network" (mạng điện thoại), vì chương trình phần mềm được thiết kế, tạo cảm giác như một thiết bị cuối được gắn vào một máy tính khác.

- FTP (File Transfer Protocol) là giao thức truyền tập tin, thường được dùng để trao đổi tập tin qua mạng lưới truyền thông dùng giao thức TCP/IP (chẳng hạn như Internet - mạng ngoại bộ - hoặc intranet - mạng nội bộ). Hoạt động của FTP cần có hai máy tính, một máy chủ và một máy khách). Máy chủ FTP, dùng chạy phần mềm cung cấp dịch vụ FTP, gọi là trình chủ, lắng nghe yêu cầu về dịch vụ của các máy tính khác trên mạng lưới. Máy khách chạy phần mềm FTP dành cho người sử dụng dịch vụ, gọi là trình khách, thì khởi đầu một liên kết với máy chủ. Một khi hai máy đã liên kết với nhau, máy khách có thể xử lý một số thao tác về tập tin, như tải tập tin lên máy chủ, tải tập tin từ máy chủ xuống máy của mình, đổi tên của tập tin, hoặc xóa tập tin ở máy chủ v.v. Vì giao thức FTP là một giao thức chuẩn công khai, cho nên bất cứ một công ty phần mềm nào, hay một lập trình viên nào cũng có thể viết trình chủ FTP hoặc trình khách FTP. Hầu như bất cứ một nền tảng hệ điều hành máy tính nào cũng hỗ trợ giao thức FTP. Điều này cho phép tất cả các máy tính kết nối với một mạng lưới có nền TCP/IP, xử lý tập tin trên một máy tính khác trên cùng một mạng lưới với mình, bất kể máy tính ấy dùng hệ điều hành nào (nếu các máy tính ấy đều cho phép sự truy cập của các máy tính khác, dùng giao thức FTP). Hiện nay trên thị trường có rất nhiều các trình khách và trình chủ FTP, và phần đông các trình ứng dụng này cho phép người dùng được lấy tự do, không mất tiền

- World Wide Web, gọi tắt là Web hoặc WWW, mạng lưới toàn cầu là một không gian thông tin toàn cầu mà mọi người có thể truy nhập (đọc và viết) qua các máy tính nối với mạng Internet. Thuật ngữ này thường được hiểu nhầm là từ đồng nghĩa với chính thuật ngữ Internet. Nhưng Web thực ra chỉ là một trong các dịch vụ chạy trên Internet, chẳng hạn như dịch vụ thư điện tử. Web được phát minh và đưa vào sử dụng vào khoảng năm 1990, 1991 bởi viện sĩ Viện Hàn lâm Anh Tim Berners-Lee và Robert Cailliau (Bỉ) tại CERN, Geneva, Switzerland

Các tài liệu trên World Wide Web được lưu trữ trong một hệ thống siêu văn bản (hypertext), đặt tại các máy tính trong mạng Internet. Người dùng phải sử dụng

31

Page 32: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

một chương trình được gọi là trình duyệt web (web browser) để xem siêu văn bản. Chương trình này sẽ nhận thông tin (documents) tại ô địa chỉ (address) do người sử dụng yêu cầu (thông tin trong ô địa chỉ được gọi là URL (Uniform Resource Locator)), rồi sau đó chương trình sẽ tự động gửi thông tin đến máy chủ chứa trang web (web server) và hiển thị trên trình duyệt của người xem. Người dùng có thể theo các liên kết siêu văn bản (hyperlink) trên mỗi trang web để nối với các tài liệu khác hoặc gửi thông tin phản hồi theo máy chủ trong một quá trình tương tác. Hoạt động truy tìm theo các siêu liên kết thường được gọi là duyệt Web.

Danh sách một số trình duyệt: - Internet Explorer có sẵn trong Microsoft Windows, của Microsoft - Mozilla và Mozilla Firefox của Tập đoàn Mozilla - Netscape Navigator của Netscape - Opera của Opera Software - Safari trong Mac OS X, của Apple Computer - Maxthon của MySoft Technology - Avant Browser của Avant Force. - Google Chrome của Google

32

Page 33: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

CHƯƠNG 3

THUẬT TOÁN

3.1. KHÁI NIỆM3.1.1. Khái niệm

Thuât toán là một dãy các quy tắc, nhằm xác định một dãy các thao tác trên các đối tượng (dữ liệu đầu vào) sao cho sau một số hữu hạn bước thực hiện các thao tác đó ta đạt được mục tiêu cần làm (dữ liệu ra là kết quả bài toán).

3.1.2. Ví dụThuật toán tìm ước số chung lớn nhất (USCLN) của hai số nguyên dương a, b.

Input: a, b hai số nguyên

Output: ƯSCLN của a, b

Thuật toánBước 1: Tìm số dư r của phép chia a cho b

Bước 2: Kiểm tra

- Nếu r = 0 thì thông báo b là USCLN và kết thúc

- Nếu r<>0 thì thực hiện đặt a=b, b=r rồi quay lại làm lại Bước 1

Thuật toán trên gồm các thao tác tính số dư r, kiểm tra r<>0?, nếu r<>0 đặt a=b, b=r.

3.1.3. Một số đặc trưng cơ bản của thuật toánThuật toán phải có tính dừng: Thuật toán phải kết thúc sau một số hữu hạn

bước.

Tính xác định: Ở mỗi bước các thao tác phải rõ ràng, không gây nhập nhằng, tùy chọn.

Đại lượng vào: Mỗi thuật toán phải có một hoặc nhiều dữ liệu đầu vào

Đại lượng ra: Sau khi kết thúc thuật toán ta có thê thu được một số đại lượng ra là kết quả của bài toán.

Tính hiệu quả: Mỗi bài toán có thể có nhiều thuật toán khác nhau để giải. Một thuật toán là tốt thì nó phải đơn giản, tiết kiệm bộ nhớ và thời gian thực hiện.

Tính phổ dụng: Thuật toán có thể giải được một số bài toán trong một lớp bài toán.

Tính hình thức hóa: Thuật toán phải có thể hình thức được và cài đặt được trên máy tính.

33

Page 34: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Input:

Output:

3.2. MỘT SỐ PHƯƠNG PHÁP BIỂU DIỄN THUẬT TOÁNMáy tính được sử dung như là một công cụ để hỗ trợ con người giải quyết các

bài toán trong thực tế. Bản thân máy tính chỉ là một vật vô chi vô giác, không có tư duy. Do đó, bản thân nó không thể tự giải các bài toán trong thực tế được, mà nó chỉ có thể thực hiện được các lệnh, do con người bảo nó làm thông qua một ngôn ngữ lập trình. Vì vậy để máy có thể giúp chúng ta giải một bài toán nào đó thì ta cần phải cài đặt thuật toán giải bài toán đó cho máy, theo đó máy thực hiện giải bài toán. Để cài đặt thuật toán cho máy người cài đặt phải có thuật toán giải bài toán đó.

Có nhiều cách biểu diễn thuật toán như đặc tả tự nhiên (liệt kê từng bước), sơ đồ khối, giả mã, …. Ở đây ta làm quen với một số cách biểu diễn thuật toán thông dụng

3.2.1. Đặc tả tự nhiên (Liệt kê từng bước)Sử dụng ngôn ngữ tự nhiên để biểu diễn thuật toán bằng cách chỉ ra từng bước

cần thực hiện của thuật toán.

Ví dụ: Thuật toán giải phương trình bậc 2: ax2+bx+c=0 hệ số a,c là các số thực.

Bước 1: Xác định các hệ số a=?, b=?, c=? của phương trình

Bước 2: Tính = b2 - 4ac

Bước 3: Kiểm tra :

- Nếu < 0 thì kết luận phương trình vô nghiệm

- Nếu = 0 thì kết luận phương trình có nghiệp kép x1=x2=-b/(2a)

- Nếu >0 thì kết luận phương trình có 2 nghiệm

x1=(-b +√ Δ )/(2a); x2=(-b-√ Δ )/(2a)

3.2.2. Sử dụng sơ đồ khốiSử dụng hệ thống các kí hiệu để biểu diễn thuật toán. Một số ký hiệu sử dụng

biểu diễn thuật toán:

TT Ký hiệu Ý nghĩa của ký hiệu

1 Ký hiệu bắt đầu thuật toán

2 Ký hiệu kết thúc thuật toán

3 Ký hiệu nhập dữ liệu

34

begin

end

Page 35: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Bt Lôgíc

S

Đ

A

Biến = 1, 2, ..n

A

4Ký hiệu xuất dữ liệu ra.

5

Ký hiệu rẽ nhánh

Nếu Bt Lôgíc có giá trị Đúng thì thực hiện theo nhánh ĐNếu Bt Lôgíc có giá trị Sai thì thì thực hiện theo nhánh S

6

Ký hiệu vòng lặp với số lần xác định trước.

Thực hiện công việc A n lần, ban đầu Biến được gán bằng 1, sau mỗi lần lặp biến tăng lên 1 đơn vị

7Kí hiệu khối các thao tác

Thực hiện các công việc A

8Kí hiệu gọi chương trình con A thực hiện

9Kí hiệu chỉ hướng thực hiện thuật toán

Bảng 3.1 Danh sách các ký hiệu sử dụng trong sơ đồ khối

Ví dụ: Biểu diễn thuật toán giải phương trình bậc 2: ax2+bx+c=0, a<>0, a, b, c, x R bằng sơ đồ khối.

35

A

Page 36: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

S

Input: a, b, c

Delta = b2 – 4ac

Output: Pt có 2 nghiệm x1, x2

Delta < 0

Output: Pt vô nghiệm

Delta = 0

x = -b/2a

Output: Pt Có nghiệm kép x

1 ( ) /(2 )2 ( ) /(2 )

x b Delta ax b Delta a

Đ

End

Begin

Đ

S

Hình 3.1 Sơ đồ khối biểu diễn thuật giải phương trình bậc hai

Nhận xét: Sử dụng sơ đồ khối để biểu diễn thuật toán có ưu điểm là trực quan, dễ hiểu, dễ kiểm tra. Nhưng có một số nhược điểm là phải vẽ khá nhiều, cồng kềnh, không thuận lợi cho bài toán phức tạp. Phương pháp này chủ yếu sử dụng cho người mới lập trình và để biểu diễn các thuật toán đơn giản (ít thao tác).

3.3. CÁC CẤU TRÚC CƠ BẢN CỦA THUẬT TOÁNKhi mô tả thuật toán ta sử dụng các cấu trúc sau đây để mô tả: cấu trúc tuần

tự, cấu trúc rẽ nhánh, cấu trúc lặp.

3.3.1. Cấu trúc tuần tựKhái niệm: cấu trúc tuần tự là cấu trúc bao gồm nhiều bước. Các bước này

được sắp xếp theo một trật tự nhất định. Khi máy thực hiện nó sẽ thực hiện theo thứ tự các bước đã được sắp xếp.

Trong biểu diễn thuật toán bằng phương pháp đặc tả tự nhiên thì các bước được sắp xếp tuần tự. Trong đặc tả đó chỉ ra bước nào thực hiện trước bước nào thực hiện sau.

Ví dụ: Đặc tả thuật toán giải phương trình bậc hai ở 3.2a thì thứ tự thực hiện các bước là: thực hiện bước 1, sau khi thực hiện xong bước 1 thì thực hiện bước 2 và sau khi thực hiện xong bước 2 thì thực hiện bước 2.

Trong biểu diễn thuật toán bằng sơ đồ khối thì trình tự thực hiện của thuật toán được thực hiện theo chiều mũi tên.

36

Page 37: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Input: r

S = r2 C = 2r

Output: S, C

begin

End

Biểu thức Lôgíc

Đ

S

Ví dụ: Tính diện tích, chu vi của một hình tròn bán kính r. Sơ đồ khối mô tả thuật toán giải bài toán trên:

Hình 3.2 Sơ đồ khối biểu diễn thuật toán tính diện tích/chu vi hình tròn.

3.3.2. Cấu trúc rẽ nhánhKhái niệm: Cấu trúc rẽ nhánh là cấu trúc báo cho máy cần kiểm tra một điều

kiện nào đó của bài toán. Ở đây kết quả của điều kiện kiểm tra chỉ nhận một trong hai giá trị đúng hoặc sai. Nếu kết quả kiểm tra có giá trị đúng sẽ thực hiện thoe nhánh đúng, nếu sai sẽ thực hiện theo nhánh sai.

Biểu thức điều kiện chính là một biểu thức lôgíc, sơ đồ khối thể hiện cấu trúc rẽ nhánh

Ví dụ: Giải phương trình bậc nhất ax + b = 0. Sơ đồ khối thể hiện thuật toán:

37

Page 38: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Input :a, b

a = 0

b = 0

Output: Pt vô số nghiệm

Đ

Ouput: Pt vô nghiệm

x = -b/a

Output: x

S

S

Đ

begin

end

Biến = 1, 2, .. n

Miền tác động

Hình 3.3 Cấu trúc lặp xác định

Hình 3.2 Sơ đồ khối biểu diễn thuật toán giải phương trình bậc nhất

3.3.3. Cấu trúc lặpTrong lập trình chúng ta có hai dạng cấu trúc lặp: Cấu trúc lặp xác định trước

và cấu trúc lặp không xác định trước.

Cấu trúc lặp xác định: là cấu trúc báo cho máy lặp đi lặp lại một miền tác động nào đó với số lần lặp xác định trước. Trong miền tác động có thể bao gồm một tập cấu trúc cơ bản. Sơ đồ khối thể hiện cấu trúc như hình 3.3.

Cấu trúc lặp không xác định: cấu trúc báo cho máy lặp đi lặp lại một miền tác động nào đó với số lần lặp không xác định trước. Điều kiện kết thúc vòng lặp là một biểu thức lôgíc. Trong miền tác động có thể bao gồm một tập cấu trúc cơ bản. Sơ đồ khối thể hiện cấu trúc như hình 3.4.

38

Page 39: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Miền tác động

Miền tác độngBiểu thức lôgíc

Biểu thức lôgíc

Đ

S

Đ

SHoặc

Hình 3.4 Cấu trúc lặp không xác định

Ví dụ: Tìm số tự nhiên N nhỏ nhất để tổng

Giải: Theo yêu cầu bài toán là cần tìm N nhỏ nhất để s .=2.5. Để tìm được N ta thực hiện theo thuẩt toán sau:

Cách 1 sử dụng phương pháp đặc tả tự nhiên mô tả thuật toán:

Bước 1: Khỏi tạo giá trị ban đầu n = 0, s = 0.

Bước 2: Tăng giá trị n lên 1 đơn vị (n = n + 1), tính s = s +

Bước 3: Kiểm tra: Nếu s >= 2.5 thì dừng lại ta có n là giá trị cần tìm

Nếu s < 2.5 thì quay lại thực hiện lại bước 2.

Cách 2 sử dụng sơ đồ khối mô tả thuật toán

39

Page 40: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

s = 0, n = 1

s < 2.5

s = s + 1/n n = n +1

Đ

S

s, n

begin

end

Hình 3.5 Sơ đồ khối tính tổng dãy 1/i

3.4. MỘT SỐ THUẬT TOÁN THƯỜNG GẶP3.4.1. Bài toán tính tổng một dãy sốa. Bài toán

Cho 1 dãy n số, tính tổng tất cả các phần tử của dãy.

b. Thuật toán Cách 1 sử dụng phương pháp đặc tả tự nhiên mô tả thuật toán

Bước 1: Xác định n, a1, a2, …, an

Bước 2: Khởi tạo S = 0

Bước 3: Duyệt qua từng phần tử của dãy số. Với phần tử ai của dãy thực hiện S = S + ai.

Sau khi duyệt qua hết các phần tử ta được tổng của dãy lưu trong S.

Cách 2 sử dụng sơ đồ khối mô tả thuật toán

40

Page 41: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Input: n

i = 1, 2, .., n

Input: ai

S = 0

i = 1, 2,..., n

S = S + ai

Output: S

Begin

End

Hình 3.6 Sơ đồ khối thuật toán tính tổng 1 dãy số

c. Một số bài toán qui về bài toán tính tổngBài 1. Tính giá trị của đa thực Pn(x) = a0 + a1x + a1x2 + … +a1xn

Bài 2. Tính tổng theo công thức tổng quát dạng S = f(x) + )

Ví dụ 1: Cho x là số thực, n là số nguyên dương. Tính

S = ex + + + … +

Ví dụ 2: Cho x là số thực, n là số nguyên dương. Tính

S = | x+ (1+x)3 + (2+x)3 + … +(n+x)3|

Ví dụ 3: Cho x là số thực, n là số nguyên dương. Tính

Ví dụ 4: Cho x là số thực, n là số nguyên dương. Tính

41

Page 42: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

3.4.2 Bài toán tính tích một dãy sốa. Bài toán

Cho 1 dãy n số, tính tích tất cả các phần tử của dãy.

Thuật toán tính tích của một dãy số cũng tương tự như thuật toán tổng, tuy nhiên khác với thuật toán tính tổng là khi khởi gán cho đại lượng lưu trữ tích là 1 thay vì khởi gán 0 và thay phép + bằng phép * (nhân).

b. Các bài toán qui về thuật toán tính tíchBài 1. Cho số tự nhiên n. Tính S = n!

Bài 2. Cho số thực x, số tự nhiên n. Tính S = xn

3.4.3 Bài toán đếma. Bài toán

Cho một dãy n các phần tử a1, a2,…, an. Hãy đếm xem trong dãy có bao nhiêu phần tử thoả mãn điều kiện nào đó.

Một cách tự nhiên thì để giải bài toán trên, ta thực hiện duyệt qua từng phần tử. Với mỗi phần tử thoả mãn điều kiện thì tăng biến đếm lên một đơn vị.

b. Thuật toán Cách 1 sử dụng phương pháp đặc tả tự nhiên mô tả thuật toán

Bước 1. Xác định n và các phần tử

Bước 2. Khởi tạo một biến đếm với giá trị là 0

Bước 3. Thực hiện duyệt qua từng phần tử. Với mỗi phần tử được duyệt, thực hiện kiểm tra xem nó có thoả mãn điều kiện bài toán không?. Nếu thoả mãn thì tăng biến đếm lên một đơn vị. Nếu không thoả mãn thì duyệt phần tử tiếp theo.

Cách 2 sử dụng sơ đồ khối mô tả thuật toán

42

Page 43: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

n

i = 1, 2, .., n

ai

Dem = 0

i = 1, 2, .., n

Bt Lôgíc

Dem

S

Đ

Dem = Dem +1

Begin

End

Hình 3.7 Sơ đồ khối thuật toán đếm

Ví dụ 1: Cho một dãy n số nguyên, đếm xem trong dãy có bao nhiêu số chẵn.

Thuật toán Cách 1 sử dụng phương pháp đặc tả tự nhiên mô tả thuật toán

Bước 1. Xác định n và các phần tử

Bước 2. Khởi tạo một biến đếm với giá trị là 0

Bước 3. Thực hiện duyệt qua từng phần tử. Với mỗi phần tử được duyệt, thực hiện kiểm tra: Nếu ai chia hết cho 2 thì tăng biến đếm lên một đơn vị. Ngược lại, duyệt phần tử tiếp theo.

Cách 2 sử dụng sơ đồ khối mô tả thuật toán

Trong sơ đồ khối ta sử dụng phép toán mod, phép toán chia các số nguyên lấy phần dư.

43

Page 44: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Input: n

i = 1, 2, .., n

Input: ai

Dem = 0

i = 1, 2, .., n

ai mod 2 = 0

Dem = Dem +1

Output: Dem

Begin

End

Hình 3.8 Sơ đồ khối thuật toán đếm các số chẵn

3.4.4. Bài toán tìm giá trị lớn nhất, giá trị nhỏ nhấtTrong cuộc sống thực tế, hàng ngày chúng ta luôn phải đi tìm giá trị lớn nhất,

nhỏ nhất trong một tập phần tử. Ví dụ như tìm người có chiều cao cao nhất (thấp nhất) trong lớp; tìm sinh viên có điểm tổng kết cao nhất (thấp nhất) trong lớp, trong khoa, trong trường; …. Như vậy nếu có một thuật toán giải bài toán này và cài đặt nó trên máy tính để máy giải gúp chúng ta thì tốt biết bao.

a. Phát biểu bài toánCho một dãy n số bất kỳ, hãy tìm giá trị lớn nhất (nhỏ nhất) của dãy số đó.

Để tìm giá trị lớn nhất (nhỏ nhất) của các phần tử trong dãy. Ta thực hiện so sánh các phần tử trong dãy với nhau sẽ tìm ra được giá trị mong muốn. Quá trình tìm được thể hiện bằng thuật toán sau đây.

b. Thuật toánCách 1 sử dụng phương pháp đặc tả tự nhiên môt tả thuật toán

Bước 1. Xác định n và các số a1, a2, …, an

Bươc 2. Sử dụng Max lưu giá trị lớn nhất. Giả sử giá trị lớn nhất là a1

(tức là Max = a1).

Bước 3. Duyệt lần lượt qua các phần tử, a2, a3, …, an. So sánh giá trị của phần tử ai với Max. Nếu ai > Max (i=2..n) thì gán giá trị của ai cho Max (Max = ai). Nếu ai < Max thì chuyển xét phần tử tiếp theo.

Giá trị cuối cùng lưu trong Max là giá trị lớn nhất của dãy số.

Cách 2 sử dụng sơ đồ khối mô tả thuật toán

44

Page 45: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

i = 2, 3,..., n Input: n

i = 1, 2, .., n

Input: ai

Max = a1

Max<ai

Output: Max

S

ĐMax = ai

Begin

End

Hình 3.9 Thuật toán tìm giá trị lớn nhất của một dãy số.

Đối với bài toán tìm giá trị nhỏ nhất cũng tương tự, nhưng trong phép so sánh ta phải thay dấu “<” bằng dấu “>” và thay tên Max thành Min để phù hợp với ý nghĩa kết của kết quả lưu trong nó.

Một số bài toán qui về bài toán tìm max, min

Bài 1. Cho tọa độ của một dãy n điểm trong mặt phẳng. Tìm diện tích đường tròn tâm O(0,0) có bán kính nhỏ nhất chứa n điểm trên.

Gợi ý: Bài toán này qui về bài toán tìm Max

Bài 2. Cho tọa độ của một dãy n điểm trong mặt phẳng. Tìm hình chữ nhật có diện tích nhỏ nhất và các cạnh song song với các trục toạ độ chứa n điểm trên.

Gợi ý: Bài toán này qui về bài toán tìm cả Min và Max.

45

Page 46: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

CHƯƠNG 4

TỔNG QUAN VỀ VISUAL BASIC 6.0

4.1. GIỚI THIỆU VỀ VB 6.0Lập trình Windows với giao diện người dùng đồ hoạ GUI (Graphical User

Interface) đã cách mạng hoá ngành công nghiệp vi tính. Thay vì dấu nhắc C:\> bí ẩn mà người dùng DOS từng gặp lâu nay là một màn hình với các biểu tượng và những chương trình sử dụng chuột và menu.

Trước khi Visual Basic được giới thiệu vào năm 1991 việc phát triển các ứng dụng Windows nặng nhọc hơn nhiều so với việc phát triển các ứng dụng trên Dos. Lập trình viên phải lập trình rất nhiều chẳng hạn như: mouse sẽ làm gì? người dùng ở đâu trong menu? Họ đã nhấp hay nhấp đúp tại một vị trí đã cho?... điều đó đòi hỏi hàng trăm mã lệnh C cho tác vụ đơn giản nhất.

Visual Basic ra đời khắc phục các khó khăn đó, nó cho phép bổ sung các menu, hộp văn bản, nút lệnh, nút tuỳ chọn (option), hộp kiểm tra (check), hộp danh sách (list box),… Bạn có thể dùng lưới (Grid) để quản lý dữ liệu bảng biểu và quan trọng nhất Visual Basic cung cấp các phương pháp để người dùng dễ dàng truy cập các cơ sở dữ liệu. Ngoài ra Visual Basic còn có thể truyền thông với các ứng dụng khác đang chạy dưới Windows.

4.2. CÀI ĐẶT VISUAL BASIC 6.0Để cài đặt Visual Basic 6.0 máy tính cần phải có một ổ đĩa CD-ROM, ít nhất

32MB Ram, 2GB Hard disk và CPU Petium II. Visual Basic là một phần trong bộ Visual Studio, Visual Studio đầy đủ gồm 5 đĩa CD: 1 đĩa chương trình, 1 đĩa tài liệu và 3 đĩa trợ giúp MSDN. Tuy nhiên để lập trình thì ta chỉ cần có 1 đĩa chương trình là đủ.

Đĩa CD đầu tiên của Visual Studio chứa chương trình Setup tự động để cài đặt Visual Studio, cho đĩa này vào ổ CD và chạy chương trình Setup.exe, giao diện cài đặt xuất hình như hình 4.1

Hình 4.1 Giao diện cài đặt VB6

46

Page 47: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Tiếp theo chọn nút Next nếu muốn tiếp tục cài đặt, chọn nút Exit để hủy bỏ quá trình cài đặt. Khi chọn nút Next xuất hiện giao diện như hình 4.2, tại giao diện này bạn lựa chọn nút I accept the agreement. Tiếp tục chọn nút Next, thực hiện các lựa chọn cài đặt theo hướng dẫn tại các giao diện.

Hình 4.2 Giao diện cài đặt VB 6

Chú ý: Trong lúc cài Visual Basic nhớ chọn mục Graphics để có một số hình ảnh như: icons, bitmaps…

4.3. LÀM QUEN VỚI MÔI TRƯỜNG VISUAL BASIC 64.3.1. Khởi động môi trường vb6

Bước 1: Vào Start\ Programs\ Microsoft Visual Studio 6.0\ Microsoft Visual Basic 6.0, xuất hiện cửa sổ tạo đề án (Project) mới với các lựa chọn: New - Tạo đề án mới, Existing: Mở các đề án đã có, Recent: Mở các đề án gần đây nhất.

Hình 4.3 Giao diện chọn kiểu đề án mới

Bước 2: Chọn New/ Standard EXE, xuất hiện giao diện môi trường phát triển tích hợp IDE (Integrated Development Enviroment)

47

Page 48: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

4.3.2. Các công cụ trong môi trường lập trình

Hình 4.4 Giao diện chính của môi trường lập trình VB6

Title Bar: Thanh tiêu đề chứa tên đề án

Menu Bar: Thanh Menu chứa đầy đủ các công cụ cần để phát triển, thử nghiệm và lưu trữ ứng dụng

File: Gồm các lệnh làm việc với tập tin

Edit: Gồm các công cụ soạn thảo mã lệnh

View: Cho phép truy cập nhanh đến các bộ phận khác nhau của chương trình và các phần khác nhau của môi trường Visual Basic

Project: Cho phép chèn các tập tin bên ngoài hay các đối tượng VB mới vào đề án

Format: Cung cấp các phương pháp chuyên biệt các điều kiểm được đặt trên biểu mẫu

Debug: Gồm các công cụ chỉnh sửa và gỡ rối các vấn đề trong mã lệnh

Run: Gồm các công cụ để dừng hoặc chạy chương trình

Query, Diagram: Được dùng trong việc phát triển cơ sở dữ liệu nâng cao

Tools: Truy cập các cách thức bổ sung các thủ tục và menu vào chương trình

Add-Ins: Truy cập đến các công cụ có thể được bổ sung cho môi trường VB

Window: Kiểm soát cách bố trí các cửa sổ

Help: Truy cập hệ trợ giúp trực tuyến

48

Page 49: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Toolbar: Thanh công cụ là tập hợp các nút chứa một số biểu tượng các Icons có chức năng tương tự với các mục trong thanh menu. Thanh công cụ rất hữu ích, thay vì phải lần lượt chọn qua menu và menu con người dùng chỉ cần click chuột vào các biểu tượng để gọi một chức năng tương tự như trong thanh Menu.

Toolbar gồm 4 thanh công cụ được xây dựng sẵn là: Standard, Edit, Debug, Form Editor. Để hiện hoặc ẩn các thanh công cụ chọn View\Toolbars hoặc kích chuột phải tại thanh menu xuất hiện hộp lựa chọn như hình bên,kích chuột chọn các thanh công cụ tương ứng.

Form Designer: cửa sổ thiết kế dùng để thiết kế giao diện cho chương trình, mỗi đề án có thể có một hoặc nhiều Form

Toolbox: Là hộp công cụ chứa các điều khiển (controls) được đặt lên Form trong khi thiết kế giao diện người sử dụng. Để hiện hộp công cụ ta thực hiện theo 1 trong 2 cách sau:

Kích chuột tại biểu tượng Toolbox trên thanh công cụ

Chọn View/ Toolbox

Chú ý: Các điều khiển ở trên hộp Toolbox là các điều khiển nội tại của VB và không thể gỡ bỏ ra khỏi hộp Toolbox.

4.3.3. Cửa sổ Project ExplorerCửa sổ project explorer giúp quản lý và định hướng các đề án. Khi làm việc

với một đề án lớn, VB cho phép tổ chức nó thành nhiều đề án con và được quản lý trong Project Explorer theo cấu trúc hình cây: gốc của cây chứa tên của đề án, phần dưới chứa biểu mẫu (form), modul và các thành phần khác như báo cáo (report), … của đề án đó.

Để mở cửa sổ Project Explorer ta thực hiện theo 1 trong 3 cách sau:

Vào View\ Project Explorer

49

Page 50: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Kích chọn biểu tượng Project Explorer trên thanh công cụ Toolbars

Bấm phím tắt Ctrl+R

View code: mở cửa sổ soạn thảo mã lệnh cho Form đang được chọn, để mở cửa sổ này ta thực hiện một trong các cách sau:

+ Kích chọn biểu tượng View code

+ Chọn View/Code

+ Bấm phím tắt F7

+ Kích đúp chuột tại cửa sổ thiết kế của form.

Giao diện cửa sổ soạn thảo gồm 3 phần: hộp điều khiển, hộp sự kiện và cửa sổ code

+ Hộp điều khiển: Chứa tất cả các điều khiển đặt trên Form

+ Hộp sự kiện: Chứa danh sách các sự kiện tương ứng với điều khiển được chọn trong hộp điều khiển.

+ Cửa sổ Code: Nơi viết các mã lệnh cho các điều khiển.

View Object: mở cửa sổ thiết kế giao diện của Form đang được chọn, để mở của sổ này ta thực hiện một trong các cách sau:

+ Kích chọn biểu tượng View Object

+ Chọn View/Object

+ Bấm phím tắt Shift + F7

4.3.4. Properties WindowsProperties Windows: Cửa sổ này liệt kê tất cả các thuộc tính của biểu mẫu và

các điều khiển. Muốn hiển thị thuộc tính của đối tượng nào ta kích chuột chọn đối tượng đó trong Form hoặc chọn đối tượng trong danh sách thả xuống ở phần đầu của cửa sổ Properties.

50

Page 51: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Mỗi thuộc tính có một giá trị mặc định, ta có thể sửa đổi trực tiếp tại cửa sổ Properties trong lúc thiết kế hoặc bằng mã lệnh trong lúc thi hành.

Để hiện cửa sổ Properties ta thực hiện theo các cách sau:

+ Vào View\ Properties Window

+ Kích chọn biểu tượng Properties Window trên thanh công cụ Toolbars

+ Bấm phím tắt F4

4.3.5. Biên dịch và chạy đề ánĐể biên dịch và chạy một chương trình VB ta thực hiện theo 1 trong 3 cách

sau:

+ Chọn Run\ Start

+ Kích chuột vào biểu tượng Start trên thanh công cụ

+ Bấm phím tắt F5

4.4. TẠO MỘT ĐỀ ÁN ĐẦU TIÊNKhi viêt một chương trình ứng dụng bằng ngôn ngữ lập trình VB chúng ta

phải thực hiện theo hai bước sau:

+ Thiết kế giao diện

+ Viết mã lệnh

4.4.1. Bài toánViết chương trình có giao diện gồm 1 hộp văn bản và 3 nút lệnh: Display,

Clear, Exit với các yêu cầu sau:

+ Kích chuột vào nút Display thì trong hộp văn bản xuất hiện dòng chữ: “Welcome to Visual Basic”

+ Kích chuột vào nút Clear thì nội dung trong hộp văn bản mất đi

51

Page 52: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

+ Kích chuột vào nút Exit để thoát khỏi chương trình quay lại cửa sổ soạn thảo.

Các bước thực hiện bài toán thể hiện trong các mục dưới đây.

4.4.2. Khởi động VB và tạo một đề án mớiVào Start\ Programs\ Microsoft Visual Studio 6.0\ Microsoft Visual Basic 6.0\

New\ Standard.exe xuất hiện môi trường phát triển tích hợp IDE

4.4.3. Thiết kế giao diệna. Đặt tên cho đề án

Đề án chỉ có một thuộc tính duy nhất là Name với giá trị mặc định là Project1. Để đặt tên mới cho đề án ta kích chuột vào dòng chứa tên đề án Project1(Project1) tại cửa sổ Project Explorer, khi đó tại cửa sổ Properties sửa thuộc tính Name là ‘Welcome’

b. Đặt tên và tiêu đề cho formKích chuột vào vị trí bất kỳ

trên Form, chuyển đến cửa sổ Properties sửa thuộc tính Name là ‘frmWelcome’, sửa thuộc tính Caption là ‘The first program’

c. Thêm điều khiển hộp văn bản Textbox

Kích chuột vào biểu tượng hộp văn bản Textbox trên hộp công cụ Toolbox, bấm phím trái tại vị trí muốn đặt điều khiển trên Form, giữ và kéo chuột để vẽ Textbox vào Form hoặc kích đúp vào biểu tượng Textbox VB sẽ tự động đặt điều khiển Textbox vào giữa Form, sau đó thay đổi vị trí và kích thước của điều khiển cho phù hợp. Khi xuất hiện trên Form hộp Textbox có tên là Text1 và nội dung cũng là Text1, ta thay đổi giá trị các thuộc tính này như sau:

+ Chọn điều khiển Text1 (kích chuột vào vị trí bất kỳ trong khung Text1), khi đó tại cửa sổ Properties sẽ xuất hiện danh sách các thuộc tính của điều khiển này.

+ Trong cửa sổ Properties chọn thuộc tính Name sửa thành txtWelcome, chọn thuộc tính Text xoá rỗng giá trị mặc định “Text1”

d. Thêm điều khiển nút lệnh Command Button

Kích chuột vào biểu tượng Command Button và vẽ một nút lệnh lên Form, nút lệnh này có tên mặc định là Command1 và tiêu đề cũng là Command1.

52

Page 53: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Thực hiện tương tự đưa thêm 2 nút lệnh Command2 và Command3 vào form, sau đó tiến hành thay đổi hai thuộc tính Name và Caption của các nút lệnh như sau:

+ Kích chuột vào nút lệnh 1, trong cửa sổ Properties sửa thuộc tính Name là ‘cmdDisplay’, sửa thuộc tính Caption là ‘Display’

+ Kích chuột vào nút lệnh 2, sửa thuộc tính Name là ‘cmdClear’, sửa thuộc tính Caption là ‘Clear’

+ Kích chuột vào nút lệnh 3, sửa thuộc tính Name là ‘cmdExit’, sửa thuộc tính Caption là ‘Exit’

Chú ý: Giả sử khi tạo xong nút lệnh “cmdDisplay”, nếu ta copy điều khiển này và dán vào form thì sẽ xuất hiện hộp thoại hỏi có muốn tạo mảng các điều khiển này không?

Trả lời Yes nếu muốn tạo mảng điều khiển, ngược lại trả lời No. Khi bạn tạo mảng các điều khiển VB đặt tên cho nút lệnh mới cũng là “cmdDisplay” và thuộc tính Index là 1 (giá trị thuộc tính Index của điều khiển gốc là 0), nếu dán thêm các nút lệnh VB sẽ tự động tăng giá trị của thuộc tính Index thêm 1 đơn vị. Vì có cùng một tên lên các nút lệnh được phân biệt bởi chỉ số Index, khi lập trình ta phải viết rõ cmdDisplay(0) hay cmdDisplay(1)… Chúng ta không nên tạo mảng các điều khiển khi các điều khiển có chức năng khác nhau.

Để di chuyển nhanh đến các thuộc tính trong cửa sổ Properties ta dùng tổ hợp phím Ctrl+Shift+ký tự, máy sẽ chuyển đến thuộc tính đầu tiên bắt đầu bởi ký tự đó.

Mọi điều khiển đều có thuộc tính Name, để dễ dàng quản lý, gỡ rối chương trình ta nên đặt tên điều khiển tương ứng với chức năng của nó và có tiếp đầu ngữ chỉ loại điều khiển ở đầu.

Ví dụ: Textbox có tiếp đầu ngữ - txt, CommandButton - cmd, Form – frm, … (các tiếp đầu ngữ được viết chữ thường, tên của điều khiển được viết hoa chữ đầu tiên). Ví dụ: cmdDisplay

4.4.4. Viết Codea. Viết Code cho nút cmdDisplay

Để viết code, trước tiên ta mở cửa sổ viết code của form theo hai cách:

+ C1: Mở cửa sổ ViewCode, sau đó chọn cmdDisplay trong hộp điều khiển, chọn Click trong hộp sự kiện.

53

Page 54: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

+ C2: Kích đúp chuột vào nút Display, mặc định VB tạo ra thủ tục ứng với sự kiện Click của nút lệnh.

Trong cửa sổ Code VB hiện sẵn 2 dòng mở đầu và kết thúc cho sự kiện Click của nút Display.

Private Sub cmdDisplay_Click()

‘ Đây là nơi chúng ta viết code, khi xảy ra sự kiện Click chuột trên nút lện Display thì các dòng lệnh này sẽ được thực hiện

End Sub

Để đáp ứng yêu cầu của bài toán thì tại đây ta gõ vào dòng lệnh gán giá trị ‘Welcome to Visual Basic’ cho thuộc tính Text của điều khiển txtWelcome như sau:

Private Sub cmdDisplay_Click()txtWelcome.Text = "Welcome to Visual Basic"

End Sub

Chú ý: để truy nhập và gán giá trị cho thuộc tính của một điều khiển khi viết mã lệnh như sau:

<Tên điều khiển>.<Thuộc tính> = <Giá trị>

Các thuộc tính của các điều khiển trong VB rất phong phú, VB cung cấp tiện ích Auto List Members tự động hiển thị một danh sách các thuộc tính của điều khiển sau khi ta gõ tên điều khiển và dấu chấm ‘.’, ví dụ như hình sau:

Để lựa chọn một thuộc tính trong danh sách các thuộc tính xổ ra, ta có thể dùng phím mũi tên lên, xuống để lựa chọn hoặc gõ thêm một số ký tự đầu của thuộc tính cần sử dụng, sau đó ấn phím Tab hoặc dấu cách để tự động chèn tên thuộc tính vào dòng lệnh.

Để bật/tắt khả năng này ta bấm tổ hợp phím Ctrl + J.

Chú ý: Khi viết code, khi viết tên của các điều khiển hoặc biến đã có thì ta chỉ cần gõ chính xác các chữ cái trong tên của nó không phân biệt chữ hoa hay chữ thường. VB nếu thấy tên đó đầy đủ các chữ cái như khai báo thì nó sẽ tự động viết lại tên các điều khiển đúng với tên do người lập trình đã đặt, chẳng hạn nếu ta gõ ‘txtwelcome’ thì VB tự động chuyển thành ‘txtWelcome’

54

Page 55: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

b. Viết Code cho nút ClearPrivate Sub cmdClear_Click() txtWelcome.Text = ""End Sub

c. Viết Code cho nút ExitPrivate Sub cmdExit_Click() EndEnd Sub

Lệnh End có tác dụng đóng và xoá khỏi bộ nhớ tất cả các cửa sổ đang được thực hiện trong chương trình và quay trở về cửa sổ thiết kế.

4.4.5. Lưu đề ánKhi xây dựng một ứng dụng trong VB, chúng ta sẽ tạo ra rất nhiều file, vid

vậy khi lưu đề án ta nên lưu mỗi đề án vào một thư mục riêng, ví dụ thư mục Welcome trong ổ đĩa C, làm như vậy giúp việc quản lý đề án dễ dàng hơn trong việc làm lại với nó sau này.

Để lưu đề án ta chọn File\ Save Project hoặc kích chọn biểu tượng trên thanh công cụ, đầu tiên sẽ xuất hiện hộp hội thoại Save File As để lưu các form của đề án:

Chọn đường dẫn tới thư mục Welcome tại hộp Save in, tại hộp File Name sẽ hiện sẵn tên form cần lưu, chọn nút Save. Như vậy ta đã lưu Form với tên ‘frmWelcome’ và phần mở rộng mặc định là ‘.frm’.

Tiếp theo màn hình lại xuất hiện hộp thoại Save Project As để lưu đề án, tên đề án ‘Welcome’ được tự động điền vào hộp File Name, chọn nút Save, khi đó đề án được lưu với tên ‘Welcome’ và phần mở rộng mặc định ‘.vbp’.

Chú ý: Một đề án (Project) có thể có nhiều Form, mỗi Form phải có một tên riêng và Project cũng phải có tên riêng, đó là lý do tại sao ta phải lưu chương trình trên 2 lần: lưu Form và lưu Project.

55

Page 56: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

4.4.6. Chạy chương trìnhNhư trình trong phần 4.3.6 để

chạy chương trình ta có thể chọn một trong 3 cách:

+ Chọn Run\ Start

+ Kích chuột vào biểu tượng Start trên thanh công cụ

+ Bấm phím tắt F5

Khi chạy trương trình trên chúng ta sẽ xuất hiện form như hình dưới đây

4.4.7. Dừng chương trìnhMặc định chương trình luôn chạy từ khi bắt đầu cho đến khi người dùng bắt

nó dừng lại. Để dừng chương trình ta thực hiện theo một trong 2 cách sau: vào menu Run\ End hoặc kích chuột vào biểu tượng End trên thanh công cụ.

4.5. MỞ ĐỀ ÁN ĐÃ CÓViệc mở đề án đã có trên máy là một công việc mà ta thường xuyên phảilàm.

Để mở một đề án đã có ta có các cách sau:

Mở thư mục chứa đề án, ví dụ thư mục Welcome trong ổ đĩa C, xuất hiện các tập tin đề án và form. Kích đúp vào tập tin đề án Welcome.vbp như hình sau để mở đề án Welcome

Hoặc mở chương trình Visual Basic 6.0, kích chọn tab Existing trong hộp thoại New Project, trong hộp Look in chọn đường dẫn đến thư mục chứa đề án cần mở khi đó sẽ xuất hiện tập tin đề án, kích chọn tập tin đề án, chọn Open

56

Page 57: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

4.6. THOÁT KHỎI VISUAL BASICChọn File\ Exit hoặc bấm phím tắt Alt+Q

57

Page 58: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

CHƯƠNG 5

BIỂU MẪU VÀ MỘT SỐ ĐIỀU KHIỂN THÔNG

DỤNG

5.1. MỘT SỐ KHÁI NIỆM5.1.1. Khái niệm thuộc tính, phương thức và sự kiện

Trong VB các điều khiển (control) hay còn gọi là các đối tượng, các đối tượng được cấu thành bởi 3 thành phần:

+ Thuộc tính: Properties

+ Phương thức: Methods

+ Sự kiện: Events

a. Thuộc tínhThuộc tính: là tập hợp các đặc tính để mô tả một đối tượng, ví dụ: tên, chiều

cao, chiều rộng, mầu chữ, mầu nền, …. Mỗi đối tượng được tạo ra thì các thuộc tính của nó sẽ có một giá trị nào đó. Khi tạo ra các đối tượng trong VB, các thuộc tính sẽ được gán một giá trị mặc định, để thay đổi giá trị này ta có thể xác định trong khi thiết kế (Design time) tại cửa sổ Properties hoặc trong lúc thi hành (Run time) thông qua Code.

Trong bảng dưới đây là những thuộc tính có trong hầu hết các điều khiển của VB:

Tên thuộc tính Ý nghĩa

BackColor Mầu nền của điều khiển

BorderStyle Kiểu đường viền điều khiển

Enabled Xác định trạng thái điều khiển = True điều khiển hoạt động, =False điều khiển không hoạt đông tức là nó bị xám đi

Font Font của ký tự hiển thị trên điều khiển

ForeColor Mầu chữ hiển trị trên điều khiển

Height Chiều cao điều khiển

HelpContextID Chỉ số trong file help kết nối với chương trình

Index Chỉ số của điều khiển khi sử dụng mảng điều khiển

Left Vị trí mép trái của điều khiển so với mép trái của đối tượng chứa nó

MousePointer Kiểu con trỏ khi con trỏ nằm trên điều khiển

58

Page 59: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Name Xác định tên của điều khiển

TabIndex Xác định thứ tự Tab chuyển đến điều khiển trong danh sách điều khiển trền Form

TabStop Xác định Tab có dừng tại điều khiển hay không?. Nếu =True thì có dừng, = False thì không dừng

TooltipText Dòng chữ xuất hiện khi di chuyển chuột trên Form

Top Ví trí mép trên của điều khiển so với mép trên của điều khiển chứa nó

Visible =True điều khiển xuất hiện, =False điều khiển ẩn đi

Width Xác đinh chiều rộng của điều khiển

b. Phương thứcPhương thức là những đoạn chương trình chứa trong điều khiển, giúp điều

khiển thực hiện một công việc nào đó khi cần, chẳng hạn dời điều khiển đến một vị trí mới trên biểu mẫu (phương thức Move).

Trong bảng dưới đây là những phương thức có trong hầu hết các điều khiển của VB:

Tên phương thức Sử dụng phương thức Ý nghĩa

Move Object.move( x,y) Di chuyển điều khiển đến toạ độ x,y

Refresh Object.Refresh Làm tươi điều khiển

Setfocus Object.Setfocus Đặt chủ điểm cho điều khiển gọi phương thức

ZOrder Object. Zorder(Position) Xác định thứ tự xuất hiện của điều khiển trên màn hình

c. Sự kiệnNếu như thuộc tính mô tả đối tượng, phương thức chỉ ra cách thức đối tượng

hành động thì sự kiện là những phản ứng của đối tượng.

Khi tạo một chương trình trong VB, chúng ta lập trình chủ yếu theo sự kiện, điều này có nghĩa là chương trình chỉ thi hành khi người dùng thực hiện một thao tác trên giao diện. Như vậy, lập trình theo cách này có nghĩa là ta phải biết khi nào sự kiện xảy ra? Và làm gì khi sự kiện đó xảy ra?

Trong bảng dưới đây là những sự kiện có trong hầu hết các điều khiển của VB:

59

Page 60: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Sự kiện Sự hoạt động

Click() Xảy ra khi nhấn chuột một lần trên điều khiển

DblClick() Xảy ra khi nhấn chuột hai lần trên điều khiển

Gotfocus() Xảy ra khi điều khiển nhận chủ điểm

LostFocus() Xảy ra khi điều khiển mất chủ điểm

KeyDown(KeyCode As Integer, Shift As integer)

- KeyCode: cho biết mã Ascii của phím được nhấn

- Shift xác định phím Ctrl, Alt, Shift có nhấn không

- Shift= 1 phím Shift nhấn

- Shift= 4 phím Alt nhấn

- Shift= 2 phím Ctrl nhấn

Xảy ra khi một phím bất kỳ trên bàn phím được nhấn

Keypress(KeyAscci As Integer)

KeyAscii : Cho biết mã Ascii của phím được nhấn

Xảy ra khi nhấn một phím ký tự, nó được gọi liên tục nếu ta giữ phím

KeyUP(KeyCode As Integer, Shift As integer)

Xảy ra khi một phím được thả.

5.1.2. Mối quan hệ giữa Thuộc tính – Phương thức – Sự kiệnMặc dù thuộc tính, phương thức và sự kiện có vai trò khác nhau nhưng chúng

thường xuyên liên hệ với nhau. Ví dụ, nếu ta di chuyển một điều khiển bằng phương thức Move thì một số thuộc tính như Top, Height, Left, Width sẽ thay đổi theo, khi kích cỡ của điều khiển thay đổi thì sự kiện Resize xảy ra.

Phụ thuộc lẫn nhau còn có nghĩa là ta có thể thực hiện một công việc bằng nhiều cách: xử lý trên thuộc tính hoặc xử lý bằng phương thức.

Ví dụ 1: Ta có 2 cách để di chuyển nút lệnh cmdMove

+ Di chuyển bằng thuộc tính:

cmdMove.Left = 100

cmdMove.Top = 100

+ Di chuyển bằng phương thức:

cmdMove.Move 100,100

Ví dụ 2: Làm biểu mẫu frmWelcome xuất hiện và ẩn trên màn hình

+ Thực hiện bằng thuộc tính: - Xuất hiện: frmWelcome.Visible = True

- Ẩn: frmWelcome.Visible = False

60

Page 61: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

+ Thực hiện bằng phương thức: - Xuất hiện: frmWelcome.Show

- Ẩn: frmWelcome.Hide

5.2. ĐIỀU KHIỂN FORM (BIỂU MẪU)5.2.1 Thuộc tính

Tên thuộc tính Ý nghĩa

Name Tên form, bắt đầu bởi tiếp đầu ngữ frm

BoderStyle Xác định kiểu đường viền của Form

Caption Xác định dòng chữ xuất hiện trên thanh tiêu đề

Icon Xác định biểu tượng xuất hiện trên thanh tiêu đề

Font Thiết lập kiểu chữ và cỡ chữ cho form

MaxButton = True - Nút Maximize ở trạng thái hoạt động

= False - Nút Maximize ở trạng thái không hoạt động

MinButton = True - Nút Minimize ở trạng thái hoạt động

= False - Nút Minimize ở trạng thái không hoạt động

Moveable =True - Cho phép di chuyển Form trên màn hình

=False - Không cho phép di chuyển Form trên màn hình

Picture Xác định ảnh xuất hiện trên Form.

Để nạp ảnh lên Form, ta nhấn chuột vào cột bên cạnh thuộc tính Picture, cửa sổ Load Picture xuất hiện chọn File ảnh sau đó nhấn Open

Đê bỏ hình ảnh : Khi có ảnh trên Form cột bên cạnh thuộc tính Picture có chữ (Bitmap) ta xoá chữ này đi ảnh sẽ được bỏ đi.

Windowstate Xác định trạng thái Form khi xuất hiện lên màn hình

= 0-Normal Form xuất hiện đúng bằng kích thước lúc thiết kế

=1-Minmized Form xuất hiện thu nhỏ trên thanh TaskBar

=2-Maximized Form xuất hiện choáng hết màn hình

Visible Cho phép hiện (True) hoặc ẩn (False) Form

61

Page 62: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Chú ý: Thuộc tính Font của Form sẽ được các Control nằm trên nó kế thừa, tức là khi ta đặt một Control lên Form, thuộc tính Font của nó sẽ tự động nhận giá trị Font của Form.

5.2.2. Sự kiệnForm có một số sự kiện thông dụng như sau:

Tên sự kiện Sự hoạt động

Form_Initialize Sự kiện Initialize được kích hoạt đầu tiên và chỉ một lần, VB kích hoạt sự kiện này khi biểu mẫu được gọi lần đầu.

Sự kiện là nơi đặt mã lệnh xác lập các tính chất ban đầu của biểu mẫu, ví dụ đặt mật khẩu vào chương trình.

Form_Load Sự kiện Load được kích hoạt khi biểu mẫu được nạp vào bộ nhớ và xảy ra sau biến cố Initialize.

Sự kiện này có thể được kích hoạt hơn một lần nếu ta thôi nạp (unload) rồi tái nạp (reload) biểu mẫu, nó thường được dùng để khởi tạo các giá trị và trạng thái cho các biến, các điều khiển trên form.

Chú ý: Trong Form_Load ta không thể dùng SetFocus cho một điều khiển nào vì lúc này form chưa hẳn đã hình thành

Form_Activate VB kích hoạt thủ tục biến cố Form_Activate khi một biểu mẫu trở lên hoạt động

Tuy nhiên nếu ta chuyển đến một ứng dụng khác đang chạy dưới Windows rồi trở về biểu mẫu thì VB không gọi lại sự kiện Activate nữa, do đó Form_Activate thường chỉ được dùng trong các ứng dụng nhiều biểu mẫu.

Form_QueryUnload Được kích hoạt khi người dùng kích chuột vào nút close x góc trên bên phải để đóng Form

Chú ý: Nếu không muốn người dùng đóng form bằng cách bấm chọn biểu tượng Close thì trong thủ tục Form_QueryUnload ta đặt thuộc tính Cancel = True như sau:

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)

Cancel = TrueEnd Sub

62

Page 63: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

5.3. NHÃN – LABEL

Nhãn dùng để hiển thị những thông tin có tính chất cố định, người sử dụng không có khả năng thay đổi, như dòng thông báo, hướng dẫn, … Nhãn có một số thuộc tính hay dùng sau:

5.3.1. Thuộc tính

Tên thuộc tính Ý nghĩa

Name Tên nhãn, bắt đầu bởi tiếp đầu ngữ lbl

Alignment Chế độ căn chỉnh: trái, phải hoặc giữa của nhãn.

BackColor Thiết lập mầu nền cho nhãn.

BackStyle Thiết lập kiểu nền của nhãn, nếu BackStyle = 0-Transparent nhãn sẽ có mầu nền giống với mầu nền của Form.

Caption Nội dung của nhãn.

Font Chọn kiểu chữ và cỡ chữ cho nhãn

ForeColor Xác lập mầu chữ cho nhãn

Visible Hiện hoặc ẩn nhãn

5.3.2. Sự kiện

Tên sự kiện Sự hoạt động

Click Được kích hoạt khi người dùng kích chuột vào hộp văn bản

DblClick Được kích hoạt khi người dùng kích đúp chuột vào hộp văn bản

MouseMove Được kích hoạt khi chuột di chuyển trên nó

MouseDown Được kích hoạt khi chuột nằm trên điều khiển và nút trái của chuột được nhấn

MouseUp Được kích hoạt khi chuột nằm trên điều khiển và nút trái của chuột thả ra

5.3.3. Ví dụXây dựng một chương trình có giao

diện như hình bên. Khi nhấn nút chuột trái và giữ thì mầu của nhãn chuyển sang mầu đỏ, khi thả nút chuột trái thì trở về mầu đen ban đầu.

Các bước thực hiện:

63

Page 64: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Bước 1: Tạo một đề án mới

Bước 2: Thiết kế giao diện

Điều khiển Thuộc tính Giá trị

Form1Name frmVidu

Caption Test label Events

Label1 Name lblWelcome

Caption Welcome VB program

Bước 3: Viết code, mở cửa sổ viết code, lập trình 2 sự kiện MouseDown và MouseUp

Private Sub lblWelcome_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

lblWelcome.ForeColor = RGB(255, 0, 0) End Sub‘--------------------------------------------------------Private Sub lblWelcome_MouseUp(Button As Integer, Shift

As Integer, X As Single, Y As Single) lblWelcome.ForeColor = RGB(0, 0, 0) End SubChú ý: Trong ví dụ trên ta có sử dụng hàm RGB, hàm này giúp ta tạo ra một

mầu từ 3 tham số mầu Red, Green và Blue, các tham số này có giá trị từ 0 đến 255. Tùy tỉ lệ giữa các tham số sẽ cho ta các mầu khác nhau.

5.4. NÚT LỆNH – COMMAND BUTTON

Nút lệnh cho phép người dùng thực hiện một hành động

5.4.1. Thuộc tính

Tên thuộc tính Ý nghĩa

Name Tên nút lệnh, bắt đầu bởi tiếp đầu ngữ cmd

BackColor Thiết lập mầu nền cho nút lệnh

Chú ý: để có thể hiển thị mầu nền đã chọn ta phải thiết lập thuộc tính Style =1

Cancel Nếu thiết lập thuộc tính Cancel = True cho một nút lệnh thì nút lệnh này sẽ được kích hoạt khi người sử dụng bấm phím Esc, bất kể tiêu điểm đang ở đâu.

Chú ý: Việc xác lập Cancel = True cho một nút lệnh sẽ tự động xác lập Cancel = False cho tất cả các nút lệnh khác trong biểu mẫu.

64

Page 65: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Caption Tiêu đề của nút lệnh. Ta có thể quy định phím nóng cho nút lệnh bằng cách đặt dấu “&” trước một ký tự của Caption, ví dụ &Quit sẽ được hiển thị là Quit, khi người sử dụng bấm Alt+Q chương trình sẽ kích hoạt nút lệnh Quit

DownPicture Hiển thị hình ảnh được chọn khi bấm chuột vào nút lệnh

Chú ý: thuộc tính Style phải bằng 1

Enabled Nếu Enabled = False thì VB sẽ không đáp ứng bất kỳ biến cố nào có liên quan tới nút lệnh này.

Font Xác lập kiểu chữ và cỡ chữ cho nút lệnh

Picture Hiển thị hình ảnh được chọn trên nút lệnh

Chú ý: thuộc tính Style phải bằng 1

Style Style = 1-Graphical: cho phép hiển thị mầu và hình ảnh lên nút lệnh

TabIndex Thứ tự truy cập khi người dùng bấm phím Tab, thứ tự đầu tiên là 0

Visible Hiện hoặc ẩn nút lệnh

5.4.2. Sự kiệnNút lệnh có một số sự kiện cơ bản sau:

Tên sự kiện Sự hoạt động

Click Được kích hoạt khi người dùng kích chuột vào nút lệnh

GotFocus Được kích hoạt khi người dùng chuyển tiêu điểm tới nút lệnh

LostFocus Được kích hoạt khi nút lệnh mất tiêu điểm

MouseDown Được kích hoạt khi người dùng đặt chuột vào nút lệnh

MouseUp Được kích hoạt khi người dùng đưa chuột ra khỏi nút lệnh

MouseMove Được kích hoạt khi người dùng di chuyển chuột trên nút lệnh

5.4.3. Ví dụXây dựng một chương

trình có giao diện như hình bên. Khi nhấn chuột trên nút Open hoặc nhấn tổ hợp phím Alt +O thì chương trình đưa ra

65

Page 66: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

thông báo “You have clicked the Open button”, khi nhấn chuột vào nút Save hoặc tổ hợp phím Alt+S thì chương trình đưa ra thông báo “You have clicked the Save button”,

Các bước thực hiện:

Bước 1: Tạo một đề án mới

Bước 2: Thiết kế giao diện

Điều khiển Thuộc tính Giá trị

Form1Name frmVidu

Caption Test command button

Commnad1 Name btnOpen

Caption &Open

Picture Icon

Style 1- Graphical

Commnad2 Name btnSave

Caption &Save

Picture Icon

Style 1- Graphical

Để thiết lập thuộc tính Picture, trong cửa sổ properties ứng với nút lệnh, di

chuyển chuôt đến thuộc tính picture và kích chuột vào dấu 3 chấm, khi đó hộp thoại load picture xuất hiện, từ đây ta tìm đến nơi lưu trữ file ảnh cần hiển thị trên nút lệnh, chọn file và nhấn nút Open.

66

Page 67: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Trong ví dụ này, đường dẫn tới file ảnh của các nút lệnh tương ứng là:

- Open: C:\Program Files\Microsoft Visual Studio\COMMON\ Graphics\ Icons\Office

- Save: C:\Program Files\Microsoft Visual Studio\COMMON\Graphics\ Icons\Computer

Chú ý: Cần phải thiết lập thuộc tính Style thành 1- Graphical thì ảnh mới xuất hiện trên nút lệnh.

Bước 3: Viết code, mở cửa sổ viết code, lập trình 2 sự kiện Click của 2 nút lệnh như sau:

Private Sub cmdOpen_Click() MsgBox "You have clicked the Open button"End SubPrivate Sub cmdSave_Click() MsgBox "You have clicked the Save button"End Sub

5.5. HỘP VĂN BẢN – TEXTBOX

Text box là điều khiển rất thông dụng, dùng để nhập dữ liệu từ người sử dụng và hiển thị kết quả tính toán được.

5.5.1. Thuộc tính

Tên thuộc tính Ý nghĩa

Name Tên textbox, bắt đầu bởi tiếp đầu ngữ txt

Alignment Chế độ căn chỉnh: trái, phải hoặc giữa của dữ liệu trong hộp TextBox

BackColor Thiết lập mầu nền cho hộp TextBox

Enabled Enabled=False: Không cho phép người dùng truy cập vào TextBox (Hộp Textbox bị mờ đi)

Font Chọn kiểu chữ và cỡ chữ cho hộp văn bản

ForeColor Xác lập mầu chữ cho hộp văn bản

Looked Looked = True: Hộp văn bản vẫn được chiếu sáng nhưng không cho phép người dùng thay đổi nội dung.

Maxlength Quy định chiều dài tối đa được chấp nhận của hộp văn bản, giá trị mặc định là 0, tức là có thể chứa 32000 ký tự.

Mọi xác lập khác 0, ví dụ 5 chỉ cho phép người dùng nhập tối

67

Page 68: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

đa 5 ký tự vào hộp văn bản.

Multiline Multiline = True: Cho phép văn bản được hiển thị trên nhiều dòng, ngược lại chỉ cho phép hiển thị trên một dòng.

Chú ý: Trong khi thiết kế, để xuống dòng tạo dòng mới ta bấm Ctrl+Enter, còn khi thi hành ta phải thêm vào cuối mỗi hàng ký hiệu xuống dòng VbCrLf

PasswordChar Tính chất này cho phép người sử dụng bảo mật được thông tin nhập vào Textbox. Ví dụ đặt thuộc tính này bằng ký tự ‘*’ khi đó toàn bộ dữ liệu nhập vào sẽ được hiển thị dưới dạng dấu hoa thị.

Chú ý: thuộc tính Multiline phải được đặt = False

ScrollBars Xác lập thanh cuốn ngang và dọc cho hộp văn bản, có hiệu lực khi thuộc tính Multiline = True

TabIndex Thứ tự truy cập khi người dùng bấm phím Tab, thứ tự đầu tiên là 0

Text Chứa nội dung của hộp văn bản

ToolTipText Hiện ra dòng mách nước mỗi khi người dùng đưa chuột lên hộp TextBox

Visible Hiện hoặc ẩn hộp văn bản (=True – hiện, =False - ẩn)

5.5.2. Sự kiệnHộp văn bản có một số sự kiện cơ bản sau:

Tên sự kiện Sự hoạt động

Change Được kích hoạt khi người dùng thực hiện sự thay đổi bất kỳ trong hộp văn bản, như: thêm, xoá, sửa, dán văn bản

Click Được kích hoạt khi người dùng kích chuột vào hộp văn bản

DblClick Được kích hoạt khi người dùng kích đúp chuột vào hộp văn bản

GotFocus Được kích hoạt khi người dùng chuyển tiêu điểm tới hộp văn bản

KeyPress Trả về mã Ascii của một ký tự bất kỳ (trừ các ký tự đặc biệt như phím Delete, phím Home…) mà người sử dụng gõ vào hộp văn bản

KeyDown Trả về mã Ascii của tất cả các ký tự mà người sử dụng gõ vào hộp văn bản

LostFocus Được kích hoạt khi hộp văn bản mất tiêu điểm

68

Page 69: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

MouseMove Được kích hoạt khi người dùng di chuyển chuột lên hộp văn bản

5.5.3. Ví dụa. Ví dụ 1

Xây dựng một chương trình có giao diện như hình bên. Khi nhấn chuột di chuyển trên nút lệnh “Tinh tong” thì xuất hiện dòng chữ “Click here”, nhấn chuột trên nút lệnh hoặc nhấn tổ hợp phím Alt+T thì thực hiện tính tổng của hai số được nhập trong hai textbox, kết quả tính được hiển thị trong textbox tổng.

Các bước thực hiện:

Bước 1: Tạo một đề án mới

Bước 2: Thiết kế giao diện

Điều khiển Thuộc tính Giá trị

Form1Name frmTinhTong

Caption Tinh tong

Lable1 Name Label1

Caption So thu nhat

Lable2 Name Label2

Caption So thu hai

Lable3 Name Label3

Caption Tong

Textbox1 Name txtA

Text “”

Textbox2 Name txtB

Text “”

Textbox3 Name txtTong

Text “”

69

Page 70: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Command1 Name cmdTinhTong

Text “”

Tooltiptext Click here

Bước 3: Viết codePrivate Sub cmdTinhTong_Click() txtTong.Text = CSng(txtA.Text) + CSng(txtB.Text)End SubChú ý: trong đoạn lệnh trên chúng ta có sử dụng hàm CSng, đây là hàm

chuyển đổi một biểu thức thành 1 số thực. Khi chúng ta nhập dữ liệu vào các hộp textbox thì dữ liệu lấy ra từ thuộc tính Text có kiểu văn bản, vì vậy các số chúng ta nhập vào hai textbox trong ví dụ này là hai chuỗi ký tự. Để thực hiện phép cộng thì ta phải chuyển hai chuỗi này thành hai số tương ứng trước khi đem chúng cộng với nhau.

b. Ví dụ 2Tạo một form, tạo một textbox, đặt tên cho textbox là txtSo, yêu cầu khi chạy

chương trình chỉ cho phép người dùng nhập vào textbox các ký tự là số.

Trong ví dụ này chúng ta sử dụng sự kiện KeyPress để kiểm tra việc nhập dữ liệu, chỉ cho phép nhập vào hộp văn bản các số từ 0 tới 9. Thực hiện thiết kết theo yêu cầu, đặt tên textbox là “txtSo”, viết code đáp ứng sự kiến KeyPress như sau:

Private Sub txtSo_KeyPress(KeyAscii As Integer) If KeyAscii < Asc("0") Or KeyAscii > Asc("9") Then KeyAscii = 0 End IfEnd SubGiải thích: Mỗi ký tự trên bàn phím ứng với một con số duy nhất gọi là mã

Ascii, khi một phím được nhập vào hộp Textbox, tham số KeyAscii của thủ tục KeyPress sẽ giữ mã Ascii của phím này và so sánh nó với mã Ascii của các số 0 và 9, nếu phím gõ vào nằm ngoài khoảng từ 0 đến 9 thì đổi tham số KeyAscii thành 0, tức là tắt phím đó đi. Vì vậy hộp văn bản chỉ nhận các số từ 0 đến 9.

Tuy nhiên đoạn chương trình trên không cho phép xoá dữ liệu, hãy cải tiến chương trình trên để vừa cho phép chỉ có thể nhập số vừa cho phép xoá dữ liệu

5.6. ĐIỀU KHIỂN HỘP KIỂM – CHECKBOXCheckbox là điều khiển thông dụng, được sử dụng để yêu cầu người sử

dụng lựa chọn một hoặc nhiều lựa chọn (cũng có thể là 0 có lựa chọn nào).

5.6.1. Thuộc tính

Thuộc tính Ý nghĩa

Name Tên hộp kiểm, bắt đầu bởi tiếp đầu ngữ chk

70

Page 71: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Alignment = 0-Left Justify Chuỗi ký tự xuất hiện bên phải

=1-Rigth Justify Chuỗi ký tự xuất hiện bên trái

Caption Xác định chuỗi ký tự xuất hiện trên điều khiển

Value = 1 Điều khiển được đánh dấu

=0 Điều khiển không được đánh dấu

Thuộc tính quan trọng của hộp kiểm là Value, thuộc tính cho biết hộp kiểm được đánh dấu hay không? Nếu được đánh dấu thuộc tính Value sẽ có giá trị 1 ngược lại không được đánh dấu sẽ có giá trị là 0.

5.6.2. Sự kiệnTrong các sự kiện của CheckBox thường sử dụng chủ yếu đến sự kiện Private Sub Check1_Click()

End SubSự kiện này xảy ra khi ta nhấn chuột trên điều khiển, khi đó nếu điều khiển

được đánh dấu thì thuộc tính Value có giá trị =1, không được đánh dấu thì Value=0.

5.6.3. Ví dụXây dựng một chương

trình có giao diện như hình bên. Khi nhấn chuột trên nút lệnh chương trình sẽ hiển thị danh sách các môn thể thao mà bạn đã chọn.

Các bước thực hiện:

Bước 1: Tạo một đề án mới

Bước 2: Thiết kế giao diện

Điều khiển Thuộc tính Giá trị

Form1Name frmTestCheckBox

Caption Test check box

Label1 Caption Đánh dấu vào môn thể thao bạn thích

Check1 Name ChkBd

Caption Bóng đá

71

Page 72: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Check2 Name ChkBc

Caption Bóng chuyền

Check3 Name ChkCL

Caption Cầu lông

Check4 Name ChkBb

Caption Bóng bàn

Check5 Name ChkBr

Caption Bóng rổ

Check6 Name Chkkrt

Caption Karate

Check7 Name ChkQv

Caption Quần vợt

Check8 Name ChkNc

Caption Nhảy cao

Command1 Name CmdDs

Caption DS môn TT đã chọn

Bước 3. Viết codePrivate Sub cmdDs_Click() Dim S As String S = "" If ChkBd.Value = 1 Then S = S & "Bóng đá" If Chkbc.Value = 1 Then S = S & " Bóng chuyềná" If Chkcl.Value = 1 Then S = S & " Cầu lông" If Chkbb.Value = 1 Then S = S & " Bóng bàn" If Chkbr.Value = 1 Then S = S & " Bóng rổ" If ChkKrt.Value = 1 Then S = S & " Karate" If Chkqv.Value = 1 Then S = S & " Quần vợt" If ChkNx.Value = 1 Then S = S & " Nhảy xa" If S = "" Then MsgBox "Bạn không chọn môn nào", , "Thông báo" Else MsgBox S, , "Thông báo" End IfEnd Sub

72

Page 73: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

5.7. ĐIỀU KHIỂN NÚT TÙY CHỌN – OPTIONBUTTON

Điều khiển Option button chỉ cho phép người dùng thực hiện lựa chọn 1 trong số nhiều lựa chọn trong một nhóm (group), trong cùng một nhóm sẽ loại trừ lẫn nhau, nghĩa là mục chọn sau sẽ loại bỏ mục chọn trước.

Để nhóm các option button thành từng nhóm chúng ta đặt chúng vào trong điều khiển chứa. Điều khiển chứa là những điều khiển cho phép “vẽ” các điều khiển khác trong nó (ví dụ: Form, Frame, Picture).

5.7.1. Thuộc tính

Thuộc tính Ý nghĩa

Name Tên nút tùy chọn, bắt đầu bởi tiếp đầu ngữ opt

Alignment = 0-Left Justify Chuỗi ký tự xuất hiện bên phải

=1-Rigth Justify Chuỗi ký tự xuất hiện bên trái

Caption Xác định chuỗi ký tự xuất hiện trên điều khiển

Value = true Điều khiển được đánh dấu

=false Điều khiển không được đánh dấu

5.7.2. Sự kiệnVới điều khiển này, sự kiện mà chúng ta thường sử dụng nhất là sự kiện Click.

Sự kiện này xảy ra khi nhấn chuột trên điều khiển, khi đó thuộc tính Value có giá trị True (điều khiển được đánh dấu chấm đen) tất cả các điều khiển Option khác trong cùng một điều khiển chứa sẽ có giá trị =False (tức không được đánh dấu).

5.7.3. Ví dụ Xây dựng một chương trình có

giao diện như hình bên. Khi chọn nút option nào thì mầu của nhãn “Select color for me” sẽ có mầu tương ứng.

Các bước thực hiện:

Bước 1: Tạo một đề án mới

Bước 2: Thiết kế giao diện

Điều khiển Thuộc tính Giá trị

Form1 Name frmTestOptionButton

73

Page 74: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Caption Application Option

Label1 Name Label1

Caption Select color for me

Option1 Name OptBlue

Caption Blue

Option2 Name OptRed

Caption Red

Option3 Name OptGreen

Caption Green

Option4 Name OptYellow

Caption Yellow

Bước 3: Viết codePrivate Sub OptBlue_Click() If OptBlue Then Label1.ForeColor = QBColor(1)End Sub‘--------------------------------------------------------Private Sub OptGreen_Click() If OptGreen Then Label1.ForeColor = QBColor(2)End Sub‘--------------------------------------------------------Private Sub OptRed_Click() If OptRed Then Label1.ForeColor = QBColor(4)End Sub‘--------------------------------------------------------Private Sub Optyellow_Click() If OptYellow Then Label1.ForeColor = QBColor(14)End SubChú ý: trong đoạn code trên có sử dụng hàm QBColor, đây là hàm chuyển

một số nguyên là mã mầu thành một số dạng Hexa (số hệ 16).

Một số mã mầu:

Mã Mầu Mã Mầu

0 Đen 15 Trắng

1 Xanh da trời 2 Xanh nõn chuối

3 Xanh nước biển

4 Đỏ

74

Page 75: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

5 Tím

5.8. ĐIỀU KHIỂN KHUNG – FRAME

Điều khiển frame là một điều khiển chứa, sử dụng để nhóm các điều khiển khác thành một nhóm.

5.8.1 Thuộc tính

Tên thuộc tính Ý nghĩa

Name Tên khung, bắt đầu bởi tiếp đầu ngữ fra

BackColor Thiết lập mầu nền cho khung

Caption Tiêu đề của khung

Enabled Nếu Enabled = False khung sẽ không hoạt động

Font Xác lập kiểu chữ và cỡ chữ

ForeColor Xác lập mầu chữ

TabIndex Thứ tự truy cập khi người dùng bấm phím Tab

Visible Hiện hoặc ẩn khung

Thuộc tính quan của điều khiển frame mà ta thường sử dụng là Caption, thuộc tính này giúp ta chỉ ra tên của nhóm.

5.8.2. Ví dụMột giao diện sử dụng điều

khiển frame để nhóm các option button thành 2 nhóm khác nhau. Khi đó chúng ta có thể chọn cùng một thời điểm 2 option trên form, mỗi nhóm chọn được 1. Khi thiết kế form thì điều khiển frame được tạo ra trước, sau đó tạo các điều khiển trong nhóm sau.

5.9. ĐIỀU HỘP DANH SÁCH – LISTBOX

Điều khiển List box được sử dụng để liệt kê các mục dạng danh sách, nó cho phép thêm, bớt, lựa chọn các mục một cách dễ dàng.

5.9.1. Thuộc tính

Thuộc tính Ý nghĩa

75

Page 76: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Name Tên hộp danh sách, bắt đầu bởi tiếp đầu ngữ lst

Column Xác định số cột xuất hiện trong ListBox

= 0 Danh sách chỉ có một cột và tạo thanh cuôn theo chiều đứng

<>0 Danh tự tạo thêm các cột mới nếu chiều cao không đủ viết các mục của danh sách và nó tạo một thanh cuộn nằm ngang.

List Chứa danh sách các mục hiển thị trong ListBox

ListName(Index) cho xâu ký tự tương ứng mục có chỉ số Index trong List (chỉ số của các mục được đánh bắt đầu từ 0).

ListIndex Cho biết chỉ sổ của mục được chọn

ListCount Cho biết số mục hiện có của ListBox

Multiselect = 0_None Chỉ cho phép chọn một mục tại một thời điểm

=1_Simple Cho phép chọn nhiều mục cùng một lúc bằng cách giữ phím Cltr và nhấn chuột trên mục được chọn.

=2_ Extended Cho phép chọn nhiều mục cùng một lúc bằng cách giữ phím Cltr và nhấn chuột trên mục được chọn hoặc chọn một nhóm các mục liên tiếp bằng cách chọn mục đầu và mục cuối.

Selected(Index) =True Mục có chỉ số Index được chọn

= False Mục có chỉ số Index không được chọn

Style =0 – Standard Kiểu ListBox chuẩn không có hộp kiểm trước các mục

=1 – CheckBox Kiểu ListBox co hộp kiểm bên cạnh các

76

Page 77: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

mục.

5.9.2. Sự kiệnHai sự kiện quan trọng nhất của hộp danh sách là nhấp Click và nhấp đúp

DblClick, Windows có quy ước là việc nhấp chuột trên một phần tử chỉ là lựa phần tử chứ không phải chọn, việc chọn dành cho sự kiện nhấp đúp lên phần tử.

Do đó, nói chung ta không viết thủ tục Click cho hộp danh sách, một lý do khác không viết lệnh cho sự kiện Click là mỗi lần người dùng dịch chuyển qua danh sách VB sẽ tạo ra sự kiện Click

5.9.3. Phương thứcKhi làm việc với điều khiển list box chúng ta thường thực hiện các thao tác

thêm/xóa các mục vào thời gian chạy của chương trình. Để làm điều này, chúng ta phải thực hiện thông qua các phương thức của list box.

AddItem: dùng để bổ sung một phần tử cho hộp danh sách trong thời gian thi hành. Cú pháp của phương thức này là:

ListName.AddItem Item [,Index]

Trong đó ListName là tên của hộp danh sách, Item là nội dung của phần tử ta muốn thêm vào và Index là vị trí của phần tử đó trong hộp danh sách (nếu Index không được chỉ ra thì phần tử được thêm vào cuối danh sách).

Ví dụ: bổ sung phần tử có giá trị “HaNoi” vào hộp danh sách lstQue ta thực hiện như sau:

lstQue.AddItem “HaNoi”

Chú ý: AddItem thường được sử dụng trong thủ tục Form_load

RemoveItem: dùng để loại bỏ một phần tử của danh sách trong thời gian thi hành. Cú pháp của phương thức này là:

ListName.RemoveItem Index

Ngoài việc loại bỏ từng phần tử riêng rẽ trên danh sách, ta có thể dùng phương thức Clear để loại bỏ tất cả các phần tử của danh sách. Cú pháp này là:

ListName.Clear

5.9.4. Ví dụXây dựng một chương trình có

giao diện như hình bên. Khi nhấn vào nút “Thêm” chương rình kiểm

77

Page 78: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

tra nếu họ tên, ngày sinh nhập đúng thì thêm người đó vào danh sách, nếu không có họ tên hoặc ngày sinh nhập sái thì thông báo dữ liệu không đúng yêu cầu nhập lại. chọn một người trong ListBox sau đó nhấn nút “Xóa” thì xóa người đó khỏi dánh sách.

Các bước thực hiện:

Bước 1: Tạo một đề án mới

Bước 2: Thiết kế giao diện

Điều khiển Thuộc tính Giá trị

Form1Name frmTestListBox

Caption Application ListBox Option

Listbox Name lstDS

Label1 Caption Chương trình nhập danh sách học sinh

Label2 Caption Họ tên

Label3 Caption Ngày sinh

Label4 Caption Danh sách hiện có

Command1 Name cmdThem

Caption Thêm

Command2 Name cmdXoa

Caption Xóa

Text1 Name TxtHoten

Caption “”

Text2 Name TxtNgaysinh

Text “”

Bước 2: Viết codePrivate Sub CmdThem_Click() If (Len(TxtHoten.Text) <> 0) And IsDate(TxtNgaysinh)

Then lstDS.AddItem TxtHoten.Text & " ” &

TxtNgaysinh.Text Else MsgBox "Dữ liệu không hợp lệ, xin hãy nhập lại" End IfEnd Sub

78

Page 79: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

‘--------------------------------------------------------Private Sub CmdXoa_Click() lstDS.RemoveItem ListDS.ListIndexEnd Sub

5.10. ĐIỀU KHIỂN HỘP KẾT HỢP - COMBOBOX

Điều khiển combobox là điều khiển kết hợp giữa điều khiển textbox và listbox.

5.10.1. Thuộc tính

Thuộc tính Ý nghĩa

Name Tên hộp kết hợp, bắt đầu bởi tiếp đầu ngữ cbo

List Chứa danh sách các mục hiển thị trong ListBox

ListName(Index) cho xâu ký tự tương ứng mục có chỉ số Index trong List (chỉ số của các mục được đánh bắt đầu từ 0).

ListIndex Cho biết chỉ sổ của mục được chọn

ListCount Cho biết số mục hiện có của ListBox

Locked =True Không cho phép thay đổi nội dung của thuộc tính Text bằng cách gõ các ký tự từ bàn phím vào.

= False Cho phép thay đổi nội dung thuộc tính Text.

Text Lưu chuỗi ký tự được nhập vào từ bàn phím hoặc chuỗi ký tự của mục được chọn trong Combo

Style Xác định kiểu của điều khiển, thuộc tính có thể nhận 1 trong 3 giá trị là 0,1 và 3. Giá trị: 0- Dropdown Combo, 1-Simple Combo, 2-Dropdown Listbox

+ Dropdown Combo - Hộp Combo thả xuống : là một hộp văn bản cho phép người sử dụng gõ vào, kế bên có một mũi tên , nhấn vào đó nó sẽ xổ ra một danh sách cho phép người dùng chọn lựa.

+ Simple Combo – Hộp Combo đơn giản: luôn hiển thị sẵn danh sách và cho phép người sử dụng gõ vào hộp văn bản.

+ Dropdown Listbox – Hộp Listbox thả xuống: tương tự như kiểu Dropdown Combo nhưng người sử dụng chỉ có thể chọn từ danh sách, gõ vào hộp văn bản thì danh sách sẽ cuộn đến đúng phần tử yêu cầu và chọn nó.

79

Page 80: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

5.10.2. Sự kiệnNgoài các sự kiện tương tự như các sự kiện của hộp Listbox, hộp Combo có

thêm 2 sự kiện khác là Change và Dropdown.

Sự kiện Change chỉ xảy ra đối với hộp Combo thả xuống và hộp Combo đơn giản, VB tạo ra sự kiện này khi người dùng nhập dữ liệu vào vùng văn bản của hộp combo hoặc khi ta thay đổi thuộc tính Text của hộp combo từ mã lệnh.

Sự kiện Dropdown chỉ xảy ra đối với hộp Combo thả xuống và hộp Listbox thả xuống, sự kiện này được gọi ngay sau khi người dùng nhấp mũi tên để thả hộp danh sách xuống (phím tắt Alt+). Vì lý do đó sự kiện này chủ yếu được sử dụng để cập nhật các phần tử cho hộp Combo trước khi danh sách xuất hiện.

5.10.3. Phương thứcTương tự như các phương thức của hộp Listbox.

Giả sử ta có hộp combo cboQue (Dropdown Listbox), có hai cách để cập nhập dữ liệu vào hộp combo này.

Cách 1: Cập nhập bằng thủ tục Form_Load:Private Sub Form_Load() cboQue.AddItem "Hà Nội" cboQue.AddItem "Hải Dương" cboQue.AddItem "Thanh Hoá"End SubCách 2: Cập nhập bằng sự kiện Dropdown:Private Sub cboQue_DropDown() cboQue.Clear cboQue.AddItem "Hà Nội" cboQue.AddItem "Hải Dương" cboQue.AddItem "Thanh Hoá"End Sub

5.10.4. Ví dụ Xây dựng một chương trình

có giao diện như hình bên. Khi Form Load thì thêm vào Combo các mục sau: Xuất sắc, Giỏi, Khá, Trung bình khá, Yếu, Kém.

Người dùng nhập họ tên thí sinh vào hộp Text, chọn xếp loại của thí sinh trong hộp Combo. Khi nhấn chuột trên nút lệnh “Thêm” thì thêm thí sinh đó vào danh sách. Chọn một thí sinh trong danh sách sau đó nhấn chuột trên nút “Xóa” thì loại bỏ thí sinh đã chọn khỏi danh sách.

80

Page 81: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Các bước thực hiện:

Bước 1: Tạo một đề án mới

Bước 2: Thiết kế giao diện

Điều khiển Thuộc tính Giá trị

Form1Name frmTestComboBox

Caption Application combo

Combo1 Name Cboxeploai

List1 Name List1

Label1 Caption Họ tên

Label2 Caption Xếp loại

Label1 Caption Danh sách đã nhập

Text1 Name TxtHoten

Command1 Name CmdThem

Caption Thêm

Command1 Name CmdXoa

Caption Xóa

Bước 3: Viết codePrivate Sub CmdThem_Click() If Trim(TxtHoten) = "" Then MsgBox "Bạn phải nhập họ tên vào" TxtHoten.SetFocus End If List1.AddItem TxtHoten.Text & " " & cboXeploai.TextEnd Sub‘------------------------------------------------------

Private Sub CmdXoa_Click() List1.RemoveItem (List1.ListIndex)End Sub‘--------------------------------------------------------Private Sub Form_Load() cboXeploai.AddItem "Xuất sắc" cboXeploai.AddItem "Giỏi" cboXeploai.AddItem "Khá" cboXeploai.AddItem "Trung bình khá" cboXeploai.AddItem "Trung bình" cboXeploai.AddItem "Yếu" cboXeploai.AddItem "Kém"End Sub

81

Page 82: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

5.11. ĐIỀU KHIỂN THỜI GIAN – TIMER

Điều khiển Timer độc lập với người sử dụng và có thể lập trình để thi hành một hành động trong các khoảng thời gian đều đặn.

5.11.1 Thuộc tính

Tên thuộc tính Ý nghĩa

Name Tên điều khiển Timer, bắt đầu bởi tiếp đầu ngữ tmr

Interval = n (0<n<65535) điều khiển tự động gọi sự kiện Timer sau khoảng thời gian n (ms)

5.11.2. Sự kiện

Timer Sự kiện này được gọi đều đặn sau khoảng thời gian đặt cho thuộc tính Interval

5.11.3. Ví dụ Xây dựng một chương trình có giao

diện như hình bên. Khi chạy chương trình Form tự động di chuyển về phía phải màn hình đến khi nào chạm mép phải màn hình thì chuyển động sang phía trái màn hình, khi chạm mép trái màn hình lại chuyển động sang phía mép phải. Cứ lặp đi lặp lại đến khi nào thoát chương trình.

Các bước thực hiện:

Bước 1: Tạo một đề án mới

Bước 2: Thiết kế giao diện

Điều khiển Thuộc tính Giá trị

Form1Name frmTestTimer

Caption Application Timer

Label Caption Form is automatic move around your screen

Timer Name Timer1

Interval 30

Bước 3: Viết codePublic Kt As Boolean ‘Biến Kt xác định hướng chuyển

động của Form‘Kt=True chuyển động sang phải,

82

Page 83: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

‘Kt=False ‘chuyển động sang tráiPrivate Sub Form_Load() Kt = True Screen.MousePointer = 2End SubPrivate Sub Timer1_Timer() If Kt Then If (Form1.Left + Form1.Width < Screen.Width) Then Form1.Left = Form1.Left + 30 Else Kt = False End If End If If Not Kt Then If Form1.Left > 0 Then Form1.Left = Form1.Left - 30 Else Kt = True End If End If End Sub

5.12. ĐIỀU KHIỂN HỘP ẢNH – PICTUREBOX

Điều khiển Picturebox được sử dụng để hiển thị hình ảnh, hoặc để chứa các điều khiển khác trong nó.

Ví dụ:

5.12.1. Thuộc tính

Tên thuộc tính Ý nghĩa

Name Tên điều khiển Timer, bắt đầu bởi tiếp đầu ngữ pic

Autosize = True thực hiện thiết lập kích thước của điều khiển vừa với kích thước của ảnh

= False không thực hiện thiết lập điều khiển vừa với kích thước ảnh, khi đó nếu kích thước điều khiển nhỏ hơn ảnh thì

83

Page 84: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

chỉ một phần phía trên bên trái của ảnh được hiển thị, nếu kích thước điều khiển lớn hơn kích thước ảnh thì sẽ thừa góc dưới bên phải của điều khiển

BorderStyle = 1-Fixed Single đường viền

= 0 – None không có đường biên

CurrentX Vị trí hiện tại của con trỏ theo trục Ox

CurrentY CurrentY Vị trí hiện tại của con trỏ theo trục Oy

Picture Xác định đường dẫn tới File anh xuất hiện trong điều khiển

- Ta có thể thiết lập ảnh hiện thị trên điều khiển thi thiết kế hoặc vào thời gian chạy của chương trình

- Để thiết lập ảnh hiển thị vào thời gian chạy chương trình thì ta cần sử dụng hàm LoadPicture nh sau:

picTenDk.Picture= LoadPicture(Đường dẫn đến file ảnh)

- Để xóa hình ảnh đang hiển thị thực hiện lệnh

picTenDk.Picture= LoadPicture(“”)

5.12.3. Phương thứcPicturebox là khiển cho phép vẽ các hình ảnh đồ họa trên nó thông qua các

phương thức nội tại trong nó.

- Phương thức vẽ đường tròn Circle (x, y), R, Color, ví dụ vẽ đường tròn tại tọa độ 50,50 với bán kính 20, và mầu đỏ Circle (50, 50), 20, vbRed.

- Phương thức vẽ đoạn thẳng Line (xd,yd)-(xc,yc), Color, ví dụ vẽ 1 đoạn thẳng từ điểm (200,200) đến (1000,1500) có mầu xanh lá cây Line (200,200)- (1000,1500), vbGreen.

- Phương thức Print thực hiện in các biểu thức, giá trị lên điều khiển. Ví dụ in dòng chữ “Hello”, Print “hello”.

5.12.3. Ví dụXây dựng chương trình có giao diện

như hình bên, khi kích chuột trên điều khiển picturebox thì vẽ một hình tròn với bán kính 200 có mầu đỏ tại vị trí kích chuột và nối tâm của hình tròn vẽ trước đó với đường tròn vừa vẽ bằng một đoạn thẳng có mầu xanh da trời.

84

Page 85: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Các bước thực hiện:

Bước 1: Tạo một đề án mới

Bước 2: Thiết kế giao diện

Điều khiển Thuộc tính Giá trị

Form1Name frmTestPictureBox

Caption Test picturebox

Picture1 Name picPaint

Bước 3: Viết code

Trong chương trình chúng ta cần khai báo hai biến xd, yd để lưu trữ tọa độ điểm tâm của hình tròn vẽ trước đó, biến kt xác định là đường tròn được vẽ là đường tròn từ thứ 2, 3,…, nếu là đường tròn thứ 2 trở đi thì mới vẽ đoạn thẳng, kt = true có nghĩa đường tròn được vẽ là đường tròn đầu tiên, kt = false có nghĩa đường tròn được vẽ là 2, 3, …. Thực hiện các lệnh vẽ trong sự kiện MouseDown.

Dim xd, yd As LongDim kt As BooleanPrivate Sub Form_Load() xd = 0 yd = 0 kt = TrueEnd Sub

Private Sub picPaint_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)

picPaint.Circle (x, y), 200, vbRed picPaint.ForeColor = vbGreen If kt = True Then xd = x yd = y kt = False Else picPaint.Line (xd, yd)-(x, y), vbBlue xd = x yd = y End IfEnd Sub

5.13. BÀI TẬPBài 1. Xây dựng chương

trình tính diện tích và chu vi hình chữ nhật có giao diện như hình bên. Khi chọn nút

85

Page 86: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

“Tính” thì thực hiện tính diện tích và chu vi của hình chữ nhật, kết quả được hiện thị trong các textbox tương ứng.

Bài 2. Xây dựng chương trình tính diện tích và chu vi hình tròn có giao diện như hình bên. Khi chọn nút “Tính” thì thực hiện tính diện tích và chu vi của hình chữ nhật, kết quả được hiện thị trong các textbox tương ứng.

Bài 3. Xây dựng chương trình có giao diện như hình bên thực hiện tính diện tích và chu vi hình tam giác biết tọa độ ba đỉnh của tam giác đó (ở đây giả thiết 3 toa độ nhập vào luôn tạo thành một tam giác). Khi chọn nút “Tính” thì thực hiện tính diện tích và chu vi của tam giác, kết quả được hiện thị trong các textbox tương ứng.

Bài 4. Xây dựng chương trình tính diện tích phần gạch chéo của hinh bên khi biết D1, D2.

Bài 5. Thiết kế form như hình bên (lưu ý: đặt tên cho các điều khiển theo qui ước đặt tên, ví dụ tên nút lệnh cmd___)

86

Page 87: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Bài 6. Xây dựng chương trình có giao diện như hình bên. Khi form xuất hiện thì nạp các mục sau vào combobox” “Chọn nền”, “Nền xanh”, “Nền vàng”, “Nền đỏ”; nạp các mục sau vào listbox: “Chữ xanh”, “Chữ đỏ”, “Chữ tím”, “Chữ vàng”, “Chữ trắng”. Khi chọn một mục trên ComboBox thì màu nền của khung chữ bị thay đổi (xanh, đỏ, vàng). Khi chọn một mục trên Listbox thì màu chữ trong khung chữ bị thay đổi theo mẫu đã chọn. Chọn nút Thoát khỏi chương trình thì kết thúc.

87

Page 88: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

CHƯƠNG 6

NGÔN NGỮ LẬP TRÌNH VISUAL BASIC

6.1. BIẾN, HẰNG 6.1.1. Biến

Biến (variable) là đại lượng có giá trị thay đổi, biến của chương trình là tên của một vùng bộ nhớ lưu trữ dữ liệu.

Vùng nhớ của một kiểu dữ liệu nào thì nó chỉ có thể lưu được các giá trị của kiểu dữ liệu đó. Ngoại trừ vùng nhớ không có kiểu xác định thì nó có thể lưu giá trị của một kiểu bất kì.

Ví dụ: Nếu ta có một biến kiểu nguyên (Interger) thì nó chỉ có thể lưu các số nguyên trong khoảng [-32768, 32767].

Cách đặt tên biến: Tên biến là một chuỗi kí tự thoả mãn các điều kiện sau:

+ Bắt đầu bằng một kí tự hoặc dấu gạch chân ( _ )

+ Không chứa dấu cách (Space bar)

+ Không chứa các kí tự đặc biệt (+, -, 8, / …)

+ Các kí tự viết hoa hoặc không viết hoa có tác dụng như nhau

Khai báo biến trong VB, ta có thể khai báo biến trong phần khai báo chung Declarations của biểu mẫu (mở cửa sổ Code, chọn General trong hộp điều khiển, chọn Declarations trong hộp sự kiện) hoặc khai báo bên trong một thủ tục. Cú pháp như sau:

[Dim | Public | Static] <Danh sách tên biến> [As <Kiểu dữ liệu>]

+ Tên biến: có thể dài 256 ký tự bao gồm các chữ cái, chữ số và dấu gạch dưới, tên biến phải bắt đầu bằng một chữ cái, VB không phân biệt chữ hoa chữ thường.

+ Khai báo với từ khoá Dim: là biến cục bộ, chỉ tồn tại và có phạm vi tác dụng trong các thủ tục của biểu mẫu hoặc trong thủ tục mà nó được khai báo.

+ Khai báo với từ khoá Public: là biến toàn cục, tồn tại và có phạm vi tác dụng trong toàn ứng dụng.

+ Khai báo với từ khoá Static: là biến cục bộ tĩnh, khi thủ tục chấm dứt giá trị của nó không mất đi mà vẫn giữ lại để tiếp tục hoạt động khi thủ tục được gọi trong lần sau.

Ví dụ:Public Kt As BooleanDim s, w As String

88

Page 89: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

6.1.2. HằngDùng để chứa những dữ liệu có giá trị không đổi trong suốt quá trình tính

toán, sử dụng tên hằng thay cho số làm chương trình sáng sủa, dễ đọc nhờ tên gợi nhớ thay vì các con số.

VB cung cấp một số hằng định nghĩa sẵn, ta có thể xem tại cửa sổ Object Browser.

Để mở cửa sổ Object Browser ta có thể thực hiện theo 2 cách: Chọn View\Object Browser hoặc bấm phím tắt F2

Ngoài ra ta cũng có thể tự tạo hằng số theo cấu trúc:

[Public | Private] Const <Tên hằng> [As <Kiểu dữ liệu>] = <Giá trị>Ví dụ:

Public Const Pi = 3.14Public Const strName = "Nguyễn Văn A", strPro =

"Visual Basic"Public Const T = 2

Phạm vi hoạt động: tương tự như biến, hằng khai báo trong thủ tục chỉ hoạt động trong thủ tục, khai báo cho biểu mẫu chỉ hoạt động trong biểu mẫu, khai báo Public hoạt động trên toàn ứng dụng.

6.2. KIỂU DỮ LIỆU6.2.1. Kiểu số 

STT Tên kiểu Mô tả

1 Byte Kiểu số nguyên 1 byte lưu các số 0- 255

2 IntegerKiểu số nguyên 2 byte lưu các số trong khoảng

–32768, 32767

3 LongKiểu số nguyên 4 byte lưu các số trong khoảng

–2147483648..2147483647

4 Single Kiểu số thực 4 byte lưu các số có trị tuyệt đối từ

89

Page 90: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

1.5*10-45...3.4*1038

5 DoubleKiểu số thực 8 byte lưu các số có trị tuyệt đối từ

5.0*10-324...1.7*10308

Trên kiểu dữ liệu số chúng ta có thể thực hiện các phép toán: cộng (+), trừ (-), nhân (*), chia (/ hoặc \) trong đó: ‘/’ là phép chia thập phân, ví dụ 5/2=2.5; ‘\’ là phép chia lấy phần nguyên, ví dụ 5\2=2; phép mod chia lấy phần dư, ví dụ 5 mod 2=1; phép mũ ^ tính giá trị x^y, ví dụ 5^3 = 125.

Một số hàm có đối kiểu số và trả lại giá trị kiếu số:

Round: Hàm làm tròn số thực, ví dụ: Round(12.3456 , 2) = 12.35

Int: Hàm trả về phần nguyên của số thực, ví dụ: Int(43.67) = 43

Randomize: Khởi tạo bộ số ngẫu nhiên

Rnd: Sinh các số ngẫu nhiên từ 0 đến 1

IsNumeric(n): Trả về True nếu n có kiểu số, False nếu n không phải kiểu số

6.2.2. Kiểu xâu ký tự (String)String là một chuỗi các ký tự được đặt trong cặp dấu nháy kép. Xử lý kiểu dữ

liệu kiểu chuỗi ta sử dụng toán tử, hàm sau:

+ &: Toán tử ghép xâu

+ Len(s): Trả về chiều dài của xâu s

+ Left(s,n): Trả về n ký tự bên trái của xâu s

+ Right(s,n): Trả về n ký tự bên phải của xâu s

+ Mid(s,vt,n): Trả về n ký tự bắt đầu từ vị trí vt của xâu s

+ InStr(vt,s,s1,ts): Trả về vị trí xâu s1 trong xâu s kể từ vị trí vt, nếu không có trả về 0

Nếu tham số ts = vbTextCompare: Tìm kiếm không phân biệt chữ hoa, chữ thường

Nếu ts = vbBinaryCompare: Tìm kiếm có phân biệt chữ hoa chữ thường

+ Replace(s,s1,s2,vt,ts1,ts2): Thay thế xâu s1 trong xâu s bởi xâu s2 bắt đầu từ vị trí vt

Tham số ts1 chỉ số lần thay thế, nếu =2 có nghĩa là 2 lần thay thế, tham số này mang giá trị mặc định -1, nghĩa là thay thế toàn bộ.

Tham số ts2 có ý nghĩa tương tự tham số ts của hàm InStr

+ Asc(ch): Trả về mã ASCII của ký tự ch

+ Chr(n): Trả về ký tự có mã ASCII = n

90

Page 91: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Chú ý: một số lập trình viên Visual Basic thích dùng dấu + để nối hai chuỗi thay vì dùng dấu &, mặc dù hai phép toán này là một nhưng thực ra dùng dấu + có điểm bất tiện vì dấu + là phép toán nên nó sẽ kiểm tra kiểu dữ liệu. Nếu ta nối một số và một chuỗi với nhau nó sẽ chuyển đổi từ chuỗi sang số trước khi thực hiện sự kết nối, hơn nữa việc chuyển đổi này được thực hiện tự động không hề báo lỗi khi biên dịch

Khai báo: có hai cách khai báo một biến kiểu chuỗi ký tự

Cách 1: Khai báo một biến kiểu chuỗi có chiều dài thay đổi, nó có thể tăng hoặc giảm tuỳ thuộc vào dữ liệu được gán

Dim s As StringCách 2: khai báo một biến kiểu chuỗi có độ dài cố định

Dim s As String *10 Biến s gồm 10 ký tự, nếu s được gán bởi một chuỗi có độ dài ít hơn 10 ký tự

thì s sẽ được tự động thêm vào phần đuôi các ký tự trắng cho đủ 10, ngược lại nếu chuỗi có độ dài nhiều hơn 10 ký tự thì VB sẽ tự động chặt bỏ những ký tự thừa.

6.2.3. Kiểu BooleanLà kiểu dữ liệu chỉ nhận một trong hai giá trị True/False, Yes/No, On/Off. Giá

trị mặc định của Boolean là False. Trên kiểu dữ liệu này chúng ta thực hiện các phép toán And, Or, not. Giả sử A, B là hai biểu thức kiểu Boolean, khi đó để xác định giá trị của các phép toán trên A, B ta thực hiện như trong bảng dưới đây.

a. Phép và (And)

A B A And B

True True True

True Fale False

False True False

False Fale False

b. Phép hoặc (Or)

A B A Or B

True True True

True False True

False True True

False False False

91

Page 92: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

c. Phép phủ định (Not)

A Not A

True False

False True

d. Một số ví dụNot (2>3) = True3>1) And 12<11) = False3>1) Or (4>8) = True

6.2.4. Kiểu DateDữ liệu kiểu Date được đặt trong cặp dấu #, ví dụ: #10/12/04#

Date có các hàm thông dụng sau:

+ Now: trả về ngày và giờ hiện hành

+ Day(Date): trả về ngày của Date

+ Month(Date): trả về tháng của Date

+ Year(Date): trả về năm của Date

+ IsDate(d): trả về True nếu d có kiểu Date, ngược lại trả về False

+ DateSerial(Year, Month, Day): trả về một date tương ứng với các giá trị Year, Month, Day đã chỉ ra.

Ví dụ: DateSerial(1979,10,20) cho giá trị ngày #20/10/1979#

+ DateDiff(Type, Date1, Date2): trả về khoảng cách Type giữa hai ngày Date1 và Date2. Type có các giá trị sau: “YYYY”–year, “M”–month, “D”–day, “W”– weekday, “WW”–week.

Ví dụ: DateDiff("ww",DateSerial(2006,08,01),DateSerial(2006,08,31))= 4

(từ 01/08/2006 đến 31/08/2006 cách nhau 4 tuần)

+ DateAdd(Type, Number, Date1): trả về một giá trị date cách Date1 một khoảng number type

Ví dụ: DateAdd("d", 10, "01/08/06") = #11/08/2006#

DateAdd("yyyy", 4, “01/08/06”) = "01/08/2010"

Chú ý: định dạng hiển thị của ngày tháng phụ thuộc vào quy định của Windows, giá trị mặc định là hiển thị theo định dạng kiểu Mỹ (tháng trước - ngày sau). Ta có thể thay đổi dạng hiển thị ngày trước – tháng sau bằng cách thay đổi trong hộp hội thoại Date tại mục Regional Setting của cửa sổ Control Panel trong Windows.

92

Page 93: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

6.2.5. Kiểu VariantLà kiểu dữ liệu không xác định, có thể chứa mọi loại dữ liệu như: chuỗi, số,

ngày tháng… Khi thực hiện ta không cần chuyển đổi kiểu dữ liệu, VB làm việc đó một cách tự động. Sử dụng Variant cũng thuận tiện trong trường hợp không biết trước kiểu dữ liệu.

Những Chú ý: khi dùng biến Variant :

+ Nếu muốn thực hiện các hàm toán học Variant phải chứa các giá trị số

+ Nếu muốn nối chuỗi phải dùng toán tử & thay vì dùng toán tử +

Khai báo: Dim aDim b As Variant

6.2.6. Kiểu ObjectBiến kiểu Object chứa một địa chỉ 4 byte (32 bit) trỏ đến đối tượng trong ứng

dụng hiện hành.

Khai báo: Dim objDb As ObjectSet objDb=OpenDatabase(“c:\vb5\Biblio.mdb”)

Khi khai báo biến đối tượng nên chỉ ra tên lớp tường minh Ví dụ: CheckBox thay vì Control, Data thay vì Object… khi đó ứng dụng sẽ chạy nhanh hơn. Ta có thể xem danh sách các lớp trong cửa sổ Object Browser như sau :

93

Page 94: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

6.2.6. Kiểu mảng- ARRAYMảng là một tập hợp các biến có cùng tên và cùng kiểu dữ liệu. Dùng mảng

làm chương trình đơn giản và ngắn gọn hơn. Mảng có biên trên, biên dưới và các thành phần trong mảng là liên tục giữa 2 biên.

Trong VB có 2 loại mảng là mảng có chiều dài cố định và mảng động. Đối với mảng động ta có thể thay đổi chiều dài của mảng trong lúc thi hành.

Khai báo mảng cố định:Dim a(10) as Integer - Khai báo mảng nguyên a, cận dưới mặc định =0, cận

trên =10

Dim a(1 to 10) as Integer - Khai báo tường minh cận dưới

Cận trên và cận dưới của mảng có thể xác định qua 2 hàm:

Lbound(a): Trả về cận trên của mảng a

Ubound(a): Trả về cận dưới của mảng a

Mảng nhiều chiều: ví dụ sau khai báo một mảng 2 chiều có 10 phần tử

Static MatrixA(9, 9) As Double

Static MatrixA(1 To 10, 1 To 10) As Double

Khai báo mảng động: Mảng động có thể thay đổi kích thước do đó giúp quản lý bộ nhớ một cách hiệu quả, ta có thể dùng mảng lớn trong một khoảng thời gian ngắn sau đó xoá bỏ để trả vùng nhớ cho hệ thống.

Dim a() As IntegerKhi thực hiện ta cấp phát số phần tử thực sự cho mảng bằng lệnh ReDim

ReDim a(9, 9) Lệnh ReDim được thực hiện khi chạy chương trình.

Chú ý: Khi sử dụng một biến VB không bắt buộc phải khai báo, do đó khi người lập trình viết sai tên biến nó sẽ tạo ra một biến mới với tên đó và tính toán theo giá trị của biến này.

Để tránh rắc rối trên, ta nên quy định VB phải báo lỗi khi gặp tên biến chưa khai báo bằng cách đặt dòng lệnh Option Explicit trong phần Declarations của biểu mẫu, hoặc ta có thể đặt chế độ tự động chèn dòng Option Explicit bằng cách vào Tools\ Option\ Editor\ Chọn Require Variable Declaration.

Để gán giá trị cho một biến ta dùng toán tử ‘=’

VB không cho phép khai báo biến trên một hàng, ví dụ: Dim a, b As Integer sẽ khai báo biến a có kiểu không xác định Variant, biến b có kiểu Integer.

94

Page 95: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

6.4. HÀM KIỂU TRA KIỂU DỮ LIỆUĐể kiểm tra kiểu dữ liệu của một biến ta có thể dùng hàm VarType theo cú

pháp :VarType(tên biến)

Ví dụ: Dim a As IntegerForm1.Print VarType(a) sẽ cho kết quả là vbInteger.

Dưới đây là bảng danh sách các kiểu dữ liệu trả về của VarType

Giá trị VarType Giải thích

0 – vbEmpty Không chứa gì cả

1 – vbNull Không có dữ liệu hợp lệ

2 – vbInteger Dữ liệu Integer dạng chuẩn

3 – vbLong Dữ liệu kiểu Long Integer

4 - vbSingle Dữ liệu kiểu chấm động single

5 – vbDouble Dữ liệu kiểu chấm động Double

6 – vbCurrency Kiểu Currency

7 – vbDate Kiểu ngày giờ

8 – vbString Kiểu chuỗi đơn giản

9 – vbObject Kiểu đối tượng

10 – vbError Đối tượng Error

11 – vbBoolean Kiểu giá trị Boolean chuẩn

12 – vbVariant Kiểu Variant

13 – vbDataObject Kiểu DAO chuẩn

14 – vbDecimal Giá trị thuộc hệ thập phân Decimal

17 – vbByte Kiểu Byte

36 – UserDefinedType Kiểu do người dùng định nghĩa

8192 - vbArray Kiểu mảng

6.5. CHUYỂN ĐỔI KIỂU DỮ LIỆU

Hàm chuyển đổi Đổi sang kiểu

CBool Boolean

CByte Byte

95

Page 96: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

CDate Date

CDbl Double

CInt Integer

Val Integer

CLng Long

CSng Single

CStr String

CVar Variant

Chú ý: giá trị truyền cho hàm phải hợp lệ nghĩa là phải thuộc khoảng của kiểu kết quả nếu không VB sẽ báo lỗi.

Ví dụ:

+ CDate(“25/04/79”) trả về giá trị kiểu ngày tháng #25/04/79#

+ CInt(“25”) = 25 nhưng CInt(“25a”) hoặc Cint(“a25”) sẽ báo lỗi

+ Val(“25”)=Val(“25a”) = 25 nhưng Val(“a25”) = 0

6.6. CÁC CẤU TRÚC ĐIỀU KHIỂN6.6.1. Câu lệnh lựa chọn If…Then…Else

Dạng 1: Một dòng lệnh: If <Điều kiện> Then <Dòng lệnh đơn>

Chú ý: Dòng lệnh được viết trên cùng một hàng với If…Then, và không có End If

Dạng 2: Nhiều dòng lệnh

If <Điều kiện> Then

<Các dòng lệnh>

End If

Dạng 3: If … Then … Else

If <Điều kiện 1> Then

<Khối lệnh 1>

Else If <Điều kiện 2> Then

<Khối lệnh 2>

…………………..

Else

<Khối lệnh n>

End if

96

Page 97: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Ví dụ 1: Xây chương trình giải phương trình bậc 2 ax2+ bx + c =0, với a, b, c là các số thực.

Bước 1: Tạo một đề án mới

Bước 2: Thiết kế giao diện

Điều khiển Thuộc tính Giá trị

Form1Name frmGptb2

Caption Giai phuong trinh bac 2

Label1 Caption Giải phương trình bậc 2

Label2 Caption Hệ số a =

Label3 Caption Hệ số a =

Label4 Caption Hệ số b =

Label5 Caption X1 =

Label6 Caption X2 =

Command1 Name cmdGiai

Caption &Giải phương trình

Command2 Name cmdThoat

Caption &Thoát

Kết quả thiết kế giao diện

Bước 3: Viết codePrivate Sub CmdGiai_Click()

97

Page 98: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Dim delta, a, b, c, x1, x2 As Single a = Val(Txta.Text) b = Val(Txtb.Text) c = Val(Txtc.Text) delta = b ^ 2 - 4 * a * c If delta < 0 Then MsgBox "Phương trình vô nghiệm" If delta = 0 Then x1 = -b / (2 * a) x2 = x1 Txtx1 = CStr(x1) Txtx2 = CStr(x2) End If If delta > 0 Then x1 = (b + delta ^ (0.5)) / (2 * a) x2 = (b - delta ^ (0.5)) / (2 * a) Txtx1 = Format(x1, "0.000") Txtx2 = Format(x2, "0.000") End IfEnd SubPrivate Sub CmdThoat_Click() EndEnd Sub

Ví dụ 2: Xây dựng chương trình giải hệ phương trình bậc nhất 2 ẩn với các hệ số là số thực

Bước 1: Tạo một đề án mới

Bước 2: Thiết kế giao diện

Điều khiển Thuộc tính Giá trị

Form1Name frmGptb2

Caption Giai phuong trinh bac 2

Label1 Caption Hệ số a =

Label2 Caption Hệ số a =

Label3 Caption Hệ số b =

Label1 Caption Hệ số a1 =

Label2 Caption Hệ số b1 =

Label3 Caption Hệ số c1 =

Label Caption X =

Label6 Caption Y =

98

{ax+by=c ¿ ¿¿¿

Page 99: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Command1 Name cmdGiai

Caption &Giải hệ phương trình

Command2 Name cmdThoat

Caption &Thoát

Kết quả thiết kế ta có giao diện

Bước 3: Viết codePrivate Sub CmdGiai_Click() Dim a, b, c, a1, b1, c1, d, dx, dy As Single a = Val(Txta.Text) b = Val(Txtb.Text) c = Val(Txtc.Text) a1 = Val(Txta.Text) b1 = Val(Txtb1.Text) c1 = Val(Txtc1.Text) d = a * b1 - a1 * b dx = c * b1 - c1 * b dy = a * c1 - a1 * c If d = 0 Then If (dx <> 0) Or (dy <> 0) Then MsgBox "Hệ vô nghiệm" Else MsgBox "Hệ vô số nghiêm" End If Else Txtx.Text = Format(dx / d, "0.00") Txty.Text = Format(dy / d, "0.00") End If End SubPrivate Sub CmdThoat_Click() End

99

Page 100: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

End Sub6.6.2. Câu lệnh lựa chọn Case

Select Case <Biểu thức kiểm tra>

Case <Biểu thức 1>

<Khối lệnh 1>

Case <Biểu thức 2>

<Khối lệnh 2>

…………………..

Case Else

<Khối lệnh n>

End Select

Chú ý: Giả sử khi kiểm tra biểu thức số Index ta có các trường hợp sau:

Select Case Index

Case 1 to 10 ‘ Index [1,10]

Case 12 ‘ Index =12

Case Is > 50 ‘ Nếu muốn so sánh Index > 50 ta không thể viết trực tiếp Case Index > 50, mà phải dùng từ khóa Is

Ví dụ: Xây dựng chương trình có giao diện như hình bên, thực hiện nhập một tháng và một năm dương lịch, tính và đưa ra số ngày của tháng và năm đó?Yêu cầu: Chỉ được phép nhập số nguyên vào hai hộp văn bản chứa tháng và năm, tháng phải có giá trị từ 1 đến 12, năm gồm 4 chữ số, kết quả chỉ được tính khi người dùng nhập đủ cả tháng và năm.

Các bước thực hiện

Bươc 1: Tạo ra một đề án mới

Bước 2: Thiết kế giao diện

Điều khiển Thuộc tính Giá trị

Form1 Name frmNgaythang

BorderStyle 1-Fixed Single

Caption Program of date

100

Page 101: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Font .VnTime – 12

Lable1 Caption Nhập tháng

Lable2 Caption Nhập năm

Lable3 Name LblKetqua

Caption (Rỗng)

TextBox1

Name txtThang

MaxLength 2

Text (Rỗng)

TextBox2

Name txtNam

MaxLength 4

Text (Rỗng)

Command1Name cmdKetqua

Caption &Kết quả

Command2Name cmdLamlai

Caption &Làm lại

Command3Name cmdThoat

Caption &Thoát

Bước 3: Viết code

Để đảm bảo chỉ cho phép người dùng nhập số vào hộp txtThang, ta viết code cho sự kiện KeyPress của hộp này như sau:

Private Sub txtThang_KeyPress(KeyAscii As Integer) If (KeyAscii < Asc("0") Or KeyAscii > Asc("9")) And

(KeyAscii <> 8) Then KeyAscii = 0 End IfEnd SubTương tự ta viết code cho sự kiện KeyPress của hộp txtNam

Để kiểm tra người dùng đã nhập dữ liệu cho tháng chưa? và giá trị nhập vào có nằm trong khoảng [1,12] không? ta viết code cho sự kiện LostFocus của txtThang như sau:

Private Sub txtThang_LostFocus() Dim T As Integer

101

Page 102: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

If txtThang.Text = "" Then lblKetqua.Caption = "Bạn phải nhập dữ liệu cho

tháng" txtThang.SetFocus Else T = CInt(txtThang.Text) If (T < 1) Or (T > 12) Then lblKetqua.Caption = "Tháng phải nằm trong

khoảng [1,12]" txtThang.Text = "" txtThang.SetFocus End If End IfEnd SubNếu người dùng không nhập giá trị cho tháng, chương trình sẽ yêu cầu quay

lại để nhập dữ liệu bằng lệnh txtThang.SetFocus. Ngược lại nếu nhập một số không phải là tháng thì dữ liệu cũ sẽ bị xoá đi (txtThang.Text=””) và hộp txtThang cũng được SetFocus để nhập lại dữ liệu.

Viết code cho nút cmdKetqua:Private Sub cmdKetqua_Click() Dim Thang As Integer Dim Nam As Integer Dim Ngay As Integer If txtNam.Text = "" Then lblKetqua.Caption = "Bạn phải nhập dữ liệu cho

năm" txtNam.SetFocus Exit Sub End If Thang = CInt(txtThang.Text) Nam = CInt(txtNam.Text) Select Case Thang Case 1, 3, 5, 7, 8, 10, 12 Ngay = 31 Case 4, 6, 9, 11 Ngay = 30 Case 2 If Nam Mod 4 = 0 Then Ngay = 29 Else Ngay = 28 End If End Select

102

SetFocus: là một phương thức của hộp TextBox, có tác dụng chuyển tiêu điểm tới hộp textbox đó để sẵn sàng cho việc nhập dữ liệu.

Page 103: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

lblKetqua.Caption = "Tháng " & CStr(Thang) & " năm " & CStr(Nam) & " có " & CStr(Ngay) & " ngày "

End SubKhi kích chuột vào nút cmdKetqua, chương trình kiểm tra nếu năm chưa được

nhập thì thoát khỏi chương trình (Exit Sub) để quay lại nhập dữ liệu cho năm (txtNam.SetFocus)

6.6.3. Cấu trúc lặp For…NextCho phép thi hành một đoạn chương trình nhiều lần với số lần lặp xác định

For <Biến đếm> = <GTđầu> To <GTcuối> [Step <Bước nhảy>]

<Khối lệnh>

Next <Biến đếm>

Biến đếm, GTđầu, GTcuối, bước nhảy có giá trị nguyên (nếu là thực VB sẽ tự động làm tròn). Bước nhảy có thể âm hoặc dương, nếu không được chỉ ra thì mặc định bước nhảy=1

Ví dụ: Xây dựng chương trình tính tổng n số tự nhiên đầu tiên.

Bước 1: Tạo một đề án mới

Bước 2: Thiết kế giao diện

Điều khiển Thuộc tính Giá trị

Form1Name frmTinhtong

Caption Tinh tong 1+2+..+n

Label1 Caption Nhập N =

Label2 Caption Kết quả

Text1 Name txtN

Text “”

Text2 Name txtS

Text “”

Command1 Name cmdTinh

Caption &Tính tổng

Command2 Name cmdThoat

Caption T&hoát

Kết quả thiết kế giao diện

103

Page 104: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Bước 3. Viết code Private Sub CmdThoat_Click() EndEnd SubPrivate Sub CmdTinh_Click() Dim n, i As Integer Dim s As Single If Not IsNumeric(TxtN.Text) Then MsgBox "Bạn phải nhập một số nguyên vào " Exit Sub End If n = Val(TxtN.Text) s = 0 For i = 1 To n s = s + i Next i TxtS.Text = sEnd Sub

6.6.4. Cấu trúc lặp Do … LoopCho phép thi hành một đoạn chương trình nhiều lần với số lần lặp không xác

định

a. Lặp trong khi điều kiện là TrueDo While <Điều kiện> <Khối lệnh>Loop

b. Lặp điều kiện sauDo <Khối lệnh>Loop While <Điều kiện>

c. Lặp trong khi điều kiện trướcDo Until <Điều kiện> <Khối lệnh>Loop

d. Lặp trong khi điều kiện là False và luôn có ít nhất 1 lần thi hành khối lệnhDo

104

Page 105: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

<Khối lệnh>Loop Until <Điều kiện>Chú ý: Lệnh Exit For cho phép thoát ra sớm khỏi vòng lặp For

Lệnh Exit Do cho phép thoát ra sớm khỏi vòng lặp Do … Loop

Ví dụ: Dùng vòng lặp For để khởi tạo các giá trị ngẫu nhiên trong khoảng (0, 100) cho mảng một chiều:

Dim m(10) As IntegerDim i As IntegerRandomizeFor i = 1 To 10 m(i) =Int(100 * Rnd)Next i

6.7. GỠ LỖI CHƯƠNG TRÌNHỞ trong những giai đoạn đầu lập trình các chương trình không tránh khỏi có

sai sót và mắc lỗi, tuy nhiên ta có thể giảm khả năng mắc lỗi đến mức tối thiểu.

6.7.1. Một số giải pháp giảm lỗiLập trình là một công việc phức tạp vì vậy khi thực hiện lập trình chúng ta

thường mắc lỗi ngay cả khi là một người lập trình có nhiều kinh nghiệm. Để giảm thiểu lỗi xảy ra khi lập trình đòi hỏi người lập trình cần phải thực hiện một số công việc sau đây: thiết kế cẩn thận, ghi chú các vấn đề quan trọng và cách giải quyết cho từng phần, ghi chú từng thủ tục và mục đích của nó, chú thích rõ ràng trong chương trình (trong VB dòng chú thích được bắt đầu bởi dấu nháy đơn ‘ ). Thực hiện khai báo đối tượng có dữ liệu kiểu tường minh thay vì kiểu chung như Object, Control.

Một trong những nguyên nhân gây lỗi là gõ sai tên biến hoặc nhầm lẫn tên điều khiển, dùng lựa chọn Option Explicit để tránh trường hợp này.

Truyền giá trị khi gọi thủ tục là một trong những cách giảm thiểu khă năng lỗi, tuy nhiên trở ngại duy nhất của nó là tiêu tốn nhiều vùng nhớ.

Sử dụng đối tượng Err là đối tượng do VB cung cấp sẵn, sau đây là một số thuộc tính thông dụng của nó:

Thuộc tính Giải thích

Number Giá trị mặc định, số hiệu lỗi

Description Mô tả lỗi

Source Tên đối tượng gây ra lỗi

105

Page 106: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

6.7.1. Gỡ lỗiCó thể tạm dừng chương trình bằng cách chọn Break từ menu Run hoặc nhấn

biểu tượng Break trên thanh công cụ, hoặc nhấn tổ hợp phím Ctrl+Break. Khi ứng dụng đang ở chế độ dừng nút Continue và nút End sẽ sáng lên.

a. Cửa sổ ImmediateCửa sổ này cho phép xem giá trị hiện thời của các biến trong chương trình

hoặc cho phép thực hiện nhanh các phép toán đơn giản. Mở cửa sổ Immediate bằng cách nhấn Ctrl+G hoặc chọn View\ Immediate Windows

Chú ý: cửa sổ Immediate chỉ hoạt động khi chương trình đang ở chế độ dừng

Ví dụ: Viết chương trình tính tổng các số nguyên từ 1 đến 3000. Tạo dự án mới, mở cửa sổ code viết mã lệnh như sau:

+ Chạy chương trình, kích chuột tại form để gọi thủ tục Private Sub Form_Click() tính T

+ Bấm Ctrl+Break để dừng chương trình

+ Bấm Ctrl+G để mở cửa sổ Immediate, để xem giá trị của một biến ta gõ dấu hỏi trước tên biến rồi bấm Enter, ví dụ gõ ?T và bấm Enter thì giá trị của T sẽ hiện ở dòng dưới

b. Cửa sổ WatchCho phép xem giá trị của biến, thuộc tính hay biểu thức được chọn. Thậm chí

có thể buộc chương trình tạm ngừng sau một số lần lặp.

Ví dụ: Viết chương trình hiển thị số đếm từ 1 đến 4, dùng cửa sổ Watch để tạm ngừng chương trình sau 2 lần lặp. Tạo dự án mới, mở cửa sổ code viết mã lệnh

như sau:

106

Page 107: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

+ Kích chuột chọn biến i, bấm chuột phải chọn Add Watch từ menu ngữ cảnh, xuất hiện hộp thoại Add Watch. Đưa vào ô Expression biểu thức i=2 và chọn Break When Value Is True trong hộp Watch Type

Chọn OK, xuất hiện cửa sổ Watches với các thuộc tính như sau:

+ Chạy chương trình, kích chuột vào form xuất hiện kết quả đầu tiên ứng với i=1

Khi đạt đến i=2 chương trình tạm ngừng và hiển thị điểm dừng trong cửa sổ code

Đưa con trỏ chuột lên trên biến i cửa sổ Tooltip sẽ hiển thị giá trị hiện thời của biến đó

+ Để tiếp tục chạy chương trình kích chọn biểu tượng Continue trên thanh công cụ, kết quả sẽ hiện ra các số 2, 3, 4

+ Để xoá lựa chọn Watch cho biến i ta kích chuột phải tại dòng thuộc tính đặt cho biến i trong cửa sổ Watches rồi chọn Delete Watch

c. Tìm hiểu thanh công cụ Debug

Thứ tự nút bấm từ trái sang phải như sau:

107

Page 108: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

+ Start – F5: thực hiện chương trình

+ Break : tạm dừng chương trình

+ End : kết thúc chương trình

+ BreakPoint – F9: đánh dấu hoặc bỏ đánh dấu dòng lệnh mà khi chạy chương trình sẽ tạm dừng tại đó. Khi có lỗi xảy ra và ta chưa khoanh được khu vực nghi ngờ thì BreakPoint là giải pháp tốt nhất để cô lập vùng chương trình bị lỗi.

Đưa con trỏ đến dòng lệnh cần đánh dấu, bấm phím F9 hoặc kích chọn biểu tượng Break, dòng lệnh được đánh dấu sẽ đổi màu. Một ví dụ đặt BreakPoint cho chương trình

+ Step into – F8: Chạy chương trình lần lượt qua từng câu lệnh

Ví dụ: tạo dự án mới, mở cửa sổ code viết mã lệnh như sau:

Liên tục nhấn phím F8 để chạy chương trình, giá trị hiện thời của các biến sẽ xuất hiện trong cửa sổ Locals như sau:

+ Step Over – Shift+F8: hoạt động tương tự Step into nhưng nếu dòng lệnh hiện hành đang gọi một thủ tục thì Step Over sẽ chạy ngang qua thủ tục không nhảy vào bên trong

+ Step Out – Ctrl+Shift+F8: tương tự như Step Over nhưng có thực hiện các lệnh bên trong thủ tục

d. Tìm hiểu thanh công cụ Edit

Thanh công cụ Edit được dùng để hỗ trợ người lập trình khi viết chương trình trong cửa sổ Code. Thứ tự nút bấm từ trái sang phải như sau:

108

Page 109: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

+ List Properties – Ctrl+J: Hiển thị một danh sách các thuộc tính bắt đầu bởi ký tự ngay trước vị trí con trỏ. Ví dụ gõ chữ i rồi kích chọn biểu tượng List Properties sẽ có kết quả như sau:

+ List Constants : Hiển thị một danh sách các hằng số khả dụng, ví dụ:

+ Quick Info – Ctrl+I: hiển thị cú pháp của một thủ tục hoặc một phương pháp, ví dụ:

+ Parameter Info – Ctrl+Shift+I: hiển thị danh sách tham số cho lời gọi hàm hoặc thủ tục hiện hành. Ví dụ ta đã viết hàm Private Function Giaithua(k As Integer) As Integer, khi gọi hàm ta có kết quả như sau:

+ Complete Word – Ctrl+SpaceBar: tự động hoàn tất từ khoá. Ví dụ nếu ta đang gõ Ms vào cửa sổ Code và gọi tính năng Complete Word thì VB sẽ sửa thành MsgBox. Tính năng này rất hữu ích để tránh các lỗi cú pháp do gõ sai chính tả

+ Indent – Tab: đẩy lùi các dòng văn bản được chọn một khoảng tab

+ Outdent – Shift+Tab: đưa các dòng văn bản được chọn về một khoảng tab

+ Comment Block : chuyển các dòng văn bản được chọn thành dòng chú thích, ví dụ:

+ Uncomment Block : xoá các dấu chú thích ở các dòng văn bản được chọn

109

Page 110: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Chú ý: Để sử dụng mặc định các tính năng List Properties, List Constants, Quick Info … trong trang Editor của hộp hội thoại Options (mục menu Tools) ta lựa chọn như sau:

6.8. HỘP THOẠI THÔNG BÁO – MESSAGE Box6.8.1. Khái niệm

Hộp thông báo là hộp thoại cung cấp thông tin để tương tác với người sử dụng, đồng thời cũng là nơi hiển thị các kết quả trung gian trong quá trình gỡ rối

Trong thời gian hiển thị hộp thông báo, VB ngừng mọi hoạt động của biểu mẫu, người dùng chỉ có thể làm việc với hộp thông báo.

6.8.2. Hộp thông báo MsgBoxCấu trúc của hộp thoại thông báo:

MsgBox Nội dung thông báo, Kiểu hộp thông báo, Dòng tiêu đề

Kiểu hộp thông báo được kết hợp bởi 2 kiểu: chức năng + biểu tượng gồm các loại sau:

Hằng tượng trưng Thể hiện Ý nghĩa

110

Page 111: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Các kiểu chức năng

vbOKOnly Chỉ hiển thị nút OK

vbOKCancel Hiển thị các nút OK và Cancel

vbAbortRetryIgnore Hiển thị các nút Abort, Retry và Ignore

vbYesNoCancel Hiển thị các nút Yes, No và Cancel

vbYesNo Hiển thị các nút Yes, No

vbRetryCancel Hiển thị các nút Retry, Cancel

vbMsgBoxHelpButton Hiển thị nút Help

Các kiểu biểu tượng

vbCritical Dùng cho những thông báo lỗi thất bại khi thi hành một công việc nào đó

vbQuestion Dùng cho những câu hỏi yêu cầu người sử dụng chọn lựa

vbExclamation Dùng cho các thông báo của chương trình

vbInformation Dùng cho các thông báo cung cấp thêm thông tin cho người sử dụng

Khi sử dụng một hộp thông báo, đầu tiên ta xác định kiểu của các nút chức năng sau đó chọn kiểu biểu tượng (kiểu biểu tượng có thể có hoặc không).

Ví dụ: hiển thị hộp thông báo “Bạn chưa nhập dữ liệu” với một nút OK và biểu tượng Information ta viết như sau:

MsgBox ”Ban chua nhap du lieu”, vbOKOnly + vbInformation, ”Thong bao”

Kết quả ta có:

111

Page 112: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Chú ý: Trong khi chạy chương trình ta có thể hiển thị giá trị của một biến a bất kỳ bằng hộp thông báo: MsgBox a

Hàm MsgBox

Ngoài chức năng thông báo, hàm MsgBox còn trả về giá trị các nút chức năng mà người dùng đã chọn. Cú pháp của hàm MsgBox như sau:

Msgbox (Nội dung thông báo, Kiểu hộp thông báo, Dòng tiêu đề) = Giá trị trả về

Trong đó giá trị trả về gồm: vbOK, vbCancel, vbAbort, vbRetry, vbIgnore, vbYes, vbNo

Ví dụ, ta có thể viết lại code cho nút cmdThoat với yêu cầu chỉ thoát khi người dùng trả lời có muốn thoát như sau:

Private Sub cmdThoat_Click() If MsgBox("Ban co muon thoat khoi chuong trinh

khong?", vbYesNo + vbQuestion, "Thong bao") = vbYes Then End End IfEnd Sub

6.9. HỘP THOẠI NHẬP LIỆU - INPUTBOXHộp thoại InputBox dùng để nhập dữ liệu trong chương trình, dưới đây là giao

diện của hộp thoại

Cấu trúc:

InputBox("Chuỗi hướg dẫn"[,"Chuỗi tiêu đề hộp thoại"][, "Giá trị mặc định"])

Nếu người sử dụng nhấn OK thì hàm trả lại chuỗi kí tự được nhập vào hộp Text trên hộp thoại.

Nếu người sử dụng nhấn Cancel thì hàm trả lại chuỗi rỗng “”.

Để sử dụng hộp thoại trong chương trình ta cần khai báo một biến kiểu String để nhận giá trị trả lại của hàm trả về.

Ví dụ 1: Xây dựng chương trình thực hiện các yêu cầu sau: chương trình có một Form, trên Form có một nhãn, một nút lệnh. Khi nhấn nút lệnh xuất hiện một

112

Page 113: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

hộp thoại InputBox yêu cầu bạn cho biết tuổi, nhấn nút Ok thì dòng chữ xuất hiện trên nhãn là “Chúc mừng năm nay bạn ” + số tuổi đã nhập + ” tuổi!”.

Các bước thực hiện:

Bước 1: Tạo một đề án mới

Bước 2: Thiết kế giao diện

Điều khiển Thuộc tính Giá trị

Form1Name frmInputBox

Caption Chương trình ứng dụng InputBox

Label1 Name lblChao

Caption “Chào bạn”

Command1 Name CmdTuoi

Caption &Nhập tuổi

Kết quả thiêt kế giao diện

Bước 3: Viết codePrivate Sub CmdTuoi_Click()

Dim t As Stringt = InputBox("Bạn năm nay bao nhiểu tuổi?", "Nhập

tuổi")lblChao.Caption = "Chúc mừng năm nay bạn " & t & “

tuổi!”End Sub

6.10. BÀI TẬPBài 1.

Bài 2.

Bài 3.

Bài 4.

Bài 5.

113

Page 114: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

CHƯƠNG 7

XỬ LÝ TẬP TIN

7.1. MỘT SỐ VẤN ĐỀ LIÊN QUANXử lý tập tin là một nhu cầu không thể thiếu khi xây dựng phần mềm ứng

dụng, bởi hầu hết các loại thông tin trên máy tính đều được lưu trữ trong các tập tin khác nhau. Trong các phần mềm ứng dụng đang được sử dụng, dữ liệu đầu vào của chúng được cung cấp dưới hai hình thức:

+ Nhập trực tiếp từ bàn phím bởi người sử dụng: cách này chỉ phù hợp đối với lượng số liệu không nhiều.

+ Nhập từ tập tin dữ liệu, ví dụ như để dựng được bản đồ số (để thiết kế đường ôtô trên máy tính) thì số liệu về các điểm đo toàn đạc khá nhiều (có thể là vài nghìn điểm đo) và thường được cung cấp dưới dạng các tập tin văn bản.

Việc nhập dữ liệu từ tập tin làm cho mức độ tự động hóa được nâng cao hơn, cho phép các phần mềm ứng dụng có thể kết nối được với nhau thông qua hình thức truyền dữ liệu. Ngoài ra, để lưu lại thông tin hay kết quả sau mỗi phiên làm việc với phần mềm ứng dụng, thì việc sử dụng tập tin làm nơi lưu trữ là phổ biến nhất. Các số liệu nhập vào cũng như các kết quả tính toán của phần mềm sẽ được lưu lại vào một hay nhiều tập tin và chúng sẽ được gọi lại trong phiên làm việc tiếp theo.

Để có thể xây dựng chương trình có khả năng nhập/xuất dữ liệu từ tập tin, thì người lập trình cần phải nắm được các nội dung sau:

+ Kiểu của tập tin: là cách thức tổ chức dữ liệu trong tập tin đó. Hiện nay có vô số các định dạng cho tập tin bởi người dùng có thể tự do định nghĩa. Kiểu định dạng phổ biến nhất dùng để trao đổi dữ liệu là tập tin văn bản (thường có phần mở rộng là TXT, CSV). Với định dạng này ta có thể xem nội dung của tập tin bằng các chương trình soạn thảo đơn giản như Notepad.exe của Windows.

+ Thao tác lên tập tin: là những thao tác nhằm biến đổi nội dung hoặc chính tập tin đó cho phù hợp với mục đích của người dùng. Những thao tác này được thực hiện theo một trình tự nhất định với các chương trình con chuyên trách cho từng nhiệm vụ. Các thao tác cơ bản bao gồm:

- Đọc dữ liệu (Input) từ tập tin vào trong chương trình.

- Ghi dữ liệu (Output) từ chương trình ra tập tin.

- Tìm kiếm dữ liệu trong tập tin: đọc dữ liệu có chọn lọc.

- Tạo mới tập tin: tạo ra tập tin trên đĩa để ghi dữ liệu lên nó.

- Xóa tập tin khi không còn dùng đến nó nữa.

- Di chuyển vị trí (Move) của tập tin từ nơi này đến nơi khác.

114

Page 115: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

- Tạo bản sao (Copy) cho tập tin: tạo một tập tin thứ hai giống hệt tập tin gốc về nội dung nhưng tên hoặc vị trí lưu trữ của tập tin bản sao phải khác so với tập tin gốc.

7.2. CÁC HÌNH THỨC TRUY CẬP TẬP TIN Truy cập tập tin bao gồm các thao tác đọc và ghi dữ liệu. Cách thức truy cập

bao gồm:

+ ruy cập kiểu tuần tự (Sequential): Quá trình đọc và ghi dữ liệu với tập tin theo các khối dữ liệu liên tục từ đầu đến cuối tập tin. Các khối dữ liệu liên tục có thể là các ký tự, các số, mẩu tin, chuỗi, dòng văn bản,…Các khối này được phân cách nhau trong tập tin bằng kí tự dấu phẩy (,) hoặc kí tự xuống dòng. Ví dụ, muốn đọc dòng dữ liệu thứ n trong một tập tin văn bản có m dòng (m>n), không thể ngay lập tức truy cập tới dòng thứ n mà phải lần lượt đọc từ dòng hiện tại (là dòng văn bản mà con trỏ đọc dữ liệu đang ở đó) tới dòng thứ n. Kiểu truy cập tuần tự thường áp dụng với các tập tin văn bản (text file).

Truy cập kiểu ngẫu nhiên (Random): Quá trình đọc và ghi dữ liệu với tập tin được thực hiện dựa trên các mẩu tin có kích thước xác định (đơn vị để đo lường mẩu tin là Byte).

Việc truy xuất đến một mẩu tin là tuỳ ý, không cần tuân theo trình tự mà theo thứ tự của mẩu tin đó trong tập tin. Quá trình truy cập ngẫu nhiên thường được áp dụng cho các tập tin trong đó dữ liệu được tổ chức theo các khối có cấu trúc (các mẩu tin).

Truy cập kiểu nhị phân (Binary): Quá trình đọc và ghi dữ liệu với tập tin được thực hiện theo các khối không giống nhau về kích thước. Quá trình truy cập nhị

115

Page 116: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

phân thường áp dụng cho các tập tin có cấu trúc không cố định và dữ liệu có thể được xác định thông qua các byte dữ liệu được đọc vào.

Trong khuôn khổ giáo trình này, tập tin văn bản và các thao tác lên nó, được trình bày chi tiết bởi tính phổ biến và hữu dụng của loại tập tin này khi làm việc với các phần mềm ứng dụng trong ngành xây dựng công trình giao thông.

Để việc thao tác với các tập tin được thuận lợi, VB cung cấp sẵn hai phương pháp cơ bản:

+ Sử dụng các hàm có sẵn để thao tác trực tiếp lên tập tin (dùng các hàm I/O).

+ Sử dụng một số điều khiển để thao tác gián tiếp lên tập tin (dùng đối tượng FSO).

7.3. XỬ LÝ DỮ LIỆU TRONG TẬP TIN VỚI CÁC HÀM I/O7.3.1. Mở tập tin

Các hàm I/O (Input/Output) dùng để truy xuất các tập tin, trình tự như sau:

1. Mở tập tin: là yêu cầu bắt buộc phải thực hiện trước khi đọc hay ghi dữ liệu vào tập tin.

2. Thực hiện các thao tác với tập tin: đọc hoặc ghi dữ liệu vào tập tin.

3. Đóng tập tin: bắt buộc phải thực hiện khi kết thúc các thao tác với tập tin.

Trong khuôn khổ giáo trình này chỉ trình bày các thao tác theo kiểu tuần tự với tập tin, các kiểu truy cập khác có thể tìm trong MSDN của VBA IDE.

Cú pháp:

Open <đường dẫn> For [Kiểu thao tác] as <filenumber> [Len=Buffersize]

Trong đó:

+ <đường dẫn>: là một giá trị kiểu String dùng để xác định đường dẫn của tập tin (vị trí của nó trên đĩa).

+ <Kiểu thao tác>: cách thức thao tác với tập tin, tham số này có thể nhận một trong các giá trị sau:

- Input: đọc dữ liệu từ tập tin, để không gây lỗi thì tập tin này phải có sẵn trên đĩa.

- Output: ghi dữ liệu vào tập tin với hai điểm cần lưu ý:

* Nếu tập tin là có sẵn thì toàn bộ dữ liệu bên trong nó sẽ bị xóa sạch trước khi dữ liệu mới được ghi vào (ghi đè lên những dữ liệu đã có). Việc này sẽ làm mất đi những dữ liệu ban đầu.

* Nếu tập tin chưa tồn tại, một tập tin mới sẽ được tạo ra với tên và vị trí của tập tinđược xác định trong <đường dẫn>.

116

Page 117: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

- Append: ghi dữ liệu vào cuối tập tin đã có (ghi thêm, nối vào những dữ liệu đã có).

+ <filenumber>: là một giá trị kiểu Integer đại diện cho tập tin đó. Sau này, khi thao tác với tập tin này, thì giá trị này sẽ là đại diện. Điều này rất hữu ích khi làm việc đồng thời với nhiều tập tin đang mở, lúc đó, để ghi hay đọc dữ liệu với tập tin nào, ta chỉ việc đưa vào giá trị của <filenumber> tương ứng trong các lệnh đọc/ghi dữ liệu.

+ [Len = Buffersize]: chỉ ra số ký tự trong vùng đệm khi sao chép dữ liệu giữa tập tin và chương trình. Đây là một giá trị tùy chọn.

Ví dụ: Khi trên đĩa C không có tập tin File1.txt thì câu lệnh sau sẽ tạo mới và mở sẵn tập tin này để ghi dữ liệu:

Open “C:\file1.txt” For Output as 1

7.3.2. Đọc dữ liệu từ tập tinSau khi tập tin đã được mở bằng lệnh Open với kiểu là Input, nó đã sẵn sàng

cho việc đọc dữ liệu bên trong nó. Dữ liệu có thể đọc theo những cách thức sau:

Đọc dữ liệu theo từng dòng

Khái niệm dòng dữ liệu trong tập tin khác so với khái niệm dòng chữ trên trang giấy. Dòng dữ liệu có thể chứa rất nhiều ký tự (có độ dài hầu như không hạn chế) và một dòng được coi là kết thúc tại nơi có chứa ký hiệu xuống dòng (vbCrLf – bao gồm hai kí tự có số hiệu 13 và 10). Cú pháp đọc một dòng từ tập tin như sau:

Line Input #<filenumber>, <strVar>

Câu lệnh này đọc dữ liệu từ dòng hiện tại của tập tin đã được mở (có chỉ số là <filenumber>) và gán dữ liệu đọc được cho biến strVar (biến này có kiểu String). Câu lệnh Line Input # sẽ tự động nhận dạng dòng dữ liệu thông qua kí hiệu xuống dòng (tuy nhiên nó không đưa kí hiệu xuống dòng vào biến strVar). Sau lệnh Line Input #, vị trí con trỏ đọc dữ liệu sẽ được tự động chuyển xuống dòng tiếp theo.

Chú ý: Ngay khi mở tập tin để đọc, con trỏ đọc dữ liệu sẽ được tự động đặt ở dòng đầu tiên trong tập tin.

Ví dụ: Một tập tin văn bản có đường dẫn “C:\file1.txt” với nội dung như sau:

Mã lệnh sau sẽ đọc nội dung của 3 dòng dữ liệu đầu tiên trong tập tin:

Dim strRe1 As String, strRe2 As String, strre3 As String

Open “C:\file1.txt” For Input As 1

Line Input #1, strRe1

Line Input #1, strRe2

117

Page 118: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Line Input #1, strRe3

Debug.Print strRe1, strRe2, strre3

Close 1

Kết quả thực hiện của đoạn mã lệnh trên như sau:

Chú ý: Khi kết thúc thao tác với tập tin thì cần phải đóng chúng lại, nếu không thông tin trong đó có thể mất hoặc người khác không truy cập vào tập tin đó được.

Đọc một danh sách các chuỗi theo kí tự phân cách

Đọc một danh sách các chuỗi theo kí tự phân cách là dấu phẩy (,) hoặc ký hiệu xuống dòng (vbCrLf) với cú pháp sau:

Input # <filenumber>, <danh sách các biến>

Câu lệnh này đọc khối dữ liệu từ vị trí hiện tại của con trỏ đọc dữ liệu trong tập tin có chỉ số <filenumber>. Dữ liệu đọc được sẽ được gán vào cho <danh sách các biến> (mỗi biến trong danh sách này đều có kiểu dữ liệu là String). Số khối dữ liệu được đọc sẽ phụ thuộc vào số biến có trong <danh sách các biến>. Khối dữ liệu được nhận dạng dựa vào dấu phẩy ( , ) hoặc ký hiệu xuống dòng (vbCrLf). Sau lệnh Input #n, vị trí con trỏ đọc dữ liệu sẽ được tự động chuyển sang khối dữ liệu tiếp theo.

Chú ý: Đọc dữ liệu bằng lệnh Input #n thường được dùng với tập tin mà dữ liệu của nó được tạo ra bởi lệnh Write #n.

Ví dụ: Với tập tin văn bản “C:\file1.txt” như trên, với các mã lệnh sau: Dim strRe1 As String, strRe2 As String, strRe3 As String Open “C:\file1.txt” For Input As 1 Input #1, strRe1, strRe2, strRe3 Debug.Print strRe1, strRe2, strRe3 Close 1 Ta nhận được kết quả như hình dưới:

Nếu lệnh đọc dữ liệu được gọi khi vị trí con trỏ đọc dữ liệu ở cuối tập tin thì sẽ xảy ra lỗi. Để tránh lỗi này cần phải kiểm tra vị trí của con trỏ đọc dữ liệu, xem nó

118

Page 119: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

có ở cuối tập tin hay không. Hàm EOF (Filenumber) (có kiểu Boolean) được dùng cho mục đích này, nó sẽ trả về giá trị True nếu vị trí con trỏ đọc dữ liệu đangở cuối tập tin, và ngược lại sẽ trả về giá trị False.

Ví dụ sau sẽ đọc toàn bộ dữ liệu trong tập tin C:\File1.txt: Dim strRe As String Open "C:\file1.txt" For Input As #1 Do While Not EOF(1) Input #1, strRe Debug.Print strRe Loop Close #1

7.3.3. Ghi dữ liệu vào tập tinThao tác ghi dữ liệu vào tập tin được thực hiện sau khi tập tin đã mở để ghi

với hai kiểu ghi dữ liệu là ghi đè lên dữ liệu ban đầu (với thông số Output) hay ghi nối vào sau các dữ liệu ban đầu (với thông số Append). Với Output: toàn bộ nội dung ban đầu của tập tin sẽ bị xóa và con trỏ ghi dữ liệu sẽ được đặt ở vị trí đầu tiên. Nếu tập tin chưa có thì nó sẽ được tự động tạo ra theo tên và vị trí của đường dẫn trong lệnh Open. Với Append: việc ghi được thực hiện nối tiếp vào tập tin hiện tại, vị trí bắt đầu ghi mặc định là cuối tập tin.

Ghi dữ liệu với lệnh Print #n

Cú pháp như sau: Print # <filenumber>, [outputlist] Trong đó:

- filenumber: chỉ số của tập tin.

- outputlist: danh sách các giá trị cần ghi, các giá trị trong danh sách này được phân tách nhau bởi dấu ( ; ). Nếu outputlist kết thúc bằng dấu (;) con trỏ ghi dữ liệu sẽ chuyển sang vị trí kế tiếp. Ngược lại, nếu cuối danh sách để trống thì con trỏ ghi dữ liệu sẽ chuyển sang dòng kế tiếp. Các thành phần dữ liệu trong outputlist sẽ được ghi liên tục vào tập tin, người dùng có thể thêm các khoảng trống bằng lệnh Spc(n) hoặc các dấu tab bằng lệnh Tab(n)(với n là số ký tự cần thêm vào).

Ví dụ: chương trình sau sẽ ghi dữ liệu vào tập tin “C:\file1.txt” bằng lệnh Print #

Sub FilePrint() Open "C:\file1.txt" For Output As 1 Dim Ax As Double, Ay As Double Dim Bx As Double, By As Double Ax = 100: Ay = 100 Bx = 200: By = 200 Print #1, "Diem A: "; Ax; Print #1, Ay Print #1, "Diem B: "; Bx;

119

Page 120: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Print #1, By Close 1 End Sub Kết quả như sau:

Ghi dữ liệu với lệnh Write #

Cú pháp như sau: Write #filenumber, [outputlist] Trong đó:

- filenumber: chỉ số của tập tin.

- outputlist: danh sách các giá trị cần ghi, các giá trị trong danh sách được phân tách nhau bởi dấu ( , ). Nếu outputlist kết thúc bằng dấu ( ; ) con trỏ ghi dữ liệu sẽ chuyển sang vị trí kế tiếp. Ngược lại, nếu cuối danh sách để trống thì con trỏ ghi dữ liệu sẽ chuyển sang dòng kế tiếp. Các thành phần dữ liệu trong outputlist sẽ được ghi liên tục vào tập tin và dấu phẩy ( , ) sẽ được tự động thêm vào giữa hai giá trị trong tập tin.

Ví dụ: chương trình con sau sẽ ghi dữ liệu vào tập tin “C:\file2.txt”:Sub FileWrite() Open "C:\file2.txt" For Output Dim Ax As Double, Ay As Double Dim Bx As Double, By As Double Ax = 100: Ay = 100 Bx = 200: By = 200 Write #1, "Diem A: ", Ax; Write #1, Ay Write #1, "Diem B: ", Bx; Write #1, By Close 1 End Sub Kết quả như sau:

120

Page 121: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

7.3.4. Đóng tập tin. Sau khi thao tác đọc/ghi dữ liệu lên tập tin ta cần phải đóng chúng lại bằng

lệnh Close theo cú pháp sau: Close <filenumber> Chú ý: Trong tất cả các ví dụ đọc và ghi dữ liệu trên đều có lệnh đóng tập tin

sau khi kết thúc các thao tác đọc/ghi.

121

Page 122: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

CHƯƠNG 8

TỔ CHỨC CHƯƠNG TRÌNHTrong những chương trình lớn, có thể có những đoạn chương trình viết lặp đi

lặp lại nhiều lần, để tránh rườm rà và mất thời gian khi viết chương trình người ta thường phân chia chương trình thành nhiều module, mỗi module giải quyết một công việc nào đó. Các module như vậy gọi là các chương trình con.

Một tiện lợi khác của việc sử dụng chương trình con là ta có thể dễ dàng kiểm tra xác định tính đúng đắn của nó trước khi ráp nối vào chương trình chính và do đó việc xác định sai sót để tiến hành hiệu đính trong chương trình chính sẽ thuận lợi hơn.

Trong Visual Basic, chương trình con có hai dạng là hàm (Function) và thủ tục (Sub).

Hàm khác thủ tục ở chỗ hàm trả về cho lệnh gọi một giá trị thông qua tên của nó còn thủ tục thì không. Do vậy ta chỉ dùng hàm khi và chỉ khi thoả mãn đồng thời các yêu cầu sau đây:

Ta muốn nhận lại một kết quả (chỉ một mà thôi) khi gọi chương trình con.

Ta cần dùng tên chương trình con (có chứa kết quả) để viết trong các biểu thức.

Nếu không thỏa mãn hai điều kiện ấy thì dùng thủ tục.

Thủ tục

Khái niệm:

Thủ tục là một chương trình con thực hiện một hay một số tác vụ nào đó. Thủ tục có thể có hay không có tham số.

Khai báo thủ tục

[Private | Public] [Static] Sub <tên thủ tục> [(<tham số>[As <Kiểu tham số>])]

<Các dòng lệnh> hay <Các khai báo>

End Sub

Trong đó:

- <Tên thủ tục>: Đây là một tên được đặt giống quy tắc tên biến, hằng,…

- <tham số>[: <Kiểu tham số>]: có thể có hay không? Nếu có nhiều tham số thì mỗi tham số phân cách nhau dấu phẩy. Nếu không xác định kiểu tham số thì tham số có kiểu Variant.

Để gọi thủ tục để thực thi, ta có 2 cách:

122

Page 123: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

<Tên thủ tục> [<Các tham số thực tế>]

Call <Tên thủ tục> ([<Các tham số thực tế>])

Ví dụ: Thiết kế chương trình kiểm tra xem số nguyên N có phải là số nguyên tố hay không?

Hàm

Khái niệm

Hàm (Function) là một chương trình con có nhiệm vụ tính toán và cho ta một kết quả. Kết quả này được trả về trong tên hàm cho lời gọi nó.

Khai báo hàm[Private | Public | Static] Function <Tên hàm> [(<tham

số>[As <Kiểu tham số>])] _[As <KIỂU DỮ LIỆU>]<Các dòng lệnh> hay <Các khai báo>End FunctionTrong đó:

- <Tên hàm>: Đây là một tên được đặt giống quy tắc tên biến, hằng,…

- <tham số>[: <Kiểu tham số>]: có thể có hay không? Nếu có nhiều tham số thì mỗi tham số phân cách nhau dấu phẩy. Nếu không xác định kiểu tham số thì tham số có kiểu Variant.

- <KIỂU DỮ LIỆU>: Kết quả trả về của hàm, trong trường hợp không khai báo As <kiểu dữ liệu>, mặc định, VB hiểu kiểu trả về kiểu Variant.

Khi gọi hàm để thực thi ta nhận được một kết quả. Cần Chú ý: khi gọi hàm thực thi ta nhận được một kết quả có kiểu chính là kiểu trả về của hàm (hay là kiểu Variant nếu ta không chỉ rõ kiểu trả về trong định nghĩa hàm). Do đó lời gọi hàm phải là thành phần của một biểu thức.

Cú pháp gọi hàm thực thi: <Tên hàm>[(tham số)].

Module:

- Một ứng dụng đơn giản có thể chỉ có một biểu mẫu, lúc đó tất cả mã lệnh của ứng dụng đó được đặt trong cửa sổ mã lệnh của biểu mẫu đó (gọi là Form Module). Khi ứng dụng được phát triển lớn lên, chúng ta có thể có thêm một số biểu mẫu nữa và lúc này khả năng lặp đi lặp lại nhiều lần của một đoạn mã lệnh trong nhiều biểu mẫu khác nhau là rất lớn.

- Để tránh việc lặp đi lặp lại trên, ta tạo ra một Module riêng rẽ chứa các chương trình con được dùng chung. Visual Basic cho phép 3 loại Module:

Module biểu mẫu (Form module): đi kèm với mỗi một biểu mẫu là một module của biểu mẫu đó để chứa mã lệnh của biểu mẫu này. Với mỗi điều khiển trên biểu mẫu, module biểu mẫu chứa các chương trình con và chúng sẵn sàng được

123

Page 124: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

thực thi để đáp ứng lại các sự kiện mà người sử dụng ứng dụng tác động trên điều khiển. Module biểu mẫu được lưu trong máy tính dưới dạng các tập tin có đuôi là *.frm.

Module chuẩn (Standard module): Mã lệnh không thuộc về bất cứ một biểu mẫu hay một điều khiển nào sẽ được đặt trong một module đặc biệt gọi là module chuẩn (được lưu với đuôi *.bas). Các chương trình con được lặp đi lặp lại để đáp ứng các sự kiện khác nhau của các điều khiển khác nhau thường được đặt trong module chuẩn.

Module lớp (Class module): được sử dụng để tạo các điều khiển được gọi thực thi trong một ứng dụng cụ thể. Một module chuẩn chỉ chứa mã lệnh nhưng module lớp chứa cả mã lệnh và dữ liệu, chúng có thể được coi là các điều khiển do người lập trình tạo ra (được lưu với đuôi *.cls).

Phạm vi (scope): xác định số lượng chương trình có thể truy xuất một biến. Một biến sẽ thuộc một trong 3 loại phạm vi:

Phạm vi biến cục bộ.

Khái niệm: Biến cục bộ là biến chỉ có hiệu lực trong những chương trình mà chúng được định nghĩa.

Khai báo: Dim <Tên biến> [As <Kiểu dữ liệu>]

Lưu ý: Biến cục bộ được định nghĩa bằng từ khóa Dim sẽ kết thúc ngay khi việc thi hành thủ tục kết thúc.

Phạm vi biến module.

Khái niệm: Biến Module là biến được định nghĩa trong phần khai báo (General|Declaration) của Module và mặc nhiên phạm vi hoạt động của nó là toàn bộ Module ấy.

Khai báo:

- Biến Module được khai báo bằng từ khóa Dim hay Private & đặt trong phần khai báo của Module.

Ví dụ:

Private Num As Integer

- Tuy nhiên, các biến Module này có thể được sử dụng bởi các chương trình con trong các Module khác. Muốn thế chúng phải được khai báo là Public trong phân Khai báo (General|Declaration) của Module.

Ví dụ:

Public Num As Integer

Lưu ý: Không thể khai báo biến với từ khóa là Public trong chương trình con.

124

Page 125: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Phạm vi biến toàn cục.

Khái niệm: Biến toàn cục là biến có phạm vi hoạt động trong toàn bộ ứng dụng.

Khai báo:

Global <Tên biến> [As <Kiểu dữ liệu>]

Truyền tham số cho chương trình con

Khái niệm

Một chương trình con đôi lúc cần thêm một vài thông tin về trạng thái của đoạn mã lệnh mà nó định nghĩa để thực thi. Những thông tin này là các biến được truyền vào khi gọi chương trình con, các biến này gọi là tham số của chương trình con.

Có hai cách để truyền tham số cho chương trình con: Truyền bằng giá trị & truyền bằng địa chỉ.

Truyền tham số bằng giá trị

Với cách truyền tham số theo cách này, mỗi khi một tham số được truyền vào, một bản sao của biến đó được tạo ra. Nếu chương trình con có thay đổi giá trị, những thay đổi này chỉ tác động lên bản sao của biến. Trong VB, từ khóa ByVal được dùng để xác định tham số được truyền bằng giá trị.

Ví dụ:

Sub Twice (ByVal Num As Integer)

Num = Num * 2

Print Num

End Sub

Private Sub Form_Click()

Dim A As Integer

A = 4

Print A

Twice A

Print A

End Sub

Kết quả thực hiện của đoạn chương trình trên:

125

Page 126: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

4

8

4

Truyền tham số bằng địa chỉ

Truyền tham số theo địa chỉ cho phép chương trình con truy cập vào giá trị gốc của biến trong bộ nhớ. Vì thế, giá trị của biến có thể sẽ bị thay đổi bởi đoạn mã lệnh trong chương trình con. Mặc nhiên, trong VB6 các tham số được truyền theo địa chỉ; tuy nhiên ta có thể chỉ định một cách tường minh nhờ vào từ khóa ByRef.

Ví dụ:

Sub Twice (Num As Integer)

Num = Num * 2

Print Num

End Sub

Private Sub Form_Click()

Dim A As Integer

A = 4

Print A

Twice A

Print A

End Sub

Kết quả thực hiện của đoạn chương trình trên:

4

8

8

Bẫy lỗi trong Visual Basic

Các thao tác bẫy các lỗi thực thi của chương trình là cần thiết đối với các ngôn ngữ lập trình. Người lập trình khó kiểm soát hết các tình huống có thể gây ra lỗi. Chẳng hạn người ta khó có thể kiểm tra chặt chẽ việc người dùng đang chép dữ liệu từ đĩa mềm (hay CD) khi chúng không có trong ổ đĩa. Nếu có các thao tác bẫy lỗi ở đây thì tiện cho người lập trình rất nhiều.

Visual Basic cũng cung cấp cho ta một số cấu trúc để bẫy các lỗi đang thực thi.

Cú pháp:

Dạng 1:

126

Page 127: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

On Error GoTo <Tên nhãn>

<Các câu lệnh có thể gây ra lỗi>

<Tên nhãn>:

<Các câu lệnh xử lý lỗi>

Ý nghĩa:

- <Tên nhãn>: là một tên được đặt theo quy tắc của một danh biểu.

- Nếu một lệnh trong <Các câu lệnh có thể gây ra lỗi> thì khi chương trình thực thi đến câu lệnh đó, chương trình sẽ tự động nhảy đến đoạn chương trình định nghĩa bên dưới <Tên nhãn> để thực thi.

Dạng 2:

On Error Resume Next

<Các câu lệnh có thể gây ra lỗi>

Ý nghĩa:

- Nếu một lệnh trong <Các câu lệnh có thể gây ra lỗi> thì khi chương trình thực thi đến câu lệnh đó, chương trình sẽ tự động bỏ qua câu lệnh bị lỗi và thực thi câu lệnh kế tiếp.

127

Page 128: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

PHỤ LỤC 1

PHÂN PHỐI ỨNG DỤNG

(PACKAGE AND DEPLOYMENT WIZARD)Package and Deployment Wizard là công cụ hữu hiệu cho phép người lập

trình dễ dàng phân phối các ứng dụng hoặc điều khiển của mình. Nếu Wizard này chưa được cài đặt cùng với Visual Basic, ta có thể sử dụng nó như một Add-in trong môi trường VB (Add-in là các chương trình được bổ sung trong các ứng dụng, chương trình này thường không được cài đặt ở chế độ Typical), cách làm như sau:

Mở đồ án cần đóng gói.

Chọn menu Add-Ins\ Add-In Manager

Chọn Package and Deployment Wizard

Kích chọn hộp kiểm tra Loaded/ Unload

Chọn OK, khi đó Wizard này sẽ xuất hiện trên menu Add-Ins

Mở menu Add-Ins\ Package and Deployment Wizard, xuất hiện màn hình Setup ban đầu:

Có 3 lựa chọn khác nhau để sử dụng Wizard:

128

Page 129: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Package Đây là tuỳ chọn thường dùng, tuỳ chọn này phân phối ứng dụng qua đĩa mềm, đĩa CD…

Deploy Tuỳ chọn này chỉ trở nên hoạt động sau khi đã tạo ra Package cho đồ án thông qua nút thứ nhất.

Manage Script

Tuỳ chọn này chỉ dành cho các chuyên gia, nó cho phép chỉnh sửa điều Wizard này thực hiện.

Kích chọn Package, có thể xuất hiện hộp hội thoại tương tự dưới đây do Wizard cần có phiên bản .exe của đồ án để làm việc.

Kích chọn nút Complie để Wizard biên dịch đồ án, sau đó xuất hiện hộp hội thoại:

129

Page 130: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Kích chọn Standard Setup Package\ Next, xuất hiện hộp hội thoại chọn đường dẫn cho các tập tin đóng gói, theo mặc định các tập tin được để trong thư mục Package:

Chọn Next ta có:

Chọn Yes ta thấy xuất hiện màn hình liệt kê tất cả các tập tin cần dùng cho Package này:

130

Page 131: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Chọn Next, xuất hiện hộp hội thoại Cab Options:

+ Chọn Single cab: Nếu muốn phân phối ứng dụng qua mạng hoặc đĩa CD (tập tin cab lớn)

+ Chọn Multiple cabs: Nếu muốn phân phối ứng dụng bằng đĩa mềm.

Chọn Next, xuất hiện màn hình cho phép cung cấp tiêu đề sẽ hiển thị khi người dùng chạy chương trình Setup:

131

Page 132: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Gõ tên muốn hiển thị vào hộp Installation title, sau đó chọn Next, xuất hiện hộp hội thoại cho phép bổ sung ứng dụng vào menu Start của người dùng:

Chọn Next, xuất hiện màn hình liệt kê vị trí các tệp cài đặt (không nên thay đổi các mặc định này)

132

Page 133: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Chọn Next, xuất hiện hộp hội thoại cho phép tạo khả năng cho mọi người chia sẻ các tập tin của bạn. Tuỳ chọn này nói chung chỉ được chọn khi chương trình được truyền thông với các ứng dụng khác xử dụng bộ dịch vụ COM/ OLE:

Chọn Next, xuất hiện màn hình Finished:

133

Page 134: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Kích chọn Finish, xuất hiện màn hình báo cáo:

Kích chọn Close để kết thúc việc đóng gói ứng dụng.

Khi đó trong thư mục Package sẽ chứa tất cả các tệp của ứng dụng đã được đóng gói:

134

Page 135: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Để phân phối ứng dụng này, đơn giản ta chỉ cần sao chép mọi thứ trong thư mục Package vào CD hoặc Web.

Chú ý: Để cài đặt ta chạy file Setup.exe trong thư mục Package, không phải là chương trình trong thư mục Support.

135

Page 136: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

PHỤ LỤC 2

TẠO HELP BẰNG HTML HELP WORKSHOP

1. Cài đặt HTML Help WorkshopHTML Help Workshop là một ứng dụng tạo lập Help của Microsoft, cho phép

tạo ra các file Help dạng .chm đơn giản và tiện dụng. Để cài đặt HTML Help Workshop ta chạy tập tin HTMLHELP.EXE trong thư mục HTMLHELP có sẵn trong bộ đĩa Visual Studio và thực hiện theo các hướng dẫn cài đặt.

2. Tạo các tệp hướng dẫnĐể tạo nội dung cho file Help ta phải tạo các tệp hướng dẫn có phần mở rộng

.htm. Sử dụng phần mềm Microsoft FrontPage tạo các file html Khach.htm, Nhanvien.htm, Hang.htm, Hoadon.htm và Chitiet.htm (giả sử lưu tại thư mục C:\Quanly\Help).

Nội dung các trang htm có dạng tương tự như sau (các hình ảnh ví dụ Khach.jpg được lưu tại C:\Quanly\Help)

3. Tạo file HelpSau khi hoàn thành nội dung các tệp hướng dẫn htm, ta tiến hành sắp đặt nội

dung cũng như chỉ mục cho các tệp.

136

Page 137: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Đầu tiên ta phải tạo một file Project (.hhp) để sau này dịch ra file Help.chm. Chọn Start/Programs/HTML Help Workshop/HTML Help Workshop, xuất hiện cửa sổ HTML Help Workshop. Chọn File/New xuất hiện cửa sổ New:

Chọn Project/ OK xuất hiện cửa sổ New Project chọn Next. Trong cửa sổ New Project – Destination tạo tệp Help.hhp và lưu vào thư mục C:\Quanly\Help

Chọn Next xuất hiện cửa sổ sau:

Kích chọn lựa chọn HTML files (.htm) và nhấn Next xuất hiện cửa sổ New Project – HTML files. Nhấn nút Add và kích chọn tất cả các file htm đã tạo trong thư mục C:\Quanly\Help

137

Page 138: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Nhấn nút Next và chọn Finish để kết thúc tạo Project trở về cửa sổ HTML Help Workshop.

Tại tab Project chọn biểu tượng Change project options, xuất hiện hộp thoại Options gõ tiêu đề cho file Help tại ô Title rồi chọn OK.

138

Page 139: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Tiếp tục nhấn chọn tab Contents xuất hiện cửa sổ sau:

Chọn Create a new contents file và chọn OK, xuất hiện cửa sổ yêu cầu đặt tên cho tệp .hhc, ta gõ tên tệp là Contents.hhc và lưu vào thư mục C:\Quanly\Help.

+ Tại tab Contents chọn biểu tượng Contents Properties xuất hiện hộp hội thoại cho phép chọn font chữ mong muốn, ví dụ .Vntime để gõ tiếng Việt.

+ Chọn biểu tượng Insert a heading , gõ “Danh muc” tại ô Entry title rồi

nhấn OK. Tiếp theo chọn biểu tượng Insert a page xuất hiện một hộp thoại, chọn No để trang chèn vào nằm dưới Heading vừa tạo. Sau đó xuất hiện hộp thoại Table of Contents Entry, gõ “Danh muc khach hang” vào phần Entry Title rồi chọn nút Add, một cửa sổ tiếp theo xuất hiện, chọn nút Browser trong cửa sổ này và chọn tệp Khach.htm, chọn Close/OK/OK để đóng các cửa sổ này. Kết quả tệp Khach.htm được chèn vào file Help. Tương tự nhấn vào nút Insert a page và nhập nội dung “Danh muc nhan vien” vào ô Entry Title và nhấn Add để liên kết đến tệp Nhanvien.htm.

+ Tiếp tục nhấn vào nút Insert a page và nhập nội dung “Danh muc hang” vào ô Entry Title và nhấn Add để liên kết đến tệp Hang.htm. Chú ý: kích chọn biểu tượng mũi tên để mục Hang được sắp ngang hàng với heading “Danh muc”

+ Tương tự chọn biểu tượng Insert a heading tạo heading “Hoadon” gồm 2 đề mục là “Hoadon” liên kết tới tệp Hoadon.htm và “Hoa don chi tiet” liên kết tới tệp Chitiet.htm.

139

Page 140: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Kết thúc ta được tệp Contents với nội dung như sau:

Tiếp theo ta tạo chỉ mục Index cho các tệp. Kích chọn tab Index xuất hiện cửa sổ Index Not Specified, đánh dấu lựa chọn Create a new index file rồi chọn OK. Xuất hiện cửa sổ Save as, tại ô File name gõ tên tệp chỉ số là Index.hhk và chọn Save để lưu vào thư mục C:\Quanly\Help.

+ Tại tab Index chọn biểu tượng Index Properties xuất hiện hộp hội thoại cho phép chọn font chữ thích hợp.

+ Chọn biểu tượng Insert a keyword có hình chiếc chìa khoá, xuất hiện hộp thoại Index Entry, gõ “Khach” tại ô Keyword rồi chọn nút Add, một cửa sổ tiếp theo xuất hiện, chọn nút Browser và chọn tệp Khach.htm, chọn Close/OK/OK để đóng các cửa sổ này. Kết quả tệp Khach.htm được liên kết tới Keyword “Khach”.

+ Tương tự tạo các keyword “Nhanvien” liên kết tới tệp Nhanvien.htm, “Hang” liên kết tới tệp Hang.htm, “Hoa don” liên kết tới tệp Hoadon.htm, “Chi tiet” liên kết tới tệp Chitiet.htm

+ Cuối cùng kích chọn biểu tượng để sắp xếp các mục Index theo thứ tự A, B, C

140

Page 141: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Bước cuối cùng, nhấn chọn tab Project và kích chọn biểu tượng Save all project files and complie để lưu lại tất cả các file Contents, Index … đã tạo ở trên và dịch chúng thành một file tổng hợp có đuôi .chm có thể chạy độc lập trong các môi trường khác nhau.

Kết quả cuối cùng ta có tệp Help.chm được lưu trong thư mục C:\Quanly\Help

4. Sử dụng tệp Help.chmGiả sử trong menu của form chính frmMain ta thêm mục menu có tên là

mnuHelp, mục menu này có tác dụng mở file Help.chm. Mã lệnh được viết như sau:Private Sub mnuHelp_Click()

Shell "EXPLORER.EXE " & App.Path & "\Help\Help.chm", vbNormalFocus

End Sub

PHỤ LỤC 3 SỬ DỤNG DLL VÀ WINDOWS API

1. Giới thiệu về DLL và APINgoài các hàm và thủ tục tự tạo trong Visual Basic, người lập trình còn có thể

sử dụng các hàm hoặc thủ tục đã được viết sẵn trong Windows, Windows cung cấp vô số các hàm gọi dưới dạng các Thư viện liên kết động – DLL (Dynamic Link Libraries). Sử dụng DLL không chỉ tiết kiệm thời gian lập trình, mà còn tạo nên một giao diện người sử dụng gần gũi và thống nhất với môi trường Windows.

141

Page 142: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Vấn đề là làm thế nào để ta có thể sử dụng các hàm viết sẵn đó? câu trả lời là chúng ta phải liên kết (Link) tới nó, có hai loại liên kết: Liên kết tĩnh và liên kết động.

Liên kết tĩnh - Static Link: Cung cấp một kết nối bền vững giữa chương trình và các modul viết sẵn ngay lúc thiết kế, tương tự như khi ta tạo modul trong Visual Basic và gọi thủ tục trong đó, chỉ khác là liên kết tĩnh thì chứa bên ngoài Visual Basic. Tuy nhiên, đề sử dụng liên kết tĩnh ta cần copy phần chương trình viết sẵn của thư viện vào tập tin chương trình khi biên dịch, khi đó chúng trở thành một phần và bị khoá chặt với chương trình.

Liên kết động - Dynamic Link: Là giải pháp linh hoạt hơn liên kết tĩnh, tập tin thư viện bên ngoài không bị ràng buộc với chương trình, mà được chứa ở một nơi sao cho khi thi hành, tập tin EXE có thể tìm và gửi thông báo tới các hàm hoặc thủ tục cần dùng.

Các DLL của Visual Basic: Visual Basic là một minh họa cho việc sử dụng DLL, vào thư mục \Windows\System ta sẽ thấy một loạt các tập tin cấu tạo lên cơ chế thi hành của VB, ví dụ: VB5DB.DLL chứa chương trình liên kết với DAO (Đối tượng truy cập dữ liệu) lúc thi hành để ứng dụng có thể tìm kiếm các cơ sở dữ liệu cục bộ.

Thế mạnh của DLL:

Nhất quán: Tạo giao diện sử dụng phổ biến cho các ứng dụng trên Windows.

Dễ bảo trì: Những thay đổi hoặc bổ sung nếu có sẽ thể hiện trên mọi ứng dụng.

Tập tin EXE nhỏ hơn: Do một phần công việc chứa ở nơi khác và không kết gắn cứng nhắc như liên kết tĩnh do đó kích cỡ tập tin EXE được giảm nhỏ.

Windows thực chất là tập hợp các DLL để các ứng dụng khác có thể dùng chung, bên trong các DLL này là hàng trăm hàm / thủ tục được gọi là Windows API – Giao diện lập trình ứng dụng (Application Programmer’s Interface).

Các API được tổ chức trong 4 DLL chính của Windows:

KERNEL32: Là DLL chính, đảm nhiệm quản lý bộ nhớ, thực hiện chức năng đa nhiệm và những hàm ảnh hưởng trực tiếp đến hoạt động của Windows

USER32: Thư viện quản lý Windows, chứa các hàm xử lý menu, giờ hệ thống, tập tin, … và nhiều phần không được hiển thị khác của Windows

GDI32: Giao diện thiết bị đồ hoạ (Graphics Device Interface), cung cấp các hàm vẽ trên màn hình và kiểm tra phần biểu mẫu nào cần vẽ lại.

WINNM: Cung cấp các hàm Multimedia để xử lý âm thanh, nhạc, video, thời gian thực, lấy mẫu…

142

Page 143: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

2. Cách sử dụng hàm APICác hàm API được gọi tương tự như các hàm/ thủ tục trong modul của đề án,

chỉ có điều API là một thủ tục không chỉ nằm ngoài modul mà còn nằm ngoài Visual Basic.

Khai báo hàm API: Private|Public Declare Sub|Function Tên hàm API Lib “Tên DLL” (Tham

số truyền) [Kiểu trả về]

Khai báo API tương tự khai báo hàm/ thủ tục thông thường, vẫn dùng các từ khoá Sub/ Function chỉ khác là trước đó phải có từ khoá Declare, tiếp theo là các vấn đề sau:

+ Tên hàm/ thủ tục

+ Tập tin DLL chứa nó

+ Tham số truyền

+ Kiểu dữ liệu trả về (nếu là hàm)

Ví dụ Ví dụ 1: Tạo cửa sổ nhấp nháy bằng cách gọi API:

Mở đồ án mới

Đưa điều khiển Timer vào form, định thuộc tính Interval = 10

Nhấn đúp chuột lên điều khiển Timer để mở cửa sổ code:Private Sub Timer1_Timer()Dim nReturnValue As Long

nReturnValue = FlashWindow(Form1.hWnd, True)

End Sub

Khai báo hàm FlashWindow trong phần General Declarations:Private Declare Function FlashWindow Lib “User32” _

(ByVal hWnd As Long, ByVal Invert As Long) As Long

Thi hành chương trình, khi biểu mẫu xuất hiện tiêu đề của nó nhấp nháy.

Chú ý: Hàm API phân biệt chữ hoa chữ thường.

Giải thích:Từ khoá Declare báo cho VB biết đây là khai báo một hàm của DLL

Sau Declare là từ khoá Sub hay Function, cho biết đây là thủ tục hay hàm

FlashWindow là tên hàm API

Từ khoá Lib cho biết tên DLL đang chứa hàm/ thủ tục đó (ở đây là thư viện Uses32)

143

Page 144: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Tiếp theo là khai báo các tham số truyền, ở đây tham số được truyền là:(ByVal hWnd As Long, ByVal Invert As Long)

+ Tham số đầu, hWnd là “handle” xác định cửa sổ cần nhấp nháy

+ Tham số thứ 2, Invert có kiểu Boolean, nếu Invert có giá trị True thanh tiêu đề sẽ nhấp nháy và ngược lại.

Cuối cùng là khai báo kiểu dữ liệu hàm trả về.

Sau khi khai báo hàm API, ta có thể gọi API như một hàm hoặc thủ tục thông thường trong VB. Gọi FlashWindow là gọi đến API trong DLL và ta lưu giá trị trả về trong biến nReturnValue.

Chú ý 1: Khi sử dụng hàm hoặc thủ tục, nếu một biến được khai báo bởi ByVal (tham trị) thì hệ thống sẽ làm việc trên bản sao của biến, do đó giá trị của biến không bị thay đổi bởi hàm hoặc thủ tục đó. Ngược lại nếu một biến được khai báo bởi ByRef (tham biến – mặc định) thì hàm hoặc thủ tục dùng chính biến đó, do đó giá trị của biến bị thay đổi.

Chú ý 2: Nếu ta không muốn dùng trực tiếp tên hàm API, ta có thể dùng tên do ta tự đặt theo quy tắc sau: (Nói chung tốt nhất nên dùng tên thực của hàm API)

Private|Public Declare Sub|Function Tên tự đặt Lib “Tên DLL” Alias “Tên hàm API chuẩn” (Tham số truyền) [Kiểu trả về]

VD: Private Declare Function Flash Lib “User32” Alias “FlashWindow” _

(ByVal hWnd As Long, ByVal Invert As Long) As Long

Khi đó ta gọi như sau: nReturnValue = Flash(Form1.hWnd, True)

Ví dụ 2: Tạo form có nền trong suốt bằng các hàm API, mã lệnh như sau:

' Khai báo các hàm cần thiết để gọi APIConst LWA_COLORKEY = &H1

Const LWA_ALPHA = &H2

Const GWL_EXSTYLE = (-20)

Const WS_EX_LAYERED = &H80000

' Danh sách các hàm API cần thiết

Private Declare Function GetWindowLongA Lib "user32" _

(ByVal hWnd As Long, ByVal nIndex As Long) As Long

Private Declare Function SetWindowLongA Lib "user32" _

(ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

' Hàm API chính

144

Page 145: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

Private Declare Function SetLayeredWindowAttributes Lib "user32" _

(ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, _

ByVal dwFlags As Long) As Long

Private Sub Form_Load()Dim Ret As Long

' Định nghĩa các cửa sổ thành các lớp

Ret = GetWindowLongA(Me.hWnd, GWL_EXSTYLE)

Ret = Ret Or WS_EX_LAYERED

SetWindowLongA Me.hWnd, GWL_EXSTYLE, Ret

' Chỉnh tính mờ đục của cửa sổ về giá trị 128, giá trị này [ 0, 255]

SetLayeredWindowAttributes Me.hWnd, 0, 128, LWA_ALPHA

End Sub

Chú ý: Danh sách và công dụng của các hàm API, bạn có thể tham khảo ở tập tin trợ giúp.

145

Page 146: VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM - THÔNG BÁOnthbinh.weebly.com/.../29916969/giaotrinhcpm201.2.docx  · Web viewHiểu rõ cách thức hoạt động của phần

TÀI LIỆU THAM KHẢO[1] Lê Minh Trí, Tự học Kỹ năng lập trình Visual Basic 6, Nhà xuất bản Thống kê, 1999.

[2] Nathan Gurewith, On Gurewith; Ngô Quốc Việt, Phạm Nguyễn Tuấn Kỳ, Nguyễn Tiến dịch, Kỹ thuật lập trình Visual Basic : Tự học trong 21 ngày, Nhà xuất bản Giáo dục, 1994

[3] Lê Quỳnh Mai (Chủ biên), Giáo trình Tự động hóa Thiết kế cầu đường, Nhà xuất bản Đại học Giao thông Vận tải, 2009.

[4] Phạm Văn Ất (chủ biên), Giáo trình Tin học Đại cương, Nhà xuất bản Đại học Giao thông Vận tải, 2009.

[5] www.vi.wikipedia.org

[6] microsoft.com

146