BÀI 11 KIỂU DỮ LIỆU MẢNG 1 CHIỀU
I KHÁI NIỆM
Kiểu dữ liệu mảng 1 chiều là 1 dãy hữu hạn các phần tử có cùng kiểu dữ liệu, mỗi mảng sẽ có 1 cái tên để phân biệt và mỗi phần tử của nó có 1 chỉ số.
Để mô tả 1 mảng ta cần xác định :
+ Tên mảng
+Số lượng phần tử
+Cách đánh chỉ số phần tử
+cách tham chiếu phần tử
II CÁCH SỬ DỤNG MẢNG 1 CHIỀU
Cú pháp trong Pascal:
Cách 1
Var <Tên biến mảng>:Array[Kiểu chỉ số] of [<Kiểu phần tử>] ;
Cách 2
Type <Tên Kiểu mảng> = Array[Kiểu chỉ số] of [<Kiểu phần tử>] ;
Var <Tên biến mảng>:<Tên Kiểu mảng>;
Ví dụ trong Pascal :
Để khai báo 1 mảng số nguyên bao gồm 10 phần tử chứa số nguyên ta thực hiện như sau :
Var a:array[1..10] of byte;
cách tham chiếu phần tử : a[1],[2],....,a[10]
Bài tập ví dụ:
viết chương trình nhập vào nhiệt độ 7 ngày trong tuần, tính và in ra màn hình nhiết độ trung bình của tuần.
Cách 1
Program TinhNhietDo;
uses crt;
Var n1,n2,n3,n4,n5,n6,n7:byte;
tb:real;
Bebin
clrscr;
write('Nhap nhiet do ngay 1'); readln(n1);
write('Nhap nhiet do ngay 2'); readln(n2);
write('Nhap nhiet do ngay 3'); readln(n3);
write('Nhap nhiet do ngay 4'); readln(n4);
write('Nhap nhiet do ngay 5'); readln(n5);
write('Nhap nhiet do ngay 6'); readln(n6);
write('Nhap nhiet do ngay 7'); readln(n7);
tb:=(n1+n2+n3+n4+n5+n6+n7)/7
write('Nhiet do trung binh cua tuan =', tb)
readln;
End.
Cách 2
Program TinhNhietDo;
uses crt;
Var n:array[1..7] of byte;
i,s:integer;
tb:real;
Begin
clrscr;
For i:=1 to 7 do
Begin
Write('Nhap phan tu thu',i ,'=');
readln(n[i]);
s:=s+n[i];
End;
tb:=s/7;
write('Nhiet do trung binh cua tuan =', tb);
readln;
End.
-------------------------------------------------------------------------------------------------------------------------------------------------------------
Cú pháp trong VBA:
Dim <Tên mảng>[(<số phần tử>)] As <Kiểu dữ liệu>
Ví dụ trong VBA:
Để khai báo 1 mảng số nguyên bao gồm 10 phần tử chứa số nguyên ta thực hiện như sau :
Tên mảng : songuyen
Số phần từ là 10 đánh số từ 0->9
Dim songuyen(0 to 9) as integer
=> songuyen(0),songuyen(1)…songuyen(9)
Hoặc Dim songuyen(9) as integer
=> songuyen(0),songuyen(1)…songuyen(9)
Hoặc Dim songuyen(1 to 10) as integer
=> songuyen(1),songuyen(2)…songuyen(10)
***Lưu ý
Cách tham chiếu phần tử : songuyen(5), songuyen(1)…
Các phần tử của mảng thường bắt đầu bằng 0
III VÍ DỤ
Viết chương trình nhập một dãy số nguyên bao gồm 10 phần tử, tính và in ra kết quả trung bình cộng của 10 phần tử số nguyên đó.
Private Sub TinhTrungBinh_Click()
Dim songuyen(1 To 10) As Byte
Dim s As Long
Dim tb As Double
Dim i As Byte
Dim temp As String
For i = 1 To 10 Step 1
temp = "Nhap phan tu thu(" & Str(i) & ")"
songuyen(i) = Val(InputBox(temp, "Nhap so", 0))
s = s + songuyen(i)
Next
tb = s / 10
MsgBox "Trung binh cong =" & tb
End Sub