Nội dung của Bài 11: dạng hình mảng bên dưới đây, những em vẫn cùng tìm hiểu vềkhái niệm mảng một chiều, mảng nhì chiều; giải pháp khai báo với truy cập cập mang đến phần tử của hai các loại mảng này; có tác dụng quen với cách cài đặt thuật toán của một số bài toán dễ dàng với kiểu tài liệu mảng một chiều cùng mảng hai chiều;... Mời các em thuộc theo dõi nội dung chi tiết của bài xích học.Bạn đã xem: bài tập pascal lớp 11 đẳng cấp mảng

1. Cầm tắt lý thuyết

1.1. Hình dạng mảng một chiều

1.2. Hình dáng mảng hai chiều

2. Bài bác tập minh họa

3. Rèn luyện Bài 11 Tin học tập 11

3.1. Trắc nghiệm

4. Hỏi đápBài 11 Tin học 11

Mảng một chiều là dãy hữu hạn các bộ phận cùng kiểu.Mảng được đặt tên cùng mỗi thành phần của nó bao gồm một chỉ số.Để trình bày mảng một chiều cần xác minh kiểu của những phần tửcách khắc số các phần tử của nó.Để người lập trình có thể xây dựng và thực hiện kiểu mảng một chiều, những ngôn ngữ lập trình tất cả quy tắc phương pháp cho phép xác định:Tên hình dáng mảng một chiều;Số lượng phần tử;Kiểu tài liệu của phần tử;Cách khai báo biến;Cách tham chiếu cho phần tử.a. Khai báo

Tổng quát, khai báo thay đổi mảng một chiều tất cả dạng:

Cách 1.

Bạn đang xem: Bài tập pascal kiểu mảng có lời giải

Khai báo trực tiếp thay đổi mảng một chiều:

var : array of ;

Cách 2. Khai báo con gián tiếp biến mảng qua loại mảng một chiều:

type = array of ;

var : ;

Trong đó:

Kiểu chỉ số thường là 1 đoạn số nguyên liên tiếp có dạng n1..n2 cùng với n1,n2 là những hằng hoặc biểu thức nguyên xác định chỉ số đầu và chỉ số cuối (n1 (leq)n2);Kiểu phần tử là giao diện của thành phần mảng.

Ví dụ 1. các khai báo loại mảng một chiều sau đấy là hợp lệ:

type

ArrayReal = array of real;

ArrayBoolean = array of boolean;

ArrayInt = of integer;

Trong đó, n là hằng nguyên.

b.Tham chiếu tới bộ phận của mảng một chiềuTham chiếu tới phần tử của mảng một chiều được xác định bởi tên mảng cùng rất chỉ số, được viết vào cặp ngoặc .Cú pháp: tên_mảng

Ví dụ 2:Tham chiếu tới ánh nắng mặt trời của ngày máy 20, trong chương trình trên, được viết là Nhietdo.


*

Hình 1.Minh họa mảng một chiều

1.2. Giao diện mảng nhì chiều

Mảng nhì chiều là bảng các bộ phận cùng kiểu.Nhận xét rằng mỗi sản phẩm của mảng hai phía có kết cấu như một mảng một chiều cùng kích thước. Giả dụ ta coi mỗi mặt hàng của mảng nhị chiềumột phần tử thì ta có thể nói mảng hai chiều là mảng một chiều nhưng mỗi phần tử là mảng một chiều.Để người lập trình rất có thể xây dựng và áp dụng kiểu mảng hai chiều, các ngôn ngữ lập trình bao gồm quy tắc cách thức cho phép xác định:Tên đẳng cấp mảng nhị chiều;Số lượng thành phần của mỗi chiều;Kiểu dữ liệu của phần tử;Cách khai báo biến;Cách tham chiếu mang đến phần tử.a. Khai báo

Tổng quát, khai báo vươn lên là mảng hai phía trong Pascal như sau:

Cách 1. Khai báo trực tiếp vươn lên là mảng hai chiều như sau:

var : array of ;

Cách 2. Khai báo con gián tiếp phát triển thành mảng qua giao diện mảng nhì chiều:

type = array of ;

var : ;

Ví dụ 4. những khai báo sau đó là hợp lệ:

type

ArrayReal = array of real;

ArrayBoolean = array of boolean;

var

ArrayInt: array of integer;

ArrayLong:array of longint;

Trong đó, n là hằng nguyên.

b. Tham chiếu tới phần tử của mảng hai chiềuTham chiếu tới phần tử của mảng nhì chiều được khẳng định bởi tên mảng cùng với hai chỉ số được phương pháp nhau vày dấu phẩy với viết trong cặp ngoặc .Cú pháp:tên_mảng

Ví dụ 4. Tham chiếu tới phần tử ở cái thứ 5, cột máy 9 của trở thành mảng ArrayInt khai báo được viết: ArrayInt .


*

Hình 2.Minh hoạ mảng nhì chiều

Chú ý:

Các vươn lên là mảng hay gồm con số lớn các bộ phận nên cần chú ý phạm vi áp dụng chúng nhằm khai báo kích cỡ và kiểu tài liệu để tiết kiệm bộ nhớ.Ngoài hai giao diện mảng một chiều và hai chiều, còn có kiểu mảng các chiều.

