1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng tin học xây dựng lê đắc hiền

154 726 2

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 154
Dung lượng 3,39 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bộ môn Tự động hóa Thiết kế Cầu đường 7 Trong lĩnh vực xây dựng công trình giao thông cũng như xây dựng dân dụng, sự ra đời của một công trình bao giờ cũng là một quá trình, mà ở đó hàng

Trang 1

Bộ môn Tự động hóa Thiết kế Cầu đường 1

ĐẠI HỌC GIAO THÔNG VẬN TẢI

BỘ MÔN TỰ ĐỘNG HÓA THIẾT KẾ CẦU ĐƯỜNG

BÀI GIẢNG

TIN HỌC XÂY DỰNG

Lê Đắc Hiền

Trang 2

Bộ môn Tự động hóa Thiết kế Cầu đường 2

MỤC LỤC

MỤC LỤC 2

PHẦN 1 TỔNG QUAN MÔN HỌC 6

PHẦN 2 CƠ BẢN VỀ NGÔN NGỮ LẬP TRÌNH VISUAL BASIC 11

CHƯƠNG I TỔNG QUAN VỀ VISUAL BASIC 12

I.1 GIỚI THIỆU VỀ VISUAL BASIC 12

I.2 Integrated Development Environment (IDE) 12

I.2.1 Cấu trúc một dự án VB 13

I.2.2 Các thành phần của IDE 13

I.2.3 Soạn thảo mã lệnh 14

I.3 TRỢ GIÚP TRONG QUÁ TRÌNH LÀM VIỆC (Help) 14

CHƯƠNG II NGÔN NGỮ LẬP TRÌNH VISUAL BASIC 16

II.1 QUY TẮC VIẾT MÃ LỆNH 16

II.2 CÁC TỪ KHÓA TRONG VB6 17

II.3 CÁC KIỂU DỮ LIỆU CƠ BẢN 17

II.3.1 Boolean 17

II.3.2 Byte 18

II.3.3 Integer (Kiểu nguyên) 18

II.3.4 Long 18

II.3.5 Single 18

II.3.6 Double (Kiểu thực) 18

II.3.7 String (Kiểu chuỗi) 19

II.3.8 Date (Kiểu thời gian) 20

II.3.9 Kiểu mảng (array) 21

II.3.10 Kiểu tự định nghĩa 21

II.3.11 Kiểu lớp (class) 21

II.3.12 Kiểu Variant 21

II.3.13 Chuyển đổi (convert) kiểu dữ liệu 22

II.4 CÁC KHAI BÁO 23

II.4.1 Khai báo biến với các kiểu dữ liệu thông thường 23

II.4.2 Khai báo hằng 23

II.4.3 Khai báo kiểu tự định nghĩa .23

II.4.4 Khai báo mảng 24

II.4.5 Khai báo, tạo và làm việc với biến đối tượng 26

II.4.6 Các chú ý khi khai báo 26

II.5 BIỂU THỨC 27

II.5.1 Các khái niệm 27

II.5.2 Các loại phép toán 27

II.6 CÁC CÂU LỆNH 29

II.6.1 Lệnh gán 29

II.6.2 Lệnh rẽ nhánh If 29

II.6.3 Câu lệnh lựa chọn Select Case 31

II.6.4 Câu lệnh lặp xác định 32

II.6.5 Câu lệnh lặp xác định trong một tập hợp 33

II.6.6 Câu lệnh lặp không xác định 33

II.7 CHƯƠNG TRÌNH CON (HÀM VÀ THỦ TỤC) 34

II.7.1 Khái niệm 34

II.7.2 Hàm - Function 34

II.7.3 Thủ tục - Sub 35

II.7.4 Truyền tham số cho chương trình con 36

II.8 TRUY XUẤT DỮ LIỆU TRONG VISUAL BASIC 38

II.8.1 Các khái niệm 38

II.8.2 Biến toàn cục 38

II.8.3 Biến cục bộ 38

II.8.4 Biến module 39

II.9 GỠ LỖI TRONG VISUAL BASIC (Debug) 39

Trang 3

Bộ môn Tự động hóa Thiết kế Cầu đường 3

II.9.1 Phân loại lỗi lập trình 39

II.9.2 Phát hiện và khắc phục lỗi trong lập trình 40

II.9.3 Dùng khai báo Option Explicit 42

II.9.4 Dùng Breakpoints 42

II.9.5 Dùng Immediate Window 42

II.9.6 Dùng Watch Window 43

II.9.7 Dùng Comment (chú thích) 43

II.10 TỔ CHỨC CHƯƠNG TRÌNH 43

CHƯƠNG III FORM VÀ CÁC THÀNH PHẦN ĐIỀU KHIỂN 45

III.1 CÁC VẤN ĐỀ CHUNG 45

III.1.1 Thao tác tạo Form và các thành phần điều khiển trong VBIDE 46

III.1.2 Các thuộc tính của Form và các thành phần điều khiển 47

III.1.3 Các phương thức của Form và các thành phần điều khiển .48

III.1.4 Các sự kiện trên giao diện 49

III.2 LÀM VIỆC VỚI FORM 51

III.3 CÁC ĐIỀU KHIỂN THÔNG DỤNG 52

1 Điểu khiển nút lệnh (Command Button) 52

2 Điều khiển hộp văn bản (TextBox) 53

3 Điều khiển nhãn (Label) 55

4 Điều khiển hộp đánh dấu (CheckBox) 55

5 Điều khiển nút tuỳ chọn (OptionButton) 56

6 Điều khiển hộp danh sách (ListBox) 57

7 Điều khiển hộp danh sách tổ hợp (ComboBox) 60

8 Điều khiển khung (Frame) 60

9 Thanh cuộn ngang (HscrollBar) 61

10 Thanh cuộn đứng (VScrollBar) 61

11 Thời gian (Timer) 61

12 Danh sách ổ đĩa (DriveListbox), Thư mục (DirListbox), Tập tin (FileListbox) .62 CHƯƠNG IV LÀM VIỆC VỚI TẬP TIN (FILE) 63

IV.1 HÀM I/O VÀ LỆNH XỬ LÝ TẬP TIN 63

IV.1.1 Mở tập tin 63

IV.1.2 Đọc nội dung tập tin 64

IV.1.3 Ghi dữ liệu lên tập tin 64

IV.1.4 Đóng tập tin 66

IV.1.5 Ví dụ 66

IV.2 MÔ HÌNH File System Object (FSO) 67

IV.2.1 Tạo đối tượng FileSystemObject 68

IV.2.2 Truy cập ổ đĩa, thư mục, tập tin 68

IV.2.3 Đối tượng ổ đĩa 68

IV.2.4 Đối tượng thư mục, làm việc với thư mục 69

IV.2.5 Đối tượng tập tin, làm việc với tập tin 69

IV.2.6 Ví dụ 71

PHẦN 3 TIN HỌC XÂY DỰNG 74

CHƯƠNG I TIN HỌC HÓA TRONG XÂY DỰNG CÔNG TRÌNH 75

I.1 KHẢ NĂNG CỦA MÁY TÍNH 75

I.2 TẠI SAO PHẢI TIN HỌC HÓA 76

I.3 PHƯƠNG PHÁP THỰC HIỆN TIN HỌC HÓA 76

CHƯƠNG II THIẾT KẾ GIAO DIỆN NGƯỜI DÙNG 78

II.1 LỰA CHỌN GIAO DIỆN 78

II.2 TRÌNH TỰ XÂY DỰNG GIAO DIỆN 81

Trang 4

Bộ môn Tự động hóa Thiết kế Cầu đường 4

II.3 THIẾT KẾ MENU 81

II.3.1 Khái niệm 81

II.3.2 Các thuộc tính 81

II.3.3 Cách tạo menu 82

II.4 CÁC HỘP THOẠI THÔNG DỤNG 83

II.4.1 Khái niệm 83

II.4.2 Hộp thoại thông điệp 83

II.4.2.1 Loại chỉ xuất thông báo 83

II.4.2.2 Loại tương tác với người dùng 84

II.4.3 Hộp thoại nhập 84

II.4.4 Hộp thoại dựa trên điều khiển Common Dialog 84

II.4.4.1 Hộp thoại mở và lưu tập tin 85

II.4.4.2 Hộp thoại Chọn màu 85

II.4.4.3 Hộp thoại chọn Font chữ 86

II.4.4.4 Hộp thoại In ấn 87

II.5 SỰ KIỆN CHUỘT VÀ BÀN PHÍM 87

II.5.1 Sự kiện chuột 87

II.5.2 Sự kiện bàn phím 88

II.6 SỬ DỤNG GIAO DIỆN ĐA TÀI LIỆU (MDI) 88

II.6.1 Khái niệm 88

II.6.2 Thiết lập ứng dụng MDI 89

II.7 GIAO DIỆN Wizard (Thuật sĩ) 90

CHƯƠNG III ĐỒ HỌA TRONG VISUAL BASIC 92

III.1 TỌA ĐỘ MÀN HÌNH 92

III.2 MÀU (Color) 93

III.3 CÁC THUỘC TÍNH ĐỒ HỌA CỦA Form & PictureBox 94

III.4 CÁC PHƯƠNG THỨC ĐỒ HỌA 94

III.4.1 Phương thức Print 94

III.4.2 Phương thức PSet 95

III.4.3 Phương thức Line 95

III.4.4 Phương thức Circle 98

III.4.5 Phương thức PaintPicture 98

III.4.6 Vẽ đa giác bất kỳ 100

III.5 CÁC ĐIỀU KHIỂN ĐỒ HỌA 102

III.5.1 Điều khiển hộp hình ảnh (Picture Box) .102

III.5.2 Điều khiển hình ảnh (Image) .103

III.5.3 Điều khiển hình dạng (Shape) .103

III.5.4 Điều khiển Line .104

III.6 CÁC PHÉP BIẾN ĐỔI TRONG ĐỒ HỌA 2 CHIỀU 104

III.6.1 Phép tịnh tiến 104

III.6.2 Phép biến đổi tỷ lệ 104

III.6.3 Phép quay 105

III.6.4 Phép đối xứng trục 106

III.6.5 Phép biến dạng 106

III.6.6 Phép biến đổi ngược 106

III.6.7 Một số tính chất của phép biến đổi 107

CHƯƠNG IV LÀM VIỆC VỚI AUTOCAD/EXCEL 108

IV.1 TỔNG QUAN VỀ Component Object Model (COM) 108

IV.1.1 Khái niệm cơ bản về COM 108

IV.1.2 Cấu trúc cơ bản của một COM Object 108

IV.1.3 Các dạng đối tượng COM 109

IV.1.4 Quản lý các đối tượng COM trong hệ thống 110

IV.1.5 Sử dụng các đối tượng COM 110

IV.2 LÀM VIỆC VỚI AutoCAD 111

IV.2.1 Hệ thống các đối tượng trong AutoCAD 111

IV.2.1.1 Mô hình đối tượng trong AutoCAD 111

IV.2.1.2 Một số đối tượng chính trong AutoCAD 112

Trang 5

Bộ môn Tự động hóa Thiết kế Cầu đường 5

IV.2.2 Kết nối VB với AutoCAD 116

IV.2.3 Các thao tác cơ bản trong AutoCAD 118

IV.2.3.1 Điều khiển AutoCAD 118

IV.2.3.2 Tạo mới đối tượng hình học 121

IV.3 LÀM VIỆC VỚI Microsoft Excel 127

IV.3.1 Hệ thống các đối tượng trong Excel 128

IV.3.1.1 Mô hình đối tượng trong Excel 128

IV.3.1.2 Một số đối tượng cơ bản trong Excel 130

IV.3.2 Kết nối VB với MS Excel 135

IV.3.3 Các thao tác cơ bản trong Excel 138

IV.3.3.1 Làm việc với Workbook 138

IV.3.3.2 Làm việc với Worksheet 139

IV.3.3.3 Làm việc với Range và Cells 140

IV.3.3.4 Sử dụng các hàm có sẵn trong Excel 142

CHƯƠNG V TRÌNH BÀY KẾT QUẢ 143

V.1 HIỂN THỊ TRỰC TIẾP TRONG CHƯƠNG TRÌNH 143

V.2 THÔNG QUA AutoCAD, Excel 145

V.3 XUẤT FILE KẾT QUẢ 145

CHƯƠNG VI CÁC BÀI TOÁN CƠ BẢN TRONG XÂY DỰNG 148

VI.1 PHÂN TÍCH KẾT CẤU CẦU 148

VI.1.1 Khái quát 148

VI.1.2 Mục đích chính 148

VI.1.3 Trình tự thực hiện 149

VI.1.3.1 Giao diện (Nhập số liệu + Điều khiển chương trình) 149

VI.1.3.2 Tính toán (Thuật toán + kiến thức chuyên môn) 149

VI.1.3.3 Xuất kết quả 149

VI.2 VẼ ĐỐI TƯỢNG HÌNH HỌC 149

VI.2.1 Khái quát 149

VI.2.2 Mục đích chính 149

VI.2.3 Trình tự thực hiện 149

VI.2.3.1 Giao diện 149

VI.2.3.2 Tính toán 149

VI.2.3.3 Xuất kết quả 149

VI.3 THIẾT KẾ CẤU KIỆN 150

VI.3.1 Khái quát 150

VI.3.2 Mục đích chính 150

VI.3.3 Trình tự thực hiện 150

VI.3.3.1 Giao diện 150

VI.3.3.2 Tính toán 151

VI.3.3.3 Xuất kết quả 151

VI.4 XỬ LÝ DỮ LIỆU ĐO ĐẠC 151

VI.4.1 Khái quát 151

VI.4.2 Mục đích chính 151

VI.4.3 Trình tự thực hiện 152

VI.4.3.1 Giao diện 152

VI.4.3.2 Tính toán 152

VI.4.3.3 Xuất kết quả 152

PHỤ LỤC 153

Trang 6

Bộ môn Tự động hóa Thiết kế Cầu đường 6

PHẦN 1 TỔNG QUAN MÔN HỌC

Trang 7

Bộ môn Tự động hóa Thiết kế Cầu đường 7

Trong lĩnh vực xây dựng công trình giao thông cũng như xây dựng dân dụng, sự ra đời của

một công trình bao giờ cũng là một quá trình, mà ở đó hàng loạt các công việc được thực

hiện trong phòng cũng như ngoài công trường theo một trình tự nhất định Trong hàng loạt

công việc đó, để có được kết quả tốt nhất, người ta sử dụng những công cụ hỗ trợ, mà đắc

lực nhất cho những công việc nội nghiệp là hệ thống thông tin chuyên dùng cho xây dựng

Hệ thống thông tin bao gồm hai thành phần cơ bản:

¾ Phần cứng: bao gồm các thiết bị tin học như: máy tính, máy in, máy quét, mạng

Những thiết bị này là nền tảng cho các phần mềm hoạt động và chính chúng tạo ra

kết quả cuối cùng của công việc (bản vẽ, báo cáo, bảng biểu in trên giấy hoặc số

liệu)

¾ Phần mềm: là hệ thống các chương trình do con người tạo ra để thực hiện một mục

tiêu nào đó Nó là cầu nối cho việc biểu diễn và mô hình hóa ý tưởng của con người

trên hệ thống máy tính Nhờ có phần mềm mà hệ thống máy tính mới vận hành

được, và từ đó, sức mạnh của phần cứng được khai thác để phục vụ cho các công

việc khác nhau trong mọi lĩnh vực, ví dụ trong xây dựng, nhờ có sự phối hợp hoạt

động của phần mềm và phần cứng mà ta có được mô hình 3 chiều của công trình

(hình 1) hay hệ thống các bản vẽ (hình 2) hoặc bản tính kết cấu (hình 3) với tốc độ

nhanh chóng và chính xác hơn hẳn so với làm thủ công

Hình 1 – Mô hình 3 chiều của công trình được xây dựng trên máy tính

Trang 8

Bộ môn Tự động hóa Thiết kế Cầu đường 8

Hình 2 – Hầu hết các bản vẽ kỹ thuật hiện nay đều thực hiện trên máy tính

Hình 3 – Phân tích kết cấu công trình trên máy tính

Trang 9

Bộ môn Tự động hóa Thiết kế Cầu đường 9

Thông thường, khả năng của một hệ thống thông tin được biết đến ở khía cạnh chính sau:

¾ Tốc độ tính toán rất lớn, có thể thực hiện được hàng tỷ phép tính trong một giây

¾ Cho phép dựng mô hình nhanh và chi tiết (hình 1) với các phần mềm hỗ trợ

¾ Tạo bản vẽ, báo cáo, tài liệu trên giấy rõ ràng, đẹp và nhanh

¾ Lưu trữ và sử dụng lại dữ liệu rất hiệu quả

Hệ thống thông tin chuyên dụng cho ngành xây dựng bao gồm các thiết bị phần cứng và

các phần mềm, mà ở đó, các chức năng chính của chúng là phục vụ cho các công việc liên

quan đến xây dựng công trình như: dựng mô hình, tạo bản vẽ, in bản vẽ, tính toán kết cấu,

tổng hợp khối lượng, tính dự toán, lập kế hoạch Thông thường, phần cứng bao gồm các

máy tính (có thể nối mạng với nhau) và các thiết bị phụ trợ cho việc nhập dữ liệu (máy

quét, bàn số hóa) và xuất kết quả (máy in) Phần mềm là thành phần có sự khác biệt lớn

nhất giữa các hệ thống thông tin với nhau Trong lĩnh vực xây dựng, phần mềm bao gồm

các loại cơ bản sau:

¾ Hệ thống các phần mềm văn phòng (tạo văn bản, bảng tính, biểu đồ, báo cáo, kế

hoạch ) mà phổ biến nhất là bộ phần mềm Office của Microsoft

¾ Các phần mềm phân tích kết cấu như: SAP, MIDAS/Civil, Piling

¾ Các phần mềm sử lý dữ liệu khảo sát và mô hình hóa địa hình: Topo, Land

Desktop

¾ Các phần mềm lập dự toán: CE++, ACITT

¾ Các phần mềm dựng bản vẽ kỹ thuật và phối cảnh: AutoCAD, 3DS Max, Micro

Station

Khi người ta triển khai hệ thống thông tin có đặc điểm trên (về phần cứng và phần mềm)

vào quá trình xây dựng công trình thì quá trình này gọi là tin học hóa trong xây dựng

Tùy thuộc vào khả năng của hệ thống phần cứng và phần mềm mà mức độ tin học hóa hay

tự động hóa được xác định ở mức cao hay thấp Xét về tổng quát thì hiện nay ở Việt Nam,

mức độ tin học hóa theo hệ thống là chưa cao nhưng về chi tiết từng bước trong quá trình

xây dựng thì khá tốt Do đặc điểm của quá trình xây dựng, cho nên phần mềm có vai trò

quan trọng nhất trong quá trình tin học hóa vì thế hiện nay mức độ tin học hóa chủ yếu

được đánh giá dựa trên hệ thống phần mềm mà đơn vị đó sử dụng

Hệ thống phần mềm dùng trong xây dựng, về xuất xứ, được chia làm hai loại cơ bản:

¾ Phần mềm do các công ty chuyên về tin học làm ra (phần mềm thương mại), chúng

có khả năng hoạt động tốt, đáp ứng được hầu hết các vấn đề cơ bản trong quá trình

thiết kế, quản lý và tổ chức thi công của công trình

¾ Phần mềm do chính các công ty hoạt động trong lĩnh vực xây dựng thực hiện (phần

mềm tự tạo), chúng được tạo ra chủ yếu với mục đích giải quyết những vấn đề phát

sinh cục bộ của công ty mà những phần mềm thương mại không đáp ứng được hoặc

chưa có phần mềm thương mại phù hợp

Để có được những phần mềm thương mại và triển khai chúng một cách hiệu quả đòi hỏi

đơn vị hoặc công ty đó phải có được nhiều yếu tố như: nhân lực có trình độ tin học nhất

