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 xuất ma trận vuông.
+ Tính tổng các phần tử trên đường chéo chính.
+ Kiểm tra tính đối xứng của ma trận vuông qua dường chéo chính.
Hướng dẫn:
+ Ma trận vuông là mảng 2 chiều nhưng có kích thước dòng bằng kích thước cột. Tức là, M=N, khi dó kích thước của ma trận là NxN.
+ Đường chéo chính là các phần tử A[i, j] có i = j [ hay A[i, i] ].
Source code các hàm xây dựng
Quá trinh định nghĩa dữ liệu mảng có thể sử dụng lại bài 4.1.
{ 1. Thu tục nhap mang 2 chieu } Procedure NhapMtran[ Var A : Mang2C; Var N : Integer]; Var i, j: Integer; Begin Repeat Write[‘Nhap kich thuoc N: ‘]; Readln[ N ]; Until [ N>0 ] and [ N0 ] and [ N0 ] and [ M Max] Then Max := A[i,j];TimPtuMax : = Max;
End;
{ 5. Than chuong trinh chinh }
BEGIN
Writeln[ ‘Nhap mang 2 chieu:’]; NhapMang2C [A, M, N ];
Writeln[ ‘Mang da nhap la:’]; XuatMang2C [A, M, N ];
Writeln[ ‘So lan xuat hien 0 trong mang :’, DemPtu0 [ A, M, N] ];
Writeln[ ‘Gia tri lon nhat trong mang :’, TimPtuMax[ A, M, N] ];
Readln;
END.
Bài toán số 4.2:Viết chương trình thao tác trên mảng 2 chiều với các công việc sau:
+ Nhập xuất mảng 2 chiều.
+ Tính tổng các phần tử theo từng dòng của mảng.
+ Tìm dòng có tổng giá trị lớn nhất.
Hướng dẫn:
+ Đối với mỗi vòng lặp theo dòng, tiến hành tính tổng cho các phần tử trên dòng. Áp dụng như tính tổng cho mảng một chiều.
+ Vừa tính tổng vừa tiến hành so sánh và lưu lại giá trị lớn nhất.
Source code các hàm xây dựng
{ 1. Thu tuc tinh & in tong cac phan tu tren dong cua mang 2 chieu }
Procedure TongCacDong[ A : Mang2C; M,N : Integer];
Var i, j: Integer;
S : Real;
Begin
For i:=1 to M do
Begin
S := 0;
For j :=1 to N do
S := S + A[i, j];
Writeln[ ‘Tong dong ‘, i ,’ la ‘, S];
End;
End;
{ 2. Thu tuc tim tong lon nhat cua cac phan tu tren dong cua mang 2 chieu }
Function MaxTgDong[A:Mang2C; M,N:Integer] : Real;
Var i, j, k: Integer;
Value , S : Real;
Begin
For i:=1 to M do
Begin
S := 0;
For j :=1 to N do
S := S + A[i, j];
If [S > Value] Then
Begin
Value := S;
K := i;
End;
End;
MaxTgDong := Value;
End;
{ 3. Than chuong trinh chinh }
BEGIN
{ Nhung ham nhap xuat da de cap o Bai so 4.1, xem chi tiet o tren }
Writeln[ ‘Nhap mang 2 chieu:’]; NhapMang2C [A, M, N ];
Writeln[ ‘Mang da nhap la:’]; XuatMang2C [A, M, N ];
Writeln[ ‘Tong cac phan tu theo dong la:’ ];
TongCacDong[ A , M, N ];
Writeln[ ‘Gia tri lon nhat cua cac tong:’, MaxTgDong [ A, M, N] ];
Readln;
END.
Bài toán số 4.3: 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 xuất ma trận vuông.
+ Tính tổng các phần tử trên đường chéo chính.
+ Kiểm tra tính đối xứng của ma trận vuông qua dường chéo chính.
Hướng dẫn:
+ Ma trận vuông là mảng 2 chiều nhưng có kích thước dòng bằng kích thước cột. Tức là, M=N, khi dó kích thước của ma trận là NxN.
+ Đường chéo chính là các phần tử A[i, j] có i = j [ hay A[i, i] ].
Source code các hàm xây dựng
Quá trinh định nghĩa dữ liệu mảng có thể sử dụng lại bài 4.1.
{ 1. Thu tục nhap mang 2 chieu }
Procedure NhapMtran[ Var A : Mang2C; Var N : Integer];
Var i, j: Integer;
Begin
Repeat
Write[‘Nhap kich thuoc N: ‘];
Readln[ N ];
Until [ N>0 ] and [ N