SlideShare a Scribd company logo
1 of 9
LẬP TRÌNH VISUAL BASIC 
BÀI TẬP THỰC HÀNH SỐ __ 
MẢNG MỘT CHIỀU 
1. Chuẩn đầu ra. 
Sau khi học xong chương này, sinh viên có thể: 
- Khai báo mảng 1 chiều (mảng tĩnh, mảng động). 
- Viết đoạn code nhập các giá trị cho mảng sử dụng Textbox hoặc InputBox. 
- Viết đoạn code xuất các giá trị trong mảng ra Label, Textbox hoặc sử dụng MsgBox. 
- Viết 1 chương trình VB có sử dụng cấu trúc mảng. 
- Viết 1 chương trình VB có sử dụng cấu trúc mảng và mảng các đối tượng điều khiển 
- Có thái độ làm việc chăm chỉ, hình thành phong cách lập trình. 
2. Chuẩn bị 
SV phải làm (trên giấy) các bài tập về mảng đã làm trên lớp giờ lý thuyết và làm thêm ở 
nhà. 
3. Phương tiện 
Phòng máy có cài chương trình Microsoft Visual Basic 6.0 
4. Thời lượng 
4 tiết. 
5. Tóm tắt lý thuyết 
Mảng là tập hợp các phần tử cùng kiểu dữ liệu được đánh thứ tự. Số thứ tự của mỗi phần 
tử được gọi là chỉ số. Chỉ số mặc định bắt đầu từ 0. Nếu muốn chỉ số bắt đầu từ 1, sử 
dụng khai báo Option Base 1. 
5.1 Khai báo mảng 
Dim tên_biến(số phần tử-1) As kiểu_dữ_liệu 
Ví dụ: Dim a(5) As Integer 
Chỉ số 0 1 2 3 4 5 
Giá trị 0 0 0 0 0 0 
Dim b(3) As Double 
Chỉ số 0 1 2 3 
Giá trị 0.0 0.0 0.0 0.0 
Dim c(3) As String 
Chỉ số 0 1 2 3 
Giá trị “” “” “” “” 
Dim d(3) As Boolean 
Chỉ số 0 1 2 3 
Giá trị False False False False
Bắt đầu từ chỉ số bất kỳ: 
Dim tên_biến(chỉ_số_đầu_tiên To chỉ_số_cuối_cùng) As kiểu_dữ_liệu 
Ví dụ: Dim a(2 To 5) As Integer 
Chỉ số 2 3 4 5 
Giá trị 0 0 0 0 
5.2 Truy xuất mảng 
tên_biến(chỉ_số) 
Ví dụ 1: Dim temp As Integer 
temp=a(2) 
Chỉ số 0 1 2 3 4 5 
Giá trị 3 -1 10 20 7 34 
Sau khi thực hiện đoạn lệnh trên thì temp có giá trị là 10. 
Ví dụ 2: Dim temp As Integer 
Dim k As Integer 
k=1 
temp=a(k) 
Sau khi thực hiện đoạn lệnh trên thì temp có giá trị là -1. 
* Gán giá trị cho phần tử trong mảng: 
tên_biến(chỉ_số) = giá trị cần gán 
Cho mảng sau: 
Chỉ số 0 1 2 3 4 5 
Giá trị 3 -1 10 20 7 34 
Ví dụ 1: a(3) = 7 
Chỉ số 0 1 2 3 4 5 
Giá trị 3 -1 10 7 7 34 
Ví dụ 2: Dim k As Integer 
k=1 
Dim temp As Integer 
temp=15 
a(k)=temp 
Chỉ số 0 1 2 3 4 5 
Giá trị 3 15 10 20 7 34 
5.3 Duyệt mảng 
Nếu mảng có chỉ số bắt đầu từ 0 và mảng có n phần tử 
For i=0 To n-1 Step 1 
<đoạn lệnh> 
Next 
Nếu mảng a có chỉ số bắt đầu từ một số bất kỳ: 
For i=LBound(a) To UBound(a) Step 1 
<đoạn lệnh>
Next 
*Hàm LBound(tên_biến_mảng) trả về chỉ số nhỏ nhất của mảng. 
Hàm UBound(tên_biến_mảng) trả về chỉ số lớn nhất của mảng. 
Ví dụ 1: ta có mảng a sau: 
Chỉ số 0 1 2 3 4 5 
Giá trị 3 15 10 20 7 34 
LBound(a) trả về 0. 
UBound(a) trả về 5. 
Ví dụ 2: ta có mảng b sau: 
Chỉ số 3 4 5 6 7 8 
Giá trị 3 15 10 20 7 34 
LBound(b) trả về 3. 
UBound(b) trả về 8. 
5.4 Mảng động 
Là mảng có số phần tử có thể thay đổi tùy ý trong lúc chạy chương trình. Điều này 
phù hợp hơn vì trong thực tế người lập trình không thể tiên liệu trước số phần tử thực 
tế. 
Sử dụng mảng động gồm 2 bước: 
- Khai báo hiện diện với từ khóa Dim nhưng số phần tử để rỗng. 
- Tạo mảng thực sự khi cần thiết bằng phát biểu ReDim. 
Ví dụ: Dim a() As Double 
Redim a(n) As Double 
Mảng động có thể được tạo lại nhiều lần khi cần thiết. 
Ví dụ: Dim a() As Double 
Redim a(n) As Double 
Redim a(m) As Double 
Tuy nhiên lệnh cấp phát mới sẽ xóa rỗng nội dung (chuỗi) hoặc gán bằng 0 (số) mọi 
phần tử đã có giá trị trước đó. Để bào toàn giá trị các phần tử, sử dụng phát biểu 
ReDim Preserve. 
Ví dụ: 
ReDim Preserve a(500) As Double 
6. Nội dung thực hành 
6.1 Cho mảng một chiều gồm n số nguyên, hãy viết hàm tính tổng của các phần tử trong 
mảng. 
Ví dụ: mảng: 6 1 100 -5 3 -> hàm trả về kết quả: 105 
Function TongMang (ByVal a As Variant, ByVal n As Integer) As Long 
Hướng dẫn: Duyệt mảng và cộng dồn bằng công thức s=s+a(i)
6.2 Cho mảng một chiều gồm n số nguyên, hãy viết hàm tính giá trị trung bình cộng của 
các phần tử trong mảng. 
Ví dụ: mảng: 6 1 100 -5 3 -> hàm trả về kết quả: 21 
Function TrungBinhCong (ByVal a As Variant, ByVal n As Integer) As Long 
Hướng dẫn: Sau khi tính tổng xong, chia tổng cho số phần tử của mảng. 
6.3 Cho mảng một chiều gồm n số nguyên, hãy viết hàm tìm phần tử lớn nhất trong 
mảng. 
Ví dụ: mảng: 6 1 100 -5 3 -> hàm trả về kết quả: 100 
Function Max (ByVal a As Variant, ByVal n As Integer) As Long 
6.4 Cho mảng một chiều các số nguyên, hãy viết hàm tính số lần xuất hiện của x. 
Ví dụ: mảng: 6 3 100 -5 3 6 6 3 100 ; x=6 -> hàm trả về kết quả: 3 
Function TanSuat (ByVal a As Variant, ByVal x As Integer) As Integer 
Hướng dẫn: So sánh x với a(i), nếu bằng nhau tăng biến đếm lên một đơn vị. 
6.5 Sắp xếp mảng a tăng dần. Hàm trả về là một chuỗi chứa mảng a đã được sắp xếp, 
mỗi phần tử cách nhau khoảng trắng. 
Ví dụ: mảng a: 6 100 -3 78 34 -> hàm trả về kết quả: “-3 6 34 78 100” 
Function SapXep (ByVal a As Variant) As String 
Hướng dẫn: chạy hai vòng for. 
6.6 Kiểm tra một mảng một chiều a gồm các phần tử nguyên có phải là cấp số cộng hay 
không, nếu phải hàm trả về công sai của cấp số cộng, nếu không hàm trả về -1. 
Ví dụ: mảng a: 4 7 10 13 16 19 -> hàm trả về kết quả: 3 
mảng a: 3 4 3 7 5 0 -> hàm trả về kết quả: -1 
Function CapSoCong (ByVal a As Variant) As Integer 
6.7 Cho một mảng một chiều a gồm các số thực, kiểm tra mảng a có đối xứng hay không, 
nếu đối xứng trả về True, nếu không trả về False. 
Ví dụ: mảng a: 0.1 3.4 5 3.4 0.1 -> hàm trả về kết quả: True 
mảng a: 2.3 5 6 7 5 6.7 -> hàm trả về kết quả: False 
Function DoiXung (ByVal a As Variant) As Boolean 
6.8* Sắp xếp mảng a có các số lẻ tăng dần(số chẵn giữ nguyên). Hàm trả về là một chuỗi 
chứa mảng a có các số lẻ đã được sắp xếp, mỗi phần tử cách nhau khoảng trắng. 
Ví dụ: mảng a: 6 101 -3 78 35 -> hàm trả về kết quả: “6 -3 35 78 101” 
Function SapXep (ByVal a As Variant) As String 
7. Bài tập thêm 
7.1 Cho mảng một chiều các số nguyên dương có n phần tử. Hãy viết hàm tìm số nhỏ nhì 
trong mảng. Nếu mảng có số nhỏ nhì thì trả về số nhỏ nhì, nếu mảng không có số nhì 
thì trả về 0. 
Ví dụ: mảng 5 5 5 5 5 -> hàm trả về kết quả: 0 
mảng 3 2 4 1 5 -> hàm trả về kết quả: 2 
Function SoNhoNhi (ByVal a As Variant) As Integer 
7.2 Cho mảng một chiều gồm n số nguyên, hãy viết hàm tìm số âm lớn nhất trong mảng, 
nếu mảng không có số âm thì trả về số 0. 
Ví dụ: mảng 4 2 7 9 3 5 6 -> hàm trả về kết quả: 0 
mảng 4 -5 8 -11 12 18 -2 -> hàm trả về kết quả: -2 
Function AmLonNhat (ByVal a As Variant) As Integer
7.3* Sắp xếp mảng a tăng dần, sau đó chèn thêm một phần tử k vào mảng sao cho mảng 
vẫn giữ thứ tự tăng dần. Hàm trả về kết quả là một mảng. 
Ví dụ: mảng a: 3 4 3 -7 5 0 ; k=1 -> kết quả: -7 0 1 3 3 4 5 
Function SapXepChen (ByVal a As Variant, ByVal k As Integer) As Variant 
Function SapXepChen (ByVal a As Variant, ByVal k As Integer) As Integer() 
7.4** Liệt kê tần suất xuất hiện của các số trong mảng a. 
Ví dụ: mảng a: 6 101 -3 -3 35 6 -3 
-> hàm trả về kết quả: 
“Có 2 số 6, có 1 số 101, có 3 số -3, có 1 số 35” 
Function TanSuatXuatHien (ByVal a As Integer) As String 
8. Hướng dẫn thực hành: 
8.1 Quy ước: Đối với các bài thực hành chỉ yêu cầu viết hàm tính toán… ta sẽ tạo một 
giao diện đơn giản có một nút bấm(Button) và dùng sự kiện nhấn nút (Click) để gọi 
hàm tính toán cần viết. Các giá trị input cần thiết sẽ khai báo trực tiếp hoặc sử dụng 
InputBox trong code xử lí sự kiện nhấn nút. Tương tự, giá trị output sẽ sử dụng 
MsgBox để thông báo. 
Ví dụ: bài thực hành 6.1 (xem phần 6-Nội dung thực hành) 
- Kéo thả một nút bấm (Button) vào Form1. 
- Sửa thuộc tính: Name: btn_Bai61, Caption: Bai 6.1. 
- Click đúp vào nút bấm vừa tạo để vào phần viết code xử lí sự kiện Click 
- Viết hàm xử lí yêu cầu tính tổng các phần tử trong mảng theo hướng dẫn
- Trong hàm xử lí sự kiện Click, dùng InputBox để khởi tạo mảng a có n phần 
tử và gọi hàm TongMang vừa viết, gán kết quả vào biến Ketqua và dùng MsgBox để 
thông báo kết quả. 
Ta có thể làm tương tự cho các bài 6.2, 6.3… 
Sinh viên cũng có thể sử dụng một Label để xuất kết quả thay vì dụng MsgBox. 
Đối với các bài thực hành yêu cầu thiết kế giao diện riêng, thực hiện theo hướng dẫn 
riêng của từng bài. 
8.2 Một số lưu ý khi làm việc với mảng: 
- Nên sử dụng chỉ số từ 1 để dễ tính toán: khai báo Option Base 1
- Tham số là mảng luôn yêu cầu phải truyền ByRef (mặc định). Nếu muốn 
dùng ByVal ,ta có thể dùng biến kiểu Variant để thay thế. Ví dụ ở bài 6.1, hàm 
xử lí có thể khai báo theo 1 trong 3 cách sau: 
Function TongMang(ByRef a() As Integer, ByVal n As Integer) As Long 
Function TongMang(a() As Integer, ByVal n As Integer) As Long 
Function TongMang(ByVal a As Variant, ByVal n As Integer) As Long 
Ở bài này do không cần phải thay đổi gì ở mảng a nên ta nên dùng cách 3 (By 
Val) để tránh trường hợp có thể sai sót làm thay đổi mảng a. Cách 1 và 2 thực 
chất là như nhau do truyền ByRef là mặc định (không khai báo có nghĩa là 
ByRef) 
- Ta có thể dùng đoạn code sau (được bôi đen-sử dụng cho bài 6.1) để khai 
báo và gán trực tiếp một số giá trị phần tử vào mảng không cần dùng hàm 
InputBox để nhập vào. 
9. Hướng dẫn phần mảng điều khiển: 
Phần này sẽ hướng dẫn SV xây dựng ứng dụng Máy tính bỏ túi với các phép tính +,-,*,/ 
đơn giản thông qua đó chỉ ra lợi ích của việc sử dụng mảng điều khiển. Máy tính sẽ có 
một Label hiển thị, 10 nút số (0-9) , 4 nút phép tính (+,-,*,/) và nút =. 
Ngoài Label và 5 nút chức năng, ta thấy 10 nút số từ 0-9 có chức năng giống nhau. Thay 
vì sử dụng 10 nút riêng biệt và copy, chỉnh sửa 10 đoạn code xử lí khác nhau, ta sẽ gom 
10 nút này vào một mảng điều khiển để thuận lợi hơn trong việc viết và chỉnh sửa code 
xử lí. 
Các nút +,-,*,/,= và label hiển thị ta thiết kế bình thường: 
- Nút Cộng: Caption: +, Name: Cong 
- Nút Trừ: Caption: -, Name: Tru
- Nút Nhân: Caption: +, Name: Nhan 
- Nút Chia: Caption: /, Name: Chia 
- Nút Bằng: Caption: =, Name: Bang 
- Label Hiển thị: Caption: 0, Name: Hienthi 
Riêng 10 nút số ta chỉ cần thiết kế nút số 0 [ Caption : 0, Name : So]. Sau đó copy/ paste 
ra các nút số 1-9, chỉnh sửa lại Caption cho phù hợp từ 1 đến 9. Khi copy/paste lần đầu, 
VB sẽ hỏi có muốn tạo mảng điều khiển không (...Do you want to create a control 
array?), chọn đồng ý (Yes). 
Kích đúp vào nút số 0 để viết code xử lí sự kiện bấm nút cho mảng điều khiển gồm 10 
phần tử (10 số): khi bấm nút, giá trị nút đó sẽ hiển thị trên label hiển thị nối thêm vào bên 
phải). Ta thấy giá trị của mỗi nút cũng chính là giá trị Index của nó trong mảng điều khiển 
nên code xử lí cho mảng điều khiển sẽ là: 
Như vậy là đã xong phần hiển thị, khi chạy thử chương trình, bấm các nút số để hiện thị số 
trên label hiển thị. 
Phần hiện thực các phép tính ta sẽ sử dụng 4 biến toàn cục lần lượt theo tên gọi để lưu : 
toán hạng 1, toán hạng 2, toán tử và kết quả phép tính. Khi người dùng nhập vào toán hạng 
thứ nhất, bấm nút cộng, số thứ nhất sẽ được lưu vào toanhang1, giá trị label hiển thị sẽ 
được xóa để nhập số thứ 2 đồng thời biến toantu sẽ được gán bằng 1(quy ước: 1- cộng, 2- 
trừ, 3-nhân, 4-chia). Khi người dùng nhập số thứ 2 xong, bấm nút bằng, chương trình sẽ 
lưu số thứ 2 vào toanhang2 và thực hiện phép tính sau đó hiển thị kết quả lên label hiển thị.
Bên dưới là code tham khảo cho các nút cộng, trừ và bằng. Phần viết code xử lí cho phép 
nhân và chia (nút nhân, chia) xem như bài tập để SV thực hiện. 
Bài tập: Ta thấy 4 nút cộng trừ nhân chia cũng có chức năng khá giống nhau. Thay vì dùng 4 
nút riêng biệt, hãy dùng một mảng điều khiển có bốn phần tử (4 nút) để hiện thực. Tham khảo 
thêm đoạn code xử lí bên dưới, giá trị Index phụ thuộc vào Option Base 1 hay 0. 
---HẾT---