định, kinh tế, quy trình sản xuất phù hợp Trong khi đó các phần mềm tự tạo lại có thể

ứng dụng được ngay do chúng xuất phát từ nhu cầu thiết thực của công ty cũng như người

làm ra nó cũng chính là người sử dụng, và đương nhiên, nó phù hợp hoàn toàn với quy

trình làm việc của công ty đó Hơn nữa, các phần mềm thương mại không thể bao quát hết

mọi vấn đề trong lĩnh vực xây dựng công trình cho nên các công ty tin học thường tập

trung vào các bài toán cơ bản, vào những phần chính của quá trình thiết kế Do đó chúng

giải quyết tốt những vấn đề này và những vấn đề khác của công việc thường được giải

quyết bằng thủ công hoặc dựa trên phần mềm tự tạo trên nền tảng kết quả của những phần

mềm thương mại Ví dụ, trong thiết kế cầu, phần phân tích nội lực của kết cấu (phần trên

và phần dưới) đều có các phần mềm thương mại làm rất tốt (SAP, MIDAS/Civil, Piling )

Trang 10

Bộ môn Tự động hóa Thiết kế Cầu đường 10

trong khi đó triển khai bản vẽ kỹ thuật cho kết cấu cầu lại chưa có phần mềm thương mại

hỗ trợ cho nên hầu hết chúng được tạo ra một cách thủ công hoặc nhờ phần mềm tự tạo

Phần mềm tự tạo, để có thể làm được nó, thì những kỹ sư chuyên ngành công trình cần

nắm được:

¾ Công cụ lập trình thích hợp, thường bao gồm:

o Ngôn ngữ lập trình: là công cụ để thể hiện những ý tưởng, kiến thức chuyên

môn, quy trình thực hiện, định dạng kết quả thành ngôn ngữ mà máy tính

có thể hiểu được

o Môi trường lập trình: là công cụ giúp cho việc xây dựng chương trình được

thuận lợi Thông thường người ta tích hợp ngôn ngữ lập trình và môi trường lập trình thành một sản phẩm thống nhất dưới tên gọi của ngôn ngữ lập trình

o Thư việc lập trình: là những bổ trợ giúp cho việc lập trình được nhanh và

hiệu quả, đây là thành phần không bắt buộc phải có thì mới lập được chương trình

¾ Phương pháp phân tích và tổng hợp vấn đề theo hướng có thể lập trình được Thông

thường khi gặp một vấn đề và cần giải quyết nó bằng một chương trình tự tạo thì sự

tổng hợp và khái quát vấn đề sẽ đưa ra cách giải tổng quát, giúp cho khả năng của

phần mềm sẽ rộng hơn và tính ứng dụng tốt hơn Trong khi đó việc phân tích theo

hướng chức năng hóa sẽ giúp cho việc xây dựng và bảo trì phần mềm thuận lợi

Như vậy có thể thấy rằng, vai trò và phạm vi ứng dụng của phần mềm tự tạo là rất lớn và

rất rộng, trong khi đó, việc xây dựng nó lại dựa chủ yếu vào nhân lực của chính công ty

xây dựng công trình, cho nên việc tin học hóa quá trình xây dựng, ngoài việc triển khai

hiệu quả các hệ thống phần mềm thương mại, thì việc xây dựng phần mềm tự tạo là một

yếu tố quan trong không kém và trong nhiều trường hợp nó mang lại hiệu quả cao hơn là

đầu tư phần mềm thương mại

Xét về mức độ phức tạp thì việc triển khai các phần mềm thương mại đơn giản hơn rất

nhiều so với việc tự xây dựng phần mềm Thông thường các phần mềm thương mại được

chuyển giao thành một gói bao gồm:

¾ Phần mềm

¾ Đào tạo, hướng dẫn sử dụng phần mềm

¾ Bảo hành, trợ giúp kỹ thuật trong quá trình sử dụng phần mềm

Quá trình triển khai này thường khá nhanh và yêu cầu nhân lực có trình độ tin học ở mức

trung bình

Trong khi đó, để xây dựng phần mềm tự tạo, đòi hỏi nhân lực có trình độ về chuyên môn

và tin học cao hơn Chính vì lý do này, cho nên mục tiêu đào tạo kỹ sư trong các trường đại

học thuộc khối xây dựng (Giao thông, Xây dựng, Mỏ địa chất, Thủy lợi ) luôn dành một

lượng thời gian thích hợp cho những môn học có thể giúp sinh viên lập trình được và môn

học này là một phần chính trong mảng kiến thức đó Với những kiến thức này, sinh viên có

thể tự xây dựng những chương trình phục vụ cho quá trình học tập trong trường đại học

cũng như trong công tác sau này

Do đó, mục tiêu chính của môn học này là hướng đến các mảng kiến thức giúp cho người

học có thể xây dựng được những chương trình ứng dụng cho ngành xây dựng công trình

nói chung Nói cách khác, tin học xây dựng ở đây được tập trung vào phần xây dựng các

chương trình tự tạo

Trang 12

Bộ môn Tự động hóa Thiết kế Cầu đường 12

CHƯƠNG I TỔNG QUAN VỀ VISUAL BASIC

Mục tiêu:

Chương này giới thiệu về môi trường phát triển tích hợp (IDE) Microsoft

Visual Basic 6.0; cũng như giúp sinh viên có cái nhìn tổng quan về Visual Basic

Nội dung chính:

- Sử dụng môi trường phát triển tích hợp VB 6.0 để phát triển ứng dụng

- Cách tạo dự án mới (New Project) trong VB 6.0

- Sử dụng tốt hệ thống trợ giúp trong quá trình làm việc

Kiến thức có liên quan:

- Sử dụng hệ điều hành Windows

I.1 GIỚI THIỆU VỀ VISUAL BASIC

Visual Basic 6.0 (VB6) là một phiên bản của bộ công cụ lập trình Visual Basic (VB), cho

phép người dùng tiếp cận nhanh cách thức lập trình trên môi trường Windows

Visual Basic là gì?

Phần "Basic" đề cập đến ngôn ngữ BASIC (Beginners All-Purpose Symbolic Instruction

Code), một ngôn ngữ lập trình đơn giản, dễ học, được phát triển cho những người không

chuyên sâu về lập trình VB được phát triển và mở rộng dựa trên BASIC

Phần "Visual" đề cập đến phương pháp được sử dụng để tạo giao diện đồ họa người dùng

(Graphical User Interface hay viết tắt là GUI) VB có sẵn các thành phần điều khiển trực

quan (controls), các điểu khiển này được lập trình viên sắp xếp trên form tạo thành giao

diện người dùng

Chính bởi sự đơn giản, dễ học nên VB6 là cách nhanh và tốt nhất để lập trình trong môi

trường Microsoft Windows VB6 cung cấp bộ công cụ hoàn chỉnh để đơn giản hóa việc lập

trình ứng dụng dựa trên giao diện đồ họa

Visual Basic còn có hai dạng khác: Visual Basic for Application (VBA) và VBScript

VBA là ngôn ngữ nằm phía sau các chương trình Word, Excel, MSAccess, AutoCAD, v.v

còn gọi là Macros Dùng VBA trong MSOffice, ta có thể làm tăng chức năng bằng cách tự

động hóa các chương trình

VBScript được dùng cho Internet và chính Operating System

Cài đặt Visual Basic

Phiên bản: Visual Basic 6.0

Cấu hình tối thiểu: 32 MB RAM, CPU Pentium II, Windows 98

Sử dụng các file cài đặt (1CD) để cài, sửa đổi, xóa VB Ngoài ra có thể cài thêm thư viện

MSDN – Help (3CD)

I.2 Integrated Development Environment (IDE)

IDE là tên tắt của môi trường phát triển tích hợp, đây là nơi tạo ra các chương trình VB

Trang 13

Bộ môn Tự động hóa Thiết kế Cầu đường 13

I.2.1 Cấu trúc một dự án VB

- Dự án (Project) là tập hợp các file để hình thành nên chương trình ứng dụng

- Dự án VB (VB Project) = Code Modules + Class Modules + Form

- Code Module: mã lệnh chính của chương trình

- Class Module: thiết kế các lớp của dự án

- Form: giao diện dạng hộp thoại của dự án để nhập số liệu và xuất kết quả

VB hỗ trợ tạo nhiều kiểu ứng dụng khác nhau Để tạo mới một dự án thực thi ta chọn

Standard EXE rồi chọn Open

I.2.2 Các thành phần của IDE

- Form trắng để thiết kế giao diện cho ứng dụng

- Cửa sổ dự án hiển thị các file được tạo trong ứng dụng

- Cửa sổ thuộc tính hiển thị các thuộc tính của đối tượng và điều khiển được chọn

- Toolbox chứa các điều khiển cần thiết đễ xây dựng một ứng dụng VB

- Cửa sổ viết mã chương trình (Code)

- MenuBar, Toolbar, Layout, Immediate Window,ViewCode, ViewForm

Menu Bar

Chứa đầy đủ các lệnh để làm việc với VB6, kể cả các menu để truy cập các chức năng đặc

biệt dành cho việc lập trình như Project, Format, hoặc Debug

Trang 14

Bộ môn Tự động hóa Thiết kế Cầu đường 14

Toolbars (Debug, Edit, form Editor, Standard)

Các toolbars gồm các biểu tượng cho phép chọn nhanh các chức năng cần thiết Sử dụng

Menu View | Toolbars để tắt hoặc mở các toolbars

Các toolbars có thể sửa đổi theo ý thích bằng chức năng: View | Toolbars | Customize

Toolbox

Bao gồm các điều khiển (controls), dùng thiết kế giao diện đồ họa

Khi có nhiều các control, có thể sử dụng Add Tab để sắp xếp lại vị các control theo ý

muốn

Project Explorer

Là nơi liệt kê các forms, modules và class trong dự án hiện hành

Properties window

Cửa sổ thuộc tính hiển thị các thuộc tính của đối tượng và điều khiển được chọn Một

property là một đặc tính của một đối tượng chẳng hạn như size, caption, hoặc color

