Follow us on...
Follow us on Twitter Follow us on Facebook Watch us on YouTube

Mời tài trợ sinh nhật diễn đàn 8 năm

Tìm HD - Phần mềm tìm và xem phim HD miễn phí

Đăng ký tham gia offline VN-Zoom 8 năm tại HCM

Chiêm ngưỡng BaoMoi đẹp "tuyệt diệu" trên Windows Phone

Tài trợ VNZ Siêu phẩm Tân Kiếm Thế chibi 3D mới

Tuyển BQT VN-Zoom
kết quả từ 1 tới 7 trên 7
  1. #1
    kutelegend's Avatar
    kutelegend vẫn chưa có mặt trong diễn đàn Búa Gỗ
    Tham gia
    Jan 2010
    Bài
    13
    Cảm ơn
    1
    Điểm
    0/0 bài viết
    VR power
    0

    Default bai tap pascal ve xau (tt)

    cho mot xau ki tu.neu la 1 tu thj jn xau dao nguoc con neu nhjeu tu thj jn ra man hjnh xau nhung vjet hoa kj tu dau moi tu
    vi du:
    love-->evol;
    i love you-->I Love You

  2. #2
    19-6's Avatar
    19-6 vẫn chưa có mặt trong diễn đàn Moderator
    Tham gia
    Sep 2008
    Đến từ
    Abyss
    Bài
    1.904
    Cảm ơn
    858
    Điểm
    3.405/1.516 bài viết
    VR power
    0

    Default

    Code:
    uses crt;  
    var s,st: string;
        i,kt: integer;
    BEGIN
     clrscr;  
     write('Nhap mot xau ki tu : '); Readln(s);
     kt:=0;
     for i:=1 to length(s) do
      if (s[i]=' ')and(s[i-1]<>' ')and(s[i+1]<>' ') then
      begin
       kt:=1;
       break;
      end;
     if kt=1 then
     begin
      writeln('Xau co nhieu tu ') ;
      for i:=1 to length(s) do
       if (s[i]<>' ')and(s[i-1]=' ')or(i=1) then
       begin
        s[i]:=upcase(s[i]);
       end;
      write(s);
     end 
     else  
     begin
      writeln('Xau co 1 tu ');
      for i:=length(s) downto 1 do
        st:=st+s[i];
      write(st);
     end;
     readln;
    END.


  3. Có 2 thành viên cảm ơn 19-6 cho bài viết này:
    pkthanh92 (16-03-2011), Tung_Huynh (26-02-2011)

  4. #3
    Tung_Huynh's Avatar
    Tung_Huynh vẫn chưa có mặt trong diễn đàn Cống hiến cho [V-Z]
    Tham gia
    Jul 2009
    Đến từ
    Thái Nguyên
    Bài
    6.777
    Cảm ơn
    1.540
    Điểm
    4.122/2.748 bài viết
    VR power
    0

    Default

    Làm như 19-6 thì cần thêm 1 hàm chuẩn hóa xâu nữa đó ....

    if (s[i]=' ')and(s[i-1]<>' ')and(s[i+1]<>' ') then

    chưa đúng khi xâu nhập vào có nhiều dâu' cách ở giữa các từ

    123 67 (có 2 dấu cách giữa 3 và 6)

    chưa đúng khi i=4

    ---------- Bài thêm lúc 16:03 ---------- Bài trước là lúc 15:50 ----------

    Mượn bài của 19-6 sửa lại 1 chút phần kiểm tra có 1 hay nhiều từ thế này

    Code:
    uses crt;
    var s,st: string;
        i,kt: integer; {Sau khi ktra thi kt = so tu cua xau nhap vao}
    BEGIN
     clrscr;
     write('Nhap mot xau ki tu : '); Readln(s);
     kt:=0; i:=1;
     while i<=length(s) do
      begin
           if s[i]<>' ' then
           begin
                while s[i]<>' ' do inc(i);
                inc(kt);
           end
           else while s[i]=' ' do inc(i);
     end;
    
     if kt>1 then
     begin
      writeln('Xau co ',kt,' tu ') ;
      for i:=1 to length(s) do
       if (s[i]<>' ')and(s[i-1]=' ')or(i=1) then
       begin
        s[i]:=upcase(s[i]);
       end;
      write(s);
     end
     else
     begin
      writeln('Xau co 1 tu ');
      for i:=length(s) downto 1 do
        st:=st+s[i];
      write(st);
     end;
     readln;
    END.
    Thay đổi nội dung bởi Tung_Huynh; 26-02-2011 lúc 16:05.

  5. Có 2 thành viên cảm ơn Tung_Huynh cho bài viết này:
    19-6 (26-02-2011), pkthanh92 (16-03-2011)

  6. #4
    hidengate's Avatar
    hidengate vẫn chưa có mặt trong diễn đàn Búa Đá Đôi
    Tham gia
    Jun 2008
    Bài
    77
    Cảm ơn
    13
    Điểm
    22/19 bài viết
    VR power
    0

    Default

    sửa lại bài của hai bạn luôn nhé:
    uses crt;
    var s,st: string;
    i,kt: integer; {Sau khi ktra thi kt = so tu cua xau nhap vao}
    BEGIN
    clrscr;
    write('Nhap mot xau ki tu : '); Readln(s);
    i:=1;
    if s[1]<>' ' then kt:=1 else kt:=0
    for i:=1 to length(s) do
    if (s[i]<>' ') and (s[i+1]<>' ') then inc(kt);
    if kt>1 then
    begin
    writeln('Xau co ',kt,' tu ') ;
    for i:=1 to length(s) do
    if (s[i]<>' ')and(s[i-1]=' ')or(i=1) then
    begin
    s[i]:=upcase(s[i]);
    end;
    write(s);
    end
    else
    begin
    writeln('Xau co 1 tu ');
    for i:=length(s) downto 1 do
    st:=st+s[i];
    write(st);
    end;
    readln;
    END.

  7. Có 1 thành viên cảm ơn hidengate cho bài viết này:
    pkthanh92 (16-03-2011)

  8. #5
    Tung_Huynh's Avatar
    Tung_Huynh vẫn chưa có mặt trong diễn đàn Cống hiến cho [V-Z]
    Tham gia
    Jul 2009
    Đến từ
    Thái Nguyên
    Bài
    6.777
    Cảm ơn
    1.540
    Điểm
    4.122/2.748 bài viết
    VR power
    0

    Default

    Trích hidengate View Post
    sửa lại bài của hai bạn luôn nhé:
    uses crt;
    var s,st: string;
    i,kt: integer; {Sau khi ktra thi kt = so tu cua xau nhap vao}
    BEGIN
    clrscr;
    write('Nhap mot xau ki tu : '); Readln(s);
    i:=1;
    if s[1]<>' ' then kt:=1 else kt:=0
    for i:=1 to length(s) do
    if (s[i]<>' ') and (s[i+1]<>' ') then inc(kt);
    if kt>1 then
    begin
    writeln('Xau co ',kt,' tu ') ;
    for i:=1 to length(s) do
    if (s[i]<>' ')and(s[i-1]=' ')or(i=1) then
    begin
    s[i]:=upcase(s[i]);
    end;
    write(s);
    end
    else
    begin
    writeln('Xau co 1 tu ');
    for i:=length(s) downto 1 do
    st:=st+s[i];
    write(st);
    end;
    readln;
    END.
    có thể là bài mình sửa và bài gốc của 19-6 làm chưa hoàn hảo lắm
    nhưng bạn cũng nên chỉ mình biết chỗ nào chưa ổn để lần sau khắc phục chứ

  9. #6
    kien_coi_1997's Avatar
    kien_coi_1997 vẫn chưa có mặt trong diễn đàn Rìu Vàng Đôi
    Tham gia
    Apr 2009
    Đến từ
    Hà nội
    Bài
    1.117
    Cảm ơn
    693
    Điểm
    1.251/559 bài viết
    VR power
    0

    Default

    kt:=0;
    for i:=1 to length(s) do
    if (s[i]=' ')and(s[i-1]<>' ')and(s[i+1]<>' ') then
    begin
    kt:=1;
    break;
    end;

    đây là đếm xem có dấu cách không à?
    nếu vậy sao không dùng POS(' ',S) trả về vị trí đầu tiến của dấu cách:

    kq:=POS(' ',S);
    if kq=0 then {chỉ có một từ}
    else {có nhiều từ}
    Blog về Pascal_chương trình pascal_ game pascal...
    Pascal-Chương trình hay, Unit hay, Game Pascal, các phần hỗ trợ trong Pascal.
    My blog: http://vn.360plus.yahoo.com/kien_coi_1997

  10. #7
    Tung_Huynh's Avatar
    Tung_Huynh vẫn chưa có mặt trong diễn đàn Cống hiến cho [V-Z]
    Tham gia
    Jul 2009
    Đến từ
    Thái Nguyên
    Bài
    6.777
    Cảm ơn
    1.540
    Điểm
    4.122/2.748 bài viết
    VR power
    0

    Default

    Trích kien_coi_1997 View Post
    kt:=0;
    for i:=1 to length(s) do
    if (s[i]=' ')and(s[i-1]<>' ')and(s[i+1]<>' ') then
    begin
    kt:=1;
    break;
    end;

    đây là đếm xem có dấu cách không à?
    nếu vậy sao không dùng POS(' ',S) trả về vị trí đầu tiến của dấu cách:

    kq:=POS(' ',S);
    if kq=0 then {chỉ có một từ}
    else {có nhiều từ}
    Khi code cần hướng người dùng là chủ yếu, người dùng chưa chắc đã là người code ra chương trình đó nên cần quan tâm đến trường hợp người dùng nhập cẩu thả
    giả sử nhập vào 1 chuỗi str=' abc ' {có 1 hoặc nhiều dấu cách ở 2 đầu chuỗi} -> kq=1 -> nhiều từ
    mắt nhìn thì vẫn là 1 từ nhưng chương trình chạy nó sẽ báo là nhiều từ
    thế nên với cách của Kiên thì cần thêm hàm chuẩn hóa trước khi dùng

 

 

Quyền sử dụng

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