Hiển thị kết quả từ 1 đến 9 / 9
  1. #1
    Tham gia
    06-03-2011
    Bài viết
    3
    Like
    0
    Thanked 0 Times in 0 Posts

    Nói nhỏ nè ! Các anh giúp bé bài PASCAL lớp 11 này với

    Program Hovaten;
    var tt:string[50];
    begin
    writeln('nhap ho va ten');
    readln('tt');
    writeln('chao ban ',tt,' rat vui dc lam quen');
    readln
    end.


    Ví dụ nhập họ và tên bạn là NGuyễn Văn A nó hiện thông báo " chao ban Nguyen Van A..." Vậy các anh chỉ giúp em làm sao chỉ để nó hiện thông báo là " chao ban A..." có đc không ạ>..
    Quote Quote

  2. #2
    Tham gia
    23-01-2011
    Bài viết
    17
    Like
    0
    Thanked 0 Times in 0 Posts
    thj ta cho vong for dj nguoc ruj kiem tra bang pos taj vi tri co dau cach cuoi cung ruj copy taj vj trj pos+1, length(s)-pos kj tu la duoc

  3. #3
    Tham gia
    06-03-2011
    Bài viết
    3
    Like
    0
    Thanked 0 Times in 0 Posts
    Hix, anh huong dan them dc k ạ..

  4. #4
    Tham gia
    10-02-2011
    Bài viết
    14
    Like
    0
    Thanked 0 Times in 0 Posts
    Ví dụ như bạn nhập tên vào biến St
    Code:

    Var St,st1: string;
    i : integer;

    Begin
    writeln('nhap ten');readln(st)
    For i := length(sT) downto 1 do
    if st[i] = ' ' then
    st1 := copy(st,i + 1,length(st)-1); {code chư chắc chắn tại bỏ pascal lâu rồi}

    Writeln('chao ban ',st1,' rat vui dc lam wen . .. .');
    readln;
    end.

  5. #5
    Tham gia
    06-03-2011
    Bài viết
    3
    Like
    0
    Thanked 0 Times in 0 Posts
    Em test thử rùi nhưng nó hiện Cả tên đệm...Vậy làm sao để nó hiện mỗi tên không ạ

  6. #6
    Tham gia
    01-01-2006
    Bài viết
    202
    Like
    0
    Thanked 1 Time in 1 Post
    Thuật toán trên cơ bản dựa trên việc tìm dấu cách ' ' cuối cùng. Dùng for thì bởi vì sẽ quét toàn xâu nên sẽ tìm thấy dấu cách đầu tiên. Thử dùng While..Do xem:
    Code

    Var St,st1: string;
    i : integer;

    Begin
    writeln('nhap ten');readln(st);
    i:=length(st);
    While st[i]<>' ' Do i:=i-1;
    st1 := copy(st,i + 1,length(st)-i);
    Writeln('chao ban ',st1,' rat vui dc lam wen . .. .');
    readln;
    end.

  7. #7
    Tham gia
    25-02-2011
    Bài viết
    19
    Like
    0
    Thanked 0 Times in 0 Posts
    Mình có cách này ngắn,dễ hiểu nè:
    var s,s1:string;
    i:integer;
    begin
    readln(s);
    s1:='';
    for i:=length(s) downto 1 do
    if s[i]<>' ' then s1:=s[i]+s1
    else break;
    write('chao ban',s1);
    readln
    end.

  8. #8
    Tham gia
    09-12-2010
    Location
    Đà Nẵng
    Bài viết
    93
    Like
    1
    Thanked 5 Times in 5 Posts
    Quote Được gửi bởi nbni View Post
    Mình có cách này ngắn,dễ hiểu nè:
    var s,s1:string;
    i:integer;
    begin
    readln(s);
    s1:='';
    for i:=length(s) downto 1 do
    if s[i]<>' ' then s1:=s[i]+s1
    else break;
    write('chao ban',s1);
    readln
    end.
    Cách này cũng đc, nhưng chắc để đảm bảo nên cắt cái ký tự trắng 2 biên đã hi?

  9. #9
    Tham gia
    25-02-2011
    Bài viết
    19
    Like
    0
    Thanked 0 Times in 0 Posts
    mình chỉ cần cắt kí tự trắng ở cuối là ok rùi bạn
    var s,s1:string;
    i:integer;
    begin
    readln(s);
    s1:='';
    while s[length(s)]=' ' do delete(s,length(s),1);
    for i:=length(s) downto 1 do
    if s[i]<>' ' then s1:=s[i]+s1
    else break;
    write('chao ban ',s1);
    readln
    end.

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •