Chương 10: MẢNG – CHUỖI

Chia sẻ: Vo An | Ngày: | Loại File: PPT | Số trang:27

0
69
lượt xem
12
download

Chương 10: MẢNG – CHUỖI

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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ố. Mảng đối tượng điều khiển: Áp dụng cho đối tượng điều khiển cùng loại. Sử dụng mảng để không phải đặt quá nhiều tên và nhiều thủ tục xử lý sự kiện.

Chủ đề:
Lưu

Nội dung Text: Chương 10: MẢNG – CHUỖI

  1. Chương 10: MẢNG – CHUỔI 10.1 Mảng 10.2 Chuỗi ký tự
  2. 10.1 Mảng 1. Định nghĩa: 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ố VD : điểm toán của n học sinh hs1 → t1 Các đặc trưng : hs2 → t2 -Nhiều phần tử (hữu hạn) … -Cùng kiểu dữ liệu hsn → tn -Các phần tử phân biệt với nhau bằng chỉ số
  3. 2. Khai báo: Dim/Public/Static () As VD : Dim A(10) As Integer Khai báo mảng A gồm 11 phần tử : A(0), A(1), A(2), …, A(10) kiểu nguyên A Trong bộ nhớ … 0 0 0 … 0 … A(0) A(1) A(2) … A(10) Chú ý : Chỉ số phải có kiểu dữ liệu rời rạc, đếm được (nguyên, ký tự, …)
  4. Option Base 1 Dim/Public/Static (< Chỉ số lớn nhất>) As VD : Option Base 1 Dim A(10) As Boolean Khai báo mảng A gồm 10 phần tử : A(1), A(2), …, A(10) kiểu Boolean A Trong bộ nhớ … 0 0 0 … 0 … A(1) A(2) A(3) … A(10)
  5. Dim/Public/Static ( TO ) As VD : Dim A(“A” To “Z”) As Integer Khai báo mảng A gồm 26 phần tử : A(“A”), A(“B”), …, A(“Z”) kiểu nguyên A Trong bộ nhớ … 0 0 0 … 0 … A(1) A(2) A(3) … A(10)
  6. 3. Các thao tác trên mảng (phần tử mảng) •Truy xuất phần tử mảng : tên() VD : Dim A(1 To 5) As Integer … A(1)=3 A(2)=A(1)+1 … X=A(1)+A(2) …
  7. •Nhập, xuất giá trị mảng Gán trực tiếp … Dim A(1 To 5) As Integer … A(1)=1 A(2)=2 A(3)=3 A(4)=4 A(5)=5 ,Xuất giá trị ra TextBox … For i=1 To 5 Text1.text=Text1.text+" "+str(A(i)) Next I … (*)
  8. Sử dụng hàm InputBox() … n = InputBox("Cho biet so phan tu: ") For i = 1 To n a(i)= InputBox("A(" + Str(i) + ") :") Next I … Dim s as string For i = 1 To n do s = InputBox("A(" + Str(i) + ") :") loop until val(s)>0 a(i)=val(s) (*) Next I
  9. Sử dụng hàm Rnd() … For i = 1 To 5 A(i) = Int(100 * Rnd()) Next I …
  10. Lấy giá trị từ các TextBox … Dim A(0 To 5) As Integer … For i=0 to 5 A(i)=Text1(i) Next I … (*)
  11. • Label Xuất mảng • Msgbox • 1 Textbox • Form • For i= 1 to n – S = s+ “ “ + str(a(i)) – Next I – Lblkq.caption=s – Msgbox s – Txtkq.text=s – Print s
  12. •Sắp thứ tự các phần tử mảng theo giá trị Tăng A(i) A(j) → … Dim A(1 To n) As Integer 6 2 1 3 7 … 2 6 1 3 7 For i=1 To n-1 1 6 2 3 7 For j=i+1 to n If A(i) > A(j) then A(i) A(j) → Temp=A(i) A(i)=A(j) 6 2 3 7 A(j)=Temp End If 2 6 A(i) 3 A(j) 7 → Next j Next I 6 3 7 … 3 6 7 A(i) A(j) Temp 6 7 Temp=A(i) A(i)=A(j) … A(i) A(j) … A(j)=Temp
  13. Giảm A(i) A(j) → … Dim A(1 To n) As Integer 6 2 1 3 7 … 6 2 1 3 7 For i=1 To n-1 For j=i+1 to n 7 2 1 3 6 If A(i) < A(j) then A(i) A(j) → Temp=A(i) A(i)=A(j) 2 1 3 6 A(j)=Temp End If 3 1 2 6 Next j Next I A(i) A(j) → 6 1 2 3 … 1 2 3 2 1 3 3 1 A(i) 2 A(j) (*) 1 2
  14. 4. Ví dụ 1/ Kiểm tra các phần tử của mảng tạo thành cấp số cộng ? d=A(2)-A(1); A(i)=A(i-1)+d, ∀i=3,n 2/ Kiểm tra các phần tử của mảng tạo thành cấp số nhân ? s=A(2)/A(1); A(i)=A(i-1)*s, ∀i=3,n 3/ Kiểm tra mảng đối xứng ? (*) A(i)=A(n-i+1), ∀i=1,n 4/ Liệt kê số lượng và vị trí các phần tử là bội số của 3 trong mảng A(i) mod 3 = 0, ∀i=1,n\2 5/ In các số nguyên tố (chính phương) có trong mảng. Kiểm tra nếu A(i) là số NT → in 6/ In các phần tử khác nhau trong mảng. Sắp thứ tự tăng (giảm) In phần tử đầu tiên: A(1) In phầ tử thứ I nếu A(i)>A(i-1) 7/ In các phần tử của mảng thành 2 nhóm chẳn và lẻ. Ở mỗi nhóm tăng theo thứ tự Duyệt in mảng 2 lần Lần 1 in các số chẳn : A(i) mod 2 =0 Lần 1 in các số lẻ : A(i) mod 2 0 (*)
  15. 8/ Chèn thêm 1 phần tử vào mảng có thứ tự sao cho mảng vẫn còn có thứ tự. (*) VD : Mảng có thứ tự tăng : 2 4 6 7 10 15 Chèn phần tử : 9 2 4 6 7 10 15 1 2 3 4 5 6 7 9
  16. 5. Mảng đối tượng điều khiển Áp dụng cho đối tượng điều khiển cùng loại Sử dụng mảng để không phải đặt quá nhiều tên và nhiều thủ tục xử lý sự kiện
  17. Định nghĩa mảng đối tượng điều khiển •Tạo 1 đối tượng trong nhóm muốn định nghĩa mảng lên form, •Đặt tên (sẽ dùng làm tên mảng) •Thiết lập giá trị các thuộc tính cần thiết •Tạo các đối tượng tiếp theo bằng Copy - Paste Viết lệnh cho mảng đối tượng điều khiển •Thủ tục xử lý sự kiện có dạng Private sub _(Index As Integer) End sub •Thủ tục xử lý sự kiện được viết chung cho nhóm đối tượng định nghĩa là mảng, •Tham số Index được dùng để phân biệt phần tử nhận sự kiện đó
  18. Duyệt mảng đối tượng điều khiển •Đối với các đối tương có chỉ số liên tục For i = txtFields.LBound To txtFields.UBound txtFields(i).Text = "" Next •Đối với các đối tương có chỉ số liên tục Dim txt As TextBox … For Each txt In txtFields txt.Text = "" Next
  19. VD : Thiết kế giao diện •Định nghĩa mảng các OptionButton cho nhóm Shape với tên opShape •Định nghĩa mảng các OptionButton cho nhóm FillStyle với tên opFillStyle •Định nghĩa mảng các OptionButton cho nhóm Color với tên opColor.
  20. Private Sub opShape_Click(Index As Integer) Shape1.Shape = Index End Sub Private Sub opFillStyle_Click(Index As Integer) Shape1.FillStyle = Index End Sub Private Sub opColor_Click(Index As Integer) Select Case Index Case 0 Shape1.FillColor = vbRed Case 1 Shape1.FillColor = vbBlue Case 2 Shape1.FillColor = vbMagenta (*) Case 3 Shape1.FillColor = vbYellow End Select End Sub
Đồng bộ tài khoản