Chương IV : KIỂU DỮ LIỆU CÓ CẤU TRÚC

A. Tóm tắt lý thuyết:
BÀI 11. KIỂU MẢNG
1. Kiểu mảng một chiều
a. Khái niệm
- Mảng một chiều là một dãy hữu hạn các phần tử có cùng kiểu. Mảng được đặt tên và mỗi phần tử mang một chỉ số. Để mô tả mảng một chiều cần xác định kiểu của các phần tử và cách đánh chỉ số các phần tử.
- Với mảng một chiều ta quan tâm đến:
Tên kiểu mảng một chiều.
Số lượng phần tử trong mảng.
Kiểu dữ liệu của phần tử.
Cách khai báo biến mảng.
Cách tham chiếu đến phần tử.
b. Khai báo mảng một chiều
- Cách 1: Khai báo trực tiếp:
                    VAR : ARRAY [kiểu chỉ số] OF ;
- Cách 2: Khai báo gián tiếp
                     TYPE  = ARRAY [kiểu chỉ số] OF ;
                     VAR  : ;
- Trong đó:
Kiểu chỉ số thường là một đoạn số nguyên liên tục có dạng n1...n2 (n1Kiểu phần tử là kiểu dl của các phần tử của mảng.
- Ví dụ 1: Var Nhietdo: array [1..Max] Of real;
- Ví dụ 2: Khai báo mảng tối đa 100 số nguyên (chỉ số đầu tiên là 1)
=> Ta có các cách sau:
Cách 1: Var a: Array[1..100] Of Integer;
Cách 2:
               Const Nmax = 100;
               Var a: Array[1..Nmax] Of integer;
c. Tham chiếu tới phần tử của mảng
- Để tham chiếu tới phần tử của mảng ta gọi theo cấu trúc: Tên_biến[chỉ số]
VD: Tham chiếu đến phần tử thứ 20 trong mảng A ta viết A[20].

Phát biểu nào dưới đây về kiểu mảng là phù hợp ?
Là một tập hợp các số nguyên;
Độ dài tối đa của mảng là 255;
Là một dãy hữu hạn các phần tử cùng kiểu; (*)
Mảng không thể chứa kí tự;
Hãy chọn phương án ghép đúng nhất. Để khai báo số phần tử của mảng trong PASCAL, người lập trình cần
khai báo một hằng số là số phần tử của mảng;
khai báo chỉ số bắt đầu và kết thúc của mảng; (*)
khai báo chỉ số kết thúc của mảng;
không cần khai báo gì, hệ thống sẽ tự xác định;
Phát biểu nào dưới đây về chỉ số của mảng là phù hợp nhất ?
Dùng để truy cập đến một phần tử bất kì trong mảng; (*)
Dùng để quản lí kích thước của mảng;
Dùng trong vòng lặp với mảng;
Dùng trong vòng lặp với mảng để quản lí kích thước của mảng;
Phát biểu nào sau đây về mảng là không chính xác ?
Chỉ số của mảng không nhất thiết bắt đầu từ 1;
Có thể xây dựng mảng nhiều chiều;
Xâu kí tự cũng có thể xem như là một loại mảng;
Độ dài tối đa của mảng là 255; (*)
Thế nào là khai báo biến mảng gián tiếp ?
Khai báo mảng của các bản ghi;
Khai báo mảng xâu kí tự;
Khai báo mảng hai chiều;
Khai báo thông qua kiểu mảng đã có; (*)
Phương án nào dưới đây là khai báo mảng hợp lệ ?
mang : ARRAY[0..10] OF INTEGER; (*)
mang : ARRAY[0..10] : INTEGER;
mang : INTEGER OF ARRAY[0..10];
mang : ARRAY(0..10) : INTEGER;
Cho khai báo sau :



Câu lệnh nào dưới đây sẽ in ra tất cả các phần tử của mảng trên ?
for k := 1 to 16 do write(a[k]);
for k := 16 downto 0 do write(a[k]); (*)
for k:= 0 to 15 do write(a[k]);
for k := 16 down to 0 write(a[k]);

Cho khai báo mảng và đoạn chương trình như sau :








Đoạn chương trình trên thực hiện công việc gì dưới đây ?
Tìm phần tử nhỏ nhất trong mảng;
Tìm phần tử lớn nhất trong mảng;
Tìm chỉ số của phần tử lớn nhất trong mảng; (*)
Tìm chỉ số của phần tử nhỏ nhất trong mảng;
Cho khai báo mảng như sau :



Phương án nào dưới đây chỉ phần tử thứ 10 của mảng ?
a[10];
a(10);
a[9]; (*)
a(9);
Hãy chọn phương án ghép đúng nhất. Mảng là kiểu dữ liệu biểu diễn một
nguon VI OLET