Khi bạn sửa đổi một property bạn sẽ thấy hiệu quả ngay lập tức, thí dụ thay đổi property

Font của một Label sẽ thấy Label ấy được display bằng Font chữ mới

Form Layout

Dùng form Layout để chỉnh vị trí của các form khi form hiện ra lần đầu lúc chương trình

chạy

Immediate Window

Dùng để gở rối (debug) quá trình kiểm tra ứng dụng

Ta có thể xem các thông số khi chạy chương trình hay khi đang tạm ngừng Có thể thay đổi

giá trị các biến hay chạy một dòng chương trình

I.2.3 Soạn thảo mã lệnh

Trong Visual Basic IDE, cửa sổ mã lệnh (Code) cho phép soạn thảo mã chương trình với

một số chức năng (Tắt mở trong Tools|Option)

- Đánh dấu (Bookmarks): Chức năng này cho phép đánh dấu các dòng lệnh của chương

trình giúp việc xem lại các phần mã lệnh dễ dàng Sử dụng tính năng này qua thanh công

cụ hoặc menu Edit

- Tự động kiểm tra cú pháp (Auto Syntax Check) Khi chức năng này bật, nếu viết một

dòng chứa lỗi, VB sẽ thông báo về lỗi và hiển thị con trỏ ngay dòng chương trình lỗi Nếu

không có chức năng này, VB chỉ hiển thị dòng mã sai với màu đỏ không kèm chú thích

- Yêu cầu khai báo biến (Require Variable Declaration) (Tùy chọn): VB sẽ thông báo lỗi

khi một biến được dùng mà không khai báo và sẽ chỉ ra vị trí của biến đó

- Gợi nhớ mã lệnh: (Auto List Members) Tự động hiển thị gợi ý khi ta gõ vào tên của

chúng Sử dụng Ctrl+Space để sử dụng chức năng tự động hoàn thành mã chương trình

I.3 TRỢ GIÚP TRONG QUÁ TRÌNH LÀM VIỆC (Help)

Trong khi lập trình có thể cần tìm hiểu thông tin liên quan đến các câu lệnh, hàm v.v của

VB6 Các thông tin này được Microsoft cung cấp rất đầy đủ trong thư viện trợ giúp

Microsoft Developer Network | MSDN Library Visual Studio 6.0

Truy cập thông qua menu Help | Contents của VB6, hoặc chọn (bôi đen) một từ khóa trong

mã lệnh rồi ấn F1

Trang 15

Bộ môn Tự động hóa Thiết kế Cầu đường 15

Phần trợ giúp được thiết kế giống như 1 quyển sách, kết hợp với chức năng tìm kiếm theo

từ khóa khiến người đọc dễ dàng tra cứu Các thông tin được liên kết với nhau đầy đủ giúp

việc tham khảo đạt hiệu quả cao

Yêu cầu: Máy tính phải cài đầy đủ thư viện MSDN (3CD)

Context Sensitive Help (trợ giúp đúng tình huống)

Nhiều phần của VB6 hỗ trợ context sensitive, có nghĩa là khi gặp lỗi hoặc cần trợ giúp chỉ

cần ấn F1 hoặc bôi đen từ khóa rồi nhấn F1 Chương trình sẽ hiển thị thông tin liên quan

đến vấn đề cần trợ giúp

Các phần context sensitive là:

• Các Windows của VB6 như Properties, Code v.v

• Các control trong Toolbox

• Các Object trên một form hoặc Object tài liệu

• Các đặc tính trong Window Properties

• Các keywords của VB6

• Các thông báo lỗi (error messages)

Ngoài ra, trong Help thường có Example là các ví dụ minh họa cách dùng cho một đối

tượng nào đó dùng tham khảo rất phù hợp

Tìm kiếm trợ giúp trên Internet

Việc tìm kiếm thông tin trên Internet là hết sức cần thiết, dù trong lĩnh vực nào Đặc biệt là

trong công việc lập trình Chúng ta có thể tra cứu, tìm kiếm ví dụ, thảo luận về vấn đề mắc

phải…

Một số website hữu ích:

http://msdn.microsoft.com/ - Trang chủ của Microsoft Developer Network

http://www.google.com - Trang tìm kiếm nhanh và hiệu quả

http://www.codeproject.com - Mã nguồn miễn phí và nhiều ví dụ hữu ích

Trang 16

Bộ môn Tự động hóa Thiết kế Cầu đường 16

CHƯƠNG II NGÔN NGỮ LẬP TRÌNH VISUAL BASIC

Mục tiêu:

Chương này giới thiệu về các cấu trúc lập trình trong VB; đây là các cấu trúc cốt

lõi để xây dựng nên một chương trình VB

Nội dung chính:

- Sử dụng môi trường lập trình VB để viết mã lệnh, các quy tắc, từ khóa

- Các kiểu dữ liệu trong VB

- Cách khai báo hằng, biến trong VB

- Biểu thức trong VB

- Các câu lệnh đơn cũng như các câu lệnh có cấu trúc

- Chương trình con trong VB

- Truy xuất dữ liệu, tổ chức chương trình trong VB

- Gỡ lỗi trong VB

Kiến thức có liên quan:

- Cách sử dụng môi trường phát triển của VB

II.1 QUY TẮC VIẾT MÃ LỆNH

Cũng giống như các ngôn ngữ lập trình khác, VB đưa ra những quy tắc cho người lập trình

trong quá trình viết mã lệnh Người lập trình cần phải tuân theo các quy tắc này để trình

biên dịch có thể dịch mã lệnh mà không phát sinh lỗi cú pháp

- Các câu lệnh phải là các dòng riêng biệt Nếu có nhiều lệnh trên cùng một dòng thì

giữa các lệnh ngăn cách nhau bằng dấu hai chấm (:) Nếu dòng lệnh quá dài, muốn ngắt

lệnh thành hai dòng thì sử dựng dấu cách và dấu gạch dưới (_)

- Dòng chú thích được bắt đầu bằng (‘)

Qui ước đặt tên biến của ngôn ngữ VB cũng tương tự như các ngôn ngữ khác:

• Chỉ dùng được ký tự (hoa và thường), số, và ký tự gạch chân

• Phải bắt đầu bằng ký tự, dài không quá 255 ký tự

• Không có khoảng trống, không trùng tên từ khóa

Ví dụ:

Đúng Sai

My_Car My.Car ThisYear 1NewBoy Long_Name_Can_beUSE He&HisFather

Các lỗi cú pháp sẽ được VBIDE phát hiện và báo lỗi cho người lập trình ngay trong quá

trình viết mã lệnh

Trang 17

Bộ môn Tự động hóa Thiết kế Cầu đường 17

II.2 CÁC TỪ KHÓA TRONG VB6

Từ khoá là tập hợp các từ cấu thành một ngôn ngữ lập trình Mỗi ngôn ngữ lập trình có một

bộ từ khoá riêng, dưới đây là danh sách các từ khoá trong ngôn ngữ lập trình VB6:

II.3 CÁC KIỂU DỮ LIỆU CƠ BẢN

Kiểu dữ liệu là một tập hợp các giá trị mà một biến của kiểu có thể nhận và một tập hợp

các phép toán có thể áp dụng trên các giá trị đó

Trong VB6 có rất nhiều kiểu dữ liệu khác nhau như: Boolean, Double, Integer, Object,

String, Variant Từng kiểu có mục đích riêng và việc sử dụng đúng sẽ giúp chương trình

chạy nhanh Chúng ta sẽ đi tìm hiểu các kiểu dữ liệu cơ bản

II.3.1 Boolean

Đặc điểm: Chỉ có 2 trạng thái: True và False

Khi chuyển từ các dữ liệu dạng số sang kiểu logic, 0 sẽ được chuyển thành FALSE còn giá

trị khác sẽ được chuyển thành TRUE Khi chuyển từ kiểu logic sang kiểu số, giá trị FALSE

sẽ được chuyển thành 0 còn giá trị TRUE sẽ được chuyển thành -1

Phạm vi áp dụng: các bài toán lặp, if then, thường dùng làm cờ hiệu (flags)

Ví dụ:

Trang 18

Đặc điểm: Sử dụng 8-bit để lưu trữ giá trị, tức có thể lưu giá trị dương từ 0 đến 255

Phạm vi áp dụng: hữu ích trong việc lưu dữ liệu nhị phân

II.3.3 Integer (Kiểu nguyên)

Đặc điểm: Kiểu số nguyên, sử dụng 16-bit để lưu trữ,

-3.402823e38 đến -1.401298e-45 với số âm và từ

1.401298e-45 đến 3.402823e38 cho số dương

Phạm vi áp dụng: Sử dụng với giá trị thập phân nằm trong khoảng trên

II.3.6 Double (Kiểu thực)

Đặc điểm: Kiểu số thực, sử dụng 64-bit để lưu trữ, kiểu dữ liệu này được gọi là độ chính

xác kép

Khoảng giá trị:

-1.79769313486232e308 đến -4.94065645841247e-324 với số âm và từ

4.94065645841247e-324 đến 1.79769313486232e308 cho số dương

Phạm vi áp dụng: Khi cần tính toán với yêu cầu độ chính xác cao

Trang 19

Bộ môn Tự động hóa Thiết kế Cầu đường 19

II.3.7 String (Kiểu chuỗi)

Đặc điểm:

Chuỗi dữ liệu chứa từ 0 đến 65.500 ký tự Từng ký tự có khoảng giá trị từ 0 đến 255 trong

bảng ASCII

Có sẵn một số hàm liên quan đến chuỗi ví dụ: cắt chuỗi, tách chuỗi, nhập chuỗi,… Có thể

tra cứu các hàm này trong các tài liệu tham khảo như MSDN hoặc Object Browser (thư

viện Strings)

Phạm vi áp dụng: Khi cần làm việc với dữ liệu văn bản (Text)

Được sử dụng nhiều trong các bài toán quản lý, các bài toán yêu cầu nhập xuất dữ liệu

Việc dùng string cũng giúp cho các bài toán có giao diện thân thiện hơn

Ví dụ:

Private Sub Command1_Click()

