xâu kí tự 2
Trang 1 trong tổng số 1 trang
xâu kí tự 2
BT:
Bµi 3:NhËp mét chuçi kÝ tù. §æi chuçi nµy thµnh
a. Ch÷ in hoa b. Ch÷ in thêng c. Ch÷ in hoa ë Çu tõ
VD : luOnG tHe ViNH
In ra : LUONG THE VINH
luong the vinh
Luong The Vinh
uses crt;
var s:string; i:byte;
begin
clrscr;
write('S = ');
readln(s);
for i:=1 to length(s)do s[i]:=upcase(s[i]);
writeln(s);{XuÊt S}
for i:=1 to length(s)do
if(s[i]>='A')and(s[i]<='Z')then s[i]:=chr(ord(s[i])+32);
writeln(s);
s[1]:=upcase(s[1]);
for i:=2 to length(s)do
if(s[i-1]=' ')then s[i]:=upcase(s[i]);
writeln(s);{XuÊt S}
readln;
end.
Bµi 4:NhËp mét chuçi kÝ tù. §Õm xem trong chuçi cã bao nhiªu tõ.Mçi tõ viÕt c¸ch nhau mét dÊu c¸ch
VD : PHAM HUU NGON -> Cã 3 tõ
Híng dÉn:Thªm kÝ tù tr¾ng vµo Çu S
S := ' '+S;
Cho i ch¹y tõ tr¸i sang ph¶i. NÕu s[i]lµ dÊu c¸ch vµ s[i+1] lµ ch÷ th× t¨ng sè tõ lªn 1}
BL:
var s:string;
i,so:byte;
begin
write('S = ');
readln(s);
so:=0;
s:=' '+s;
for i:=1 to length(s)-1 do
if(s[i]=' ')and(s[i+1]<>' ')then inc(so);
writeln('Co ',so,' tu');
readln;
end.
Bµi 5:NhËp chuçi kÝ tù. §Õm xem trong chuçi cã bnhiªu kÝ tù, mçi kÝ tù xuÊt hiÖn bnhiªu lÇn.
Híng dÉn: Dïng m¶ng solan:ARRAY[0..255]OF byte Ó lu sè lÇn xuÊt hiÖn cña c¸c kÝ tù cã m· ASCII.
VD : Ch÷ A xuÊt hiÖn 3 lÇn th× ta cã
solan[ord('A')]=3
hay solan[65]=3}
uses crt;
var s:string; solan:array[0..255]of byte; i:byte;
begin
clrscr;{Xo¸ mµn h×nh}
write('S = ');
readln(s);{§äc S}
for i:=1 to length(s)do inc(solan[ord(s[i])]);
for i:=0 to 255 do
if solan[i]>0 then writeln('Ki tu ',chr(i),' xuat hien ',solan[i],' lan');{XuÊt kÝ tù i vµ solan[i]}
readln;
end.
Bµi 6: ViÕt thñ tôc
- Xãa n kÝ tù tõ vÞ trÝ v cña chuçi S (gièng Delete(s,v,n)cña Pascal)
- ChÌn S1 vµo sau vÞ trÝ v cña xu S (gièng Insert(s1,s,v)cña Pascal)
Híng dÉn: Chóng ta coi chuçi lµ m¶ng c¸c kÝ tù. Sau khi thùc hiÖn c¸c thao t¸c xo¸, dån trªn chuçi. Ta g¸n l¹i chiÒu dµi cña chuçi b»ng c¸ch
s[0]:=chr(n);
N lµ chiÒu dµi thùc sù}
uses crt;
var s:string;{Xu S}
procedure xoa(var s:string;v,n:byte);
var i:byte;{Khai b¸o i kiÓu byte}
begin
for i:=v to v+n-1 do{Cho i ch¹y tõ v Õn é dµi v+n-1}
s[i]:=s[i+n];{G¸n s[i]b»ng s[i+n]}
s[0]:=chr(length(s)-n);{CËp nht l¹i é dµi thùc sù xu S}
end;
procedure chen(s1:string;var s:string;v:byte);
var i,l:byte;{Khai b¸o i,l kiÓu byte}
begin
l:=length(s1);{G¸n l b»ng é dµi xu S1}
for i:=length(s)+l downto v+l do{Cho i ch¹y tõ é dµi S+l Õn é dµi v+l}
s[i]:=s[i-l];{G¸n s[i]b»ng s[i-l]}
for i:=1 to l do{Cho i ch¹y tõ 1 Õn l}
s[v+i-1]:=s1[i];{G¸n s[v+i-1]b»ng s1[i]}
s[0]:=chr(length(s)+l);{CËp nht l¹i é dµi thùc sù xu S}
end;
begin
clrscr;{Xo¸ mµn h×nh}
s:='PHAM HUU NGON';
xoa(s,6,4);
writeln(s);
chen('HUU ',s,6);
writeln(s);
readln;
end.
Bµi 7:{ ViÕt hµm
- TrÝch n kÝ tù tõ vÞ trÝ v cña chuçi S (gièng hµm Copy(s,v,n)cña Pascal)
- Tr¶ l¹i vÞ trÝ Çu tiªn cã mÆt cña chuçi S1 trong xu S (gièng hµm POS(s1,s) cña Pascal)}
uses crt;
var s:string;{Xu S}
function chep(s:string;v,n:byte):string;
var s1:string;{Xu s1} i:byte;{i kiÓu byte}
begin
for i:=1 to n do{Cho i ch¹y tõ 1 Õn N}
s1[i]:=s[v+i-1];{G¸n s1[i]b»ng s[v+i-1]}
s1[0]:=chr(n);{CËp nht l¹i é dµi thùc sù xu S}
chep:=s1;{G¸n chep b»ng s1}
end;
function tim(s1:string;s:string):byte;
var i:byte;{Khai b¸o i kiÓu byte}
begin
for i:=1 to length(s)-length(s1)+1 do{Cho i ch¹y tõ 1 Õn é dµi s-é dµi s1+1}
if chep(s,i,length(s1))=s1 then{NÕu chep(s,i,length(s1))=s1 th×}
begin
tim:=i;{G¸n tim b»ng i}
exit;{Tho¸t khái ch¬ng tr×nh con}
end;
tim:=0;{G¸n tim b»ng 0}
end;
begin
clrscr;{Xo¸ mµn h×nh}
s:='PHAM HUU NGON';
writeln(chep(s,6,3));
writeln(tim('NGON',s));
readln;
end.
Bµi 8:{ §äc mét chuçi kÝ tù. Cho ch¹y qu¶ng c¸o trªn mµn h×nh
a. Tõ tr¸i qua ph¶i b. Tõ ph¶i qua tr¸i
c. Ch¹y cïng lóc 2 dßng kÝ tù tõ bªn tr¸i vµ bªn ph¶i vµo gi÷a mµn h×nh
Híng dÉn: ViÕt thñ tôc viet(x,y:integer;s:string) cã t¸c dông viÕt chuçi s ë vÞ trÝ x,y}
uses crt;
var x,y:integer;{x,y kiÓu integer} s:string;{Xu S}
procedure viet(x,y:integer;s:string);
var l:byte;{Khai b¸o l kiÓu byte}
begin
l:=length(s);{G¸n l b»ng é dµi S}
if x<0 then{NÕu x<0 th×}
begin
gotoxy(1,y);{Di chuyÓn tíi (1,y)}
write(copy(s,1-x,79));
end
else
begin
if x>0 then gotoxy(x,y)else gotoxy(1,y);{NÕu x>0 th× di chuyÓn tíi (x,y)ngîc l¹i tíi (1,y)}
write(copy(s,1,80-x));
end
end;
begin
clrscr;{Xo¸ mµn h×nh} write('S = ');readln(s);{§äc S}
for x:=80 downto -length(s)do{Cho i ch¹y tõ 80 xuèng -length(s)}
begin
viet(x,12,s); delay(40); gotoxy(1,12);clreol;{Xo¸ dßng 12}
end;
for x:=-length(s)to 80do{Cho i ch¹y tõ -length(s)Õn 80}
begin
viet(x,12,s); delay(40); gotoxy(1,12);clreol;{Xo¸ dßng 12}
end;
for x:=80 downto -length(s)do{Cho i ch¹y tõ 80 xuèng -length(s)}
begin
viet(x,12,s);viet(-length(s)+80-x,12,s); delay(40); gotoxy(1,12);clreol;{Xo¸ dßng 12}
end;
end.
(CONTINUE...).
Nguyễn Tấn Thành- Morderater
- Tổng số bài gửi : 11
Age : 31
Đến từ : toán tin_2007-2010
Registration date : 16/02/2009
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết
|
|