Bài 11. Kiểu mảng
Chia sẻ bởi Phạm Đình Quý |
Ngày 10/05/2019 |
121
Chia sẻ tài liệu: Bài 11. Kiểu mảng thuộc Tin học 11
Nội dung tài liệu:
Bài 11 : KIỂU MẢNG
Làm thế nào để:
Luu tr? v x? lý m?t dóy s? ?
Luu tr? v x? lý H? v tờn c?a m?t ngu?i ?
Luu tr? v x? lý b?ng k?t qu? thi t?t nghi?p ?
1. Kiểu mảng một chiều
- 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 ta 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 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 một chiều .
Cách truy cập vào từng phần tử của mảng .
Xét ví dụ : Nhập vào nhiệt độ trung bình mỗi ngày trong tuần . Tính và đưa ra màn hình nhiệt độ trung bình của cả tuần và đếm số ngày có nhiệt độ lớn hơn nhiệt độ trung bình này .
a> Khai báo mảng một chiều
Cách 1 :
Var : Array[kiểu chỉ số] of ;
Cách 2 :
Type = Array [] of ;
Var : ;
Trong đó :
Type là từ khóa dùng để khai báo biến, Array là từ khóa để khai báo mảng .
Kiểu chỉ số thường là đoạn số nguyên liên tục có n1..n2, với n1 là chỉ số đầu và n2 là chỉ số cuối.
Kiểu phần tử là kiểu dữ liệu của phần tử mảng .
Để truy cập vào phần tử mảng ta viết :
[Chỉ số]
Ví dụ :
Khai báo biến mảng thông qua kiểu mảng :
Type
ArrayInteger=Array[1..100] of Integer;
ArrayReal=Array[1.50] of Real;
Var A : Array[1..50];
B : Array[1..50] of Real;
Khai báo mảng trực tiếp :
Var A : Array[1..100] of Integer ;
B : Arrat[1..50] of Real ;
Ví dụ 1 : Tìm phần tử lớn nhất của một dãy số nguyên .
Input : Số nguyên dương N và dãy số A1, A2, ….., AN
Output : Chỉ số và giá trị của số lớn nhất trong dãy
Ý tưởng :
Đặt số A1 là số lớn nhất (max)
Cho i lặp từ 2 đến N, nếu A[i]> thì đổi max = A[i] và lưu lại vị trí i .
Program Tim_Max;
uses crt;
const
Nmax= 250;
Type Arrint = array[1..Nmax] 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 N do
begin
Write(`Phan tu thu `,i,` =`);
readln(A[i]);
end;
Max:= A[1]; csmax:=1;
For i:=1 to N do
IF A[i]>Max then
begin
Max:= A[i];
csmax:= i;
end;
Writeln(`Gia tri cua phan tu max: `,Max);
Writeln(`Chi so cua phan tu max: `,Csmax);
Readln
END.
2. Kiểu mảng 2 chiều :
Bài toán: Tính và đưa ra màn hình bảng nhân.
2. Kiểu mảng 2 chiều :
- Mảng hai chiều là một bảng các phần tử cùng kiểu .
Với mảng hai chiều ta quan tâm đến :
Tên kiểu mảng hai chiều .
Số lượng phần tử của mỗi chiều trong mảng .
Kiểu dữ liệu của phần tử .
Cách khai báo biến mảng hai chiều .
Cách truy cập vào từng phần tử của mảng .
Mảng hai chiều có quan hệ với gì với mảng một chiều?
Mảng hai chiều chính là mảng một chiều mà mỗi phần tử là mảng một chiều.
a> Khai báo mảng hai chiều
- Trong ngôn ngữ Pascal, mảng hai chiều được khai báo như sau :
Cách 1 : Khai báo trực tiếp
Var : Array[kiểu chỉ số dòng, kiểu chỉ số cột] of < kiểu phần tử> ;
Cách 2 : Khai báo gián tiếp thông qua khai báo kiểu mảng
Type = Array[kiểu chỉ số dòng, kiểu chỉ số cột] of ;
Var : ;
Ví dụ :
Khai báo biến mảng thông qua kiểu mảng :
Type
ArrayInteger = Array[1..10,1..15] of Integer ;
ArrayReal=Array[1..50,1..100] of Real ;
Var A : ArrayInteger ;
B : ArrayReal ;
Khai báo mảng trực tiếp :
Var A : Array[1..10,1..15] of Integer ;
B : Aarray[1..50,1..100] of Real ;
2. Kiểu mảng 2 chiều :
Hãy hai báo một mảng số nguyên 8 hàng, 7 cột?
Var A: array[1..8,1..7] of integer;
1
2
3
4
5
6
7
8
9
1 2 3 4 5 6 7 8 9 10
A[5,7]
Cách truy cập vào phần tử của mảng hai chiều :
[chỉ số dòng, chỉ số cột]
Ví dụ : A[5,7], B[23,66],……
b> Một số ví dụ :
Ví dụ 1 :
Chương trình sau đưa ra màn hình bảng cửu chương .
Program cuuchuong;
Uses crt ;
var A : Array[1..9,1..10] of Integer ;
i, j : Byte ;
Begin
Clrscr ;
Writeln(`Bang cuu chuong 1 -> 9 : `);
Writeln ;
For i := 1 to 9 do
For j := 1 to 10 do
A[i,j] := i*j ;
For i := 1 to 9 do
Begin
For j := 1 to 10 do Write(a[i,j]:4);
Writeln ;
Writeln ;
End ;
Readln ;
End .
Ví dụ 2 :
Chương trình sau nhập vào một mảng 2 chiều và số nguyên k, sau đó in ra các phần tử có giá trị nhỏ hơn k của mảng .
Làm thế nào để:
Luu tr? v x? lý m?t dóy s? ?
Luu tr? v x? lý H? v tờn c?a m?t ngu?i ?
Luu tr? v x? lý b?ng k?t qu? thi t?t nghi?p ?
1. Kiểu mảng một chiều
- 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 ta 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 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 một chiều .
Cách truy cập vào từng phần tử của mảng .
Xét ví dụ : Nhập vào nhiệt độ trung bình mỗi ngày trong tuần . Tính và đưa ra màn hình nhiệt độ trung bình của cả tuần và đếm số ngày có nhiệt độ lớn hơn nhiệt độ trung bình này .
a> Khai báo mảng một chiều
Cách 1 :
Var
Cách 2 :
Type
Var
Trong đó :
Type là từ khóa dùng để khai báo biến, Array là từ khóa để khai báo mảng .
Kiểu chỉ số thường là đoạn số nguyên liên tục có n1..n2, với n1 là chỉ số đầu và n2 là chỉ số cuối.
Kiểu phần tử là kiểu dữ liệu của phần tử mảng .
Để truy cập vào phần tử mảng ta viết :
Ví dụ :
Khai báo biến mảng thông qua kiểu mảng :
Type
ArrayInteger=Array[1..100] of Integer;
ArrayReal=Array[1.50] of Real;
Var A : Array[1..50];
B : Array[1..50] of Real;
Khai báo mảng trực tiếp :
Var A : Array[1..100] of Integer ;
B : Arrat[1..50] of Real ;
Ví dụ 1 : Tìm phần tử lớn nhất của một dãy số nguyên .
Input : Số nguyên dương N và dãy số A1, A2, ….., AN
Output : Chỉ số và giá trị của số lớn nhất trong dãy
Ý tưởng :
Đặt số A1 là số lớn nhất (max)
Cho i lặp từ 2 đến N, nếu A[i]> thì đổi max = A[i] và lưu lại vị trí i .
Program Tim_Max;
uses crt;
const
Nmax= 250;
Type Arrint = array[1..Nmax] 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 N do
begin
Write(`Phan tu thu `,i,` =`);
readln(A[i]);
end;
Max:= A[1]; csmax:=1;
For i:=1 to N do
IF A[i]>Max then
begin
Max:= A[i];
csmax:= i;
end;
Writeln(`Gia tri cua phan tu max: `,Max);
Writeln(`Chi so cua phan tu max: `,Csmax);
Readln
END.
2. Kiểu mảng 2 chiều :
Bài toán: Tính và đưa ra màn hình bảng nhân.
2. Kiểu mảng 2 chiều :
- Mảng hai chiều là một bảng các phần tử cùng kiểu .
Với mảng hai chiều ta quan tâm đến :
Tên kiểu mảng hai chiều .
Số lượng phần tử của mỗi chiều trong mảng .
Kiểu dữ liệu của phần tử .
Cách khai báo biến mảng hai chiều .
Cách truy cập vào từng phần tử của mảng .
Mảng hai chiều có quan hệ với gì với mảng một chiều?
Mảng hai chiều chính là mảng một chiều mà mỗi phần tử là mảng một chiều.
a> Khai báo mảng hai chiều
- Trong ngôn ngữ Pascal, mảng hai chiều được khai báo như sau :
Cách 1 : Khai báo trực tiếp
Var
Cách 2 : Khai báo gián tiếp thông qua khai báo kiểu mảng
Type
Var
Ví dụ :
Khai báo biến mảng thông qua kiểu mảng :
Type
ArrayInteger = Array[1..10,1..15] of Integer ;
ArrayReal=Array[1..50,1..100] of Real ;
Var A : ArrayInteger ;
B : ArrayReal ;
Khai báo mảng trực tiếp :
Var A : Array[1..10,1..15] of Integer ;
B : Aarray[1..50,1..100] of Real ;
2. Kiểu mảng 2 chiều :
Hãy hai báo một mảng số nguyên 8 hàng, 7 cột?
Var A: array[1..8,1..7] of integer;
1
2
3
4
5
6
7
8
9
1 2 3 4 5 6 7 8 9 10
A[5,7]
Cách truy cập vào phần tử của mảng hai chiều :
Ví dụ : A[5,7], B[23,66],……
b> Một số ví dụ :
Ví dụ 1 :
Chương trình sau đưa ra màn hình bảng cửu chương .
Program cuuchuong;
Uses crt ;
var A : Array[1..9,1..10] of Integer ;
i, j : Byte ;
Begin
Clrscr ;
Writeln(`Bang cuu chuong 1 -> 9 : `);
Writeln ;
For i := 1 to 9 do
For j := 1 to 10 do
A[i,j] := i*j ;
For i := 1 to 9 do
Begin
For j := 1 to 10 do Write(a[i,j]:4);
Writeln ;
Writeln ;
End ;
Readln ;
End .
Ví dụ 2 :
Chương trình sau nhập vào một mảng 2 chiều và số nguyên k, sau đó in ra các phần tử có giá trị nhỏ hơn k của mảng .
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Phạm Đình Quý
Dung lượng: |
Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)