Bài giảng Tin học đại cương - Hải Phòng

MỤC LỤC

STT NỘI DUNG TRANG

CHƢƠNG I NHẬP MÔN TIN HỌC ĐẠI CƢƠNG

1.1 Một vài nét về tin học và máy tính 4

1.2 Thông tin và xử lý thông tin 4

1.3 Thành phần của máy tính 4

1.4 Các hệ đếm 5

1.5 Phân loại máy tính 9

1.6 Các bộ phận chính của máy tính PC 10

CHƢƠNG II TỔNG QUAN VỀ LẬP TRÌNH

2.1 Vấn đề giải quyết bài toán bằng máy tính 12

2.2 Một số ví dụ 13

CHƢƠNG III NGÔN NGỮ LẬP TRÌNH VISUAL BASIC

3.1 Khởi động Visual Basic 20

3.2 Thoát khỏi Visual Basic 20

3.3 Tạo, mở và lƣu một dự án (Project) 20

3.4 Các bƣớc xây dựng chƣơng trình 21

3.5 Một số đối tƣợng cơ bản trong Visual Basic 23

3.6 Một số ví dụ về thiết kế giao diện và lập bảng thuôc tính 29

3.7 Các kiểu dữ liệu cơ bản 30

CHƢƠNG IV KHAI BÁO HẰNG BIẾN BIỂU THỨC CÂU LỆNH

4.1 Các hằng trong Visual Basic 36

4.2 Biến 36

4.3 Biểu thức 37

4.4 Quy định về viết dòng lệnh trong Visual Basic 37

4.5 Cách viết dòng chú thích trong chƣơng trình 37

4.6 Câu lệnh gán 37

4.7 Câu lệnh End 38

4.8 Lệnh in dữ liệu 38

4.9 Lệnh nhập dữ liệu 39

4.10 Chuyển đổi kiểu dữ liệu trong quá trình tính giá trị biểu

thức40

4.11 Cấu trúc điều kiện 41

4.12 Câu lệnh lựa chọn Select 43

4.13 Cấu trúc lặp 45

4.14 Một số ví dụ 48

CHƢƠNG V HÀM VÀ THỦ TỤC

5.1 Khái niệm chƣơng trình con 51

5.2 Hàm và thủ tục 51

5.3 Truyền tham số cho chƣơng trình con 53

5.4 Biến toàn cục, biến địa phƣơng, khái niệm tầm tác dụng 56

CHƢƠNG VI DỮ LIỆU CÓ CẤU TRÚC, KIỂU MẢNG

6.1 Khái niệm về mảng 59

6.2 Khai báo mảng tĩnh 59

6.3 Khai báo mảng động (Dynamic Array) 61

6.4 Một số thuật toán về mảng 62

pdf68 trang | Chuyên mục: Tin Học Đại Cương | Chia sẻ: dkS00TYs | Lượt xem: 1720 | Lượt tải: 1download
Tóm tắt nội dung Bài giảng Tin học đại cương - Hải Phòng, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
là chỉ 
số của các phần tử. Số phần tử của mảng có thể đƣợc xác định ngay từ khi khai báo mảng 
(trong mảng tĩnh) hoặc có thể thêm các phần tử trong quá trình xử lý (với mảng động). Mảng 
có biên trên và biên dƣới, các thành phần trong mảng là liên tục giữa hai biên. 
Trong trƣờng hợp bài toán có nhiều giá trị tƣơng tự nhau, thí dụ nhƣ trong bài toán 
cần quản lý điểm thi của một sinh viên, nếu phải đặt tên khác nhau cho từng biến (thí dụ: 
SV_mon1, SV_mon2, SV_mon3, SV_mon4, SV_mon5...) Khi đó phải đặt mỗi tên cho 1 
môn học thì khá bất tiện trong quá trình xử lý. 
Để thuận tiện trong quá trình xử lý có thể dùng một tên chung cho tất cả các môn 
học, rồi nói đến điểm của từng môn một bằng cách dùng một con số gọi là chỉ mục. Khi 
đó nhóm các điểm trên đƣợc gọi là 1 mảng lƣu các giá trị điểm thi của sinh viên. 
Muốn truy cập đến một phần tử nào của mảng ta viết nhƣ sau: 
.(Chỉ số) 
6.2. Khai báo mảng tĩnh 
Mảng tĩnh là mảng có số phần tử đƣợc xác định ngay từ khi khai báo mảng và số 
phần tử này không thay đổi trong chƣơng trình. 
6.2.1. Khai báo mảng 1 chiều 
Để khai báo mảng 1 chiều có 2 cách 
Cách 1 : 
DIM Ten_mang(n) As Kiểu_dữ_liệu 
Trong đó: 
 n là số nguyên dùng để chỉ số lƣợng các phần tử trong mảng. Nếu khai báo nhƣ 
