Chào, Khách!
  1. Kagaku
    Offline
    Kagaku   [67/12]
    Có thế giúp thêm bài này được không nhỉ?
    Nhập xâu A, nhập vào kí tự ch, kiểm tra xem ch xuất hiện ở vị trí nào trong xâu A, nếu không có thì xuất ra "không tìm thấy"

    :P
  2. alt+F4
    Offline
    alt+F4   [596/423]
    dùng hàm pos

    Mã:
    A:= 'xauvidu';
    writeln('Nhap xau: ');
    readln(ch);
    c:= pos(ch,A);
    if c=0 then writeln('Khong tim thay');
    else write('Vi tri la',c);
    
    
    lau roi ko pascal nhớ nhớ vậy!
    Kagaku thích bài này.
  3. Kagaku
    Offline
    Kagaku   [67/12]
    Chưa rõ lắm, m thử rồi nó báo lỗi ở c:= pos(ch,a);
    Có thể ghi rõ tí được k nhỉ ;))
  4. alt+F4
    Offline
    alt+F4   [596/423]
    chương trình hoàn chỉnh của bạn đây, đã compile và run:
    Mã:
    program TimVitriXau;
    var
      a, ch  : string;
      c: integer;
    begin
      writeln('Nhap xau goc: '); 
      readln(a); 
      writeln('Nhap xau can tim: '); 
      readln(ch); 
      c:= pos(ch,a); 
      if c=0 then 
               writeln('Khong tim thay')
      else 
          write('Vi tri la',c);
      readln();
    end.		
    
    hàm pos trong pascal cú pháp: pos(ch,a) với a là xâu gốc, ch là xâu cần tìm trên xâu a.
    hàm pos trả về dạng integer chỉ vị trí của xâu ch xuất hiện trong xâu a
  5. danhcong91
    Offline
    danhcong91   [4/0]
    hi mình học C# nên không giuó được bạn rôig!
  6. alt+F4
    Offline
    alt+F4   [596/423]
    Nếu lập trình tốt thì ngôn ngữ nào cũng có thể viết được mà bạn.
  7. Kagaku
    Offline
    Kagaku   [67/12]
    Uses crt;
    Var
    A:string;
    Ch:char;
    i,t :integer;
    begin
    clrscr;
    write(‘nhap xau bat ki: ‘);
    readln(A);
    write(‘hap ch: ‘);
    readln(ch);
    t:=0
    for i:=1 to length(A) do
    if ch=s then
    begin
    writeln(‘vi tri cu ach la:’,i);
    t:=t+1;
    end;
    if t=0 then writeln(‘khong tim thay’);
    readln;
    end.

    Như thế này cũng được ^^!. Tk bạn
  8. alt+F4
    Offline
    alt+F4   [596/423]


    Thứ nhất là chổ màu đỏ bị sai, thứ 2 là nếu bạn làm thế này thì chỉ tìm ký tự chứ không phải tìm chuỗi ký tự!
  9. Kagaku
    Offline
    Kagaku   [67/12]
    if a+a[i+1]='ch' then
  10. Kagaku
    Offline
    Kagaku   [67/12]
    Như bài của bạn thì chỉ hiện ra 1 vị trí đầu tiên của ch thôi, hàm pos tìm vị trí đầu tiên. Nếu như có nhiều ch thì không hiện ra được vị trí của các ch sau. Đã test ^^!
  11. quangkhai
    Offline
    quangkhai   [156/72]
    sắp về lại cái thời kỳ mà anh em chúng ta ngồi hàng ngày trên 2mit để code c, c++, c# và pascal cho anh em rồi. nhớ cái thời kì đó quá.

    kimtan
  12. ween159
    Offline
    ween159   [6/2]
    Bài hoàn chỉnh của bạn đây, xuất ra tất cả các vị trí của xâu con. Mình cải tiến từ bài của bác alt+f4

    program TimVitriXau;
    var a, ch : string;
    c,i,j: integer;
    begin
    writeln('Nhap xau goc: ');
    readln(a);
    writeln('Nhap xau can tim: ');
    readln(ch);
    i:=0;
    c:=1;
    j:=length(a);
    While c <> 0 do Begin
    c:= pos(ch,a);
    if (c=0) and (length(a)=j) then writeln('Khong tim thay')
    else begin
    writeln('Vi tri la: ',c+i);
    delete(a,c,length(ch));
    i:=i+length(ch);
    end;
    End;
    readln;
    end.
    alt+F4Kagaku thích bài này.
  13. anbaokhang3
    Offline
    anbaokhang3   [1/0]
    thanks bạn nha, vấn đề này mình cũng thắc mắc!