Chủ đề: pascal xâu!
-
03-25-2010, 03:50 AM #1
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 5
pascal xâu!
cái này em tự ra đề để tăng khả năng tư duy chút.
nhập xâu s, thay các cụm kí tự 'anh' ở các vị trí chẵn thành cụm kí tự 'em'
Mã:var s1,s2:string; k,dem,i:integer; key:char; begin repeat write('xau s1:'); readln(s1); k:=length(s1); s2:='em'; dem:=0; for i:=1 to k do if (s1[i]='a') and(s1[i+1]='n') and(s1[i+2]='h') then begin dem:=dem+1; if( dem mod 2 =0) then begin delete(s1,i,3); insert(s2,s1,i); end; end; write('xau s1 moi la:',s1); writeln; write('tiep tuc,(C/k)?:'); readln(key); until upcase(key)='K'; readln; end.
Mã:if (s1[i]='a') and(s1[i+1]='n') and(s1[i+2]='h') then
Mã:while (s1[i]='a') and(s1[i+1]='n') and(s1[i+2]='h')do
-
03-26-2010, 03:59 AM #2
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 3
ú, 2 hôm nay pro pascal đi đâu rồi mà không giải thích hộ bài này đi nhĩ?
-
03-26-2010, 05:13 AM #3
Silver member
- Ngày tham gia
- Nov 2015
- Đang ở
- hà nội
- Bài viết
- 17
chẳng phải đã có topic nói về vấn đề này rồi sao ?
-
03-26-2010, 05:15 AM #4
Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 0
cái kia là thay tất cả còn đây chỉ thay ở các vị trí chẵn thôi.
-
03-26-2010, 06:27 AM #5
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 4
Gửi bởi gianghen
-
03-26-2010, 05:36 PM #6
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 9
thay vô while cơ mà, chứ ai chẳng bít là dùng if then...
if (s1='a') and(s1[i+1]='n') and(s1[i+2]='h') then
-
03-26-2010, 10:38 PM #7
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 4
- Thế này nhé [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG] : Nếu biến dem của bạn mod 2 <> 0 thì s1 vẫn là s1 ban đầu -> s1 vẫn ='a' , s1[i+1] vẫn ='n' , s1[i+2] vẫn ='h' . Vậy vòng while lặp vô hạn.
- Vẫn chưa hiểu biến dem của bạn làm j` . Xét vị trí chăng, sao k dùng i xét lun nhỉ ?
- Bài này không cần rườm rà thế. Mình chưa test thử nhưng có chút vấn đề :
"anh" : 3 kí tự
"em" : 2 kí tự
Khi bạn tìm được cụm "anh" đầu tiên = cụm "em" thì liệu vị trí của các cụm "anh" còn lại có ở vị trí cũ nữa k !?
vd :
ban đầu : s=aanhaanhoi ( cụm "anh" ở vị trí 1 , 6 )
lần 1 : aemaanhoi ( cụm "anh" ở vị trí 5 )
-
03-26-2010, 11:33 PM #8
Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 3
không phải thế hằng ạ: ví dụ: anh em anh em anh em.thì anh ở các vị trí: 1-3-5( toàn là vị trí lẽ nên nó sẽ giữ nguyên) thế nên mới cần biến dem. cứ 1 lần kí tự'anh' xuất hiện thì tăng lên 1 cho đến khi ở vị trí chẵn thì nó sẽ xóa và thay.
-
03-27-2010, 02:12 AM #9
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 2
mình đã giải thích vấn đề mà bạn hỏi rồi.
Có lẽ là mình hiểu sai ý của bạn nhưng thay cái if (s1='a') and(s1[i+1]='n') and(s1[i+2]='h') then bằng copy là đc rồi.
-
03-27-2010, 04:00 AM #10
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 5
Gửi bởi gianghen
ý mình là lệnh if ( điều kiện vị trí của bạn ) bạn ạ .
Theo điều tra tình hình sử dụng thuốc lá ở người trưởng thành năm 2020 do Bộ Y tế triển khai, ngày nay tỷ lệ đàn ông Việt Nam hút thuốc đang ở mức 42,3%. Không chỉ có khả năng gây ung thư và một...
Những thói quen khiến "cuộc vui" của hai người trở nên... dở dang