More Related Content

What's hot

Lttt matlab chuong 3
Lttt matlab chuong 3Lttt matlab chuong 3
Lttt matlab chuong 3Hoa Cỏ May
 
Nhom lenh co ban
Nhom lenh co banNhom lenh co ban
Nhom lenh co banVũ Tích
 
Kiểu Mảng 1 chiều
Kiểu Mảng 1 chiềuKiểu Mảng 1 chiều
Kiểu Mảng 1 chiềuHoaCat1
 
Lap trinh matlab_co_ban_1731
Lap trinh matlab_co_ban_1731Lap trinh matlab_co_ban_1731
Lap trinh matlab_co_ban_1731Vu Tuan
 
bai tap cau truc du lieu ptit
bai tap cau truc du lieu ptitbai tap cau truc du lieu ptit
bai tap cau truc du lieu ptitMit Rin
 
Stl vector nguyen_trihai_11520094_khmt06
Stl vector nguyen_trihai_11520094_khmt06Stl vector nguyen_trihai_11520094_khmt06
Stl vector nguyen_trihai_11520094_khmt06Quach Long
 
Nmlt c15 ham_nangcao_phan1_in
Nmlt c15 ham_nangcao_phan1_inNmlt c15 ham_nangcao_phan1_in
Nmlt c15 ham_nangcao_phan1_inHuy Nguyễn
 