Dim sText As String

Dim lTextLength As Long

Dim sChar As String

Dim bASCII As Byte

Dim x As Long

sText = " VB that la don gian!"

lTextLength = Len(sText) 'So ky tu trong sText

For x = 1 To lTextLength ‘ Lap den ky tu cuoi cung trong sText

sChar = Mid$(sText, x, 1) 'Lay ky tu thu x trong sText

bASCII = Asc(sChar) 'Lay gia tri ASCII cua ky tu

MsgBox "Ma ASCII cua ky tu '" & sChar & "' la " & bASCII ‘Hien

thi ket qua

Greeting = FirstWord & SecondWord

' Greeting bây giờ là "HelloWorld"

- Len: trả về chiều dài một chuỗi được chỉ định

Ví dụ: iLen = Len(Greeting) ' iLen bằng 8

- Left: Trích chuỗi con từ phần đầu chuỗi gốc Left (String, [length])

- Right: Trích chuỗi con từ phần đuôi chuỗi gốc Right (String, [length])

- Mid: Trích chuỗi con từ giữa chuỗi gốc Mid(String, Start As Long, [length])

Ví dụ:

Today = "24/05/2001"

StrDay = Left(Today,2) ' StrDay = "24" '

StrYear = Right(Today,4) ' StrYear = "2001" '

StrMonth = Mid(Today,4,2) ' StrMonth = "05"

- InStr: Tìm chuỗi con trong chuỗi gốc Nếu hàm InStr trả về 0, nghĩa là không tìm thấy

Cú pháp: InStr([start,] string1, string2, [compare])

Trang 20

Bộ môn Tự động hóa Thiết kế Cầu đường 20

Trong đó:

Start: Xác định vị trí trong chuỗi bắt đầu việc tìm kiếm Nếu giá trị là Null thì sẽ bắt đầu từ

đầu chuỗi Nếu như tham số Compare có đặc tả thì bắt buộc phải khai báo tham số Start

String1: Biểu thức chuỗi để so sánh

String2: Chuỗi cần tìm

Compare: Xác định kiểu so sánh chuỗi Giá trị: vbTextCompare,

vbBinaryCompare

Ví dụ 1:

myString = "The *rain in Spain mainly "

Position = Instr(myString,"*") ' Position sẽ là 5

Nếu trong myString không có dấu "*" thì Position sẽ bằng 0

Ví dụ 2:

KeyValuePair = "BeatlesSong=Yesterday"

Pos = Instr(KeyValuePair, "=")

Key = Left(KeyValuePair, Pos-1) ‘Key= “BeatlesSong”

Value = Mid(KeyValuePair, Pos+1) ‘Key= “Yesterday”

- Replace: tìm và thay thế chuỗi

Cú pháp: Replace(Expression, find, replace[, start[, count[, compare]]])

Trong đó:

- Expression: Biểu thức chuỗi chứa chuỗi cần thay thế

- find: Chuỗi cần tìm

- replace: Chuỗi thay thế chuỗi tìm được

- start: Tương tự như hàm InStr

- count: Xác định số lần thay thế Mặc định là 1

- compare: Kiểu so sánh chuỗi Giá trị: vbTextCompare, vbBinaryCompare

- LTrim (RTrim): cắt tất cả các khoảng trắng bên trái (bên phải của chuỗi)

- UCase: đổi chuỗi sang chuỗi gồm các ký tự là chữ hoa Cú pháp: UCase(string)

- Asc: cho mã Ascii của một ký tự

- Chr: trả về ký tự ứng với mã Ascii được chỉ định

- InstrRev: tương tự như InStr nhưng việc tìm kiếm được tiến hành từ phải sang

- Val: Hàm đổi chuỗi sang số

- Str: Hàm đổi số sang chuỗi

II.3.8 Date (Kiểu thời gian)

Đặc điểm:

Dùng để lưu trữ và thao tác trên các giá trị thời gian (ngày và giờ) Để cho VB biết dữ

liệu là kiểu Date ta cần đặt giữa dấu ## hoặc “”

Việc định dạng hiển thị tùy thuộc vào việc thiết lập trong Control Panel

Phạm vi áp dụng: Lưu trữ các giá trị thời gian, ngày tháng

Ví dụ:

Trang 21

Bộ môn Tự động hóa Thiết kế Cầu đường 21

Dim D As Date

D = #01/02/98# ‘ Hay “01/02/98”

Nếu hiểu theo kiểu người Mỹ, đây là ngày 2 tháng 1 năm 1998, còn nếu theo kiểu

Vietnam thì đây là ngày 1 tháng 2 năm 1998 Chọn kiểu ngày tháng trong Control

Panel|Regional Setting

- Hàm Now: trả về ngày giờ hiện tại

Ví dụ:

MsgBox "NOW IS " & Format (Now, "ddd dd-mmm-yyyy hh:nn:ss")

' sẽ hiển thị NOW IS Tue 05-Oct-2004 16:15:53

II.3.9 Kiểu mảng (array)

Đặc điểm:

- Mảng là một khối dữ liệu gồm các phần tử có cùng tên và kiểu dữ liệu Các phần tử trong

mảng phân biệt với nhau bởi các chỉ số

- Mảng có thể có một chiều hoặc nhiều chiều

- Trong VB có hai loại biến mảng: mảng có chiều dài cố định và mảng động (chiều dài có

thể thay đổi lúc thi hành)

Phạm vi áp dụng: Đôi khi chúng ta có nhiều biến tương tự nhau, thí dụ như điểm thi của 10

học sinh, nếu phải đặt tên khác nhau cho từng biến (VD: HoaMark, TaiMark, SonMark,

TamMark, NgaMark, HuongMark v.v ) thì bất tiện Chúng ta có thể dùng Array để có một

tên chung cho cả nhóm, rồi nói đến điểm của từng người một bằng cách dùng một con số

gọi là ArrayIndex

Việc lưu trữ dùng mảng còn giúp chúng ta xử lý dữ liệu dễ dàng hơn Ví dụ việc tổng hợp

điểm của danh sách trên

II.3.10 Kiểu tự định nghĩa

Đặc điểm: Kiểu dữ liệu do người dùng định nghĩa tương tự như kiểu bản ghi (Record)

trong Pascal hay kiểu cấu trúc (Struct) trong C

- Kiểu dữ liệu này gồm các trường, có thể là các kiểu dữ liệu khác nhau

Phạm vi áp dụng: Trong các trường hợp cần lưu một giá trị có nhiều thuộc tính Ví dụ các

thông số của một lỗ khoan

II.3.11 Kiểu lớp (class)

Đặc điểm: Lớp được xây dựng trong Class Module hoặc trong các thư viện có sẵn

- Lớp bao gồm:

Các thuộc tính (Property): thực chất là các biến thành viên khai báo trong lớp đó

Các phương thức (Method): thực chất là các chương trình con được khai báo trong

lớp - các hàm (Function) và thủ tục (Procedure) thành viên

- Ngoài ra trong VB, lớp có thể có sự kiện (Event) Sự kiện tạo ra khả năng linh động trong

xây dựng quan hệ giữa đối tượng với nhau và với mô môi trường

II.3.12 Kiểu Variant

Đặc điểm: Kiểu Variant là một kiểu dữ liệu đặc biệt trong VB Biến kiểu Variant có thể

chứa mọi giá trị của các kiểu dữ liệu khác, kể cả mảng

Tuy Variant tiện dụng nhưng nếu Variant được dùng nhiều chỗ, trong nhiều tình huống,

cần xác định rõ hiện đang là kiểu nào

Trang 22

Bộ môn Tự động hóa Thiết kế Cầu đường 22

Phạm vi sử dụng: Hạn chế dùng Variant vì sẽ gây lãng phí bộ nhớ và giảm tốc độ thực thi

của chương trình

Một số chú ý khi dùng biến kiểu Variant:

- Nếu muốn thi hành các hàm toán học, Variant phải chứa giá trị kiểu số

- Nếu muốn nối chuỗi, dùng toán tử & thay vì toán tử +

Giá trị Empty:

- Đây là giá trị đặc biệt xuất hiện khi một biến chưa được gán giá trị Ta dùng hàm

IsEmpty để kiểm tra giá trị Empty

- Giá trị Empty biến mất khi có một giá trị bất kỳ được gán cho biến Variant, để trở về

giá trị Empty, ta gán từ khoá Empty cho biến Variant

Giá trị Null: Biến Variant chứa giá trị Null trong trường hợp những ứng dụng cơ sở dữ liệu

thể hiện không có dữ liệu hoặc dữ liệu không xác định

Giá trị Error: Trong một biến kiểu Variant, Error là một giá trị đặc biệt cho biết đã có một

lỗi đã xảy ra bên trong thủ tục

Ví dụ:

Private Sub cmdShowDataTypes_Click()

Dim sMess As String

Dim vVariant As Variant

vVariant = "Xin chao" 'String

sMess = TypeName(vVariant) & vbCrLf ' xuống dòng & về đầu dòng

vVariant = 25 ' Integer

sMess = sMess & TypeName(vVariant) & vbCrLf

vVariant = True ' Boolean

sMess = sMess & TypeName(vVariant) & vbCrLf 'Date

vVariant = #1/1/2001# 'trong cặp dấu #

sMess = sMess & TypeName(vVariant)

MsgBox sMess

End Sub

Khi chạy chương trình kết quả là:

II.3.13 Chuyển đổi (convert) kiểu dữ liệu

VB cung cấp một số hàm để chuyển kiểu dữ liệu của một biến từ loại này sang loại khác

Val (str): Trả về giá trị kiểu thực của một chuỗi: a= Val(“1245.43 asd”)

Nếu trong chuỗi có chứa ký tự khác số, hàm sẽ loại bỏ ký tự đó

CDbl (x):Trả về giá trị kiểu thực của chuỗi, chuỗi này phải là các số (number)

CInt (x): Trả về giá trị kiểu nguyên (Integer)

CStr (x): Trả về giá trị kiểu chuỗi

Str (x): Trả về giá trị kiểu chuỗi của một số

Các lưu ý:

