1. Mảng 1 chiều:
- Có thể hiểu nôm na: Mảng 1 chiều là dãy số hữu hạn.
vd: nhiệt độ mỗi ngày trong tuần (tháng/năm), cấp số cộng, cấp số nhân...
- Chỉ số của mảng:
vd: Xét mảng: 10 20 30 5 6 7
là một dãy các số tự nhiên bất kì có 6 phần tử mà
phần tử thứ 1 là 10
phần tử thứ 2 là 20
phần tử thứ 3 là 30
phần tử thứ 4 là 5
phần tử thứ 5 là 6
phần tử thứ 6 là 7
vd: nhiệt độ mỗi ngày trong tuần (tháng/năm), cấp số cộng, cấp số nhân...
- Chỉ số của mảng:
vd: Xét mảng: 10 20 30 5 6 7
là một dãy các số tự nhiên bất kì có 6 phần tử mà
phần tử thứ 1 là 10
phần tử thứ 2 là 20
phần tử thứ 3 là 30
phần tử thứ 4 là 5
phần tử thứ 5 là 6
phần tử thứ 6 là 7
Lưu ý!
Xét dãy: Ti Suu Dan Mao Thin Ti Ngo Mui Than Dau Tuat Hoicũng được coi là mảng 1 chiều, trong đó:
- Phần tử 1 là Ti
- Phần tử 2 là Suu
- Phần tử 3 là Dan
- Phần tử 4 là Mao
- Phần tử 5 là Thin
vd: Vẫn xét mảng 10 20 30 5 6 7
A[1]=10; A[2]=20; A[3]=30; A[4]=50; A[5]=6; A[7]=7
- Cách khai báo mảng: Có 2 cách khai báo:
Khai báo trực tiếp:
Thường thì cách khai báo trực tiếp được dùng nhiều hơn vì nó ngắn gọn.
var :array[kiểu chỉ số] of ;
VD:a:array[1..100] of integer;
b,c:array[1..250] of integer;
Khai báo gián tiếp:
type =array[kiểu phần tử] of ;
var :;
VD:type mang=array[1..100] of integer;
var a,b,c:mang;
- Cách nhập/xuất mảng 1 chiều:var a:array[1..100] of integer;
n,i:integer;
begin
{Nhập số phần tử mảng}
writeln('Nhap so phan tu cua mang:'); readln(n);
{Nhập mảng}
for i:=1 to n do
begin
write('A[',i,']='); readln(A[i]);
end;
{Xuất mảng}
for i:=1 to n do
writeln(A[i]);
end.
2. Mảng 2 chiều:
- Khái niệm: Nếu mảng 1 chiều là dãy thì mảng 2 chiều là bảng các phần tử cùng kiểu (bảng các số).
- Tham chiếu: Vì mảng 2 chiều là bảng nên sẽ cần chỉ số hàng và chỉ số cột: A[i,j] với i là chỉ số hàng, j là chỉ số cột.
- Khai báo: Tương tự như mảng 1 chiều nhưng thêm chỉ số cột.
- Cách nhập/xuất mảng 2 chiều:
var A:array[1..50,1..50] of Integer;
i,j,N,Max,k,c,M:Integer;
begin
write('So hang cot:');readln(N,M);Max:=0;
for i:=1 to N do
for j:=1 to M do
begin
write('A[',i,',',j,']=');readln(A[i,j]);
end;
for i:=1 to N do
begin
for j:=1 to M do
write(A[i,j]);
end;
end.