Trang 1 / 2 12 LastLast
Hiển thị kết quả từ 1 đến 10 / 13
  1. #1
    Tham gia
    06-05-2011
    Location
    nghệ an
    Bài viết
    80
    Like
    0
    Thanked 11 Times in 11 Posts

    Nói nhỏ nè ! tim va xoa cac ki tu trung lap trong pascal

    các anh cho em hỏi chút xíu
    em có chương trình sau:
    program Tim_Xoa;
    uses crt;
    var
    St, St1: string;
    Ch: char;
    i, l, ll: byte;
    begin
    clrscr;
    writeln('TIM VA XOA CAC TU TRUNG NHAU TRONG CHUOI');
    writeln('----------------------------------------');
    writeln;
    write('- Nhap mot chuoi: ');
    readln(St);
    St1:= St;
    i:= 1;
    l:= length(St);
    while i <= l do
    begin
    i:= i + 1;
    if St[i] = St[i - 1] then
    begin
    writeln('+ Ky tu thu: ',i:2,' la: ',St[i],' bi trung lap');
    write('Ban co muon xoa ky tu nay khong (c/k)');
    readln(Ch);
    if upcase(Ch) = 'C' then
    begin
    delete(St,i,1);
    i:= i - 1;
    end;
    end;
    end;
    ll:= length(St);
    writeln;
    writeln('+ Chuoi ban dau: ',St1,' co: ',1:2,' ky tu');
    writeln(' Sau khi xoa ky tu trung nhau');
    writeln('Chuoi con lai: ',St,' gom: ',ll:2,' ky tu');
    writeln;
    writeln(' Bam phim <Enter> de ket thuc');
    readln;
    end.
    các anh giải thích em đoạn if St[i] = St[i - 1] then cái em không hiểu tại sao thế
    em cảm ơn nhiều
    Quote Quote

  2. Thành viên Like bài viết này:


  3. #2
    Tham gia
    14-07-2011
    Bài viết
    179
    Like
    3
    Thanked 83 Times in 68 Posts
    Bài này bạn lấy ở đâu đây?

  4. Thành viên Like bài viết này:


  5. #3
    Tham gia
    14-07-2011
    Bài viết
    179
    Like
    3
    Thanked 83 Times in 68 Posts
    Cái này sai rồi, nếu bạn nhập chuỗi fffffffffffff, sau đó nhập c thì vòng while sẽ vô tận đến khi nhập k

  6. Thành viên Like bài viết này:


  7. #4
    Tham gia
    06-05-2011
    Location
    nghệ an
    Bài viết
    80
    Like
    0
    Thanked 11 Times in 11 Posts
    bài này em lấy trong giáo trình SSdg
    nhung mà cái do thi không quan trọng
    điều em muốn hỏi là tại sao: St[i] = St[i - 1] lại là biểu hiện của các ký tự trùng nhau
    mong anh giải thích dùm

  8. Thành viên Like bài viết này:


  9. #5
    Tham gia
    09-04-2011
    Bài viết
    25
    Like
    0
    Thanked 11 Times in 8 Posts
    ta có sẵn : i:=1;
    theo vòng lặp, ta tăng i và kiểm tra kí tự [i-1] có giống nhau không.
    Cho thêm ví dụ để dễ hiểu:
    biến kiểu chuỗi là s='AAB';
    i:=1;
    tăng giá trị biến i 1 lần (=>i=i+1=1+1=2)
    s[2]=s[1]='A'=>nếu muốn xóa thì ấn 'c' => s='AB';
    tăng giá trị biến i 1 lần (=> i=i+1=2+1=3);
    xâu[3]<>xâu[2] { 'A'<>'B' }
    i=3= độ dài xâu s => kết thúc vòng lặp.
    s='AB';

  10. Thành viên Like bài viết này:


  11. #6
    Tham gia
    06-05-2011
    Location
    nghệ an
    Bài viết
    80
    Like
    0
    Thanked 11 Times in 11 Posts
    cam on ha dau oc bay gio moi sang

  12. Thành viên Like bài viết này:


  13. #7
    Tham gia
    06-05-2011
    Location
    nghệ an
    Bài viết
    80
    Like
    0
    Thanked 11 Times in 11 Posts
    nhưng nếu có một chuỗi như thê này; s='abca' thì no chạy ra sao ?

  14. Thành viên Like bài viết này:


  15. #8
    Tham gia
    14-07-2011
    Bài viết
    179
    Like
    3
    Thanked 83 Times in 68 Posts
    Chứ trong cái giáo trình nó không ghi ah`?

  16. Thành viên Like bài viết này:


  17. #9
    Tham gia
    06-05-2011
    Location
    nghệ an
    Bài viết
    80
    Like
    0
    Thanked 11 Times in 11 Posts
    vâng ạ không có thì em mới hỏi chứ

  18. Thành viên Like bài viết này:


  19. #10
    Tham gia
    09-04-2011
    Bài viết
    25
    Like
    0
    Thanked 11 Times in 8 Posts
    hình như nếu s='abca' thì kết quả sẽ cho xâu s nguyên thể {không bị xóa, không bớt}

  20. Thành viên Like bài viết này:


Trang 1 / 2 12 LastLast

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
  •