- Ebook Giải thuật và lập trình Lê Minh Hoàng
- Các thuật toán sắp xếp trong Pascal

Đưa ra xâu đảo theo từ



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.


Unknown nói...

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


lúc 13:56 17 tháng 3, 2013
Nặc danh nói...

Hổng hiểu


lúc 17:08 29 tháng 3, 2013
Nặc danh nói...

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!


lúc 10:23 24 tháng 4, 2013
Nặc danh nói...

Mình không hiểu cho lắm
Bạn nói rõ 1 tí được không


lúc 08:09 24 tháng 11, 2013
Unknown nói...
Nhận xét này đã bị tác giả xóa.
Unknown nói...

ban co the noi ro hon tu cho:
if((.... cho den z:=y duoc ko??


lúc 15:23 22 tháng 11, 2015
Unknown nói...

ơ hời! ct sai rồi tác giả ơi!!!!


lúc 15:32 22 tháng 11, 2015
Nặc danh nói...

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.


lúc 21:04 17 tháng 12, 2015
Nặc danh nói...

dien


lúc 22:31 29 tháng 12, 2015
Quynh Dinh nói...

bỏ cái write(' ' ); đi là ok


lúc 11:53 15 tháng 1, 2016
Yến thọ\ nói...

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


lúc 05:46 10 tháng 3, 2016
Unknown nói...

bài này hơi khó hiểu thì phải giải thích dùm mình được không


lúc 14:30 23 tháng 3, 2016
Nặc danh nói...

Nặc danh nói ...


lúc 10:38 21 tháng 9, 2016
Unknown nói...

bai nay kha la hay nhung tac gia co the lam de hieu hon dc khong a?


lúc 13:43 10 tháng 4, 2017
Unknown nói...

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


lúc 09:56 4 tháng 5, 2017
Cuong nói...
Nhận xét này đã bị tác giả xóa.
Cuong nói...

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.


lúc 22:43 18 tháng 6, 2017
Unknown nói...

Có nghĩa khi gặp kí tự trắng thì nó sẽ viết ra các kí tự từ y to z nhé


lúc 11:43 14 tháng 5, 2019
Unknown nói...

Có nghĩa khi gặp kí tự trắng thì nó sẽ viết ra các kí tự từ y to z nhé


lúc 11:44 14 tháng 5, 2019
Unknown nói...

Có nghĩa khi gặp kí tự trắng thì nó sẽ viết ra các kí tự từ y to z nhé


lúc 11:44 14 tháng 5, 2019
Unknown nói...

mn có thể chỉ mk cách viết chương trình con bài này đc ko ạ


lúc 09:35 21 tháng 7, 2021

Đăng nhận xét

Thành viên Blog

Tổng số lượt xem trang

Translate

Return to top of page Copyright © 2012 | Theme by Hack Tutors. Cung cấp bởi Blogger.
Các code pascal trong blog được sưu tầm, lựa chọn sao cho tối ưu nhất. Cảm ơn các tác giả đã viết thuật toán.