Chủ đề: Thay xâu.
-
03-23-2010, 05:58 AM #1
Junior Member
- Ngày tham gia
- Dec 2015
- Bài viết
- 8
Thay xâu.
Đề bài: nhập xâu S bất kì, thay chữ 'anh' bằng chữ 'em'.
bài này cũng dễ, em muốn tham khảo ý kiền các bác về cách làm sau:
Mã:var S1,S2:string; k,i:integer; begin write('xau S1:'); readln(S1); k:=length(S1); S2:='em'; for i:=1 to k do while (S1[i] ='a' and s1[i+1]='n' and S1[i+2] ='h') do begin delete(S1,i,3); insert(S2,S1,i); end; write(xau S1 moi:',S1); readln; end.
Cái đoạn :
Mã:while (S1[i] ='a' and s1[i+1]='n' and S1[i+2] ='h') do
Mã:if (S1[i] ='a' and s1[i+1]='n' and S1[i+2] ='h')then
-
03-23-2010, 06:21 AM #2
Silver member
- Ngày tham gia
- Apr 2016
- Bài viết
- 1,886
mình thì nghĩ chẳng khác gì nhau cả bạn ạ .
Vì trước while hay if đều có 1 vòng for nên dù là cái nào đi chăng nữa thì cũng chỉ xảy ra 1 lần .
-
03-23-2010, 09:57 PM #3
Member
- Ngày tham gia
- Dec 2015
- Bài viết
- 41
Mình đã thử chương trình của bạn rồi bạn có thể dùng while - do hay if - then đều đúng. Ngoài ra bạn còn có thể dùng vòng lặp while - do và hàm pos cũng được.
Nhưng ví dụ với cum từ khác thì chương trình của bạn sẽ không được:
Ví dụ nhập vào xâu thay cum tu "anh" bằng từ "Khanh"
Hay thay từ "ong" bằng cụm từ "con ong ngoan" thì bạn viết như thế nào
-
03-24-2010, 12:24 AM #4
Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 0
Gửi bởi lehang_gb1
-
03-25-2010, 03:33 AM #5
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 7
Yêu cầu của bạn lehang sẽ được giải quyết bằng việc dùng repeat kết hợp việc nhảy cóc qua từ 'khanh' hoặc 'con ong ngoan'. Hoặc không bạn cũng có thể dùng vòng lặp chạy ngược, không dùng pos.
-
03-28-2010, 03:57 AM #6
Silver member
- Ngày tham gia
- Jan 2016
- Bài viết
- 47
Đây là chương trình tổng quát đúng với mọi trường hợp, các bạn tham khảo
Mã:uses crt; Var st,st1,st2,temp:string; i:byte; Begin clrscr; write('Nhap vao xau ban dau:'); Readln(st); write('Nhap vao xau can tim:'); Readln(st1); if pos(st1,st)=0 then begin writeln('Xau',st1,'khong nam trong xau',st); Readln; halt; end; write('Thay the boi xau:'); readln(st2); temp:=''; i:=1; while i<=length(St) do begin if st1=copy(st,i,length(st1)) then begin temp:=temp+st2; i:=i+length(st1); end else begin temp:=temp+st[i]; i:=i+1; end; end; st:=temp; write('Xau sau khi duoc thay the:',st); Readln End.
-
03-28-2010, 04:08 AM #7
Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 3
Gửi bởi lehang_gb1
-
03-28-2010, 04:14 PM #8
Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 0
Bạn cứ đọc đi rồi sẽ hiểu chương trình thay thế xâu đấy
-
03-28-2010, 10:06 PM #9
Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 0
Bít là thay thế xâu rồi nhưng mà không liên quan đến nội dung mà tớ yêu cầu,kekeke
-
03-28-2010, 11:34 PM #10
Silver member
- Ngày tham gia
- Mar 2016
- Bài viết
- 0
Ý của bạn lehang là bạn nhập 1 xâu, nhập xâu cần thay thế và nhập xâu thay thế, sau đó thay thế xâu tương ứng. Ý tưởng của bạn lehang đúng là ý tưởng tổng quát nhưng code của bạn lehang có 1 chỗ thừa là với mọi vị trí i, bạn đều lấy ra 1 lượng kí tự đúng bằng lượng kí tự của xâu cần thay thế và bạn so sánh, điều này là không cần thiết, nếu theo cách của bạn thì chỉ cần so sánh kí tự đầu tiên của xâu cần thay thế với kí tự thứ i để biết rằng có cần thay thế ở vị trí thứ i không, và như thế là bạn đủ để kết luận rồi, không cần so sánh toàn bộ như thế đâu.
Để đáp ứng nhu cầu ngày càng đa dạng của khách hàng trong các lĩnh vực chuyên biệt, 3D Thinking đang tập trung phát triển các trung tâm dịch vụ chuyên sâu theo ngành. Mỗi trung tâm sẽ phụ trách...
Đưa công nghệ quét 3D vào lĩnh vực mỹ thuật và tạo hình