B3: Tìm ký tự trắng gần tên nhất B3.1: Duyệt các phần tử từ cuối đến đầu dãy, kiểm tra ký tự đang xét có phải là ký tự trắng không.. Ký tự trắng dư thừa hay còn gọi là dấu cách, ký tự tr
Trang 1Bài 1.Viết chương trình nhập vào họ tên In ra màn hình tên của người đó.
Ví dụ: ’Nguyễn Huệ’ => Kết quả: ’Huệ ’; ’Phạm Quang Hoàng Hữu’ => ’Hữu ’
Gợi ý:
B1: Khai báo biến
B2: Nhập xâu họ tên
B3: Tìm ký tự trắng gần tên nhất
B3.1: Duyệt các phần tử từ cuối đến đầu dãy, kiểm tra ký tự đang xét có phải là ký tự trắng không
B3.2:
Cách 1: Xoá trong xâu họ tên từ vị trí đầu tiên đến vị trí thứ i
Cách 2: Copy từ vị trí thứ I đến cuối xâu => Được xâu tên
B4: In ra kết quả
Chương trình minh họa
program inten;
var ht:string; i,n:byte;
begin
write('Nhap ho ten: ');
readln(ht);
n:=length(ht);
for i:=n downto 1 do
if ht[i]=' ' then
begin
delete(ht,1,i);
break;{dung de thoat khoi vong lap}
end;
write('Ten: ',ht);
readln;
end
Bài 2.Viết chương trình nhập vào một xâu bất kỳ In ra màn hình xâu đó sau khi đã xóa
hết ký tự trắng dư thừa Ký tự trắng dư thừa (hay còn gọi là dấu cách, ký tự trống) là
ký tự trắng xuất hiện ở trước từ đầu tiên của xâu, sau từ cuối cùng của xâu và giữa các từ cách nhau nhiều hơn 1 ký tự trắng.
Ví dụ: Giả sử * là ký tự trắng
Cho xâu: ’**xin***chao**’ => Xâu sau khi được xử lý ’xin*chao’
Gợi ý:
Kiểm tra phần tử trong xâu có phải là ký tự trắng hay không? Nếu đúng thì xóa ký tự trắng đó cho đến khi không còn ký tự trắng ở đầu xâu
Kiểm tra từ đầu đến cuối xâu, nếu có 2 ký tự trắng liên tiếp => Xóa đi 1 ký tự trắng, thự hiện công việc xóa cho đến khi giữa các từ trong xâu chỉ cách nhau 1 ký tự trắng
Sau khi xử lý các ký tự trắng dư thừa ở đầu xâu, giữa xâu Ta xử lý tiếp ký tự trắng dư thừa ở cuối xâu bằng cách kiểm tra ký tự cuối cùng có phải là ký tự trắng hay không Nếu đúng thì xóa cho đến khi ký tự cuối cùng của xâu không phải là ký tự trắng
B1: Khai báo
B2: Nhập xâu bất kỳ
B3: Xoá ký tự trắng dư thừa
B3.1: Xoá ký tự trắng dư thừa xuất hiện ở đầu tiên của xâu (nếu có)
Trang 2Chừng nào ký tự đầu tiên trong xâu là ký tự trắng => xoá ký tự trắng đó cho đến khi đầu xâu không phải là ký tự trắng
B3.2: Xoá ký tự trắng dư thừa cuối cùng của xâu (nếu có)
Chừng nào trong xâu xuất hiện 2 ký tự trắng trong xâu => xoá đi 1 ký tự trắng dư thừa
B3.3: Xoá ký tự trắng dư thừa giữa các từ (nếu có)
Chừng nào ký tự cuối cùng là ký tự trắng => Xoá đi ký tự đó
B4: In ra kết quả
program xoakytutrang;
var st:string;
i,n,k:byte;
begin
write('Nhap xau: ');
readln(st);
{xoa ky tu trang du thua xuat hien dau xau}
while st[1]=' ' do
delete(st,1,1);
{xoa ky trang du thua giua cac tu}
k:=pos(' ',st);
while k<>0 do
begin
delete(st,k,1);
k:=pos(' ',st);
end;
{xoa ky tu trang du thua xuat hien cuoi xau}
n:=length(st);
while st[n]=' ' do
begin
delete(st,n,1);
n:=length(st);
end;
write('Xau sau khi xu ly: ',st);
readln;
end
Bài 3.Hãy viết chương trình nhập vào xâu bất kỳ Hãy in ra tất cả các chữ số trong xâu đó
(nếu có).
Gợi ý:
Duyệt tất cả các phần tử có trong xâu st, nếu phần tử đó là ký tự số => lưu phần tử đó sang xâu a Kết quả ta được xâu a chỉ chứa các ký tự là số
B1: Khai báo
B2: Nhập xâu, khởi tạo xâu a (xâu a dùng để chứa các ký tự số)
B3: Duyệt tất cả các phần tử có trong xâu, bắt đầu từ vị trí đầu tiên Nếu ký tự đang xét là ký tự
số => Lưu ký tự đó vào xâu a Công việc lặp lại cho đến khi xét hết vị trí cuối cùng của xâu B4: In kết quả trong xâu a Nếu xâu a không có phần từ nào thì thông báo xâu vừa nhập không
có ký tự số
Trang 3Chương trình minh họa
program inso;
var a,st:string;
i,n:byte;
begin
write('Nhap xau: ');
readln(st);
a:='';
n:=length(st);
for i:=1 to n do
if (st[i] >='0') and (st[i]<='9') then
a:=a+st[i];
if a='' then write('Xau vua nhap khong co so')
else
write('Xau ket qua: ',a);
readln;
end