Bài tập CTDL và GT 1
Bài tập CTDL và GT 1Bài tập CTDL và GT 1
Bài tập CTDL và GT 1Hồ Lợi
 
Khao sat-ung-dung-matlab-trong-dieu-khien-tu-dong
Khao sat-ung-dung-matlab-trong-dieu-khien-tu-dongKhao sat-ung-dung-matlab-trong-dieu-khien-tu-dong
Khao sat-ung-dung-matlab-trong-dieu-khien-tu-dongKhoa Pham
 
Nmlt c03 cac_kieudulieucoso
Nmlt c03 cac_kieudulieucosoNmlt c03 cac_kieudulieucoso
Nmlt c03 cac_kieudulieucosoMinh Ngoc Tran
 
Bài tập thực hành số 1
Bài tập thực hành số 1Bài tập thực hành số 1
Bài tập thực hành số 1Tran Trung Dung
 
Các lệnh-cơ-bản-của-giải-tích-1
Các lệnh-cơ-bản-của-giải-tích-1Các lệnh-cơ-bản-của-giải-tích-1
Các lệnh-cơ-bản-của-giải-tích-1thaicuia
 

What's hot (17)

Lttt matlab chuong 3
Lttt matlab chuong 3Lttt matlab chuong 3
Lttt matlab chuong 3
 
Nhom lenh co ban
Nhom lenh co banNhom lenh co ban
Nhom lenh co ban
 
Kiểu Mảng 1 chiều
Kiểu Mảng 1 chiềuKiểu Mảng 1 chiều
Kiểu Mảng 1 chiều
 
Lap trinh matlab_co_ban_1731
Lap trinh matlab_co_ban_1731Lap trinh matlab_co_ban_1731
Lap trinh matlab_co_ban_1731
 
bai tap cau truc du lieu ptit
bai tap cau truc du lieu ptitbai tap cau truc du lieu ptit
bai tap cau truc du lieu ptit
 
Stl vector nguyen_trihai_11520094_khmt06
Stl vector nguyen_trihai_11520094_khmt06Stl vector nguyen_trihai_11520094_khmt06
Stl vector nguyen_trihai_11520094_khmt06
 
Matlab intro
Matlab introMatlab intro
Matlab intro
 
Nmlt c15 ham_nangcao_phan1_in
Nmlt c15 ham_nangcao_phan1_inNmlt c15 ham_nangcao_phan1_in
Nmlt c15 ham_nangcao_phan1_in
 
Cac lenh trong matlab
Cac lenh trong matlabCac lenh trong matlab
Cac lenh trong matlab
 
Bài tập CTDL và GT 1
Bài tập CTDL và GT 1Bài tập CTDL và GT 1
Bài tập CTDL và GT 1
 
Khao sat-ung-dung-matlab-trong-dieu-khien-tu-dong
Khao sat-ung-dung-matlab-trong-dieu-khien-tu-dongKhao sat-ung-dung-matlab-trong-dieu-khien-tu-dong
Khao sat-ung-dung-matlab-trong-dieu-khien-tu-dong
 
Nmlt c03 cac_kieudulieucoso
Nmlt c03 cac_kieudulieucosoNmlt c03 cac_kieudulieucoso
Nmlt c03 cac_kieudulieucoso
 
GV
GVGV
GV
 
Bài tập thực hành số 1
Bài tập thực hành số 1Bài tập thực hành số 1
Bài tập thực hành số 1
 
Các lệnh-cơ-bản-của-giải-tích-1
Các lệnh-cơ-bản-của-giải-tích-1Các lệnh-cơ-bản-của-giải-tích-1
Các lệnh-cơ-bản-của-giải-tích-1
 
Dieukhientuyentin hmoi
Dieukhientuyentin hmoiDieukhientuyentin hmoi
Dieukhientuyentin hmoi
 
Nmlt c07 mang1_chieu
Nmlt c07 mang1_chieuNmlt c07 mang1_chieu
Nmlt c07 mang1_chieu
 

Similar to Huong danthuchanhmang

H hai epc_baitap
H hai epc_baitapH hai epc_baitap
H hai epc_baitapHồ Lợi
 
Chuong 1 Matlab co ban.pdf
Chuong 1 Matlab co ban.pdfChuong 1 Matlab co ban.pdf
Chuong 1 Matlab co ban.pdfHngTrn365275
 
