Advertisement
Domerk

Типизированные файлы 1

Oct 14th, 2011
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 2.32 KB | None | 0 0
  1. {Задание: сформировать типизированный файл, записать в него 10 случайных чисел, найти среди них наибольшее и наименьшее, поменять их местами и удалить все числа, идущие после наибольшего. Узнать новый размер файла. Массивы и строки не использовать}
  2.  
  3. program chisl;
  4. uses crt;
  5.  
  6. const n=10;
  7. var
  8. f: file of integer; {Файл объявляется как содержащий целые числа}
  9. a1, i, max, min, size, nmax, nmin: integer; {Переменные max и min служат для хранения наибольшего и наименьшего числе соответственно, nmax и nmin - переменные, хранящие номера максимального и минимального чисел в файле}
  10.  
  11. begin
  12.  
  13. clrscr;
  14. assign (f, 'File.int'); {Создание файла и установление связи с ним}
  15. rewrite (f); {Подготовка файла к записи}
  16. randomize; {Объявление генератора свободных чисел}
  17.  
  18. for i:=1 to n do begin
  19. a1:=Random(100);
  20. write (f, a1);
  21. end;
  22.  
  23. reset (f);
  24.  
  25. for i:=1 to n do begin
  26. read (f, a1);
  27. writeln (a1);
  28. end;
  29.  
  30. reset (f);
  31. max:=-1; {Так как числа в файле могут принимать значения от 0 до 100, для поиска максимального используем число, которое будет точно меньше}
  32. min:=101; {С минимальным числом соответственно наоборот}
  33.  
  34. while not eof (f) do begin
  35. read (f, a1);
  36.    if a1>max then begin
  37.    max:=a1;
  38.    nmax:=filepos(f);
  39.    end;
  40.    if a1<min then begin
  41.    min:=a1;
  42.    nmin:=filepos(f);
  43.    end;
  44. end;
  45.  
  46. writeln ('max=', max, ' nmax=', nmax);
  47. writeln ('min=', min, ' nmin=', nmin);
  48.  
  49. seek (f, nmax-1);
  50. write (f, max);
  51.  
  52. seek (f, nmin-1);
  53. write (f, max);
  54.  
  55. reset (f);
  56.  
  57. for i:=1 to n do begin
  58. read (f, a1);
  59. writeln (a1);
  60. end;
  61.  
  62. seek (f, nmin);
  63. truncate (f);
  64.  
  65. size:=filesize (f);
  66. writeln ('Size of File: ', size);
  67.  
  68. reset (f);
  69.  
  70. while not eof(f) do
  71. begin
  72. read (f, a1);
  73. writeln (a1);
  74. end;
  75.  
  76. close (f);
  77. readln;
  78. clrscr;
  79.  
  80. end.
  81.  
  82.  
  83.  
  84.  
  85.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement