Tải bản đầy đủ (.pdf) (4 trang)

Bài tập Pascal 06 Biến String (Chuổi)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (101.08 KB, 4 trang )

Bài tập Pascal – Phần biến chuổi ký tự String
Bài 01 – String (Chuổi)
(Ch: String là mảng ngầm chứa các Ký tự, TD: Ch=’abc’ thì Ch[1]=’a’, Ch[2]=’b’, Ch[3]=’c’ )
Bạn hãy nhập một chuổi và in ra chuổi ñảo ngược của 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) do Write(Ch[i]); {Length('abc') = 3}
WriteLn;
{In chuổi ñảo ngược}
WriteLn('Chuoi dao nguoc la:');
For i:= Length(Ch) downto 1 do Write(Ch[i]);
WriteLn;
ReadLn;
End.

Bài 02 – Đếm số từ của Chuổi
(Chuổi Nguyen Van An có 3 từ)
Bạn hãy nhập một Chuổi và ñếm số từ trong 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ừ trong chuổi = Số ký tự trống '_' + 1}
For i:= 1 to Length(Ch) do
If Ch[i] = ' ' then Inc(SoTu); {Inc: Ham tang gia tri của bien len 1}
WriteLn('So tu trong chuoi la ', SoTu + 1);
ReadLn;
End.

Biên soạn: Th.s Nguyễn Anh Việt

Trang 1


Bài tập Pascal – Phần biến chuổi ký tự String
Nhưng nếu nhập vào các chuổi sai như _Nguyen_Van_An, Nguyen_Van_An_ hay Nguyen_ _Van_An
thì chương trình sẽ chạy sai. Chương trình ñúng xử lý ñược các trường hợp nhập sai như trên 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] = ' ' do Inc(BD);
{Đếm số từ trống trong chuổi từ vị trí bắt ñầu BD}
For i:= BD to Length(Ch) do begin
If (Ch[i]= ' ') and (Ch[i+1]= ' ') then Continue;

If (Ch[i] = ' ') and (i < Length(Ch)) then Inc(SoTu);
End;
WriteLn('So tu trong chuoi la ', SoTu + 1);
ReadLn;
End.

Bài 03 – Chuổi ñối xứng
(Các chuổi abccba hay abcba ñều là chuổi ñối xứng)
Bạn hãy nhập một chuổi và 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 2 do {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 2



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 một chuổi chữ thường, in thành chuổi chữ in hoa.
Chú ý:
- Dùng hàm Ord() ñể lấy thứ tự của 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ả về ký tự (Chr(65)= ‘A’, Chr(66) = ‘B’, …)
Var
Ch: String;
i: Integer;
Begin
WriteLn('Hay nhap chuoi');
ReadLn(Ch);
{In ra chuổi chữ in hoa}
For i:=1 to Length(Ch) do
Ch[i] = Chr(Ord(Ch[i]) – 32);
WriteLn('Chuoi doi thanh 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 một chuổi chữ in hoa, in thành chuổi chữ thường.
Chú ý:
- Dùng hàm Ord() ñể lấy thứ tự của 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ả về 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 một 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 hiện của Ký tự trong chuổi (ký tự T xuất hiện 5 lần trong chuổi Trường
PTTH chuyên Lý Tự Trọng)
Viết chương trình ñếm số lần xuất hiện của một ký tự trong chuổi, TD : Nhập ký tự 'T' và chuổi
'Truong PTTH chuyen Ly Tu Trong' sẽ in ra 'Ky tu T xuat hien trong chuoi Truong PTTH chuyen Ly
Tu Trong 5 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 3


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) do
If Ch[i] = KT then Inc(Dem);;
WriteLn('Ky tu ', KT, ' xuat hien trong chuoi ', Ch, ' ', Dem, ' lan');
ReadLn;
End.

Biên soạn: Th.s Nguyễn Anh Việt


Trang 4



×