- Kiểu dữ liệu số nguyên: Byte, Integer, Long khi gán giá trị thập phân thì VB sẽ gán giá trị

nguyên làm tròn Lấy VD

Trang 23

Bộ môn Tự động hóa Thiết kế Cầu đường 23

- Thực hiện các phép tính số nguyên với số thực sẽ cho kết quả là số thực VD: Integer +

Double = Double

Question for today!

II.4 CÁC KHAI BÁO

VB cho phép dùng một biến mà không cần khai báo, tuy nhiên chúng ta nên định nghĩa các

biến, hằng, đối tượng sẽ dùng ,

Khai báo một biến sẽ cho VB biết về sự tồn tại của nó để cấp phát bộ nhớ lưu trữ

Để VB yêu cầu tất cả các biến trong mã lệnh phải được khai báo tường minh ta thêm khai

báo vào đầu mã lệnh (Sẽ nhắc lại ở phần sau):

Option Explicit

II.4.1 Khai báo biến với các kiểu dữ liệu thông thường

Khái niệm biến:

Biến (Variable) là vùng lưu trữ được đặt tên để chứa dữ liệu tạm thời trong quá trình tính

toán, so sánh và các công việc khác

Cách khai báo

Dim <tên_biến> as <Kiểu_dữ_liệu>

- Dùng các từ khóa Public hay Private nhằm xác định phạm vi hoạt động của biến (sẽ

giải thích ở phần sau)

Public <tên_biến> as <Kiểu_dữ_liệu>

Hay: Private <tên_biến> as <Kiểu_dữ_liệu>

Nếu khai báo biến không xác định kiểu dữ liệu thì biến đó có kiểu Variant

Ví dụ:

Dim sHoTen As String

Public iTuoi As Integer

Private iKetHon As Boolean

II.4.2 Khai báo hằng

- Là kiểu dữ liệu dùng lưu những giá trị không bao giờ thay đổi

Việc sử dụng kiểu hằng số giúp chúng ta hạn chế những nhầm lần Đơn cử như việc sử

dụng một thông số nhiều lần trong chương trình

[Public/ Private] Const <tên_hằng> = <giá_trị_hằng>

Ví dụ:

Const g = 9.8

Const Num As Integer = 4*5

II.4.3 Khai báo kiểu tự định nghĩa

- Khai báo các kiểu dữ liệu dạng bản ghi gồm các trường theo nhu cầu của người sử dụng

Cú pháp khai báo như sau:

Trang 24

Bộ môn Tự động hóa Thiết kế Cầu đường 24

[Pravite/Public] Type <tên_ kiểu>

Sau khai báo, để truy cập tới một trường của biến kiểu bản ghi, dùng toán tử (.) và cặp từ

khóa With… End With

Ví dụ: Dữ liệu về điểm đo trong khảo sát địa hình có thể được xây dựng gồm: chỉ số của

điểm (id), tên điểm (name), tọa độ x, tọa độ y, cao độ z, mã địa vật (madiavat)

Private Type diemdo ‘ Khai báo kiểu

Private Sub Command1_Click()

Dim diem as diemdo ‘ Tạo biến và gán dữ liệu

[Public/ Private/ Dim] <tên_mảng>(<các thông số về chiều>) as <tên_kiểu>

Các thông số về chiều có thể biểu diễn qua các ví dụ sau:

Dim a(1 to 4) as Integer: mảng 1 chiều chỉ số từ 1 đến 4 kiểu nguyên

Dim a(3) as Long: mảng 1 chiều chỉ số tới 3 kiểu Long

(chỉ số xuất phát mặc định là 0 hoặc được xác định thông qua khai báo Option Base )

Option Base 0 hoặc Option Base 1

Dim a(1 to 4,2 to 6) as Double: mảng 2 chiều chỉ số từ 1 tới 4 và 2 tới 6

Dim a(2,2,3) as String: mảng 3 chiều với miền chỉ số trên tương là 2, 2 và 3

• Mảng động (mảng có kích thước thay đổi)

[Public/ Private/ Dim] <tên_mảng> () as <tên_kiểu>

Trong khai báo trên không có các thông số về chiều, thuần túy chỉ là một khai báo

Trang 25

Bộ môn Tự động hóa Thiết kế Cầu đường 25

- Các phần tử của mảng chưa được tạo ra (hay mảng chưa được cấp phát bộ nhớ)

- Dữ liệu của mảng chỉ được tạo ra hoặc thay đổi khi có lệnh Redim

Lệnh này có tác dụng tạo ra mảng thực sự (có kích thước và các phần tử tương ứng) hoặc

thay đổi kích thước của một mảng động

Redim <tên_mảng>(<các thông số về chiều>) as <tên kiểu>

- Chú ý rằng <tên_kiểu> phải đúng như khai báo, các thông số về chiều có thể khác

trước cả về số chiều và kích thước của từng chiều

- Dữ liệu mảng cũ sẽ bị, thay vào đó là phần tử của mảng mới được khởi tạo

Ví dụ:

Dim diem as diemdo

Dim a() as Long

Redim a(1 to 5) as Long

a(1) = 100: a(2) = 200 ‘a(1) và a(2) có giá trị tương ứng 100 và 200

Redim a(1 to 3, 2 to 4) as Long

‘Mảng được làm mới hoàn toàn là một mảng 2 chiều, các giá trị a(1) và a(2) không còn ý

nghĩa nữa

- Trong trường hợp muốn thay đổi kích thước của mảng mà không mất dữ liệu, dùng lệnh

ReDim với từ khóa Preserve

Tuy nhiên chỉ thay đổi được biên trên của chiều cuối cùng trong mảng Nếu thay đổi các

chiều khác sẽ phát sinh lỗi

Ví dụ

Dim a() as Long

ReDim a(1 to 5) as Long

a(1) = 100: a(2) = 200

ReDim Preserve a(1 to 6) as Long

‘Thay đổi mở rộng mảng thêm một phần tử mà không ảnh hưởng đến các dữ liệu trước

a(1)vẫn có giá trị 100, a(2)=200

Không thêm được chỉ số 0 vào mảng trên: ReDim Preserve a(0 to 6) as Long

(Lỗi)

Một số thao tác trên mảng

- Hàm UBound trả về biên trên của một mảng

- Hàm LBound trả về biên dưới của một mảng

- Truy xuất từng phần tử trong mảng: <Tên mảng>(<Vị trí>)

- Sao chép mảng: Đối với VB6, ta có thể gán một mảng cho một mảng khác, hoặc

Cách này cũng chỉ áp dụng được cho mảng khai báo động

- Mảng là kết quả trả về của hàm Chẳng hạn như:

Trang 26

Bộ môn Tự động hóa Thiết kế Cầu đường 26

Public Function ArrayFunction (b As Byte) As Byte()

II.4.5 Khai báo, tạo và làm việc với biến đối tượng

Khai báo và tạo biến đối tượng phải dùng thêm từ khóa New

Dim <tên_đối_tượng> as New <Tên_Lớp>

Phép gán đối tượng được thực hiện với từ khóa Set

Set <tên_đối_tượng> = <giá trị>

- Chú ý rằng nếu thực hiện khai báo một biến đối tượng như thông thường (không có từ

khóa New) thì biến thực sự chưa được tạo ra Trong trường hợp ấy, sau đó phải có thao tác

tạo đối tượng với các từ khóa SetNew

Dim <tên_đối_tượng > as <tên_lớp>

Set <tên_đối_tượng > = New <tên_lớp>

- Các phép toán, các toán tử có được áp dụng cho đối tượng hay không tùy thuộc vào lớp

<Tên_đối_tượng >.<Tên_phương_thức>(Các tham số)

Sẽ cụ thể hơn trong các chương sau

II.4.6 Các chú ý khi khai báo

- Có thể khai báo nhiều biến cùng lúc:

Dim passw As String, yourName As String, firstnum As Integer,

- Nếu kiểu dữ liệu không được định nghĩa, VB sẽ tự động khai báo là kiểu Variant

- Dữ liệu kiểu chuỗi (String) có hai cách khai báo, ngoài cách thông thường, có thể khai

báo độ dài của giá trị

Dim VariableName as String * n

trong đó n là số lượng ký tự mà biến có thể lưu trữ

Ví dụ:

Trang 27

Bộ môn Tự động hóa Thiết kế Cầu đường 27

Dim yourName as String * 10

yourName sẽ không giữ lớn hơn 10 ký tự

II.5 BIỂU THỨC

II.5.1 Các khái niệm

- Biểu thức: là tập hợp các toán hạng và các toán tử kết hợp lại với nhau theo quy tắc nhất

định để tính toán ra một giá trị nào đó

- Toán tử hay phép toán (Operator): là từ hay ký hiệu nhằm thực hiện phép tính và xử lý

dữ liệu

- Toán hạng: là giá trị dữ liệu (biến, hằng…)

II.5.2 Các loại phép toán

Là các phép toán tác động trên kiểu Boolean và cho kết quả là kiểu Boolean Các

phép toán này bao gồm AND (và), OR (hoặc), NOT (phủ định) Sau đây là bảng giá

trị của các phép toán:

Not Not TRUE = FALSE; Not FALSE = TRUE

And TRUE And TRUE = TRUE; FALSE And FALSE = FALSE

Trang 28

Bộ môn Tự động hóa Thiết kế Cầu đường 28

Các trường hợp khác cho kết quả FALSE

Or FALSE Or FALSE = FALSE; Các trường hợp khác cho kết quả TRUE

Xor A Xor B: A hoặc B nhưng không phải cả hai

Eqv A Eqv B; So sánh tương đương Giống nhau cho giá trị True

Trang 29

Bộ môn Tự động hóa Thiết kế Cầu đường 29

Một số hàm toán học thông dụng

Các hàm toán học có thể tra cứu trong Object Browser (thư viện Math)

Abs (x): Hàm giá trị tuyệt đối

Exp (x): Hàm mũ cơ số tự nhiên ex

Log (x): Logarit cơ số tự nhiên

Sqr (x): lấy bình phương

Các hàm lượng giác: Cos (x), Sin (x), Tan (x)

