MẢNG 2 CHIỀU (MA TRẬN)
3 posters
Trang 1 trong tổng số 1 trang
MẢNG 2 CHIỀU (MA TRẬN)
1 Cú pháp khai báo mảng 2 chiều (MA TRẬN)
Cách 1: Khai báo trực tiếp biến mảng 2 chiều:
Var : <Tên biến mảng> : Array[kiểu chỉ số hàng, kiểu chỉ số cột] of < kiểu phần tử>;
Cách 2: Khai báo gián tiếp biến mảng thông qua khai báo kiểu mảng hai chiều:
Type <Tên kiểu mảng > = Array[kiểu chỉ số hàng, kiểu chỉ số cột ] of <kiểu phần tử>;
Var <Tên biến mảng > : <Tên kiểu mảng >;
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 trực tiếp biến mảng:
Var A : Array[1..10,1..15] of Integer;
B : Array[1..50,1..100] of Real;
Ví dụ: thủ tục nhập mảng 2 chiều:
var A:array[1..50,1..50] of Integer;
i,j,N,Max,k,c,M:Integer;
begin
write('So hang cot:');readln(N,M);Max:=0;
for i:=1 to N do
for j:=1 to M do
begin
write('A[',i,',',j,']=');readln(A[i,j]);
end;
for i:=1 to N do
begin
for j:=1 to M do
write(A[i,j]);
end;
end.
Bài tập 1: Viết chương trình thực hiện:
1/ Thủ tục lấy dữ liệu từ tệp bt1.inp vào mảng 2 chiều
2/ Hàm đếm số phần tử ẩm trong mảng 2 chiều: ghi vào tệp bt1.out.
3/ Hàm tìm phần tử lớn nhất trong mảng 2 chiều: ghi vào tệp bt1.out.
Bài tập 2: Viết chương trình thao tác trên ma trận vuông với các yêu cầu:
+ Nhập ma trận vuông từ tệp tin matran.inp: hàng 1 chứa m,n; m hàng tiếp theo mỗi hàng chưa n số.
+ Tính tổng các phần tử trên đường chéo chính: ghi vào tệp matran.out
+ Kiểm tra tính đối xứng của ma trận vuông qua dường chéo chính: ghi vào tệp matran.out
Bài tập 3: Tính tổng của hai ma trận A, B cấp NxM. Tính ma trận C là tổng của hai ma trận A và B, in ma trận C lên màn hình.
Công thức tính các phần tử của ma trận C= A+B:
C[i,j ] = A[i, j] + B[i, j] với i=1,..., N, và j=1,..., M
Bài tập 4: Cho mảng 2 chiều A cấp mxn. Viết chương trình sắp xếp lại mảng A theo yêu cầu sau:
a/ Các phần tử trên mỗi dòng được sắp xếp theo thứ tự giảm dần.
b/ Các dòng được sắp xếp lại theo thứ tự tăng dần của tổng các phần tử trên mỗi dòng.
Bài tập 5: Viết chương trình tính tổng và tích 2 ma trận vuông A, B cấp n.
Gợi ý:
Công thức tính tổng 2 ma trận: Cij = Aij + Bij
Công thức tính tích 2 ma trận: Cij =
Bài tập 6: - Phần tử yên ngựa
Cho bảng A kích thước MxN. Phần tử Aij được gọi là phần tử yên ngựa nếu nó là phần tử nhỏ nhất trong hàng của nó đồng thời là phần tử lớn nhất trong cột của nó. Ví dụ trong bảng số sau đây:
15 3 9
55 4 6
76 1 2
thì phần tử A22 chính là phần tử yên ngựa.
Bạn hãy lập chương trình tìm phần tử yên ngựa trong tệp yenngua.inp:
Tệp yenngua.inp: dòng đầu chứa 2 số m,n. m hàng tiếp theo mỗi hàng chứa n số.
Tệp yenngua.out: chứa vị trí chỉ số hàng và chỉ số cột của phần tử yên ngựa; (2;2)
Bài 7: Về một ma trận số
Mô tả thuật toán, lập chương trình xây dựng ma trận A[10,10] thoả mãn các tính chất:
+ A[i,j] là các số nguyên từ 0..9 (1 <= i, j <= 10),
+ Mỗi số từ 0..9 được gặp 10 lần trong ma trận A,
+ Mỗi hàng và mỗi cột của A chứa không quá 4 số khác nhau.
Viết ma trận này ra tệp matranso.out
Bài 8 Xếp số 1 trên lưới
(Dành cho học sinh THCS)
Hãy xếp 16 số 1 lên ma trận 10x10 sao cho nếu xoá đi bất kỳ 5 hàng và 5 cột thì vẫn còn lại ít nhất là một số 1. Nêu thuật toán và lập trình hiển thị ra màn hình kết quả ma trận thoả mãn tính chất trên.
Cách 1: Khai báo trực tiếp biến mảng 2 chiều:
Var : <Tên biến mảng> : Array[kiểu chỉ số hàng, kiểu chỉ số cột] of < kiểu phần tử>;
Cách 2: Khai báo gián tiếp biến mảng thông qua khai báo kiểu mảng hai chiều:
Type <Tên kiểu mảng > = Array[kiểu chỉ số hàng, kiểu chỉ số cột ] of <kiểu phần tử>;
Var <Tên biến mảng > : <Tên kiểu mảng >;
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 trực tiếp biến mảng:
Var A : Array[1..10,1..15] of Integer;
B : Array[1..50,1..100] of Real;
Ví dụ: thủ tục nhập mảng 2 chiều:
var A:array[1..50,1..50] of Integer;
i,j,N,Max,k,c,M:Integer;
begin
write('So hang cot:');readln(N,M);Max:=0;
for i:=1 to N do
for j:=1 to M do
begin
write('A[',i,',',j,']=');readln(A[i,j]);
end;
for i:=1 to N do
begin
for j:=1 to M do
write(A[i,j]);
end;
end.
Bài tập 1: Viết chương trình thực hiện:
1/ Thủ tục lấy dữ liệu từ tệp bt1.inp vào mảng 2 chiều
2/ Hàm đếm số phần tử ẩm trong mảng 2 chiều: ghi vào tệp bt1.out.
3/ Hàm tìm phần tử lớn nhất trong mảng 2 chiều: ghi vào tệp bt1.out.
Bài tập 2: Viết chương trình thao tác trên ma trận vuông với các yêu cầu:
+ Nhập ma trận vuông từ tệp tin matran.inp: hàng 1 chứa m,n; m hàng tiếp theo mỗi hàng chưa n số.
+ Tính tổng các phần tử trên đường chéo chính: ghi vào tệp matran.out
+ Kiểm tra tính đối xứng của ma trận vuông qua dường chéo chính: ghi vào tệp matran.out
Bài tập 3: Tính tổng của hai ma trận A, B cấp NxM. Tính ma trận C là tổng của hai ma trận A và B, in ma trận C lên màn hình.
Công thức tính các phần tử của ma trận C= A+B:
C[i,j ] = A[i, j] + B[i, j] với i=1,..., N, và j=1,..., M
Bài tập 4: Cho mảng 2 chiều A cấp mxn. Viết chương trình sắp xếp lại mảng A theo yêu cầu sau:
a/ Các phần tử trên mỗi dòng được sắp xếp theo thứ tự giảm dần.
b/ Các dòng được sắp xếp lại theo thứ tự tăng dần của tổng các phần tử trên mỗi dòng.
Bài tập 5: Viết chương trình tính tổng và tích 2 ma trận vuông A, B cấp n.
Gợi ý:
Công thức tính tổng 2 ma trận: Cij = Aij + Bij
Công thức tính tích 2 ma trận: Cij =
Bài tập 6: - Phần tử yên ngựa
Cho bảng A kích thước MxN. Phần tử Aij được gọi là phần tử yên ngựa nếu nó là phần tử nhỏ nhất trong hàng của nó đồng thời là phần tử lớn nhất trong cột của nó. Ví dụ trong bảng số sau đây:
15 3 9
55 4 6
76 1 2
thì phần tử A22 chính là phần tử yên ngựa.
Bạn hãy lập chương trình tìm phần tử yên ngựa trong tệp yenngua.inp:
Tệp yenngua.inp: dòng đầu chứa 2 số m,n. m hàng tiếp theo mỗi hàng chứa n số.
Tệp yenngua.out: chứa vị trí chỉ số hàng và chỉ số cột của phần tử yên ngựa; (2;2)
Bài 7: Về một ma trận số
Mô tả thuật toán, lập chương trình xây dựng ma trận A[10,10] thoả mãn các tính chất:
+ A[i,j] là các số nguyên từ 0..9 (1 <= i, j <= 10),
+ Mỗi số từ 0..9 được gặp 10 lần trong ma trận A,
+ Mỗi hàng và mỗi cột của A chứa không quá 4 số khác nhau.
Viết ma trận này ra tệp matranso.out
Bài 8 Xếp số 1 trên lưới
(Dành cho học sinh THCS)
Hãy xếp 16 số 1 lên ma trận 10x10 sao cho nếu xoá đi bất kỳ 5 hàng và 5 cột thì vẫn còn lại ít nhất là một số 1. Nêu thuật toán và lập trình hiển thị ra màn hình kết quả ma trận thoả mãn tính chất trên.
Cao Hải Dương- Năng động
- Posts : 59
Points : -329909
Reputation : -329968
Join date : 18/06/2018
Age : 19
Location : Bình Định
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết
|
|