Chuong 1 Matlab co ban.pdf
Chuong 1 Matlab co ban.pdfChuong 1 Matlab co ban.pdf
Chuong 1 Matlab co ban.pdfnguyenkaka2
 
Cac van de co so kh may tinh
Cac van de co so kh may tinhCac van de co so kh may tinh
Cac van de co so kh may tinhTunAnh346
 
Huong danmatlab simulink
Huong danmatlab simulinkHuong danmatlab simulink
Huong danmatlab simulinkAnh Vu
 
Bai thi Nghiem ky thuat dien tu
Bai thi Nghiem ky thuat dien tuBai thi Nghiem ky thuat dien tu
Bai thi Nghiem ky thuat dien tuBrand Xanh
 
Khao sat-ung-dung-matlab-trong-dieu-khien-tu-dong
Khao sat-ung-dung-matlab-trong-dieu-khien-tu-dongKhao sat-ung-dung-matlab-trong-dieu-khien-tu-dong
Khao sat-ung-dung-matlab-trong-dieu-khien-tu-dongTuấn Anh Phạm
 
Java exercises part 2
Java exercises part 2Java exercises part 2
Java exercises part 2NguynMinh294
 
CSLT_Bai 5A_2018.pptx
CSLT_Bai 5A_2018.pptxCSLT_Bai 5A_2018.pptx
CSLT_Bai 5A_2018.pptxChuK7
 
Session 4
Session 4Session 4
Session 4pnanhvn
 
Bai tap c.doc (đã phục hồi)
Bai tap c.doc (đã phục hồi)Bai tap c.doc (đã phục hồi)
Bai tap c.doc (đã phục hồi)Kieu Anh Nguyen
 
THCS_W11_BaiDocThem
THCS_W11_BaiDocThemTHCS_W11_BaiDocThem
THCS_W11_BaiDocThemCNTT-DHQG
 
Bai thuchanh.3
Bai thuchanh.3Bai thuchanh.3
Bai thuchanh.3sonnqsp
 
Ctdl lab07-cac thuat-toan_sap_xep
Ctdl lab07-cac thuat-toan_sap_xepCtdl lab07-cac thuat-toan_sap_xep
Ctdl lab07-cac thuat-toan_sap_xepNguyễn Ngọc Hà
 
Gt ung dung tin hoc trong kinh doanh
Gt ung dung tin hoc trong kinh doanhGt ung dung tin hoc trong kinh doanh
Gt ung dung tin hoc trong kinh doanhvantai30
 

Similar to Huong danthuchanhmang (20)

H hai epc_baitap
H hai epc_baitapH hai epc_baitap
H hai epc_baitap
 
Chuong 1 Matlab co ban.pdf
Chuong 1 Matlab co ban.pdfChuong 1 Matlab co ban.pdf
Chuong 1 Matlab co ban.pdf
 
Chuong 1 Matlab co ban.pdf
Chuong 1 Matlab co ban.pdfChuong 1 Matlab co ban.pdf
Chuong 1 Matlab co ban.pdf
 
Cac van de co so kh may tinh
Cac van de co so kh may tinhCac van de co so kh may tinh
Cac van de co so kh may tinh
 
Huong danmatlab simulink
Huong danmatlab simulinkHuong danmatlab simulink
Huong danmatlab simulink
 
Bai thi Nghiem ky thuat dien tu
Bai thi Nghiem ky thuat dien tuBai thi Nghiem ky thuat dien tu
Bai thi Nghiem ky thuat dien tu
 
344444
344444344444
344444
 
Kế toán Excel
Kế toán ExcelKế toán Excel
Kế toán Excel
 
Khao sat-ung-dung-matlab-trong-dieu-khien-tu-dong
Khao sat-ung-dung-matlab-trong-dieu-khien-tu-dongKhao sat-ung-dung-matlab-trong-dieu-khien-tu-dong
Khao sat-ung-dung-matlab-trong-dieu-khien-tu-dong
 
matlab co ban
matlab co banmatlab co ban
matlab co ban
 
Java exercises part 2
Java exercises part 2Java exercises part 2
Java exercises part 2
 
CSLT_Bai 5A_2018.pptx
CSLT_Bai 5A_2018.pptxCSLT_Bai 5A_2018.pptx
CSLT_Bai 5A_2018.pptx
 
Co ban ve_matlab
Co ban ve_matlabCo ban ve_matlab
Co ban ve_matlab
 
Session 4
Session 4Session 4
Session 4
 
Chuong 05 mang, con tro, tham chieu
Chuong 05 mang, con tro, tham chieuChuong 05 mang, con tro, tham chieu
Chuong 05 mang, con tro, tham chieu
 
Bai tap c.doc (đã phục hồi)
Bai tap c.doc (đã phục hồi)Bai tap c.doc (đã phục hồi)
Bai tap c.doc (đã phục hồi)
 
THCS_W11_BaiDocThem
THCS_W11_BaiDocThemTHCS_W11_BaiDocThem
THCS_W11_BaiDocThem
 
Bai thuchanh.3
Bai thuchanh.3Bai thuchanh.3
Bai thuchanh.3
 
Ctdl lab07-cac thuat-toan_sap_xep
Ctdl lab07-cac thuat-toan_sap_xepCtdl lab07-cac thuat-toan_sap_xep
Ctdl lab07-cac thuat-toan_sap_xep
 
Gt ung dung tin hoc trong kinh doanh
Gt ung dung tin hoc trong kinh doanhGt ung dung tin hoc trong kinh doanh
Gt ung dung tin hoc trong kinh doanh
 

Recently uploaded

