0

(Pascal) Chủ đề 6 – Kiểu mảng

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:
Cp: VAR <tên biến mảng>:ARRAY[chỉ số đầu..chỉ số cuối] OF <kiểu dữ liệu>;

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:

64371151
A1A2A3A4A5A6A7

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.

Đào Đình Ngọc

Trả lời

Email của bạn sẽ không được hiển thị công khai.