VĂN NGHỆ 20-11

liên kết nhanh

Múa Ánh Trăng Tình Bạn

clip chống cúm H1N1 HS k12

Video Clip Hội Trại 26 - 03 - 2009

Thành viên trực tuyến

1 khách và 0 thành viên

ĐỌC BÁO

Tài nguyên dạy học

Thống kê

  • truy cập   (chi tiết)
    trong hôm nay
  • lượt xem
    trong hôm nay
  • thành viên
  • Sắp xếp dữ liệu

    MỘT SỐ HOẠT ĐỘNG THPT CHE GUEVARA TỪ XƯA TỚI NAY

    THPT Che Guevara Picnic 2010

    Gốc > GÓC HỌC TẬP > Pascal và C >

    Bài tập Pascal mới:

    Cho một dãy số nguyên lấy ra từ tệp ‘SN.dat’ hãy viết chương trình 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.

    VD cho dãy:  1 2 3 2 3 4 4 5 6 7 2 4 5 8 5 6 8 9

    đoạn dài nhất là: 2 3 4 4 5 6 7


    Nhắn tin cho tác giả
    Trần Lâm Ngân @ 12:00 08/04/2009
    Số lượt xem: 977
    Số lượt thích: 0 người
    No_avatar

    Đây là bài làm của em.

    uses crt;
    var  f1,f2:text;
          a,b,c: array[1..100] of integer;
          i,j,count,n,k,maxnum,maxpos:integer;
    procedure input;
         begin
         assign(f1,'d:\data.in'); reset(f1);
         assign(f2,'d:\data.out'); rewrite(f2);
         i:=1;
         while not(eof(F1)) do
             begin
             read(f1,a[i]);
             i:=i+1;
             end;
          n:=i-1;
         end;
    procedure analyze;
         begin
           for i:=1 to n do
              begin
              k:=i;
              count:=1;
              while  (a[k+1]>=a[k]) and (k+1<n) do
                    begin
                    count:=count+1;
                    k:=k+1; 
                    end;
              b[i]:=count;
          end;
          maxnum:=b[1];
          maxpos:=1;
          for i:=2 to n do
             if b[i]>maxnum then
                begin  
                maxnum:=b[i];
                maxpos:=i;
                end;
          end;
    procedure output;
         begin
         for i:=maxpos to maxpos+maxnum-1 do write(f2,a[i],' ');
         close(f2);
         end;
    begin
        input;  
        analyze;
        output;
    end.

    No_avatar

    Giải thuật

    - input: dữ liệu từ file data.in nhập vào mảng a; đếm số phần tử gán biến n;

    -anlyze: xử lí:

       +Chạy lần lượt từ giá trị đầu mảng a đến n xét xem nếu phần tử đứng sau lớn hơn phần tử đứng trước thì đếm bằng biến count; rồi gán giá trị đếm count tương ứng vào mảng b;

       + Tìm giá trị lớn nhất trong mảng b(maxnum) và vị trí tương ứng (maxpos);

    - output:ghi file bắt đầu ghi maxnum-1 giá trị từ vị trí đầu maxpos.

    No_avatar
    Thầy ơi, cái form này khó nhập quá, sao bấm tab không được mà phải bấm space cả buổi. Thầy sửa nó chút cho dễ đăng chút. Làm như caulacbovb.com thì càng hay!
    Avatar
    Gõ ở ngoài rồi copy vào!
    Avatar

    Thông báo: Vừa khai trương vài mục dành cho Học sinh

     
    Gửi ý kiến

    Đăng ký ngay để nhận quà