trên ta sẽ thu đƣợc mảng gồm n+1 phần tử và phần tử đầu tiên có chỉ số là 0, phần tử cuối 
cùng có chỉ số là n. 
Quay lại với bài toán trên giả sử ta cần lƣu điểm của 1 sinh viên trong 1 học kì với 
số môn học là 10. Khi đó ta sẽ khai báo 
Dim StudentMarks(9) as Integer 
Kế đó cần nhập điểm của sinh viên bằng cách viết StudentMarks(i), mà i là chỉ 
mục i<9. Giả dụ ta muốn nhập tất cả điểm của sinh viên 
StudentMarks(0) = 6 „ Diem mon hoc 1 
 Bài giảng Tin học Đại cương 
_60_ 
StudentMarks(1) = 6 ' Diem mon hoc 2 
StudentMarks(2) = 7 
StudentMarks(3) = 5 
StudentMarks(4) = 9 
StudentMarks(5) = 6 
StudentMarks(6) = 8 
StudentMarks(7) = 9 
StudentMarks(8) = 10 
StudentMarks(9) = 6 „ Diem mon hoc 10 
Cách 2 : 
DIM Ten_mang(chỉ số đầu TO chỉ số cuối) As Kiểu_dữ_liệu 
Khi khai báo theo cách 2 ta thu đƣợc mảng có số phần tử: 
n = (chỉ số cuối - chỉ số đầu) +1. 
Lƣu ý: Với phần tử đầu có chỉ số bằng chỉ số đầu, phần tử cuối có chỉ số bằng chỉ 
số cuối. 
Quay lại với bài toán nếu ta khai báo mảng để lƣu trữ điểm 10 môn học ta khai báo: 
Dim StudentMarks(1 to 10) AS Integer 
Khi đó điểm môn 1 sẽ đƣợc gán vào StudentMarks(1), điểm môn 10 sẽ đƣợc gán 
vào StudentMarks(10). 
6.2.2. Khai báo mảng nhiều chiều 
Khi làm việc với giá trị các phần tử của một ma trận n chiều cách đơn giản nhất là 
khai báo một mảng có số chiều tƣơng ứng. Để khai báo một mảng gồm n chiều ta thực 
hiện theo 1 trong 2 cách sau: 
Cách 1 : 
Dim Tên_mảng (n1, n2, n3,… ,nm) As Kiểu_dữ_liệu 
Với n1+1 là số phần tử của chiều 1 
Với n2+1 là số phần tử của chiều 2 
… 
Với nm+1 là số phần tử của chiều thứ m 
Ví dụ: khi khai báo mảng 2 chiều có tên Ma_Tran 
Dim Ma_Tran(4,5) As Integer 
 Bài giảng Tin học Đại cương 
_61_ 
Khi đó ta sẽ thu đƣợc mảng 2 chiều với số phần tử lần lƣợt là 5 và 6. Tổng số phần 
tử lúc này là 5*6=30 phần tử 
Để gán giá trị cho phần tử có chỉ số hàng là 3, chỉ số cột là 4 ta thực hịên: 
Ma_Tran(3,4) =10 
Cách 2 : 
Dim Tên_mảng ( a1 to b1,a2 to b2,…,am to bm ) As Kiểu_dữ_liệu 
a1 và b1 lần lƣợt là chỉ số phần tử đầu và cuối chiều 1 
a2 và b2 lần lƣợt là chỉ số phần tử đầu và cuối chiều 2 
… 
am và bm lần lƣợt là chỉ số phần tử đầu và cuối chiều m 
Khi đó tổng số phần tử trong mảng lúc này là: n= (b1-a1+1)*(b2-a2+1)*…*(bm-
am+1) 
6.3. Khai báo mảng động (Dynamic Array) 
Mảng động là mảng có các phần tử trong mảng không đƣợc xác định trƣớc, trong 
quá trình xử lý, số lƣợng các phần tử của mảng mới đƣợc khai báo hoặc các phần tử trong 
mảng có thể bổ xung thêm phù hợp với các yêu cầu của bài toán. 
Để khai báo một mảng động ta khai báo : 
DIM Ten_mang() As Kiểu_dữ_liệu 
Vì không để một con số ở giữa hai dấu ngoặc đơn nên VB6 biết là dùng mảng động 
và số phần tử của nó có thể sẽ thay đổi trong tƣơng lai. Khi nào muốn thay đổi số phần tử 
của mảng động dùng ReDim: 
ReDim Ten_mang(n) 
Hoặc 
ReDim Preserve Ten_mang(m) 
Với từ khoá ReDim VB6 sẽ khởi tạo lại tất cả các giá trị phần tử của mảng (nếu 
chúng đã tồn tại) khi đó giá trị sẽ đƣợc gán=0 với tất cả các phần tử kiểu số, gán=“” với 
các phần tử kiểu xâu. 
Với từ khoá ReDim Preserve khi đó VB6 chỉ thêm vào mảng phần tử mới và giá trị 
các phần tử cũ đã tồn tại trong mảng vẫn không đổi. 
Ví dụ: 
Dim Matrix () As Integer „ Khai báo mảng Matrix là mảng động 
… 
ReDim Matrix(5) „ Gán mảng Matrix là mảng có 6 phần tử 
 Bài giảng Tin học Đại cương 
_62_ 
… 
ReDim Matrix(6) „ Gán mảng Matrix là mảng có 7 phần tử và các phần 
 „ tử trong mảng đều bị gán =0 
… 
ReDim Preserve Matrix (7) „ Mở rộng Matrix là mảng có 8 phần tử trong đó các 
„ phần tử cũ của mảng vẫn giữ nguyên giá trị. Phần tử 
„ thứ 8 đƣợc thêm vào sẽ đƣợc gán =0 
6.4. Một số thuật toán về mảng 
Dạng 1: Tìm giá trị lớn nhất hoặc nhỏ nhất trong mảng 
Ví dụ: Nhập vào một mảng số nguyên gồm n phần tử. Tìm giá trị lớn nhất trong 
mảng. In kết quả ra màn hình. Yêu cầu: 
 Sử dụng các đối tƣợng Form, Lable, Textbox, Command Button,… để thiết kế 
giao diện bài toán 
 Viết mã lệnh bài toán. 
Hƣớng dẫn: 
 Thiết kế giao diện 
ThoátXử Lý
Kết Quả txtKQ
cmdXuLy cmdThoat
 Mã lệnh bài toán. 
Private Sub cmdThoat_Click() 
End 
End Sub 
Private Sub cmdXuLy_Click() 
Dim i As Integer, n As Integer, max As Integer 
Dim a(1 To 100) As Integer 
Do 
n = Val(InputBox("Nhap n = ")) 
 Bài giảng Tin học Đại cương 
_63_ 
Loop Until n > 0 And n <= 100 
For i = 1 To n 
a(i) = Val(InputBox("Nhap a(" + Str(i) + ") = ")) 
Next i 
max = a(1) 
For i = 2 To n 
If a(i) > max Then 
max = a(i) 
End If 
Next i 
txtKQ.Text = "Gia Tri Lon Nhat = " + Str(max) 
End Sub 
Dạng 2: Sắp xếp các phần tử của mảng theo thứ tự tăng hoặc giảm dần 
Ví dụ: Nhập vào một mảng số nguyên gồm n phần tử. Sắp xếp các phần tử trong 
mảng theo thứ tự giảm dần. In kết quả ra màn hình. Yêu cầu: 
 Sử dụng các đối tƣợng Form, Lable, Textbox, Command Button,… để thiết kế 
giao diện bài toán 
 Viết mã lệnh bài toán. 
Hƣớng dẫn: 
 Thiết kế giao diện 
ThoátXử Lý
Kết Quả txtKQ
cmdXuLy cmdThoat
 Mã lệnh bài toán. 
Private Sub cmdThoat_Click() 
End 
End Sub 
Private Sub cmdXuLy_Click() 
 Bài giảng Tin học Đại cương 
_64_ 
Dim i As Integer, j As Integer, n As Integer, tg As Integer 
Dim a(1 To 100) As Integer 
Do 
n = Val(InputBox("Nhap n = ")) 
Loop Until n > 0 And n <= 100 
For i = 1 To n 
a(i) = Val(InputBox("Nhap a(" + Str(i) + ") = ")) 
Next i 
For i = 1 To n-1 
For j = i+1 to n 
If a(i) < a(j) Then 
tg = a(i) 
a(i) = a(j) 
a(j) = tg 
End If 
Next j 
Next i 
txtKQ.Text = "" 
For i = 1 to n 
txtKQ.Text = txtKQ.Text + Str(a(i)) + “;” 
Next i 
End Sub 
Dạng 3: Chèn một phần tử b vào vị trí k của mảng 
Ví dụ: Nhập vào một mảng số nguyên gồm n phần tử. Chèn số b vào vị trí thứ k 
trong mảng. In kết quả ra màn hình. Yêu cầu: 
 Sử dụng các đối tƣợng Form, Lable, Textbox, Command Button,… để thiết kế 
giao diện bài toán 
 Viết mã lệnh bài toán. 
Hƣớng dẫn: 
 Thiết kế giao diện 
 Bài giảng Tin học Đại cương 
_65_ 
ThoátXử Lý
Kết Quả txtKQ
cmdXuLy cmdThoat
 Mã lệnh bài toán. 
Private Sub cmdThoat_Click() 
End 
End Sub 
Private Sub cmdXuLy_Click() 
Dim i As Integer, b As Integer, k As Integer, n As Integer 
Dim a(1 To 100) As Integer 
Do 
n = Val(InputBox("Nhap n = ")) 
Loop Until n > 0 And n <= 100 
For i = 1 To n 
a(i) = Val(InputBox("Nhap a(" + Str(i) + ") = ")) 
Next i 
b = Val(InputBox(“Nhap b = ”)) 
Do 
k = Val(InputBox(“Nhap k = ”)) 
Loop Until k > 0 And k <= n 
For i = n To k Step -1 
a(i+1) = a(i) 
Next i 
a(k) = b 
n = n + 1 
txtKQ.Text = "" 
For i = 1 to n 
txtKQ.Text = txtKQ.Text + Str(a(i)) + “;” 
 Bài giảng Tin học Đại cương 
_66_ 
Next i 
End Sub 
Dạng 4: Xoá đi phần tử ở vị trí thứ k của mảng 
Ví dụ: Nhập vào một mảng số nguyên gồm n phần tử. Xóa đi phần tử ở vị trí thứ k 
trong mảng. In kết quả ra màn hình. Yêu cầu: 
 Sử dụng các đối tƣợng Form, Lable, Textbox, Command Button,… để thiết kế 
giao diện bài toán 
 Viết mã lệnh bài toán. 
Hƣớng dẫn: 
 Thiết kế giao diện 
ThoátXử Lý
Kết Quả txtKQ
cmdXuLy cmdThoat
 Mã lệnh bài toán. 
Private Sub cmdThoat_Click() 
End 
End Sub 
Private Sub cmdXuLy_Click() 
Dim i As Integer, k As Integer, n As Integer 
Dim a(1 To 100) As Integer 
Do 
n = Val(InputBox("Nhap n = ")) 
Loop Until n > 0 And n <= 100 
For i = 1 To n 
a(i) = Val(InputBox("Nhap a(" + Str(i) + ") = ")) 
Next i 
Do 
k = Val(InputBox(“Nhap k = ”)) 
 Bài giảng Tin học Đại cương 
_67_ 
Loop Until k > 0 And k <= n 
For i = k To n - 1 
a(i) = a(i+1) 
Next i 
n = n - 1 
txtKQ.Text = "" 
For i = 1 to n 
txtKQ.Text = txtKQ.Text + Str(a(i)) + “;” 
Next i 
End Sub 
Dạng 5: Một số bài toán khác về mảng 
Ví dụ: Nhập vào một mảng số nguyên gồm n phần tử. Tính trung bình cộng của các 
phần tử chia hết cho 3 trong mảng. In kết quả ra màn hình. Yêu cầu: 
 Sử dụng các đối tƣợng Form, Lable, Textbox, Command Button,… để thiết kế 
giao diện bài toán 
 Viết mã lệnh bài toán. 
Hƣớng dẫn: 
 Thiết kế giao diện 
ThoátXử Lý
Kết Quả txtKQ
cmdXuLy cmdThoat
 Mã lệnh bài toán. 
Private Sub cmdThoat_Click() 
End 
End Sub 
Private Sub cmdXuLy_Click() 
Dim i As Integer, n As Integer, tbc As Single, dem As Integer 
Dim a(1 To 100) As Integer 
 Bài giảng Tin học Đại cương 
_68_ 
Do 
n = Val(InputBox("Nhap n = ")) 
Loop Until n > 0 And n <= 100 
For i = 1 To n 
a(i) = Val(InputBox("Nhap a(" + Str(i) + ") = ")) 
Next i 
tbc = 0 
d = 0 
For i = 1 To n 
If a(i) MOD 3 = 0 Then 
tbc = tbc + a(i) 
d = d + 1 
End If 
Next i 
If d = 0 Then 
txtKQ.Text = "Mang khong ton tai phan tu nao chia het cho 3" 
Else 
tbc = tbc/dem 
txtKQ.Text = “TBC = ” + Str(dem) 
End If 
End Sub 

File đính kèm:

  • pdfBài giảng Tin học đại cương - Hải Phòng.pdf