Hàm lượng giác ngược: Atn (x) Arctg

Fix (x): Hàm lấy phần nguyên chẵn Ví dụ Fix (5.1) = 5; Fix (5.6) = 5

Int (x): Hàm lấy phần nguyên làm tròn

Round (x, num) làm tròn số thực x đến (num) chữ số thập phân

II.6 CÁC CÂU LỆNH

Một câu lệnh (statement) xác định một công việc mà chương trình phải thực hiện để xử lý

dữ liệu đã được mô tả và khai báo Các câu lệnh được ngăn cách với nhau bởi ký tự xuống

Giả sử ta có khai báo sau:

Dim TodayTemp As Single, MinAge As Integer

Dim Sales As Single, NewSales As Single, FullName As String

Các lệnh sau gán giá trị cho các biến trên:

MinAge = 18

Sales = 200000

NewSales = Sales * 1.2

Giả sử người dùng cần nhập họ và tên vào ô nhập liệu TextBox có thuộc tính Name

là txtName, câu lệnh dưới đây sẽ lưu giá trị của ô nhập liệu vào trong biến

Trang 31

Bộ môn Tự động hóa Thiết kế Cầu đường 31

VB sẽ kiểm tra các điều kiện, nếu điều kiện nào đúng thì khối lệnh tương ứng sẽ được thi

hành Ngược lại nếu không có điều kiện nào đúng thì khối lệnh sau từ khóa Else sẽ được

thi hành

Ví dụ:

If (TheColorYouLike = vbRed) Then

MsgBox "You are a lucky person"

ElseIf (TheColorYouLike = vbGreen) Then

MsgBox "You are a hopeful person"

ElseIf (TheColorYouLike = vbBlue) Then

MsgBox "You are a brave person"

ElseIf (TheColorYouLike = vbMagenta) Then

MsgBox "You are a sad person"

Else

MsgBox "You are an average person"

End If

II.6.3 Câu lệnh lựa chọn Select Case

Trong trường hợp có quá nhiều các điều kiện cần phải kiểm tra, nếu ta dùng cấu trúc rẽ

nhánh If…Then thì đoạn lệnh không được rõ ràng, khó kiểm tra, sửa đổi khi có sai sót

Ngược lại với cấu trúc Select…Case, biểu thức điều kiện sẽ được tính toán một lần vào

đầu cấu trúc, sau đó VB sẽ so sánh kết quả với từng trường hợp (Case) Nếu bằng nó thi

hành khối lệnh trong trường hợp (Case) đó

Các từ khóa: Select Case, Case, End Select

Sơ đồ khối

Cú pháp

Select Case <biểu thức kiểm tra>

Case <Danh sách kết quả biểu thức 1>

[Khối lệnh 1]

Case <Danh sách kết quả biểu thức 2>

[Khối lệnh 2]

… [Case Else

[Khối lệnh n]]

End Select

Mỗi danh sách kết quả biểu thức sẽ chứa một hoặc nhiều giá trị Trong trường hợp có nhiều

giá trị thì mỗi giá trị cách nhau bởi dấu phẩy (,) Nếu có nhiều Case cùng thỏa điều kiện thì

khối lệnh của Case đầu tiên sẽ được thực hiện

Trang 32

Toán tử Is: Được dùng để so sánh <Biểu thức kiểm tra> với một biểu thức nào đó

Toán tử To: Dùng để xác lập miền giá trị của <Biểu thức kiểm tra>

Thực hiện một khối lệnh lặp theo một biến đếm với số lần lặp đã được xác định

Các từ khóa: For, to, Step, Next

Cú pháp

For <biến_đếm> = <điểm_đầu> to <điểm_cuối> [Step <bước_nhảy>]

Khối_lệnh

Next

Biến đếm, điểm đầu, điểm cuối, bước nhảy là những giá trị số (Integer, Single,…) Bước

nhảy có thể là âm hoặc dương Nếu bước nhảy là số âm thì điểm đầu phải lớn hơn điểm

cuối, nếu không khối lệnh sẽ không được thi hành

Khi Step không được chỉ ra, VB sẽ dùng bước nhảy mặc định là 1

Ví dụ: Tính N!

- Xây dựng giao diện

- Viết mã cho sự kiện Command1_Click

Trang 33

Bộ môn Tự động hóa Thiết kế Cầu đường 33

Private Sub Command1_Click()

Dim i As Integer, n As Integer, Kq As Long

II.6.5 Câu lệnh lặp xác định trong một tập hợp

Thực hiện một khối lệnh lặp theo một biến chạy trong một tập hợp xác định

Các từ khóa: For Each, In, Next

- Phần tử trong tập hợp chỉ có thể là biến Variant, biến Object, hoặc một đối tượng

trong Object Browser

- Không dùng For Each Next với mảng chứa kiểu tự định nghĩa vì Variant

không chứa kiểu tự định nghĩa

Ví dụ:

Dim DanhSach(1) As String

Dim HoTen As Variant

DanhSach(0) = "Tran Van A": DanhSach(1) = "Nguyen Thi B"

For Each HoTen In DanhSach

MsgBox HoTen

Next

II.6.6 Câu lệnh lặp không xác định

Thực hiện một khối lệnh với số lần lặp không định trước, theo một biểu thức điều kiện

(biểu thức điều kiện có giá trị Boolean: True hoặc False)

Kiểu 1: Lặp trong điều kiện là True

Loop While <điều kiện>

Kiểu 2: Lặp trong điều kiện là False

Trang 34

Dim Check, Counter

Check = False: Counter = 0 ' Khởi tạo

Do While Counter < 5 ' Counter chạy từ 0 đến 4 => True

Counter = Counter + 1 ' Tăng biến đếm

MsgBox Counter ‘ Thông báo giá trị biến đếm

Loop ‘ Có thể chuyến While Counter < 5 xuống đây, lúc đó Counter

sẽ chạy đến 5

Do Until Check ' Check có giá trị False

Counter = Counter + 1 ' Tăng biến đếm

If Counter = 5 Then

Check= True

Loop

Để thoát khỏi vòng lặp, sử dụng câu lệnh Exit Do

II.7 CHƯƠNG TRÌNH CON (HÀM VÀ THỦ TỤC)

II.7.1 Khái niệm

Trong 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

II.7.2 Hàm - Function

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

Cách khai báo:

Trang 35

Bộ môn Tự động hóa Thiết kế Cầu đường 35

[Private | Public | Static] Function <Tên hàm> ([<tham số>[As <KiểuDL>]]) [As <KiểuDL>]

<Các dòng lệnh> hay <Các khai báo>

End Function

Trong đó:

- <Tên hàm>: Tên hàm được đặt giống quy tắc tên biến, hằng,…

- <tham số>[As <KiểuDL>]: 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ểuDL>: 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

Cú pháp gọi hàm: <Tên hàm>[(tham số)]

Ví dụ: Tính giai thừa N

II.7.3 Thủ tục - Sub

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ố

Cách khai báo:

[Private | Public] [Static] Sub <tên thủ tục> ([<tham số>[As <Kiểu dữ liệu>]])

<Các dòng lệnh> hay <Các khai báo>

End Sub

Trong đó:

- <Tên thủ tục>: Tên được đặt giống quy tắc tên biến, hằng,…

- ([<tham số>[As <Kiểu dữ liệu>] : 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, có 2 cách:

<Tên thủ tục> [<Các tham số >]

Hoặc Call <Tên thủ tục> ([<Các tham số >])

Ví dụ: Thủ tục kiểm tra xem số nguyên N có phải là số nguyên tố hay không?

Sub KTraNgTo(N As Integer)

Trang 36

Bộ môn Tự động hóa Thiết kế Cầu đường 36

II.7.4 Truyền tham số cho chương trình con

Có hai cách truyền tham số cho chương trình con:

- ByVal – Truyền tham số theo tham trị (giá trị)

Một bản sao của biến được truyền vào chương trình con Chương trình con không làm việc

với biến mà chỉ làm việc với bản sao giá trị của biến Do đó, nếu trong chương trình con có

sự thay đổi giá trị của biến thì chỉ có bản sao bị ảnh hưởng mà không liên quan đến giá trị

của biến Trong VB, truyền tham số theo tham trị phải được chỉ rõ bằng từ khóa ByVal

Kết quả thực hiện của đoạn chương trình trên: 4 8 4

- ByRef – Truyền tham số theo tham biến (địa chỉ)

Địa chỉ của biến sẽ được truyền cho chương trình con Do đó bất kì thay đổi nào của thủ

tục trên biến sẽ tác động trực tiếp lên giá trị của biến Trong VB, truyền tham số theo tham

biến là mặc định Dùng từ khóa ByRef

Kết quả thực hiện của đoạn chương trình trên: 4 8 8

Các ví dụ tạo chương trình con đơn giản

- Cách tạo chương trình con trong VB: Tools > Add Procedure

Trang 37

Bộ môn Tự động hóa Thiết kế Cầu đường 37

Public Function GiaiThua(ByVal A As Integer) As Integer

- Truyền tham số dạng mảng (Byref)

Function TrungBinhCong(X() As Integer) As Double

Dim vItem As Variant

Dim iTong As Integer

iTong = 0

For Each vItem In X

Tong = Tong + vItem

Next

TrungBinhCong = Tong / UBound(X)

End Function

Private Sub Form_Load()

Dim List(1 To 5) As Integer

Trang 38

Bộ môn Tự động hóa Thiết kế Cầu đường 38

Function DienTichCN(X As Double , Optional Y As Variant ) As Double

Private Sub Form_Load()

MsgBox DienTichCN(3) ‘Diện tích hình vuông

MsgBox DienTichCN(3, 4) ‘Diện tích hình chữ nhật

End Sub

II.8 TRUY XUẤT DỮ LIỆU TRONG VISUAL BASIC

II.8.1 Các khái niệm

a Module:

Một ứng dụng đơn giản có thể chỉ có một Form, lúc đó tất cả mã lệnh của ứng dụng đó

được đặt trong cửa sổ mã lệnh của Form đó (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ố Form 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 Form 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 Form: đi kèm với mỗi một Form là một module của Form đó để chứa mã lệnh của

Form này Với mỗi điều khiển trên Form, module Form chứa các chương trình con và

chúng sẵn sàng được 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 Form đượ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 Form 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 tượng Các đối tượng sẽ có các

thuộc tính và phương thức của lớp mà nó tạo ra (Class module được lưu với đuôi *.cls)

b Phạm vi của biến(scope): xác định biến có thể sử dụng trong phạm vi nào Một biến sẽ

thuộc một trong 3 loại phạm vi:

Phạm vi biến cục bộ

Phạm vi biến module

Phạm vi biến toàn cục

II.8.2 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>]

II.8.3 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 khối chương trình mà chúng

được định nghĩa

Trang 39

Bộ môn Tự động hóa Thiết kế Cầu đường 39

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

II.8.4 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 khối chương trình khác 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

II.9 GỠ LỖI TRONG VISUAL BASIC (Debug)

Trong quá trình viết mã lệnh và chạy thử một dự án, việc phát sinh các lỗi là không thể

tránh khỏi Vì vậy, việc phát hiện và xử lý lỗi là điều tất yếu Trình tự của công việc này

như sau:

1 Phát hiện lỗi và phân loại lỗi phát sinh

2 Tìm kiếm vị trí mã lệnh phát sinh lỗi

3 Sửa lỗi

4 Xử lý, ngăn chặn lỗi có thể xảy ra trong tương lai (bẫy lỗi)

(Dù các lỗi xảy ra trong khi xây dựng chương trình đã được khắc phục, nhưng không thể

đảm bảo rằng sẽ không phát sinh lỗi khi chương trình hoạt động trong tương lai Vì vậy,

người lập trình phải xem xét trước tới những khả năng có thể xảy ra và có xử lý tương

ứng)

Chúng ta có các công cụ hỗ trợ quá trình gỡ lỗi Debug Toolbar: View | Toolbars | Debug

II.9.1 Phân loại lỗi lập trình

Có các loại lỗi cơ bản thường gặp:

ƒ Các lỗi cú pháp (Syntax Error)

Các lỗi phát sinh do viết mã lệnh sai quy tắc

- Vi phạm khi đặt hay gọi tên biến và hàm: Lỗi loại này thường rất dễ tìm ra trong lúc phát

triển mã

Trang 40

Bộ môn Tự động hóa Thiết kế Cầu đường 40

- Lỗi chính tả: người viết mã có thể viết hay gọi sai tên hàm, tên biến Trong VB nếu

không sử dụng khai báo Option Explicit thì sẽ có thể gây sai sót nghiêm trọng vì trong quá

trình dịch VB không phát hiện ra

- Vượt quá khả năng tính toán: Bản thân máy tính và hệ điều hành cũng có rất nhiều giới

hạn về phần cứng, phần mềm và các đặc diểm chuyên biệt Khi người lập trình yêu cầu

máy làm quá khả năng sẽ gây ra các lỗi mà đôi khi không xác định được

- Gán sai dữ liệu: Tức là dùng một dữ liệu có kiểu khác với kiểu của biến để gán cho biến

đó một cách không chủ ý

Khi biên soạn, Visual Basic sẽ dò lỗi cú pháp tửng lệnh mỗi khi Enter, và thông báo ngay

lỗi đó Nếu đúng cú pháp, nó sẽ chỉnh lại khoảng cách giữa 2 từ, viết lại các từ khóa hay

tên các hàm của Basic

ƒ Các lỗi khi chạy chương trình (Runtime Error)

Các lỗi phát sinh khi chương trình được thực thi Tất nhiên, các lỗi này thường không do

nguyên nhân lỗi cú pháp mà tuỳ thuộc điều kiện cụ thể khi chương trình được thực thi Ví

dụ các lỗi do hệ thống không đáp ứng được yêu cầu của mã lệnh thực thi như tràn bộ nhớ,

các tài nguyên mà chương trình sử dụng không có trong hệ thống,…Các lỗi thực thi thường

dẫn tới sự chấm dứt hoạt động của chương trình thậm chí của toàn bộ hệ thống

ƒ Các lỗi do thuật giải

Các lỗi xảy ra do sự sai sót trong thuật toán xử lý hoặc trong quá trình cài đặt và sử dụng

các thuật toán Các lỗi thuật giải thường dẫn tới kết quả xử lý của chương trình bị sai, trong

nhiều trường hợp các lỗi thuật giải cũng có thể là nguyên nhân làm phát sinh các lỗi thực

thi Các lỗi thuật giải là những lỗi không được môi trường biên dịch phát hiện Việc phát

hiện và sửa lỗi chỉ có thể được thực hiện bởi người lập trình Vì vậy, đây là loại lỗi khó

phát hiện và khắc phục nhất

II.9.2 Phát hiện và khắc phục lỗi trong lập trình

Ø Các lỗi cú pháp

Các lỗi cú pháp có thể được khắc phục khá dễ dàng do người lập trình được thông báo của

trình biên dịch ngay trong quá trình viết mã lệnh

Ø Các lỗi thực thi và lỗi thuật giải

Trước hết người dùng phải xác định rõ loại lỗi, nguyên nhân và tiến trình gây lỗi Từ đó

phát hiện ra đoạn mã lệnh gây lỗi và tiến hành sửa chữa Trong các trình biên dịch hiện đại

nói chung và VBIDE nói riêng, người dùng được hỗ trợ rất nhiều thông qua các tính năng

gỡ rối như biên dịch theo từng bước, theo các điểm dừng, hiển thị các kết quả trung gian

Các tính năng này được tổ chức trong menu Debug của VBIDE Cụ thể như sau:

- Chạy từng bước (Step Into – phím tắt F8): chương trình được dịch theo từng dòng

lệnh

- Chạy từng bước với khối lệnh (Step Over – phím tắt SHIFT+F8): tương tự như chạy

từng bước (Step Into) nhưng việc thực thi một chương trình con được coi như thực thi một

dòng lệnh Vì vậy nếu trong chương trình hiện tại có một lời gọi chương trình con thì

chương trình con sẽ được thực thi như một lệnh và do đó con trỏ biên dịch sau đó sẽ nhảy

tới dòng lệnh tiếp theo của chương trình hiện tại (Trong khi đó nếu thực hiện biên dịch với

lệnh Step Into, con trỏ biên dịch sẽ nhảy tới dòng lệnh đầu tiên của chương trình con được

gọi)

- Chạy ra ngoài chương trình con (Step Out – phím tắt CTRL+SHIFT+F8): nếu con trỏ

biên dịch đang ở trong một chương trình con, thì lệnh biên dịch Step Out sẽ dịch toàn bộ

các lệnh còn lại trong chương trình con đó và đưa con trỏ lệnh tới vị trí tiếp sau vị trí có lời

gọi chương trình con

- Chạy tới vị trí con trỏ chuột (Run to Cursor – phím tắt CTRL+F8): Chạy từ vị trí con

trỏ biên dịch hiện tại tới vị trí có con trỏ chuột

Ngày đăng: 04/12/2015, 03:56

HÌNH ẢNH LIÊN QUAN

Hình 1 – Mô hình 3 chiều của công trình được xây dựng trên máy tính - Bài giảng tin học xây dựng   lê đắc hiền
Hình 1 – Mô hình 3 chiều của công trình được xây dựng trên máy tính (Trang 7)
Hình 2 – Hầu hết các bản vẽ kỹ thuật hiện nay đều thực hiện trên máy tính - Bài giảng tin học xây dựng   lê đắc hiền
Hình 2 – Hầu hết các bản vẽ kỹ thuật hiện nay đều thực hiện trên máy tính (Trang 8)
Bảng ASCII. - Bài giảng tin học xây dựng   lê đắc hiền
ng ASCII (Trang 19)
Sơ đồ khối - Bài giảng tin học xây dựng   lê đắc hiền
Sơ đồ kh ối (Trang 30)
Sơ đồ khối - Bài giảng tin học xây dựng   lê đắc hiền
Sơ đồ kh ối (Trang 31)
Hình minh họa các kích thước của màn ảnh và Form. - Bài giảng tin học xây dựng   lê đắc hiền
Hình minh họa các kích thước của màn ảnh và Form (Trang 92)
Hình chữ nhật 4 góc tròn: - Bài giảng tin học xây dựng   lê đắc hiền
Hình ch ữ nhật 4 góc tròn: (Trang 97)
Hình hay đối tượng máy in. - Bài giảng tin học xây dựng   lê đắc hiền
Hình hay đối tượng máy in (Trang 99)
Bảng giá trị của thuộc tính này - Bài giảng tin học xây dựng   lê đắc hiền
Bảng gi á trị của thuộc tính này (Trang 103)
Hình dạng   Giá trị   Hằng - Bài giảng tin học xây dựng   lê đắc hiền
Hình d ạng Giá trị Hằng (Trang 103)
Hình bình hành. - Bài giảng tin học xây dựng   lê đắc hiền
Hình b ình hành (Trang 107)
Hình hoặc không gian in, tuỳ thuộc vào không gian nào là không gian hiện hành. - Bài giảng tin học xây dựng   lê đắc hiền
Hình ho ặc không gian in, tuỳ thuộc vào không gian nào là không gian hiện hành (Trang 123)
Hình đối tượng của Excel ngay từ bên trong Visual Basic - Bài giảng tin học xây dựng   lê đắc hiền
nh đối tượng của Excel ngay từ bên trong Visual Basic (Trang 136)
Hình chữ nhật là ô đầu tiên có chứa dữ liệu, còn góc dưới bên phải của hình chữ nhật là ô - Bài giảng tin học xây dựng   lê đắc hiền
Hình ch ữ nhật là ô đầu tiên có chứa dữ liệu, còn góc dưới bên phải của hình chữ nhật là ô (Trang 141)
Hình học của cấu kiện, tải trọng tác dụng lên cấu kiện. - Bài giảng tin học xây dựng   lê đắc hiền
Hình h ọc của cấu kiện, tải trọng tác dụng lên cấu kiện (Trang 150)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm