Tải bản đầy đủ (.pdf) (11 trang)

BÀI TẬP CÔNG NGHỆ THÔNG TIN TRƯỜNG ITC potx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (676.8 KB, 11 trang )

2323
2.2 Mảng ñộng
Written by: Dương Thành Phết
 Mảng ñộng là mảng không xác ñịnh rõ số phần tử khi
khai báo.

Cú pháp khai báo:
[Dim | Private | Public | Static] Tên_mng() As Kiu
Ví dụ: Dim St() As String
 Cấp phát bộ nhớ:
ReDim Tên_mng(s phn t) As Kiu
Ví dụ :
Dim St() As String
ReDim St(9)
This is trial version
www.adultpdf.com
2424
Written by: Dương Thành Phết
 Khi ñã khai báo và cấp phát vùng nhớ cho mảng
ñộng, khi cần ta vẫn có thể thay ñổi lại kích thước của
mảng bằng lệnh ReDim

Ví du :
Dim MyArray() As Integer ' Khai báo mảng ñộng.
Redim MyArray(5) ' cấp phát 5 phần tử.
For i = 1 To 5 ' Lặp 5 lần.
MyArray(i) = i
Next i
Redim MyArray(10)
For i = 1 To 10
MyArray(i) =i


Next i
This is trial version
www.adultpdf.com
2525
Written by: Dương Thành Phết
 Mặc ñịnh, khi dùng lệnh Redim ñể cấp phát lại số
phần tử trong mảng thì các giá trị cũ sẽ bị mất ñi.
 ðể giữ lại các giá trị cho các phần tử cũ trong mảng ta
phải dùng thêm từ khoá Preserve

Ví du :
Dim MyArray() As Integer ' Khai báo mảng ñộng.
Redim MyArray(5) ' cấp phát 5 phần tử.
For i = 1 To 5 ' Lặp 5 lần.
MyArray(i) = i khởi tạo giá trị cho mảng.
Next i

Redim Preserve MyArray(15)
'cấp phát lại 15 pt cho mảng nhưng vẫn giữ lại
‘các giá trị cũ của 5 phần tử ñầu.
This is trial version
www.adultpdf.com
2626
2.3 Mảng ña chiều
Written by: Dương Thành Phết
 Visual Basic cho phép khai báo và sử dụng mảng ña
chiều.
 Ví dụ khai báo mảng 2 chiều, mỗi chiều 10 phần tử.
Dim MatrixA(9, 9) As Double
Ta cũng có thể xác ñịnh rõ ràng các chỉ số trên, chỉ số

dưới của mảng ña chiều như ví dụ sau ñây:
Dim MatrixA(1 To 10, 1 To 10) As Double

This is trial version
www.adultpdf.com
2727
Written by: Dương Thành Phết
Lưu ý :
 Mỗi một phần tử của mảng chiếm một vùng nhớ nhất
ñịnh, do ñó, ñể tiết kiệm bộ nhớ, ta chỉ nên khai báo
mảng với số phần tử vừa ñủ.
 Không thể tạo mảng có quá 2.147.483.647 phần tử. Vì
có thể dẫn ñến lỗi “Out Of Memory” khi chạy chương
trình.

This is trial version
www.adultpdf.com
2828
2.4 Các xử lý trên mảng
Written by: Dương Thành Phết
 Hàm v mng

Split(Chuỗi [, Dấu phân cách [, số phần tử ]]):
Cắt 1 chuỗi thành một mảng các chuổi con.
Join(Mảng [, Dấu phân cách]):
Trả về chuổi kết hợp các phần tử trong 1 mảng
VD:
Dim A() = Split(txtNhap.Text, "-")
txtKetqua.Text = Join(A, "/")
This is trial version

www.adultpdf.com
2929
Written by: Dương Thành Phết
 Tìm kim các phn t tha ñiu kin cho trc
For i = 0 To n-1
IF A(i) = n Then
Thc hin các x lý
End If
Next

This is trial version
www.adultpdf.com
3030
Written by: Dương Thành Phết

 Tìm giá trị nhỏ nhất/ lớn nhất và vị trí
Dim gtnn as Integer, vtgtnn as Integer
gtnn=A(0)
vttnn=0
For i = 0 To n-1
If( A(i) < gtnn then
gtnn=A(i)
vtgtnn=i
End If
Next
This is trial version
www.adultpdf.com
3131
Written by: Dương Thành Phết


d. Tính tổng của các phần tử trong mảng.
Dim Tong as Integer =0
For i = 0 to n-1
Tong=Tong + A(i)
Next
Ghi chú: Tương tự ta có yêu cầu tính toán khác
This is trial version
www.adultpdf.com
3232
Written by: Dương Thành Phết

Ví dụ: Tạo project xử lý mảng số nguyên
Yêu cầu:
Tạo 5 Text Box chứa 5 số nguyên ngẫu nhiên (từ
1 ñến 100) khi click vào nút nhập.
Tìm giá trị số lớn nhất và vị trí
Tính tổng giá trị các phần tử
Các Textbox luôn ReadOnly
This is trial version
www.adultpdf.com
3333
Written by: Dương Thành Phết

e. Sắp xếp tăng dần/ giảm các phần tử trong mảng
Sub Sapxep(ByVal a() As Integer, ByVal n As Integer)
Dim tam As Integer
Dim i As Integer, j As Integer
For i = 0 To n - 2
For j = i + 1 To n - 1
If a(i) > a(j) Then

tam = a(i)
a(i) = a(j)
a(j) = tam
End If
Next
Next
End Sub
2
12
8 5 1 6 4
i=1 j=2 j=5i=2 j=3 j=4i=3 j=7i=4 j=6i=5 i=6 i=7
This is trial version
www.adultpdf.com

×