- Ebook Giải thuật và lập trình Lê Minh Hoàng
- Các thuật toán sắp xếp trong Pascal

In ra tệp các phần tử xuất hiện trong tệp từ k lần trở lên



Nhập một dãy A (mỗi số chỉ xuất 1 lần) có N (< 40) số tự nhiên và 1 số K. Hãy xuất ra các phần tử có số lần xuất hiện trong dãy A từ K lần trở lên.
Dữ liệu nhập: file DAYSO.INP:
- Dòng 1: 2 số n và k cách nhau bởi 1 dấu cách.
- Dòng 2: dãy A.
Dữ liệu ra: file DAYSO.OUT: Xuất các số thỏa điều kiện trên.


uses crt;
var a,b:array[0..100] of integer;
    n,j,i,k:integer;
    f:text;

Procedure docf;
 begin
  assign(f,'C:\DAYSO.INP');
  reset(f);
  i:=0;
     read(f,n);
     readln(f,k);
     While not eof(f) do
      begin
        inc(i);
        read(f,a[i]);
      end;
      close(f);
  end;

Procedure xuly;
 begin
 assign(f,'C:\DAYSO.OUT');
 rewrite(f);
 FillChar(b,SizeOf(b),0);
   For i:=1 to n do inc(b[a[i]]);
   For i:=1 to n do
        if (b[i]<>0) (b[i]>=k) then
           write(f,i,' ');
  close(f);
end;

BEGIN
 clrscr;
 docf;
 xuly;
 readln 
end.

Chú thích: 
- Hàm Fillchar(x,sizeof(x),i): điền lần lượt các byte của dữ liệu này bằng giá trị byte của i (i được coi là chiếm một byte).
Như vậy, đối với mảng kiểu integer hay longint (cả số cũng vậy), máy sẽ điền lần lượt các byte của dữ liệu:
Fillchar 1=00000001 (1 byte= 8 bit -> phải có đủ 8 chữ số cả 0 và 1).
- Sizeof(x): Trả về kích thước của biến trong bộ nhớ.



Nặc danh nói...

giải thích hộ em đoạn này cách nó hoạt động ntn?
For i:=1 to n do inc(b[a[i]]);
For i:=1 to n do
if (b[i]<>0) (b[i]>=k) then
write(f,i,' ');


21:14 Ngày 02 tháng 04 năm 2016
The Wolf nói...

Mảng b là mảng đánh dấu số lần đó bạn. Vì dụ mảng a số 2 xuất hiện k lần thì cứ đến số 2 nghĩa là b[2] thì nó lại tăng b2 lên 1 đến khi đủ k lần thì n write 2 ra


15:45 Ngày 19 tháng 04 năm 2016
My Kaisould nói...

Đoạn in ra : For i:=1 to n do => SAII


22:19 Ngày 22 tháng 04 năm 2016

Đăng nhận xét

Thành viên Blog

Tổng số lượt xem trang

Translate

Return to top of page Copyright © 2012 | Theme by Hack Tutors. Cung cấp bởi Blogger.
Các code pascal trong blog được sưu tầm, lựa chọn sao cho tối ưu nhất. Cảm ơn các tác giả đã viết thuật toán.