Thuật toán so sánh chuỗi sai lệch năm 2024

Lỗi ở đây là không đọc được file. Dạo này đang chán và mệt nên nhác nghĩ, mình cho bạn coi cái code của mình về bài này hồi ôn.Nhưng chưa chuẩn xác lắm đâu nhưng nhìn đơn giản hơn nhiều.Bạn có gắng tự xử nhé, lúc nào rảnh thì mình làm cho :]

Show

    Code:

    program chuoi_gan_dung;

    uses crt;

    var a,b:array[1..100] of string;

    s,st:string;

    i,n,m,k,p,l,j:integer;

    begin

    clrscr;

    write('Nhap so % :');readln(m);

    write('Nhap xau goc :');readln(s);

    write('Nhap so xau can xac dinh :');readln(n);

    p:=0;

    for i:=1 to n do

    begin

    write('nhap xau a[',i,']=');readln(a[i]);

    st:=a[i];

    l:=1;

    j:=1;

    k:=0;

    while (l<=length(s))and(j<=length(st)) do

    if s[l]=st[j] then

    begin

    l:=l+1;

    j:=j+1;

    end else

    begin

    j:=j+1;

    k:=k+1;

    end;

    if (k/length(st))*100<=m then

    begin

    p:=p+1;

    b[p]:=st;

    end;

    end;

    for i:=1 to p do

    writeln(b[i]);

    readln

    end.

    P/s: Bạn sửa lại nội dung ví dụ nhé .Thân !

    Bài viết đã được chỉnh sửa nội dung bởi NTL2k1: 13-08-2016 - 15:13

    Bình tĩnh - Tự tin - Chiến thắng

    Không phải là tôi quá thông minh, chỉ là tôi chịu bỏ nhiều thời gian hơn với rắc rối .

    Cứ làm việc chăm chỉ trong im lặng - Hãy để thành công trở thành tiếng nói của bạn .


    Đã gửi 13-08-2016 - 22:20

    The Dark Hunter

    Binh nhất

    • Thuật toán so sánh chuỗi sai lệch năm 2024
    • Thành viên mới
    • Thuật toán so sánh chuỗi sai lệch năm 2024
    • 20 Bài viết

    thuật toán mình làm dc rồi nhưng ko biết phải thao tác với file thế nào thôi

    uses crt;

    var n:integer;s1,s2:string;

    function sai_so(s1,s2:string):integer;

    var a:string;k1,k2,i,b,c,S,H:integer;

    begin

    k1:=length(s1);

    k2:=length(s2);

    S:=0;a:=s2;

    for i:=1 to k1 do

    begin

    c:=pos(s1[i],a);

    b:=k2-length(a)+c;

    if c>0 then

    begin

    S:=S+c-1;

    a:=copy(s2,b+1,k2-b);

    end

    else

    begin

    S:=0;break;

    end;

    end;

    H:=trunc(S/k2*100);

    sai_so:=H;

    end;

    begin

    clrscr;

    write('nhap xau:');readln(s1);

    write('nhap xau can kiem tra:');readln(s2);

    write('% sai so:');readln(n);

    if sai_so(s1,s2)<n then writeln('ok')

    else writeln(':(');

    readln

    end.

    Đức HD Trần:

    Thuật toán so sánh chuỗi sai lệch năm 2024
    Thuật toán so sánh chuỗi sai lệch năm 2024
    Thuật toán so sánh chuỗi sai lệch năm 2024

    AK36 Trường THPT Quang Trung tỉnh Hải Dương


    Đã gửi 13-08-2016 - 22:30

    The Dark Hunter

    Binh nhất

    • Thuật toán so sánh chuỗi sai lệch năm 2024
    • Thành viên mới
    • Thuật toán so sánh chuỗi sai lệch năm 2024
    • 20 Bài viết
      Lỗi ở đây là không đọc được file. Dạo này đang chán và mệt nên nhác nghĩ, mình cho bạn coi cái code của mình về bài này hồi ôn.Nhưng chưa chuẩn xác lắm đâu nhưng nhìn đơn giản hơn nhiều.Bạn có gắng tự xử nhé, lúc nào rảnh thì mình làm cho :]

    Code:

    program chuoi_gan_dung;

    uses crt;

    var a,b:array[1..100] of string;

    s,st:string;

    i,n,m,k,p,l,j:integer;

    begin

    clrscr;

    write('Nhap so % :');readln(m);

    write('Nhap xau goc :');readln(s);

    write('Nhap so xau can xac dinh :');readln(n);

    p:=0;

    for i:=1 to n do

    begin

    write('nhap xau a[',i,']=');readln(a[i]);

    st:=a[i];

    l:=1;

    j:=1;

    k:=0;

    while (l<=length(s))and(j<=length(st)) do

    if s[l]=st[j] then

    begin

    l:=l+1;

    j:=j+1;

    end else

    begin

    j:=j+1;

    k:=k+1;

    end;

    if (k/length(st))*100<=m then

    begin

    p:=p+1;

    b[p]:=st;

    end;

    end;

    for i:=1 to p do

    writeln(b[i]);

    readln

    end.

    P/s: Bạn sửa lại nội dung ví dụ nhé .Thân !

    thuật toán dễ hiểu đấy

    Đức HD Trần:

    Thuật toán so sánh chuỗi sai lệch năm 2024
    Thuật toán so sánh chuỗi sai lệch năm 2024
    Thuật toán so sánh chuỗi sai lệch năm 2024

    AK36 Trường THPT Quang Trung tỉnh Hải Dương


    Đã gửi 14-08-2016 - 12:24

    NTL2k1

    Hạ sĩ

    • Thuật toán so sánh chuỗi sai lệch năm 2024
    • Thành viên
    • Thuật toán so sánh chuỗi sai lệch năm 2024
    • 99 Bài viết
      thuật toán mình làm dc rồi nhưng ko biết phải thao tác với file thế nào thôi

    uses crt;

    var n:integer;s1,s2:string;

    function sai_so(s1,s2:string):integer;

    var a:string;k1,k2,i,b,c,S,H:integer;

    begin

    k1:=length(s1);

    k2:=length(s2);

    S:=0;a:=s2;

    for i:=1 to k1 do

    begin

    c:=pos(s1[i],a);

    b:=k2-length(a)+c;

    if c>0 then

    begin

    S:=S+c-1;

    a:=copy(s2,b+1,k2-b);

    end

    else

    begin

    S:=0;break;

    end;

    end;

    H:=trunc(S/k2*100);

    sai_so:=H;

    end;

    begin

    clrscr;

    write('nhap xau:');readln(s1);

    write('nhap xau can kiem tra:');readln(s2);

    write('% sai so:');readln(n);

    if sai_so(s1,s2)<n then writeln('ok')

    else writeln(':(');

    readln

    end.

    Nhận xét:

    - Các TH khác thì không biết thế nào nhưng nếu nhập từ kiểm tra là "misspelled" và từ gốc là "mispeld" , sai số là 30. Thì kết quả ra là sai !