Ai giúp cho bài pascal. ^^!

Thảo luận trong 'Lập trình máy tính' bắt đầu bởi Kagaku, 28 Tháng tư 2012.

  1. Offline

    Kagaku

    • Windows 1.0

    Số bài viết:
    67
    Đã được thích:
    12
    Điểm thành tích:
    10
    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. Offline

    alt+F4

    • Core i3

    Số bài viết:
    596
    Đã được thích:
    423
    Điểm thành tích:
    450
    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. Offline

    Kagaku

    • Windows 1.0

    Số bài viết:
    67
    Đã được thích:
    12
    Điểm thành tích:
    10
    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. Offline

    alt+F4

    • Core i3

    Số bài viết:
    596
    Đã được thích:
    423
    Điểm thành tích:
    450
    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. Offline

    danhcong91

    • Thành Viên Mới

    Số bài viết:
    4
    Đã được thích:
    0
    Điểm thành tích:
    0
    hi mình học C# nên không giuó được bạn rôig!
  6. Offline

    alt+F4

    • Core i3

    Số bài viết:
    596
    Đã được thích:
    423
    Điểm thành tích:
    450
    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. Offline

    Kagaku

    • Windows 1.0

    Số bài viết:
    67
    Đã được thích:
    12
    Điểm thành tích:
    10
    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. Offline

    alt+F4

    • Core i3

    Số bài viết:
    596
    Đã được thích:
    423
    Điểm thành tích:
    450


    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. Offline

    Kagaku

    • Windows 1.0

    Số bài viết:
    67
    Đã được thích:
    12
    Điểm thành tích:
    10
    if a+a[i+1]='ch' then
  10. Offline

    Kagaku

    • Windows 1.0

    Số bài viết:
    67
    Đã được thích:
    12
    Điểm thành tích:
    10
    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. Offline

    quangkhai

    • Windows NT

    • Hạnh phúc... CLGT ?
    Số bài viết:
    156
    Đã được thích:
    72
    Điểm thành tích:
    60
    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. Offline

    ween159

    • Thành Viên Mới

    Số bài viết:
    6
    Đã được thích:
    2
    Điểm thành tích:
    0
    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. Offline

    anbaokhang3

    • Thành Viên Mới

    Số bài viết:
    1
    Đã được thích:
    0
    Điểm thành tích:
    0
    thanks bạn nha, vấn đề này mình cũng thắc mắc!

Chia sẻ trang này

Advertising: Linux system admin | nukeviet | nukeviet 4 | Upload ảnh miễn phí