Bài 01 – Mã hoá và Giải mã chuổi Bài 02 – Tìm số lớn nhất trong nửa ma trận dưới của một ma trận Bài 03 – Tìm số nhỏ nhất trong nửa ma trận trên của một ma trận Bài 04 – Ma trận chuyển vị của một ma trận Bài 05 – Thứ tự: Sắp thứ tự dãy số Bài 06 – Tìm số lớn nhất và nhỏ nhất của dãy số sau khi sắp thứ tự (Dãy 9, 4, 7, 2, 5 => 2, 4, 5, 7, 9 => Số lớn nhất là 9, nhỏ nhất là 2) Bài 07 – Thứ tự: Sắp thứ tự dãy số giảm dần. TD: (Dãy 9, 4, 7, 2, 5 => 9, 7, 5, 4, 2)
Bài tập Pascal – Nâng cao - Phần Bài 01 – Mã hoá Giải mã chuổi Bài toán sau mô tả thuật toán mã hoá ñơn giản: Tập hợp chữ tiếng Anh bao gồm 26 chữ ñược ñánh sô thứ tự từ ñến 25 sau: A B C D E F G H I J 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 K L M N O P Q R S T U V W X Y Z Quy tắc mã hoá ký tự sau (lấy ví dụ ký tự X): - Tìm số thứ tự tương ứng ký tự ta ñược 23 - Tăng giá trị số lên ta ñược 28 - Tìm số dư phép chia số cho 26 ta ñược - Tra ngược bảng chữ ta thu ñược C a Sử dụng quy tắc ñể mã hoá dòng chữ sau: PEACE I LOVE SPRING b Hãy tìm quy tắc giải mã dòng chữ sau: N FR F XYZIJSY MFSTN SFYNTSFQ ZSNBJVXNYD Chương trình mã hoá sau: Const MaHoa: Array [0 25] of Char = ('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R',' S','T','U','V','W','X','Y','Z'); Var Ch: String; i, j: Integer; Begin WriteLn('Ban hay nhap chuoi can ma hoa'); ReadLn(Ch); For i:=1 to Length(Ch) For j:=0 to 25 If Ch[i] = MaHoa[j] then begin Ch[i] := MaHoa[(j + 5) mod 26]; Break; End; WriteLn('Chuoi da ma hoa la ',Ch); ReadLn; End Biên soạn: Th.s Nguyễn Anh Việt Trang Bài tập Pascal – Nâng cao - Phần Chương trình giải mã sau: Const MaHoa: Array [0 25] of Char = ('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R',' S','T','U','V','W','X','Y','Z'); Var Ch: String; i, j: Integer; Begin WriteLn('Ban hay nhap chuoi can giai ma'); ReadLn(Ch); For i:=1 to Length(Ch) For j:=0 to 25 If Ch[i] = MaHoa[j] then begin Ch[i] := MaHoa[(j - 5) mod 26]; Break; End; WriteLn('Chuoi da giai ma la ',Ch); ReadLn; End Bài 02 – Tìm số lớn nửa ma trận ma trận (Mảng => số lớn nửa ma trận Bạn nhập ma trận vuông, tìm số lớn nửa ma trận ma trận ñó Var A: Array [1 10] of Integer; i, j, n, t, Max : Integer; Begin WriteLn('Hay nhap so dong/ cot cua ma tran'); ReadLn(n); {Nhập ma trận vuông} For i:=1 to n For j:=1 to n begin WriteLn('Hay nhap phan tu thu ', i, j); ReadLn(A[i, j]); End; Biên soạn: Th.s Nguyễn Anh Việt Trang Bài tập Pascal – Nâng cao - Phần {In ma trận vuông} For i:=1 to n begin For j:=1 to n Write(A[i, j]:3); WriteLn; End; {Tìm Số lớn nửa ma trận dưới} Max := A[1,1]; For i:=1 to n For j:=1 to n If (i > j) and (Max < A[i,j]) then Max := A[i,j]; {In kết quả} Write('So lon nhat nua ma tran duoi la ', Max); ReadLn; End Bài 03 – Tìm số nhỏ nửa ma trận ma trận (Mảng => số nhỏ nửa ma trận Bạn nhập ma trận vuông, tìm số lớn nửa ma trận ma trận ñó Bài 04 – Ma trận chuyển vị ma trận => A [i,j] => B [j,i] ma trận chuyển vị) Viết chương trình nhập vào ma trận tìm ma trận chuyển vị ma trận ñó Bài 05 – Thứ tự: Sắp thứ tự dãy số (Dãy 9, 4, 7, 2, => 2, 4, 5, 7, 9) Bạn nhập dãy số nguyên Sắp thứ tự số dãy ñó (Ma trận Var A: Array [1 10] of Integer; i, j, n, t: Integer; Begin WriteLn('Hay nhap so phan tu cua day so'); ReadLn(n); Biên soạn: Th.s Nguyễn Anh Việt Trang Bài tập Pascal – Nâng cao - Phần {Nhập dãy số} For i:=1 to n begin WriteLn('Hay nhap phan tu thu ', i); ReadLn(A[i]); End; {In dãy số} For i:=1 to n begin Write(A[i]:3); End; WriteLn; {Sắp thứ tự} For i:=1 to n For j:= i+1 to n If A[i] > A[j] then begin t := A[i]; A[i] := A[j]; A[j] := t; End; {In dãy số} For i:=1 to n begin Write(A[i]:3); End; WriteLn; ReadLn; End Bài 06 – Tìm số lớn nhỏ dãy số sau thứ tự (Dãy 9, 4, 7, 2, => 2, 4, 5, 7, => Số lớn 9, nhỏ 2) Bạn nhập dãy số nguyên Sắp thứ tự số dãy ñó tìm số lớn nhỏ dãy số ñó Bài 07 – Thứ tự: Sắp thứ tự dãy số giảm dần (Dãy 9, 4, 7, 2, => 9, 7, 5, 4, 2) Bạn nhập dãy số nguyên Sắp thứ tự giảm dần số dãy ñó Biên soạn: Th.s Nguyễn Anh Việt Trang ... 4, 7, 2, => 2, 4, 5, 7, => Số lớn 9, nhỏ 2) Bạn nhập dãy số nguyên Sắp thứ tự số dãy ñó tìm số lớn nhỏ dãy số ñó Bài 07 – Thứ tự: Sắp thứ tự dãy số giảm dần (Dãy 9, 4, 7, 2, => 9, 7, 5, 4, 2) Bạn... i:=1 to Length(Ch) For j:=0 to 25 If Ch[i] = MaHoa[j] then begin Ch[i] := MaHoa[(j - 5) mod 26 ]; Break; End; WriteLn('Chuoi da giai ma la ',Ch); ReadLn; End Bài 02 – Tìm số lớn nửa ma trận ma... to n For j:=1 to n begin WriteLn('Hay nhap phan tu thu ', i, j); ReadLn(A[i, j]); End; Biên soạn: Th.s Nguyễn Anh Việt Trang Bài tập Pascal – Nâng cao - Phần {In ma trận vuông} For i:=1 to n begin