bld coi thử bài thứ hai cogaihalan mới post lên đi (đề của bld đó)
bld coi thử bài thứ hai cogaihalan mới post lên đi (đề của bld đó)
í sao mình post 2 bài rồi sao ko thấy hiện lên nhỉ?
bài cô gái hay lắm , nhưng bld nghĩ không cần div 60 đâu , chia 60 luôn đi!
cô gái có cần đề chuỗi để luyện công không?
- nhập chuỗi s và kí tự c tìm các vị trí của c trong s
- kí hiệu dấu cách là (~) , viết ctrinh2 chỉnh sửa từ:
vd : ~co~~gai~ => co~gai ;
chúc các bạn ngày càng tiến bộ ha!
bạn cogai học pascal có thầy à? bạn tìm đọc các ebook cũng có thể nâng cao kiến thức đấy, học thầy mà không tự tìm hiểu thêm là tự hạn chế mình đó !
hihi , hello ngài bo , lỗi thứ 2 mà mr nói về bài sắp xếp các số nguyên , bld nghĩ bld không sai 1 chút nào cả , mr.bo chưa hiểu kĩ code của bld thôi, thực ra cho code vào máy chạy thử (với dãy của mr.bo) vẫn ok đấy chứ!
có lẽ bo nhầm ở đoạn 2 vòng for lồng nhau :
thuyết trình nè: i chạy từ 1 đến spt -1 , với mỗi giá trị của i , ta lại so sánh với phần tử i+1 , i+2 , ... , i[spt];
có thể cụ thể với dãy 3 10 9 30 21 1 như sau ( với từng bước đổi chỗ):
3 10 9 30 21 1 (bắt đầu so sánh với i[1])
1 10 9 30 21 3 (lúc này 3,1 dổi chỗ ,(1 là phần tử cuối)=>chuyển sang i[2]
1 9 10 30 21 3 (lúc này 10,9 dổi chỗ (9 vẫn chưa là pt cuối)
1 3 10 30 21 9 (lúc này 9,3 đổi chỗ( 3 là phần tử cuối) => chuyển sang i[3]
1 3 9 30 21 10 (lúc này 10,9 đổi chỗ(9 là pt cuối)=> chuyển sang i[4]
1 3 9 21 30 10 (lúc này 30,21 đổi chỗ (21 vẫn chưa là pt cuối)
1 3 9 10 30 21 (lúc này 21,10 đổi chỗ ( 10 là pt cuối ) => chuyển sang i[5]
1 3 9 10 21 30 (lúc này 30,21 đổi chỗ)
kết thúc vòng for vì đã đến i[spt-1];
hì hì, mr. bo xem lại nhé
còn bài in ra các kí tự giống nhau , nên dùng tập hợp (set)
upcase (str1) ; upcase (str2)
for i:= 1 to length(str1) do if str1[i] in ['A'..'Z']
then taphop:=taphop+[str[i]] {trước đó , định nghĩa taphop:=[]}
for i:=1 to length(str2) do if str2[i] in taphop then writeln(str2[i]);
dùng cách này mr.bo sẽ không phải in ra các kí tự giống nhau đã in trước đó
còn bài so sánh số nguyên, mr.bo nói cách so sánh của bld là cách thông thường , vậy mr.bo trình làng cách xịn đi để mọi người cùng chiêm ngưỡng ha!
còn đây là bài cho mr.bo viết ctrình nhập chuỗi me, chuỗi con, tìm vị trí của chuỗi con trong chuỗi mẹ , vậy thôi ha!
Được sửa bởi bld lúc 11:27 ngày 24-06-2008 Reason: Bổ sung bài viết
cám ơn bld vì lời khuyên. Cogaihalan còn dở pascal lắm, nếu có đường link ebook nào thì bld post lên dc không? Còn hai đề mà bld ra cogaihalan giải dc mà kko biết sai hay đúng nữa
BÀI 1
uses crt;
var s:string;
c:char;
i:byte;
begin
clrscr;
write('nhap s=');readln(s);
write('nhap c=');readln(c);
for i:=1 to length(s) do
if s[i]=c then write(i);
readln
end.
BÀI 2
uses crt;
var st:string;i:byte;
begin
clrscr;
write('nhap st=');readln(st);
for i:=1 to length(st) do
if (i=1) and (st[i]=' ') then
begin
delete(st,i,1);
i:=i-1;
end
else if (st[i]=' ') and (st[i+1]=' ') then
begin
delete(st,i,1);
i:=i-1;
end;
write(st);
readln
end.
coi có sai sót gì thì góp ý cho cogai nha!
bài 1 thì đúng rồi đó bạn
còn bài 2 thì mình chưa hiểu code của bạn lắm , nhưng khi chạy thử thì lại lỗi khá nhiều , ở chỗ i:=i-1 ,có lẽ trong vòng lặp for thì không được đổi giá trị của biến i , {nếu đúng vậy thì đây cũng là dịp tốt để room rút kinh nghiệm phải không? }
code như sau :
while st[1] = ' ' then delete (st,1,1);
{bứoc này là xóa tất cả các dấu cách thừa đầu chuỗi}
while st[length(st)] = ' ' then delete (st,length(st),1);
{bước này là xóa tất cả các dấu cách cuối chuỗi}
for i:=1 to length(st) do while st[i+1] =' ' do delete (st,i+1,1);
{bước này là xóa các dấu cách thừa giữa các từ trong chuỗi}
writeln(st);
{bước này là in ra chuỗi đã chỉnh sữa}
bài của cogai thì thuật toán khá hay đó ... cố gắng lên ha
chuỗi nữa nha:
bạn rất tốt về thuật toán nên đề như thế này
chuỗi đối xứng có 2 loại : abccba và abcba ;
viết ctr kiểm tra chuỗi đối xứng;
thực ra cũng đơn giản và code bài này khá ngắn; quan trọng là bạn phải chịu khó phân tích thuật toán cho chắc trước khi làm bài
chúc thành công!
[=========> Bổ sung bài viết <=========]
http://ebook.edu.net.vn/resources/ip...nal_Pascal.zip
http://vinhphucnet.vn/TTKHCN/TTCN/8806.pdf
www.freewebs.com/h111111/nghia.rar
hi hi còn nữa thì google search nha
Được sửa bởi bld lúc 16:26 ngày 24-06-2008 Reason: Bổ sung bài viết
cám ơn mấy cái đường link nha bld.
Bài của bld cho cogai thì cogai chưa hiểu cho lắm. Ở đây là yêu cầu nhập vào một chuỗi đối xứng rồi kiểm tra là 1 trong 2 loại trên hay là kiểm tra chuỗi nhập vào có đối xứng hay ko?
http://www.freewebs.com/tuananh2095/...inh_pascal.htm
http://www.zshare.net/download/pascalstudy-exe.html
http://pascal.sources.ru/museum/index.htm
http://www.box.net/shared/w6h2bmj48c
hi hi bạn làm theo cả 2 cách hiểu trên thì càng hay !!!
Được sửa bởi bld lúc 16:42 ngày 24-06-2008 Reason: Bổ sung bài viết
đoạn code bài 2 của cogaihalan mà bld bảo sai ấy, cogai cho chạy thử rồi mà đâu có sai đâu (lạ nhỉ), chỉ quên thêm đoạn code để xóa mấy cái dấu cách thừa cuối chuỗi àh. Đề bld mới cho nếu chỉ giải 1 trong 2 cách hiểu thì đoạn code ngắn lắm, nhưng... giải theo 2 cách hiểu luôn thì đoạn code dài dòng lê thê quá. Tạm gọi đối xứng kiểu abcba là đối xứng qua tâm, còn kiểu abccba là đối xứng qua trục, cogai giải thế này
uses crt;
var s:string;i:byte;
begin
clrscr;
write('nhap s=');readln(s);
i:=1; if length(s) mod 2=0 then begin
while s[i]=s[length(s)] do
begin delete(s,i,1);delete(s,length(s),1);end;
if length(s)=0 then write('chuoi doi xung qua truc')
else write('chuoi ko doi xung');
end
else begin
while s[i]=s[length(s)] do
begin
delete(s,i,1);delete(s,length(s),1);end;
if length(s)=0 then write('chuoi doi xung qua tam')
else write('chuoi ko doi xung'); end;
readln
end.
chạy chương trình thì vẫn đúng nhưng có vị nào dùng đoạn code ngắn hơn thì làm siêng post lên cho cogai ngâm kíu nha!
ac!BO mới vắng mặt 1 ngày rưỡi thôi mà room mình đông vui ghê!!số lượng người xem tăng 150% her her her!!
cũng nhờ CôGái và BLD hết!!thank nhá!
[=========> Bổ sung bài viết <=========]
bài này là good!!good về thật toán lẫn đoạn code nữa!!
trình độ của CôGái tăng cao nha!!
Tôi có cách ngắn hơn: nhưng cũng không ngắn hơn bao nhiêu với lại cũng vẫn dùng thuật toán này thôi
còn những lỗi mà BLD nói Bo...Bo sẽ rút kinh nghiệm---> thank Bld nha
[=========> Bổ sung bài viết <=========]
đây là bài của mình!
uses crt;
var
sme,scon:string ;
i,j,e,g:integer ;
Begin
writeln(' Nhap chuoi me ');readln(sme) ;
writeln(' Nhap chuoi con ');readln (scon) ;
i:=1 ;
while i<= length(scon) do
begin
for j:=1 to length(sme) do
if scon[i]=sme[j] then
begin
if i<>1 then e:=j Else g:=j ;
end;
inc(i) ;
end;
writeln(' Vi tri cua chuoi con la tu ',g,' den ',e);
readln
end.
chỉ giáo chỉ giáo chỉ chỉ giáo hehehe
Được sửa bởi Mr.Bo_Aloha lúc 09:04 ngày 25-06-2008 Reason: Bổ sung bài viết
hihi cogái đâu có dở về chuỗi chút nào đâu nhỉ? (bài wá good)
bo nên post code của mình lên đi , học hỏi là chính mà...
code của bld như sau:
i:=1 ;
while (s[i]=s[length(s)-i+1)) and (i<=length(s)div 2) do i:=i+1;
if i>length(s) div 2 then doixung:=true else writeln('0 đối xứng');
if doixung=true then case length(s) mod 2 of
1: writeln('dối xứng qua tâm');
0: writeln('đối xứng qua trục');
(code nay là kết hợp 2 cách hiểu luôn đó!)
hahahaha bài của bld in hệt bài của BO hahahah!!! hehehehehe
[=========> Bổ sung bài viết <=========]
lâu lâu mới dc gặp bld trực tiếp như thế này!! cậu bạn lớp 7 à
ê tôi có 1 bài
nhập tên 1 người sau đó chỉnh sủa lại(~ la khoảng trắng)
vd:~~~~ngO~~~~mIHn~~~quaN~~~
thành :Ngo Minh Quan
Được sửa bởi Mr.Bo_Aloha lúc 09:23 ngày 25-06-2008 Reason: Bổ sung bài viết
Bookmarks