- 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.


Duong Nguyen Tuan 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


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

Hổng hiểu


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!


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


08:09 24 tháng 11, 2013
Nguyễn Huyền nói...
Nhận xét này đã bị tác giả xóa.
Broku Ssj100 nói...

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


15:23 22 tháng 11, 2015
Broku Ssj100 nói...

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


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.


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

dien


22:31 29 tháng 12, 2015
nambeo_ nohana nói...

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


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


05:46 10 tháng 3, 2016
bo lam 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


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

Nặc danh nói ...


10:38 21 tháng 9, 2016
thang Nguyen nói...

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


13:43 10 tháng 4, 2017
Dũng Vũ 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


09:56 4 tháng 5, 2017
Cồng Nguyễn Cương nói...
Nhận xét này đã bị tác giả xóa.
Cồng Nguyễn Cương 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.


22:43 18 tháng 6, 2017

Đă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.