bài tập về xâu của Pascal

L

loveisdead

[TẶNG BẠN] TRỌN BỘ Bí kíp học tốt 08 môn
Chắc suất Đại học top - Giữ chỗ ngay!!

ĐĂNG BÀI NGAY để cùng trao đổi với các thành viên siêu nhiệt tình & dễ thương trên diễn đàn.

Giúp em bài tập về xâu của Pascal

Viết chương trình cho phép nhập vào một xâu. Xuất ra xâu đảo ngược.
VD: Nhập xâu -> di xe dap
Xuất ra -> dap xe di

Vì em học lớp 11 mới chỉ học bài đầu của xâu nên mấy anh/ chị làm căn bản dùm.
(em mới chỉ học thủ tục delete, pos, length, insert, copy, upcase của xâu).

Cám ơn mọi người trước.
 
Last edited by a moderator:
O

ochuotqb

Mã:
var    st:string; i:byte;
       begin
                write('Nhap xau: ');
                            readln(st);
                st:=#32+st;
for i:=length(st) downto 1 do
    begin
         if st[i]=#32 then
                      begin
                           write(copy(st,i+1,length(st)-i+1),' ');

                           delete(st,i,length(st)-i+1);
                      end;
         end;
    readln
end.
Send chị.
Chúc chị năm mới vui vẻ^^
 
L

loveisdead

Giải thích dùm mình cái st:=#32+st được ko? #32 là cái gì vậy mình chưa học tới
Rồi đoạn này nữa write(copy(st,i+1,length(st)-i+1),' ');
mình vẫn chưa hiểu cho lắm? tại sao khi xoá ' ' mình chạy ct kết quả lại viết liền còn khi ' ' thì nó sẽ có khoảng cách
 
Last edited by a moderator:
O

ochuotqb

#32 là bằng 1 dấu cách chị ạ
-> Đánh dấu vị trí
write(copy(st,i+1,length(st)-i+1),' ');
Để in ra các từ được đảo ngược
mình vẫn chưa hiểu cho lắm? tại sao khi xoá ' ' mình chạy ct kết quả lại viết liền còn khi ' ' thì nó sẽ có khoảng cách
Ý bạn là gì mình chưa hiểu rõ !! bạn thử cho mình vd thử xem
Bạn có thể tham khảo code khác.
Cách 2:
Mã:
var ch,st:string;
        begin
             write('Nhap xau: ');
             readln(st);
        st:=st+#32;
        while pos(#32,st)<>0 do
          begin
               ch:=copy(st,1,pos(#32,st))+ch;
               delete(st,1,pos(#32,st));
          end;
        write(ch);
readln
end.
 
H

hosangk50a2

Chương trình đảo ngược

Đây là một chương trình đơn giản:



var S1,S2: string;
i: integer;
begin
clrscr;
writer('Nhap xau:'); readln(S1);
S2:=''; {Khởi tạo xâu rỗng}
for i:=length(S1) downto 1 do S2:=S2+S;
write('Xau dao nguoc la:',S2);
readln;
end.


;););););)
 
Top Bottom