Giáo án tin học 11 Phạm Văn Lê Long
Bà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ó).
Giáo án tin học 11 Phạm Văn Lê Long
Chừ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ố.
Giáo án tin học 11 Phạm Văn Lê Long
Chươ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.