10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...Nguyen Thanh Tu Collection
 
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Nguyen Thanh Tu Collection
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfhoangtuansinh1
 
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdfNQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdfNguyễn Đăng Quang
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...Nguyen Thanh Tu Collection
 
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxTrích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxnhungdt08102004
 
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...ThunTrn734461
 
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...hoangtuansinh1
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...Nguyen Thanh Tu Collection
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Nguyen Thanh Tu Collection
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...Nguyen Thanh Tu Collection
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxChàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxendkay31
 
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhvanhathvc
 
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líKiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líDr K-OGN
 
Sơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdfSơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdftohoanggiabao81
 
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoabài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa2353020138
 

Recently uploaded (19)

10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
 
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
 
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdfNQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
 
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxTrích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
 
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
 
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxChàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
 
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
 
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líKiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
 
Sơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdfSơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdf
 
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoabài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
 

Huong danthuchanhmang

  • 1. LẬP TRÌNH VISUAL BASIC BÀI TẬP THỰC HÀNH SỐ __ MẢNG MỘT CHIỀU 1. Chuẩn đầu ra. Sau khi học xong chương này, sinh viên có thể: - Khai báo mảng 1 chiều (mảng tĩnh, mảng động). - Viết đoạn code nhập các giá trị cho mảng sử dụng Textbox hoặc InputBox. - Viết đoạn code xuất các giá trị trong mảng ra Label, Textbox hoặc sử dụng MsgBox. - Viết 1 chương trình VB có sử dụng cấu trúc mảng. - Viết 1 chương trình VB có sử dụng cấu trúc mảng và mảng các đối tượng điều khiển - Có thái độ làm việc chăm chỉ, hình thành phong cách lập trình. 2. Chuẩn bị SV phải làm (trên giấy) các bài tập về mảng đã làm trên lớp giờ lý thuyết và làm thêm ở nhà. 3. Phương tiện Phòng máy có cài chương trình Microsoft Visual Basic 6.0 4. Thời lượng 4 tiết. 5. Tóm tắt lý thuyết Mảng là tập hợp các phần tử cùng kiểu dữ liệu được đánh thứ tự. Số thứ tự của mỗi phần tử được gọi là chỉ số. Chỉ số mặc định bắt đầu từ 0. Nếu muốn chỉ số bắt đầu từ 1, sử dụng khai báo Option Base 1. 5.1 Khai báo mảng Dim tên_biến(số phần tử-1) As kiểu_dữ_liệu Ví dụ: Dim a(5) As Integer Chỉ số 0 1 2 3 4 5 Giá trị 0 0 0 0 0 0 Dim b(3) As Double Chỉ số 0 1 2 3 Giá trị 0.0 0.0 0.0 0.0 Dim c(3) As String Chỉ số 0 1 2 3 Giá trị “” “” “” “” Dim d(3) As Boolean Chỉ số 0 1 2 3 Giá trị False False False False
  • 2. Bắt đầu từ chỉ số bất kỳ: Dim tên_biến(chỉ_số_đầu_tiên To chỉ_số_cuối_cùng) As kiểu_dữ_liệu Ví dụ: Dim a(2 To 5) As Integer Chỉ số 2 3 4 5 Giá trị 0 0 0 0 5.2 Truy xuất mảng tên_biến(chỉ_số) Ví dụ 1: Dim temp As Integer temp=a(2) Chỉ số 0 1 2 3 4 5 Giá trị 3 -1 10 20 7 34 Sau khi thực hiện đoạn lệnh trên thì temp có giá trị là 10. Ví dụ 2: Dim temp As Integer Dim k As Integer k=1 temp=a(k) Sau khi thực hiện đoạn lệnh trên thì temp có giá trị là -1. * Gán giá trị cho phần tử trong mảng: tên_biến(chỉ_số) = giá trị cần gán Cho mảng sau: Chỉ số 0 1 2 3 4 5 Giá trị 3 -1 10 20 7 34 Ví dụ 1: a(3) = 7 Chỉ số 0 1 2 3 4 5 Giá trị 3 -1 10 7 7 34 Ví dụ 2: Dim k As Integer k=1 Dim temp As Integer temp=15 a(k)=temp Chỉ số 0 1 2 3 4 5 Giá trị 3 15 10 20 7 34 5.3 Duyệt mảng Nếu mảng có chỉ số bắt đầu từ 0 và mảng có n phần tử For i=0 To n-1 Step 1 <đoạn lệnh> Next Nếu mảng a có chỉ số bắt đầu từ một số bất kỳ: For i=LBound(a) To UBound(a) Step 1 <đoạn lệnh>
  • 3. Next *Hàm LBound(tên_biến_mảng) trả về chỉ số nhỏ nhất của mảng. Hàm UBound(tên_biến_mảng) trả về chỉ số lớn nhất của mảng. Ví dụ 1: ta có mảng a sau: Chỉ số 0 1 2 3 4 5 Giá trị 3 15 10 20 7 34 LBound(a) trả về 0. UBound(a) trả về 5. Ví dụ 2: ta có mảng b sau: Chỉ số 3 4 5 6 7 8 Giá trị 3 15 10 20 7 34 LBound(b) trả về 3. UBound(b) trả về 8. 5.4 Mảng động Là mảng có số phần tử có thể thay đổi tùy ý trong lúc chạy chương trình. Điều này phù hợp hơn vì trong thực tế người lập trình không thể tiên liệu trước số phần tử thực tế. Sử dụng mảng động gồm 2 bước: - Khai báo hiện diện với từ khóa Dim nhưng số phần tử để rỗng. - Tạo mảng thực sự khi cần thiết bằng phát biểu ReDim. Ví dụ: Dim a() As Double Redim a(n) As Double Mảng động có thể được tạo lại nhiều lần khi cần thiết. Ví dụ: Dim a() As Double Redim a(n) As Double Redim a(m) As Double Tuy nhiên lệnh cấp phát mới sẽ xóa rỗng nội dung (chuỗi) hoặc gán bằng 0 (số) mọi phần tử đã có giá trị trước đó. Để bào toàn giá trị các phần tử, sử dụng phát biểu ReDim Preserve. Ví dụ: ReDim Preserve a(500) As Double 6. Nội dung thực hành 6.1 Cho mảng một chiều gồm n số nguyên, hãy viết hàm tính tổng của các phần tử trong mảng. Ví dụ: mảng: 6 1 100 -5 3 -> hàm trả về kết quả: 105 Function TongMang (ByVal a As Variant, ByVal n As Integer) As Long Hướng dẫn: Duyệt mảng và cộng dồn bằng công thức s=s+a(i)
  • 4. 6.2 Cho mảng một chiều gồm n số nguyên, hãy viết hàm tính giá trị trung bình cộng của các phần tử trong mảng. Ví dụ: mảng: 6 1 100 -5 3 -> hàm trả về kết quả: 21 Function TrungBinhCong (ByVal a As Variant, ByVal n As Integer) As Long Hướng dẫn: Sau khi tính tổng xong, chia tổng cho số phần tử của mảng. 6.3 Cho mảng một chiều gồm n số nguyên, hãy viết hàm tìm phần tử lớn nhất trong mảng. Ví dụ: mảng: 6 1 100 -5 3 -> hàm trả về kết quả: 100 Function Max (ByVal a As Variant, ByVal n As Integer) As Long 6.4 Cho mảng một chiều các số nguyên, hãy viết hàm tính số lần xuất hiện của x. Ví dụ: mảng: 6 3 100 -5 3 6 6 3 100 ; x=6 -> hàm trả về kết quả: 3 Function TanSuat (ByVal a As Variant, ByVal x As Integer) As Integer Hướng dẫn: So sánh x với a(i), nếu bằng nhau tăng biến đếm lên một đơn vị. 6.5 Sắp xếp mảng a tăng dần. Hàm trả về là một chuỗi chứa mảng a đã được sắp xếp, mỗi phần tử cách nhau khoảng trắng. Ví dụ: mảng a: 6 100 -3 78 34 -> hàm trả về kết quả: “-3 6 34 78 100” Function SapXep (ByVal a As Variant) As String Hướng dẫn: chạy hai vòng for. 6.6 Kiểm tra một mảng một chiều a gồm các phần tử nguyên có phải là cấp số cộng hay không, nếu phải hàm trả về công sai của cấp số cộng, nếu không hàm trả về -1. Ví dụ: mảng a: 4 7 10 13 16 19 -> hàm trả về kết quả: 3 mảng a: 3 4 3 7 5 0 -> hàm trả về kết quả: -1 Function CapSoCong (ByVal a As Variant) As Integer 6.7 Cho một mảng một chiều a gồm các số thực, kiểm tra mảng a có đối xứng hay không, nếu đối xứng trả về True, nếu không trả về False. Ví dụ: mảng a: 0.1 3.4 5 3.4 0.1 -> hàm trả về kết quả: True mảng a: 2.3 5 6 7 5 6.7 -> hàm trả về kết quả: False Function DoiXung (ByVal a As Variant) As Boolean 6.8* Sắp xếp mảng a có các số lẻ tăng dần(số chẵn giữ nguyên). Hàm trả về là một chuỗi chứa mảng a có các số lẻ đã được sắp xếp, mỗi phần tử cách nhau khoảng trắng. Ví dụ: mảng a: 6 101 -3 78 35 -> hàm trả về kết quả: “6 -3 35 78 101” Function SapXep (ByVal a As Variant) As String 7. Bài tập thêm 7.1 Cho mảng một chiều các số nguyên dương có n phần tử. Hãy viết hàm tìm số nhỏ nhì trong mảng. Nếu mảng có số nhỏ nhì thì trả về số nhỏ nhì, nếu mảng không có số nhì thì trả về 0. Ví dụ: mảng 5 5 5 5 5 -> hàm trả về kết quả: 0 mảng 3 2 4 1 5 -> hàm trả về kết quả: 2 Function SoNhoNhi (ByVal a As Variant) As Integer 7.2 Cho mảng một chiều gồm n số nguyên, hãy viết hàm tìm số âm lớn nhất trong mảng, nếu mảng không có số âm thì trả về số 0. Ví dụ: mảng 4 2 7 9 3 5 6 -> hàm trả về kết quả: 0 mảng 4 -5 8 -11 12 18 -2 -> hàm trả về kết quả: -2 Function AmLonNhat (ByVal a As Variant) As Integer
  • 5. 7.3* Sắp xếp mảng a tăng dần, sau đó chèn thêm một phần tử k vào mảng sao cho mảng vẫn giữ thứ tự tăng dần. Hàm trả về kết quả là một mảng. Ví dụ: mảng a: 3 4 3 -7 5 0 ; k=1 -> kết quả: -7 0 1 3 3 4 5 Function SapXepChen (ByVal a As Variant, ByVal k As Integer) As Variant Function SapXepChen (ByVal a As Variant, ByVal k As Integer) As Integer() 7.4** Liệt kê tần suất xuất hiện của các số trong mảng a. Ví dụ: mảng a: 6 101 -3 -3 35 6 -3 -> hàm trả về kết quả: “Có 2 số 6, có 1 số 101, có 3 số -3, có 1 số 35” Function TanSuatXuatHien (ByVal a As Integer) As String 8. Hướng dẫn thực hành: 8.1 Quy ước: Đối với các bài thực hành chỉ yêu cầu viết hàm tính toán… ta sẽ tạo một giao diện đơn giản có một nút bấm(Button) và dùng sự kiện nhấn nút (Click) để gọi hàm tính toán cần viết. Các giá trị input cần thiết sẽ khai báo trực tiếp hoặc sử dụng InputBox trong code xử lí sự kiện nhấn nút. Tương tự, giá trị output sẽ sử dụng MsgBox để thông báo. Ví dụ: bài thực hành 6.1 (xem phần 6-Nội dung thực hành) - Kéo thả một nút bấm (Button) vào Form1. - Sửa thuộc tính: Name: btn_Bai61, Caption: Bai 6.1. - Click đúp vào nút bấm vừa tạo để vào phần viết code xử lí sự kiện Click - Viết hàm xử lí yêu cầu tính tổng các phần tử trong mảng theo hướng dẫn
  • 6. - Trong hàm xử lí sự kiện Click, dùng InputBox để khởi tạo mảng a có n phần tử và gọi hàm TongMang vừa viết, gán kết quả vào biến Ketqua và dùng MsgBox để thông báo kết quả. Ta có thể làm tương tự cho các bài 6.2, 6.3… Sinh viên cũng có thể sử dụng một Label để xuất kết quả thay vì dụng MsgBox. Đối với các bài thực hành yêu cầu thiết kế giao diện riêng, thực hiện theo hướng dẫn riêng của từng bài. 8.2 Một số lưu ý khi làm việc với mảng: - Nên sử dụng chỉ số từ 1 để dễ tính toán: khai báo Option Base 1
  • 7. - Tham số là mảng luôn yêu cầu phải truyền ByRef (mặc định). Nếu muốn dùng ByVal ,ta có thể dùng biến kiểu Variant để thay thế. Ví dụ ở bài 6.1, hàm xử lí có thể khai báo theo 1 trong 3 cách sau: Function TongMang(ByRef a() As Integer, ByVal n As Integer) As Long Function TongMang(a() As Integer, ByVal n As Integer) As Long Function TongMang(ByVal a As Variant, ByVal n As Integer) As Long Ở bài này do không cần phải thay đổi gì ở mảng a nên ta nên dùng cách 3 (By Val) để tránh trường hợp có thể sai sót làm thay đổi mảng a. Cách 1 và 2 thực chất là như nhau do truyền ByRef là mặc định (không khai báo có nghĩa là ByRef) - Ta có thể dùng đoạn code sau (được bôi đen-sử dụng cho bài 6.1) để khai báo và gán trực tiếp một số giá trị phần tử vào mảng không cần dùng hàm InputBox để nhập vào. 9. Hướng dẫn phần mảng điều khiển: Phần này sẽ hướng dẫn SV xây dựng ứng dụng Máy tính bỏ túi với các phép tính +,-,*,/ đơn giản thông qua đó chỉ ra lợi ích của việc sử dụng mảng điều khiển. Máy tính sẽ có một Label hiển thị, 10 nút số (0-9) , 4 nút phép tính (+,-,*,/) và nút =. Ngoài Label và 5 nút chức năng, ta thấy 10 nút số từ 0-9 có chức năng giống nhau. Thay vì sử dụng 10 nút riêng biệt và copy, chỉnh sửa 10 đoạn code xử lí khác nhau, ta sẽ gom 10 nút này vào một mảng điều khiển để thuận lợi hơn trong việc viết và chỉnh sửa code xử lí. Các nút +,-,*,/,= và label hiển thị ta thiết kế bình thường: - Nút Cộng: Caption: +, Name: Cong - Nút Trừ: Caption: -, Name: Tru
  • 8. - Nút Nhân: Caption: +, Name: Nhan - Nút Chia: Caption: /, Name: Chia - Nút Bằng: Caption: =, Name: Bang - Label Hiển thị: Caption: 0, Name: Hienthi Riêng 10 nút số ta chỉ cần thiết kế nút số 0 [ Caption : 0, Name : So]. Sau đó copy/ paste ra các nút số 1-9, chỉnh sửa lại Caption cho phù hợp từ 1 đến 9. Khi copy/paste lần đầu, VB sẽ hỏi có muốn tạo mảng điều khiển không (...Do you want to create a control array?), chọn đồng ý (Yes). Kích đúp vào nút số 0 để viết code xử lí sự kiện bấm nút cho mảng điều khiển gồm 10 phần tử (10 số): khi bấm nút, giá trị nút đó sẽ hiển thị trên label hiển thị nối thêm vào bên phải). Ta thấy giá trị của mỗi nút cũng chính là giá trị Index của nó trong mảng điều khiển nên code xử lí cho mảng điều khiển sẽ là: Như vậy là đã xong phần hiển thị, khi chạy thử chương trình, bấm các nút số để hiện thị số trên label hiển thị. Phần hiện thực các phép tính ta sẽ sử dụng 4 biến toàn cục lần lượt theo tên gọi để lưu : toán hạng 1, toán hạng 2, toán tử và kết quả phép tính. Khi người dùng nhập vào toán hạng thứ nhất, bấm nút cộng, số thứ nhất sẽ được lưu vào toanhang1, giá trị label hiển thị sẽ được xóa để nhập số thứ 2 đồng thời biến toantu sẽ được gán bằng 1(quy ước: 1- cộng, 2- trừ, 3-nhân, 4-chia). Khi người dùng nhập số thứ 2 xong, bấm nút bằng, chương trình sẽ lưu số thứ 2 vào toanhang2 và thực hiện phép tính sau đó hiển thị kết quả lên label hiển thị.
  • 9. Bên dưới là code tham khảo cho các nút cộng, trừ và bằng. Phần viết code xử lí cho phép nhân và chia (nút nhân, chia) xem như bài tập để SV thực hiện. Bài tập: Ta thấy 4 nút cộng trừ nhân chia cũng có chức năng khá giống nhau. Thay vì dùng 4 nút riêng biệt, hãy dùng một mảng điều khiển có bốn phần tử (4 nút) để hiện thực. Tham khảo thêm đoạn code xử lí bên dưới, giá trị Index phụ thuộc vào Option Base 1 hay 0. ---HẾT---