Bài 01 – String (Chuổi ký tự) Bài 02 – Đếm số từ của Chuổi Bài 03 – Chuổi đối xứng Bài 04 – Chuổi chữ thường abc thành chuổi chữ in hoa ABC Bài 05 – Chuổi chữ in hoa ABC thành chữ thường abc Bài 06 – Chuổi chữ thường abc thành chữ in hoa đảo ngược CBA Bài 07 – Số lần xuất hiện của Ký tự trong chuổi (TD: ký tự T xuất hiện 5 lần trong chuổi Trường PTTH chuyên Lý Tự Trọng)
Bài tập Pascal – Phần biến chuổi ký tự String Bài 01 – String (Chuổi) (Ch: String mảng ngầm chứa Ký tự, TD: Ch=’abc’ Ch[1]=’a’, Ch[2]=’b’, Ch[3]=’c’ ) Bạn nhập chuổi in chuổi ñảo ngược chuổi ñó TD: 'abcd' => 'dcba' Var Ch: String; i: Integer; Begin WriteLn('Hay nhap chuoi'); ReadLn(Ch); {In chuổi ñã nhập} WriteLn('Chuoi da nhap la:'); For i:=1 to Length(Ch) Write(Ch[i]); {Length('abc') = 3} WriteLn; {In chuổi ñảo ngược} WriteLn('Chuoi dao nguoc la:'); For i:= Length(Ch) downto Write(Ch[i]); WriteLn; ReadLn; End Bài 02 – Đếm số từ Chuổi (Chuổi Nguyen Van An có từ) Bạn nhập Chuổi ñếm số từ chuổi ñó Var Ch: String; i: Integer; Begin WriteLn('Hay nhap chuoi'); ReadLn(Ch); {In chuổi ñã nhập} WriteLn('Chuoi da nhap la ', Ch); {Đếm số từ chuổi = Số ký tự trống '_' + 1} For i:= to Length(Ch) If Ch[i] = ' ' then Inc(SoTu); {Inc: Ham tang gia tri bien len 1} WriteLn('So tu chuoi la ', SoTu + 1); ReadLn; End Biên soạn: Th.s Nguyễn Anh Việt Trang Bài tập Pascal – Phần biến chuổi ký tự String Nhưng nhập vào chuổi sai _Nguyen_Van_An, Nguyen_Van_An_ hay Nguyen_ _Van_An chương trình chạy sai Chương trình ñúng xử lý ñược trường hợp nhập sai là: Var Ch: String; i, BD, SoTu: Integer; Begin WriteLn('Hay nhap chuoi'); ReadLn(Ch); {In chuổi ñã nhập} WriteLn('Chuoi da nhap la ', Ch); {Tìm vị trí ký tự hợp lệ ñầu tiên ñầu chuổi, TD: '_ _abc' => BD = 3} BD := 1; While Ch[BD] = ' ' Inc(BD); {Đếm số từ trống chuổi từ vị trí bắt ñầu BD} For i:= BD to Length(Ch) begin If (Ch[i]= ' ') and (Ch[i+1]= ' ') then Continue; If (Ch[i] = ' ') and (i < Length(Ch)) then Inc(SoTu); End; WriteLn('So tu chuoi la ', SoTu + 1); ReadLn; End Bài 03 – Chuổi ñối xứng (Các chuổi abccba hay abcba ñều chuổi ñối xứng) Bạn nhập chuổi kiềm tra xem chuổi ñó có ñối xứng hay không TD: abcba => Chuoi doi xung, abcbd => Chuoi khong doi xung Var Ch: String; i: Integer; DoiXung: Boolean; Begin WriteLn('Hay nhap chuoi'); ReadLn(Ch); {Xác ñịnh chuổi ñối xứng hay không} DoiXung := True; For i:=1 to Length(Ch) div {Số lần so sánh=ñộ dài chuổi/2 bỏ số lẻ} If Ch[i] Ch[n+1-i] then begin DoiXung := False; Break; End; If DoiXung = True then WriteLn('Chuoi ', Ch, ' doi xung') Else WriteLn('Chuoi ', Ch, ' khong doi xung'); ReadLn; End Biên soạn: Th.s Nguyễn Anh Việt Trang Bài tập Pascal – Phần biến chuổi ký tự String Bài 04 – Chuổi chữ thường abc thành chuổi chữ in hoa ABC Víết chương trình nhập chuổi chữ thường, in thành chuổi chữ in hoa Chú ý: - Dùng hàm Ord() ñể lấy thứ tự ký tự (Ord(‘a’) = 97, Ord(‘b’) = 98, …) - Trừ cho 32 ñể biến thành chữ in hoa (97 – 32 = 65 => A, 98 – 32 = 66 => B, …) - Dùng hàm Chr() ñể trả ký tự (Chr(65)= ‘A’, Chr(66) = ‘B’, …) Var Ch: String; i: Integer; Begin WriteLn('Hay nhap chuoi'); ReadLn(Ch); {In chuổi chữ in hoa} For i:=1 to Length(Ch) Ch[i] = Chr(Ord(Ch[i]) – 32); WriteLn('Chuoi doi chu in hoa la ', Ch); ReadLn; End Bài 05 – Chuổi chữ in hoa ABC thành chữ thường abc Víết chương trình nhập chuổi chữ in hoa, in thành chuổi chữ thường Chú ý: - Dùng hàm Ord() ñể lấy thứ tự ký tự (Ord(‘A’) = 65, Ord(‘B’) = 66, …) - Cộng với 32 ñể biến thành chữ thường (65 + 32 = 97 => a, 66 + 32 = 98 => b, …) - Dùng hàm Chr() ñể trả ký tự (Chr(97)= ‘a’, Chr(98) = ‘b’, …) Bài 06 – Chuổi chữ thường abc thành chữ in hoa ñảo ngược CBA Víết chương trình nhập chuổi chữ thường, TD : Nhập chuổi 'abcd', in thành chuổi chữ hoa ñảo ngược 'DCBA' Bài 07 – Số lần xuất Ký tự chuổi (ký tự T xuất lần chuổi Trường PTTH chuyên Lý Tự Trọng) Viết chương trình ñếm số lần xuất ký tự chuổi, TD : Nhập ký tự 'T' chuổi 'Truong PTTH chuyen Ly Tu Trong' in 'Ky tu T xuat hien chuoi Truong PTTH chuyen Ly Tu Trong lan' Var Ch: String; KT: Char; I, Dem: Integer; Begin WriteLn('Hay nhap chuoi'); ReadLn(Ch); Biên soạn: Th.s Nguyễn Anh Việt Trang Bài tập Pascal – Phần biến chuổi ký tự String WriteLn('Nhap Ky tu can tim'); ReadLn(KT); {Đếm số lần xuất hiện} For i:=1 to Length(Ch) If Ch[i] = KT then Inc(Dem);; WriteLn('Ky tu ', KT, ' xuat hien chuoi ', Ch, ' ', Dem, ' lan'); ReadLn; End Biên soạn: Th.s Nguyễn Anh Việt Trang ... Trang Bài tập Pascal – Phần biến chuổi ký tự String Bài 04 – Chuổi chữ thường abc thành chuổi chữ in hoa ABC Víết chương trình nhập chuổi chữ thường, in thành chuổi chữ in hoa Chú ý: - Dùng hàm... 97, Ord(‘b’) = 98, …) - Trừ cho 32 ñể biến thành chữ in hoa (97 – 32 = 65 => A, 98 – 32 = 66 => B, …) - Dùng hàm Chr() ñể trả ký tự (Chr(65)= ‘A’, Chr(66) = ‘B’, …) Var Ch: String; i: Integer;... chuổi chữ thường Chú ý: - Dùng hàm Ord() ñể lấy thứ tự ký tự (Ord(‘A’) = 65, Ord(‘B’) = 66, …) - Cộng với 32 ñể biến thành chữ thường (65 + 32 = 97 => a, 66 + 32 = 98 => b, …) - Dùng hàm Chr() ñể