1. Kiểu mảng một chiều
a. Khai báo: Có 2 cách (trực tiếp và gián tiếp)
- Trực tiếp:
Ví dụ 1: Khai báo một M1C gồm tối đa 100 số nguyên dương.
VAR A:Array[1..100] of Word;
Ví dụ 2: Khai báo 2 M1C gồm tối đa 200 số thực.
VAR A,B:Array[1..200] of Real;
- Gián tiếp:
Cp: TYPE <tên kiểu mảng>=ARRAY[chỉ số đầu..chỉ số cuối] OF <kiểu dữ liệu>;
VAR <tên biến mảng>:<tên kiểu mảng>;
Ví dụ 3: Khai báo 1 M1C gồm 100 số nguyên. (Dùng khai báo gián tiếp)
Type MSN=Array[1..100] of Integer;
VAR A:MSN;
- Để tham chiếu đến phần từ trong M1C
+ Gán phần tử thứ 5 của M1C A cho biến x ta thực hiện lệnh: x:=A[5]
+ Gán giá trị của biến x cho phần tử thứ 10 của M1C A ta thực hiện lệnh: A[10]:=x;
- Đoạn chương trình dùng để nhập dữ liệu cho M1C (A).
For i:=1 to n do Begin Write(‘A[‘,i,’]=’); Readln(A[i]); End; |
Program TimMax; Uses Crt; Var A:Array[1..100] of Integer; Vt,i,n:Byte; Max:Integer; Begin Clrscr; Write(‘Nhap so phan tu N=’); readln(n); For i:=1 to n Do Begin Write(‘A[‘,i,’]=’); Readln(A[i]); End; Max:=A[1]; For i:=2 to n do If Max<A[i] then Begin Vt:=i; Max:=A[i]; End; Write(‘Gia tri Max=’,Max,’ o vi tri:’,vt); Readln; End. |
Đoạn chương trình dùng để xuất dữ liệu ra màn hình từ M1C (A).
For i:=1 to n Do Write(A[i]); |
Một số ví dụ
Ví dụ 1: Tìm phần tử lớn nhất của một dãy số nguyên.
Cho một mảng số nguyên A gồm 7 phần từ như sau:
6 | 4 | 3 | 7 | 11 | 5 | 1 |
A1 | A2 | A3 | A4 | A5 | A6 | A7 |
Thuật toán:
B1: Nhập N nguyên dương và dãy A1,…,AN. B2: Max ← A1; i ← 2; B3: Nếu i>N thì đưa ra giá trị Max và kết thúc. B4: B4.1: Nếu Ai >Max thì Max ← Ai; B4.2: i ← i+1; quay lại B3. |
Ví dụ 2. Sắp xếp dãy số nguyên thành dãy không tăng.

Thuật toán và đoạn chương trình

Ví dụ 3: Lập chương trình nhập vào một mảng số nguyên gồm N phần từ (N<=50) sau đó nhập vào một số nguyên x và kiểm tra xem x có xuất hiện trong mảng không, nếu có thì thông báo chỉ số.
(*) HD: Dùng cấu trúc lặp: For..to..do
B1: Nhập N, dãy số nguyên A và số nguyên x.
B2: i:=1;
B3: Nếu x=a[i] thì tb x có xuất hiện trong mảng A và kết thúc.
B4: i:=i+1; quay lại B3.
B5: Nếu i>N thì tb x không xuất hiện trong mảng A và kết thúc.
