Cho một dãy số nguyên lấy ra từ tệp ‘SN.dat’ hãy viết chương trình pascal tìm đoạn dài nhất các phần tử liên tiếp tạo thành một dãy không giảm. Ví dụ:

Cho một dãy số nguyên lấy ra từ tệp ‘SN.dat’ hãy viết chương trình pascal tìm đoạn dài nhất các phần tử liên tiếp tạo thành một dãy không giảm.
Ví dụ: Cho tệp ‘SN.dat’ gồm dãy số:
1 2 3 2 3 4 4 5 6 7 2 4 5 8 5 6 8 9
Kết quả: Đoạn dài nhất các phần tử liên tiếp tạo thành một dãy không giảm
2 3 4 4 5 6 7

0 bình luận về “Cho một dãy số nguyên lấy ra từ tệp ‘SN.dat’ hãy viết chương trình pascal tìm đoạn dài nhất các phần tử liên tiếp tạo thành một dãy không giảm. Ví dụ:”

  1. const fi=’SN.dat’;
    var n,j,i,dau,cuoi,d,max:longint;
        a:array[0..100000000]of longint;
        f:text;
    begin
            assign(f,fi); reset(f);
            i:=1;
            while not eof(f) do begin
                    read(f,a[i]);inc(i);
            end;
            close(f);
            n:=i-1; i:=1; max:=0;
            while i<n do
                    begin
                            j:=i; d:=1;
                            while (a[j]<=a[j+1]) and (j<n) do begin
                                    inc(d); inc(j);
                            end;
                            if d>max then begin
                                    dau:=i; cuoi:=j; max:=d;
                            end;
                            i:=j+1;
                    end;
            for i:=dau to cuoi do 
                    write(a[i],’ ‘);
            readln;
    end.

    Bình luận

Viết một bình luận