Bài tập Pascal – Nâng cao - Phần 1
Bài 01 – Đổi chỗ số lớn nhất ñường chéo chính và số nhỏ nhất ñường chéo phụ
(Mảng 1 4 7
1 4 7
5 2 9 => 5 3 9
8 1 3
8 1 2
có Số lớn nhất ñường chéo chính là 3, số nhỏ nhất ñường chéo phụ là 2)
Bạn hãy nhập một ma trận vuông, tìm và ñổi chỗ số lớn nhất trên ñường chéo chính và số nhỏ nhất trên
ñường chéo phụ trong ma trận ñó.
Var
A: Array [1..10] of Integer;
i, j, n, t: Integer;
Max, Min, SLN_VT_dong, SLN_VT_cot, SNN_VT_dong, SNN_VT_cot: Integer;
Begin
WriteLn('Hay nhap so dong/ cot cua mang');
ReadLn(n);
{Nhập ma trận vuông}
For i:=1 to n do
For j:=1 to n do begin
WriteLn('Hay nhap phan tu thu ', i, j);
ReadLn(A[i, j]);
End;
{In ma trận vuông}
For i:=1 to n do begin
For j:=1 to n do
Write(A[i, j]:3);
WriteLn;
End;
{Tìm Số lớn nhất trên ñường chéo chính và vị trí}
Max := A[1,1];
For i:=1 to n do
For j:=1 to n do
If (i = j) and (Max < A[i,j]) then begin
Max := A[i,j];
SLN_VT_dong := i;
SLN_VT_cot := j;
End;
{Tìm Số nhỏ nhất trên ñường chéo phụ và vị trí}
Max := A[1,n];
For i:=1 to n do
For j:=1 to n do
If (i + j = n + 1) and (Min > A[i,j]) then begin
Min := A[i,j];
Biên soạn: Th.s Nguyễn Anh Việt
Trang 1
Bài tập Pascal – Nâng cao - Phần 1
SNN_VT_dong := i;
SNN_VT_cot := j;
End;
{Đổi vị trí}
T := A[SLN_VT_Dong, SLN_VT_Cot];
A[SLN_VT_Dong, SLN_VT_Cot] := A[SNN_VT_Dong, SNN_VT_Cot];
A[SNN_VT_Dong, SNN_VT_Cot] := t;
{In ma trận vuông kết quả}
For i:=1 to n do begin
For j:=1 to n do
Write(A[i, j]:3);
WriteLn;
End;
ReadLn;
End.
Bài 02 – Tìm số lớn nhất trên vòng ngoài cùng của ma trận
(Mảng 1 4 7
5 2 9 => 9 là số lớn nhất trên vòng ngoài cùng
8 1 3
Bạn hãy nhập một ma trận vuông, tìm số lớn nhất trên vòng ngoài cùng trong ma trận ñó.
Var
A: Array [1..10] of Integer;
i, j, n, t, Max : Integer;
Begin
WriteLn('Hay nhap so dong/ cot cua mang');
ReadLn(n);
{Nhập ma trận vuông}
For i:=1 to n do
For j:=1 to n do begin
WriteLn('Hay nhap phan tu thu ', i, j);
ReadLn(A[i, j]);
End;
{In ma trận vuông}
For i:=1 to n do begin
For j:=1 to n do
Write(A[i, j]:3);
WriteLn;
End;
{Tìm Số lớn nhất trên vòng ngoài cùng}
Max := A[1,1];
For i:=1 to n do
Biên soạn: Th.s Nguyễn Anh Việt
Trang 2
Bài tập Pascal – Nâng cao - Phần 1
For j:=1 to n do
If ((i=1) or (i=1) or (j=1) or (j=n)) and (Max < A[i,j]) then
Max := A[i,j];
{In kết quả}
Write('So lon nhat tren vòng ngoai cung cua ma tran la ', Max);
ReadLn;
End.
Bài 03 – Tìm số lớn nhất trên khối trong của ma trận
(Mảng 1 4 7 3
5 2 7 6 => 7 là số lớn nhất trên khối trong
8 1 3 9
5 4 9 4
Bạn hãy nhập một ma trận vuông, tìm số lớn nhất trên khối trong của ma trận ñó.
Var
A: Array [1..10] of Integer;
i, j, n, t, Max : Integer;
Begin
WriteLn('Hay nhap so dong/ cot cua mang');
ReadLn(n);
{Nhập ma trận vuông}
For i:=1 to n do
For j:=1 to n do begin
WriteLn('Hay nhap phan tu thu ', i, j);
ReadLn(A[i, j]);
End;
{In ma trận vuông}
For i:=1 to n do begin
For j:=1 to n do
Write(A[i, j]:3);
WriteLn;
End;
{Tìm Số lớn nhất trên khối trong}
Max := A[1,1];
For i:=1 to n do
For j:=1 to n do
If not (((i=1) or (i=1) or (j=1) or (j=n)) and (Max < A[i,j])) then
Max := A[i,j];
Biên soạn: Th.s Nguyễn Anh Việt
Trang 3
Bài tập Pascal – Nâng cao - Phần 1
{In kết quả}
Write('So lon nhat tren khoi trong cua ma tran la ', Max);
ReadLn;
End.
Bài 04 – Tổng k chữ số tận cùng của một số
(Số 365 có tổng 2 chữ số tận cùng là 11)
Lập chương trình nhập vào 1 số tự nhiên n (n<>0) và nhập vào m, sau ñó tính tổng m các số tận cùng
của n.
Ví dụ: n = 365, m =2 tổng 2 chữ số tận cùng = 5+6 = 11.
Var
Tong, n, i: Integer;
Begin
WriteLn('Hay nhap so');
ReadLn(n);
WriteLn('Muon tính tong bao nhieu chu so tan cung');
ReadLn(k);
{Tính tổng k chữ số tận cùng}
i := 1;
While i <= k do Begin
Tong := Tong + n mod 10;
n := n div 10;
Inc(i);
End;
{In kết quả}
WriteLn('Tong ', k, ' chu so tan cung trong so ', n, ' la ', Tong);
ReadLn;
End.
Biên soạn: Th.s Nguyễn Anh Việt
Trang 4