Dạng 1. Một trong những bài tập vận dụng về mảng một chiều

Ta xét chương trình có áp dụng mảng một chiều thiết lập một số thuật toán giải những câu hỏi tìm tìm và chuẩn bị xếp.

Bài tập 1. Tìm thành phần lớn tuyệt nhất của dãy số nguyênXác định bài xích toán:Input:Số nguyên dương N (N(leq)250) và dãy N số nguyên dương a1, a2 ,..., aN, từng số phần đông không vượt quá 500.Output:Chỉ số và quý hiếm của thành phần lớn độc nhất trong hàng số đã đến (nếu gồm nhiều bộ phận lớn nhất chỉ việc đưa ra một trong số chúng).Mô tả thuật toán:Bước 1.Nhập N và dãy a1,..., aN;Bước 2.Max(leftarrow)a1, i(leftarrow)2;Bước 3.Nếu i > N thì đưa ra giá trị Max rồi kết thúc;Bước 4.Bước 4.1.Nếu ai > Max thì Max(leftarrow)ai;Bước 4.2.i(leftarrow)i + 1 rồi cù lạibước 3;Chương trình download đặt:

programTimMax;

usescrt;

const

Nmax = 250;

type

ArrInt = array of integer;

var

N,i, Max, csmax: integer;

A: ArrInt;

begin

clrscr;

write("Nhap so luong phan tu cua day so, N = ");

readln(N);

for i:=1 to lớn N do

begin

write("Phan tu thu ",i," = ");

readln(A);

end;

Max:= A; csmax:=1;

for i:=2 to lớn N do

if A> Max then

begin

Max:= A;

csmax:= i;

end;

writeln("Gia tri cua phan tu Max: ", Max);

writeln("Chi so cua phan tu Max: ", csmax);

readln

end.

Bài tập 2. Thu xếp dãy số nguyên bằng thuật toán tráo đổiXác định bài xích toán:Input:Số nguyên dương N (N(leq)250) và dãy A tất cả N số nguyên dương a1,a2,..., aN, mỗi số rất nhiều không vượt thừa 500.Output:Dãy số A vẫn được bố trí thành hàng không giảm.Chương trình sở hữu đặt:

programsapxep;

usesCRT;

constNmax = 250;

type

ArrInt = array of integer;

var

N,i,j,t: integer;

A: ArrInt;

begin

clrscr;

write("Nhap so luong phan tu cua day so, N = ");readln(N);

for i:=1 to N do

begin

write("Phan tu thu ",i," = ");

readln(A);

end;

for j:=N downto 2 do

begin

for i:=1 khổng lồ j-1 do

if A> A then

begin(*Trao doi A va A*)

t:= A;

A:= A;

A:= t

end;

end;

writeln("Day so duoc sap xep la: ");

for i:=1 to N vị write(A: 4);

readln

end.

Bài tập 3. Tra cứu kiếm nhị phânXác định bài toán:Input:Dãy A là dãy tăng có N (N(leq)250) số nguyên dương a1, a2,..., aN với số nguyên k.Output:Chỉ số i nhưng mà ai = k hoặc thông tin "Khong tim thay" nếu không có số hạng như thế nào của hàng A có mức giá trị bởi k.Chương trình cài đặt:

programTK_nhiphan;

usescrt;

const

Nmax = 250;

type

ArrInt = array of integer;

var

N, i, k: integer;

Dau, Cuoi, Giua: integer;

A: Arrint;

Tim_Thay: boolean;

begin

clrscr;

write("Nhap so luong phan tu cua day so, N = ");

readln(N);

writeln("Nhap cac phan tu cua day so tang: ");

for i:=1 to N do

begin

write("Phan tu thu ",i," = ");

readln(A);

end;

write("Nhap gia tri k = ");

readln(k);

Dau:= 1; Cuoi:=N; Tim_thay:= false;

while (Dau k then Cuoi:= Giua-1

else Dau:= Giua+1;

end;

if Tim_thay then writeln("Chi so tim duoc la: ", Giua)

else writeln("Khong tim thay");

readln

end.

Dạng 2. Một vài bài tập áp dụng về mảng hai chiều

Bài tập 4. Chương trình sau tính và gửi ra screen bảng cửu chương.

programBangCuuChuong;

usescrt;

var

B: array of integer;

B: bien mang hai chieu luu bang cuu chuong i, j: integer;

begin

clrscr;

for i:=1 to 9 do

for j:= 1 to 10 do

B:= i*j;

for i:=1 to lớn 9 do

begin

for j:=1 to 10 do write(B:4);

writeln;

end;

readln

end.

Xem thêm: Chương Iii - Phần Mềm Học Tập

Bài tập 5. Chương trình sau nhập vào từ bàn phím các phần tử của mảng hai phía B có 5 dòng, 7 cột cùng với các bộ phận là các số nguyên và số nguyên k. Sau đó, đưa ra màn hình các thành phần của mảng có mức giá trị nhỏ dại hơn k.

programMangHaiChieu;