Viết chương trình nhập vào xâu, đưa ra xâu đảo theo từ. Ví dụ: đi xe đạp -> đạp xe đi.
uses crt; var s:string; x,y,z,t:byte; begin write('Nhap vao mot xau: '); readln(s); z:=length(s); for y:=length(s) downto 1 do begin if ((s[y]=' ')or(y=1)) then begin for t:=y to z do write(s[t]);z:=y end; write(' '); end; readln; end.
Related Posts : Bài tập Pascal,
Pascal mở rộng,
Xâu
bài trên có rất nhiều dấu cách thừa, mình sẽ sửa lại uses crt; var s:string; x,y,z,t:byte; begin write('Nhap vao mot xau: '); readln(s); z:=length(s); for y:=length(s) downto 1 do if ((s[y]=' ')or(y=1)) then begin for t:=y to z do write(s[t]); z:=y; end; delete(s,1,1); delete(s,length(s),1); readln; end.
bài làm của bạn nặc danh đúng. nhưng theo mình nên thống nhất các biến cho dễ nhớ: như biến chạy dùng: i,j,k... - nếu chạy dạng tệp mà thừa, thiếu khoảng trống là sai đáp án so với các test, nên bạn nào làm dạng tệp cần lưu ý, ko xong rồi chạy thấy ok đến khi chấm = test lại zero điểm ah
THUẬT TOÁN TRÊN LÀ THUẬT TOÁN ĐÚNG ! NHƯNG KHI CÁC BẠN TEST CÁC TRƯỜNG HỢP KHÁC THÌ SẼ BỊ LỖI (test có rất nhiều bản đặc biệt) VD1:***đi**xe*****đạp****** >> thừa dấu cách ****đạp***xe******đi* VD2:cuong >> thừa dấu cách ****cuong* (dấu '*' là dấu cách) Nên mình có thuật toán này có thể khắc phục dc lỗi trên =)) var s:string; i,j,k,f,:longint; begin readln(s); s:=s+#32; while s[1]=#32 do delete(s,1,1); k:=length(s); i:=k; while k>1 do begin dem:=0; f:=i; while s[i]=#32 do begin dec(i); dec(f); end; k:=i; while (s[i]<>#32)and (i>0) do begin dec(i); dec(k); end; for j:=k+1 to f do write(s[j]); write(#32); end; readln end.
Dòng "if ((s[y]=' ')or(y=1)) then begin for t:=y to z do write(s[t]);z:=y" để làm j vậy bạn, chỉ mình với
13:56 17 tháng 3, 2013
Hổng hiểu
17:08 29 tháng 3, 2013
Các từ cách nhau bởi dấu cách nên dùng s[y] = ' ' để kiểm tra... kiểm tra y = 1 để in ra từ đầu tiên trong chuỗi!
10:23 24 tháng 4, 2013
Mình không hiểu cho lắm
Bạn nói rõ 1 tí được không
08:09 24 tháng 11, 2013
Cheap jordans, wholesale jordan shoes, nike free, cheap nike shoes, cheap jordan, cheap jordans, wholesale jordan shoes for sale, ugg, ugg australia, air jordan shoes, Bags Louis Vuitton, Cheap LV Handbags, Discount LV Handbags, cheap jordan shoes, Cheap Nike jordan shoes, cheap nike jordan shoes, uggs outlet, cheap nike free, discount nike jordans, jordan shoes for cheap, wholesale jordan shoes, ugg soldes, cheap nike free run, cheap jordans, Cheap Louis Vuitton Handbags, ugg pas cher, ugg boots, cheap nike air max, Discount Louis Vuitton, uggs on sale
15:26 21 tháng 11, 2014
hay
15:55 12 tháng 1, 2015
ban co the noi ro hon tu cho:
if((.... cho den z:=y duoc ko??
15:23 22 tháng 11, 2015
ơ hời! ct sai rồi tác giả ơi!!!!
15:32 22 tháng 11, 2015
bài trên có rất nhiều dấu cách thừa, mình sẽ sửa lại
uses crt;
var s:string;
x,y,z,t:byte;
begin
write('Nhap vao mot xau: ');
readln(s);
z:=length(s);
for y:=length(s) downto 1 do
if ((s[y]=' ')or(y=1)) then
begin
for t:=y to z do write(s[t]);
z:=y;
end;
delete(s,1,1);
delete(s,length(s),1);
readln;
end.
21:04 17 tháng 12, 2015
dien
22:31 29 tháng 12, 2015
bỏ cái write(' ' ); đi là ok
11:53 15 tháng 1, 2016
hay do, de hieu
09:54 23 tháng 1, 2016
Cái chỗ t:= y to z do .... Là sao vậy bạn , t là 1 biến để xuất ra màn hình mà sao lại đặt = y to z vậy bạn , mình ko hiểu rõ cho lắm
05:46 10 tháng 3, 2016
bài này hơi khó hiểu thì phải giải thích dùm mình được không
14:30 23 tháng 3, 2016
Nặc danh nói ...
10:38 21 tháng 9, 2016
khó hiểu
13:19 19 tháng 3, 2017
bai nay kha la hay nhung tac gia co the lam de hieu hon dc khong a?
13:43 10 tháng 4, 2017
bài làm của bạn nặc danh đúng. nhưng theo mình nên thống nhất các biến cho dễ nhớ: như biến chạy dùng: i,j,k...
- nếu chạy dạng tệp mà thừa, thiếu khoảng trống là sai đáp án so với các test, nên bạn nào làm dạng tệp cần lưu ý, ko xong rồi chạy thấy ok đến khi chấm = test lại zero điểm ah
09:56 4 tháng 5, 2017
THUẬT TOÁN TRÊN LÀ THUẬT TOÁN ĐÚNG !
NHƯNG KHI CÁC BẠN TEST CÁC TRƯỜNG HỢP KHÁC THÌ SẼ BỊ LỖI
(test có rất nhiều bản đặc biệt)
VD1:***đi**xe*****đạp****** >> thừa dấu cách ****đạp***xe******đi*
VD2:cuong >> thừa dấu cách ****cuong*
(dấu '*' là dấu cách)
Nên mình có thuật toán này có thể khắc phục dc lỗi trên =))
var s:string;
i,j,k,f,:longint;
begin
readln(s); s:=s+#32;
while s[1]=#32 do delete(s,1,1);
k:=length(s); i:=k;
while k>1 do
begin
dem:=0; f:=i;
while s[i]=#32 do begin
dec(i);
dec(f);
end;
k:=i;
while (s[i]<>#32)and (i>0) do
begin
dec(i);
dec(k);
end;
for j:=k+1 to f do write(s[j]);
write(#32);
end;
readln
end.
22:43 18 tháng 6, 2017
Đăng nhận xét