Theo khung chương trình của Bộ Giáo Dục và Đào Tạo, Ngôn ngữ Lập trình Pascal là một phần quan trọng trong học phần Tin học Đại cương thuộc các khối ngành Khoa học Tự nhiên, đặc biệt là ngành Công nghệ Thông tin. Nhằm đáp ứng yêu cầu học tập của học sinh, sinh viên bước đầu làm quen với công việc lập trình, chúng tôi đã biên soạn bộ Giáo Trình Bài tập Pascal nhằm giúp cho sinh viên có một tài liệu học tập, rèn luyện tốt khả năng lập trình, tạo nền tảng vững chắc cho các môn học tiếp theo trong chương trình đào tạo Cử nhân Công nghệ Thông tin . Giáo trình bai gồm rất nhiều bài tập từ đơn giản đến phức tạp. Các bài tập này được biên soạn dựa trên khung chương trình giảng dạy môn Tin học Đại cương. Bên cạch đó, chúng tôi cũng bổ sung một số bài tập dựa trên cơ sở một số thuật toán chuẩn với các cấu trúc dữ liệu được mở rộng nhằm nâng cao kỹ năng, phương pháp lập trình cho sinh viên. Nội dung của giáo trình được chia thành 10 chương. Trong mỗi chương đều có phần tóm tắt lý thuyết, phần bài tập mẫu và cuối cùng là phần bài tập tự giải để bạn đọc tự mình kiểm tra những kiến thức và kinh nghiệm đã học. Trong phần bài tập mẫu, đối với những bài tập khó hoặc có thuật toán phức tạp, chúng tôi thường nêu ra ý tưởng và giải thuật trước khi viết chương trình cài đặt. Xin chân thành cảm ơn các đồng nghiệp ở Khoa Công nghệ Thông tin Trường Đại học Khoa học Huế đã giúp đỡ, đóng góp ý kiến để hoàn chỉnh nội dung giáo trình này. Chúng tôi hy vọng sớm nhận được những ý kiến đóng góp, phê bình của bạn đọc về nội dung, chất lượng và hình thức trình bày để giáo trình này ngày một hoàn thiện hơn.
Trang 1CHUYÊN ĐỀ HỌC SINH GIỎI TIN 8
1 CÂU LỆNH IF … THEN … ELSE
Bài 1 :Nhập 3 số a , b , c bất kì Hãy kiểm tra xem ba số đó có thể là độ
dài ba cạnh của một tam giác hay không ? Thông báo lên màn hình ‘ Thỏa mãn ‘, ‘ Không thỏa mãn trong từng trường hợp tương ứng
So cac so >10 và <20 la : ( gia tri )
Tong cua chung la : ( gia tri )
Trang 2Bài 3 :Nhập bốn số a , b , c , d Hãy tìm giá trị lớn nhất của chúng và gán
giá trị lớn nhất đó cho biến Max
3) Var
Max , a , b , c , d : Real ;
BEGIN
Writeln (' Nhap gia tri cua 4 so : ') ;
Write (' a = ') ; Readln ( a ) ; Write (' b = ') ; Readln ( b ) ; Write (' c = ') ; Readln ( c ) ; Write (' d = ') ; Readln ( d ) ;
Write (' Doc Ngay Thang Nam : ') ; Readln ( Ngay , Thang , Nam ) ;
Nam := 1900 + ( Nam mod 1900 ) ;
If Thang < 3 Then
Trang 3Bài 5 :Viết chương trình :
Nhâp số báo danh
Nhập điểm văn , toán , ngoại ngữ
Bạn đã trúng tuyển ( hoặc Bạn đã không trúng tuyển ) với điều kiện Tổng số điểm
>= 15 hay ngược lại
Trang 4Tongdiem := Toan + Van + Ngoaingu ;
Clrscr ;
Writeln (' Phieu Bao Diem ') ;
Writeln (' So bao danh : ', SBD ) ; Writeln (' Diem van : ', Van ) ; Writeln (' Diem toan : ', Toan ) ; Writeln (' Diem ngoai ngu : ', Ngoaingu)
Nếu là “+” , in kết quả của tổng lên màn hình
Nếu là “-” , in kết quả của hiệu lên màn hình
Nếu là “/” , in kết quả của thương lên màn hình
Nếu là “*” , in kết quả của tích lên màn hình Nếu là “+” , in kết quả của tổng lên màn hình
Nếu là “+” , in kết quả của tổng lên màn hình
Write (' a = ') ; Readln( a ) ; Write (' b = ') ; Readln( b ) ;
Write (' Phep tinh thuc hien la (+ - * /) : ') ;
Trang 5Bài 7 :Giải và biện luận phương trình : x2 + ( m – 2 ) x + 1 = 0 ở đây m là tham số thực tuỳ ý
Writeln(' Phuong trinh co 2 nghiem : ') ;
Writeln (' X1 = ', ( -(m-2) + sqrt(delta) ) / 2 ) ; Writeln (' X2 = ', ( -(m-2)
Bài 8 :Viết chương trình nhập hai số tự nhiên N, M và thông báo ‘Dung‘ nếu N ,
M cùng tính chẵn lẽ , trong trường hợp ngược lại thì thông báo ‘Sai‘
Trang 62 VÒNG LẶP XÁC ĐỊNH VÀ KHÔNG XÁC ĐỊNH
Sử dụng lệnh For
Bài 1 :Lập trình tính tích các số tự nhiên từ 1 tới 10
Bài 2 :Viết chương trình đếm số lần xuất hiện của các kí tự thuộc bảng chữ cái
trong 50 lần gõ kí tự bằng bàn phím (không phân biệt a với A, b với B …, dùng hàm Upcase để chuyển đổi chữ thường với chữ hoa)
Bài 3 :Cho số tự nhiên n , hãy lập trình để tính các tổng sau :
ở đây n là số tự nhiên được nhập vào từ bàn phím
Bài 6 :Tính hàm lũy thừa an , ở đây a thực và n tự nhiên được nhập vào từ bàn phím
Bài 7 :Viết chương trình nhập một dãy số tối đa 100 số , sau đó in ra màn hình các
số khác nhau
Bài 8 :Viết chương trình nhập một dãy số tối đa 100 số , sau đó sắp xếp lại theo
thứ tự tăng dần
Sử dụng lệnh Repeat
Bài 9 :Cho một dãy số được nhập từ bàn phím Hãy viết chương trình nhập một số
a rồi liệt kê tất cả các phần tử trong dãy lớn hơn a
Bài 10 :Viết chương trình nhập một dãy số tối đa 50 số rồi in ra màn hình các số
trùng nhau của dãy
Bài 11 :Bạn có 1000 đ đem gửi ngân hàng với lãi suất 8%/tháng Sau mỗi tháng
tiền lãi được nhập vào để tính lãi suất tháng sau Bạn muốn để dành cho đến khi sốtiền tăng lên là x Vậy phải để trong bao lâu
Bài 12 :Viết chương trình tìm ƯSCLN của N số được nhập từ bàn phím
1)Var i : Byte ; (* chỉ số chạy *)
p : word ; (* tích số *)
BEGIN
p := 1; (* cho giá trị ban đầu của tích *)
For i := 1 to 10 Do (* cho i chạy từ 1 tới 10 *)
p := p * i ; (* lần lượt nhân i với p *)
Trang 7For ch :='A' to 'Z' Do a[ch] := 0 ; (* xả bộ đếm *)
Writeln (' Go phim 50 lan ') ;
For i := 1 To 50 Do (* thực hiện 100 lần *)
Begin
ch :=Readkey ; (* nhập kí tự vào Ch không cần gõ Enter *)
ch := Upcase(ch) ; (* Đỗi chữ thường thành chữ hoa *) a[ch] := a[ch] + 1 ;
End;
Writeln (' So lan xuat hien cac ki tu la :') ;
For ch :='A' to 'Z' do (* Kiểm tra bộ đếm từ 'A' tới 'Z' *)
If a[ch] > 0 Then (* Nếu Ch có xuất hiện *)
Writeln (ch , a[ch] : 4 , ' lan ') ; (* Viết ra màn hình kí tự và
Trang 9Write (' Cho so a : ') ; Readln(a) ;
Write (' Cho so mu n : ') ; Readln(n) ;
Trang 10Write(' Do dai cua day so N = ') ; Readln (N) ;
While ( j < i ) and ( A[j] <> A[i] ) Do inc(j) ;
If j = i Then Writeln( A[i] ) ;
Write(' Do dai cua day so N = ') ; Readln (N) ;
Writeln (' Nhap day so : ') ;
Trang 11If A[j] < A[i] then
Write (' Nhap so thuc a : ') ; Readln(a) ;
Writeln (' Cac phan tu lon hon a cua day : ') ;
Trang 14until tien >= x ;
writeln (' Ban phai gui tien trong ', thang div 12 , ' nam ',
thang mod 12 ,' thang ') ;
writeln (' Khi do so tien ban rut ra duoc la ', tien:12:2 ,' dong ') ; readln ;
Writeln (' Tim USCLN cua N so :') ;
Write (' Nhap so N : ') ; Readln(n) ;
Trang 153 CHƯƠNG TRÌNH CONBài 1 :Dùng thủ tục chuyển một số tự nhiên n cho trước sang hệ cơ số 2
Bài 2 :Dùng thủ tục giải phương trình bậc hai ax2 + bx + c = 0
Bài 3 :Hãy viết lại thủ tục Insert đối với một chuỗi kí tự cho trước tùy ý
Bài 4 :Viết chương trình thực hiện lần lượt các công việc sau :
_ Lập thủ tục nhập ba số thực dương a , b , c từ bàn phím
_ Lập thủ tục kiểm tra xem ba số trên có lập thành ba cạnh của tam giác hay không
?
_ Viết thủ tục tính diện tích của tam giác
_ Viết thủ tục tính các trung tuyến của tam giác
_ Viết hoàn thiện chương trình chính
Bài 5 :Giải phương trình x + y + z = 12 trong phạm vi số nguyên không âm với
điều kiện x < 4
Bài 6 :Cho trước các số N , a , b , c tự nhiên Giải phương trình sau trong phạm vi
số nguyên không âm x + y + z = N với điều kiện x < a , y < b , z < c
Bài 7 :Viết thủ tục Compare ( S1 , S2 : String ; Var Kq : String ) thực hiện công
việc sau : so sánh hai xâu S1 và S2 , tìm tất cả các kí tự có trong cả hai xâu trên Xâu Kq sẽ chứa tất cả các kí tự đó , mỗi kí tự chỉ được nhớ một lần
Bài 8 :Viết hàm tính D (St1 , St2) , với U, V là hai xâu kí tự bất kì , là tổng số các
kí tự không giống nhau trong hai xâu trên , mỗi loại kí tự chỉ được nhớ một lần Ví
dụ D (‘aabba’ , ‘bcdd’) = 2 vì chỉ có hai kí tự a và d là không giống nhau trong các xâu trên
Bài 9 :Viết chương trình hoàn chỉnh thực hiện các công việc của thực đơn sau :
1 Nhập dữ liệu ( nhập số tự nhiên n )
2 Phân tích ra thừa số nguyên tố ( phân tích n thành tích các số nguyên tố )
3 Thoát khỏi chương trình
4 CẤU TRÚC DỮ LIỆU KIỂU MẢNGBài 1 :Giải hệ phương trình tuyến tính hai ẩn dùng ma trận :
a11x + a12y = c1
a21x + a22y = c2
Bài 2 :Lập phương trình tạo ra một mảng chứa bảng cửu chương
Bài 3 :Viết chương trình nhập hai số nguyên dương m , n Sau đó tính trung bình
cộng bình phương các số nguyên từ m đến n
Bài 4 :Viết chương trình nhập từ bàn phím các phần tử của một mảng hai chiều
Kích thước của mảng được nhập trước từ bàn phím
Trang 16Bài 5 :Dãy số sau được gọi là dãy Fibonaci :
Hãy lập chương trình tính và gán giá trị của dãy vào biến mảng
Bài 7 :Nhập số tự nhiên N và viết chương trình tạo mảng bao gồm N số nguyên tố
đầu tiên
Bài 8 :Viết chương trình nhập một bảng số 3 x 3 với điều kiện các số được nhập sẽ
hiện trên màn hình đúng tại vị trí của mình trên bảng số
Bài 9 :a Viết chương trình nhập dữ liệu từ dãy đối xứng vào mảng một chiều
b Viết chương trình nhập dữ liệu là ma trận đối xứng vào mảng hai chiều
5 XÂU KÝ TỰBài 1 :Lập trình đếm số lần xuất hiện ở mỗi loại kí tự thuộc bảng chữ cái tiếng
Anh trong một xâu kí tự Str
Bài 2 :Cho số tự nhiên n và xâu có độ dài n Hãy biến đổi xâu đã cho bằng cách
thay đổi trong đó :
a Tất cả các dấu ! bằng dấu chấm
b Mỗi một nhóm các dấu chấm liền nhau bằng một dấu chấm
c Một nhóm các dấu chấm đứng liền nhau bằng dấu ba chấm
Bài 3 :Cho số tự nhiên n và một dãy các kí tự S1 , S2 , … , Sn Hãy tìm số tự nhiên
I đầu tiên sao cho các kí tự Si , Si+1 đều là chữ cái a Nếu trong dãy không có những cặp như vậy thì thông báo
Bài 4 :Cho số tự nhiên n và dãy các kí tự S1 , S2 , … , Sn Biết rằng trong dãy có ít nhất một dấu phẩy Hãy tìm số tự nhiên i sao cho :
a Si là dấu phẩy đầu tiên b Si là dấu phầy cuối cùng
Trang 17Bài 5 :Viết chương trình nhập một xâu kí tự , sau đó chỉ ra xem xâu đó có phải là
xâu đối xứng không ( xâu đối xứng là xâu có các kí tự giống nhau và đối xứng nhau qua điểm giữa xâu , ví dụ ‘ABBA’ hoặc ‘ABCBA’ )
Bài 6 :Cho một xâu kí tự S Hãy viết chương trình tính xem trong S có bao nhiêu
loại kí tự khác nhau ( phân biệt chữ in hoa với chữ in thường ) Ví dụ với S là
“Pascal” ta có đáp số là 5
Bài 7 :Viết chương trình nhập một xâu kí tự và biến đổi chúng thành toàn chữ in
hoa
Bài 8 :Họ tên một học sinh được nhập từ bàn phím Bạn hãy viết chương trình
điều chỉnh lại các kí tự đầu của các từ đơn trong tên của học sinh ấy trở thành chữ
in hoa
Bài 9 :Viết chương trình nhập xãu kí tự từ bàn phím , sau đó gọt xâu lại bằng cách
cách xoá đi các kí tự trống ở hai đầu của xâu Ví dụ nếu nhập xâu “ Ha noi “ , thì kết quả sẽ là “Ha noi”
6 DỮ LIỆU KIỂU TỆPBài 1 :Bạn hãy viết hàm Card(A) đếm số phần tử của tập hợp A cho trước có kiểu
Set Of 0 99
Bài 2 :Bạn hãy lập chương trình tạo một tập hợp các số nguyên chẵn kiểu Byte và
loại khỏi nó các số chia hết cho 3 Kết quả thể hiện trên màn hình
Bài 3 :Xét chương trình sau :
Hãy tìm và sửa lỗi trong chương trình đó
Bài 4 :Bạn hãy lập chương trình hiển thị một menu dạng sau trên màn hình
Trang 18Lua chon cua ban : _
Sau đó đợi gõ phím Chương trình phải đợi cho tới khi phím gõ vào là một trong các chữ số 1 5 hoặc các chữ cái đầu của các tuỳ chọn thì thông báo phím gõ vào hợp lệ và kết thúc chương trình Trong chương trình phải dùng một tập hợp để kiểm tra việc nhập giá trị cho biến từ bàn phím
Bài 5 :Hãy lập chương trình nhập vào một xâu nhị phân Các kí tự nhập vào
không hợp lệ bị bỏ qua
Bài 6 :Hãy lập chương trình nhập vào một xâu kí tự từ bàn phím Yêu cầu các kí
tự nhập vào phải là các chữ cái thuộc bảng chữ cái tiếng Anh , bỏ qua các phím khác
Bài 7 :Viết chương trình có chức năng thêm phần tử vào tập hợp trực tiếp từ bàn
phím và loại bớt phần tử khỏi tập hợp cũng trực tiếp từ bàn phím
7 CẤU TRÚC DỮ LIỆU KIỂU RECORDBài 1 : Thông tin về mỗi học sinh gồm :
Họ đệm : một xâu 25 kí tự
Tên : một xâu 10 kí tự
Tuổi : một số nguyên hai chữ số
Lớp : một xâu hai chữ số và một chữ cái viết hoa
Hãy lập chương trình nhập từ bàn phím danh sách một lớp 15 học sinh vào một mảng bản ghi Sau đó hiển thị danh sách lên màn hình , mỗi người một dòng
Bài 2 :Thông tin về mỗi học sinh là một bản ghi gồm các trường :
Họđệm : một xâu 25 kí tự
Tên : một xâu 10 kí tự
Tuổi : một số nguyên hai chữ số
Lớp : một xâu hai chữ số và một chữ cái viết hoa
Một file bản ghi chứa một danh sách một lớp gồm 20 học sinh Hãy lập chương trình hiển thị danh sách lên màn hình , mỗi người một dòng
Bài 3 :Một file bản ghi chứa một danh sách học sinh , thông tin về mỗi học sinh
giống như bài trên Hãy lập chương trình tạo một file bản ghi khác chứa danh sách
đó , mỗi bản ghi gồm các trường :
Họtên : một xâu 35 kí tự
Tuổi : một số nguyên hai chữ số
Khối : một số nguyên hai chữ số
Lớp : một chữ cái viết hoa
Bài 4 :Một file bản ghi chứa một danh sách học sinh PTTH , thông tin về mỗi học
sinh ngoài các trường Họđệm , Tên , Tuổi , Lớp giống như các bài trên còn có
Trang 19thêm trường Điểm chứa điểm trung bình của học sinh trong năm học Hãy lập chương trình :
a Hiển thị lên màn hình danh sách những học sinh giỏi nhất của trường là những
bạn có điểm trung bình từ 8.0 trở lên và cao nhất trong khối
b Lập danh sách học sinh trong năm học mới , biết một học sinh có điểm trung
bình từ 5.0 trở lên thì được lên lớp Chú ý : lớp 10A lên lớp 11A , lớp 11A lên 12A Kết quả chứa trong file
Bài 5 :Cho file bản ghi f chứa dữ liệu về kho sách , dữ liệu về mỗi cuốn sách được
chứa trong một bản ghi gồm 3 trường mang thông tin về :
Họ tên tác giả : một xâu 26 kí tự
Tên sách : một xâu 40 kí tự
Năm xuất bản : một số nguyên 4 chữ số
Hăy lập chương trình nhập dữ liệu vào kho sách , sau đó tìm ra :
Những cuốn sách của một tác giả cho trước xuất bản vào một năm cho trước
Những cuốn sách có tên cho trước
Kết quả hiện trên màn hình
Bài 6 :
File bản ghi F chứa danh sách các ngày lễ trong một năm , mỗi bản ghi gồm ngày tháng , tên ngày lễ và số ngày được nghỉ Hãy lập chương trình nhập danh sách các ngày lễ và tính :
Tổng số các ngày lễ và tổng số các ngày nghỉ lễ trong năm
Tổng số các ngày lễ và tổng số các ngày nghỉ lễ trong quí 1 , quí 2 , …
Kết quả thể hiện trên màn hình
8 CẤU TRÚC DỮ LIỆU KIỂU FILEBài 1 :Hãy lập chương trình tạo một tệp số nguyên chứa các số nguyên tố nhỏ hơn
10000 theo thứ tự tăng dần
Bài 2 :Cho f là tệp văn bản chứa các xâu 10 kí tự Hãy lập chương trình nhập và
hiển thị nội dung file đó lên màn hình , mỗi xâu một dòng , đầy trang màn hình thì dừng lại đợi gõ Enter mới hiển thị trang tiếp theo cho tới hết
Bài 3 :Bạn hãy viết chương trình cho phép đọc dữ liệu từ bàn phím và ghi thêm
vào cuối một tệp các bản ghi
Bài 4 :Cho một văn bản chứa trong một text file f Trong văn bản , tính từ trái
sang phải , từ trên xuống dưới , kí tự # là kí hiệu xoá đi một từ đứng ngay trước nó nếu có Ví dụ ‘#Ta#oi di ngu#h###hoc’ có nghĩa là ‘Toi di hoc’ Bạn hãy viết chương trình sửa lại file f theo quy ước trên
Bài 5 :Cho 2 file f và g cùng kiểu ( nhưng không rõ kiểu nào ) Bạn hãy lập thủ tục
gán nội dung của file g cho file f
Trang 20Bài 6 :Cho một file text ghi lại một chương trình Pascal của một học sinh Hãy
viết chương trình kiểm tra lỗi của chương trình Pascal trên theo các cách sau đây :Cách 1 : Kiểm tra xem số lượng các dấu ‘ ( dấu mở và dấu đóng ) có bằng nhau không ?
Cách 2 : Kiểm tra xem số lượng các từ Begin và End có bằng nhau không ?
Bài 7 :Cho một file text Hãy viết chương trình đếm xem file text trên chứa bao
nhiêu từ ( Chú ý : theo quy định , các từ cách nhau bởi một hay nhiều dấu cách )
Bài 8 :Cho một file text Viết chương trình loại bỏ các khoảng trống thừa bên
trong file text này
9 CẤU TRÚC DỮ LIỆU KIỂU CON TRỎBài 1 :Bạn hãy lập chương trình cho phép ta nhập từ bàn phím một danh sách được
ghép nối Sau đó gỡ bỏ một record khỏi danh sách
Bài 2 :Bạn hãy lập chương trình cho phép nhập một danh sách được ghép nối Sau
đó chèn thêm một record vào danh sách
Bài 3 :Bạn hãy lập chương trình cho phép nhập một danh sách được ghép nối Sau
đó đổi chỗ hai record trong danh sách
H
ướng dẫn :
CHƯƠNG TRÌNH CON 1) Procedure Change ( n : integer ; Var St : String ) ;
(* thủ tục chuyển số tự nhiên n cho trước sang
hệ cơ số 2 và được lưu ở trong xâu St *)
Trang 22Procedure Nhap(Var a, b, c: real);
Procedure input (Var a: real; tenbien: Char);
' lap thanh ba canh cua tam giac ')
Else Writeln('Khong lap thanh ba canh cua tam giac') ; End;
Trang 23(*===============================*)
Procedure Trung_tuyen (a, b, c: Real);
Var ma, mb, mc: real;
Procedure Nhap(Var a, b, c: real);
Procedure input (Var a: real; tenbien: Char);
Begin
Repeat
Trang 24Write('Nhap ' + tenbien+' = '); Readln(a);
' lap thanh ba canh cua tam giac ')
Else Writeln('Khong lap thanh ba canh cua tam giac') ; End;
(*===============================*)
Procedure Trung_tuyen (a, b, c: Real);
Var ma, mb, mc: real;
Trang 26Writeln('Phuong trinh co nghiem la:');
Function kt(ch: char; st: string): boolean;
(* Kiểm tra xem kí tự Ch có trong xâu St không Nếu có thì hàm trả về giá trị True Nếu không thì hàm trả về giá trị False *) Begin
kt:=pos(ch,st)<>0;
End;
Trang 27(*================================*) Begin (* Thân của thủ tục Compare*)
kq:=''; (* Xâu rỗng *)
For i:=1 to length(s1) do
If (not kt(s1[i],kq)) and (kt(s1[i],s2)) then
Compare(xau1, xau2, xau);
If xau<>'' then Writeln('Xau chung la: ',xau)
Else Writeln('Khong co ki tu nao trong ca hai xau '); Write('Nhan ENTER de ket thuc ');
Var S: array[1 M] of string;
max, min, i, j, n: byte;
(*===============================*)
Function D(U,V: string): byte;
(*Trả về tổng số loại kí tự không giống nhau
Trang 28If (pos(U[id],V)=0) and (pos(U[id],luu)=0) then luu:=concat(luu,U[id]);
For id:=1 to length(V) do
If(pos(V[id],U) = 0) and (pos(V[id],luu)=0) then luu:= concat(luu,V[id]);
d:=length(luu);
End;
(*=================================*) Procedure nhap;
If max<d(S[i],S[j]) then max:=d(S[i],S[j]);
If min>d(S[i],S[j]) then min:=d(S[i],S[j]);
Trang 29End;
Write('Max(d(Si,Sj)=',max,' Min(d(Si,Sj)=',min); Readln;
Trang 31Writeln('He co nghiem duy nhat :');
Writeln('x=', x:0:2, ' ; y=', y:0:2);
Trang 32Writeln(' Bang cuu chuong : ') ; Writeln ;
Writeln ('Trung binh cong bimh phuong cac so '
+ 'nguyen tu m den n la: ', tb:12:2);
Write (' So cot n = ') ; Readln(n) ;
Writeln (' Nhap cac phan tu cua mang : ') ;
For i := 1 To m Do
For j := 1 To n Do
Begin
Trang 33Write ('a[', i:2, ', ' , j:2 ,']=') ; Readln(a[i, j]) ;
Trang 34ba:=0;
repeat
d:=FALSE;
if j>1 then for k:=1 to j-1 do
if a[i,k]=ba then d:=true;
if i>1 then for k:=1 to i-1 do
if a[k,j]=ba then d:=true;
if a[i,k]=ba then d:=true;
if i>1 then for k:=1 to i-1 do
if a[k,j]=ba then d:=true;
ba:=ba+1;
until not d;
Trang 35Writeln('Nhap cac phan tu cua day:');
For i:=1 to (n+1) div 2 do
Trang 36END
XÂU KÝ TỰ 1) Var A: array [ 'A' 'Z'] of integer;
S: string;
ch: char;
i: integer;
BEGIN
Write(' Cho mot xau ki tu : '); Readln(s);
For ch:= 'A' to 'Z' do A[ch]:=0;
For i:=1 to length(s) do
Write(' Cho mot xau ki tu S = '); Readln(S);
For i:=1 to length(S) do
If S[i] = '!' then S[i]:= '.';
Write( ' Chuoi sau khi da bien doi la : ', S);
Readln;
END
b )
Uses crt;