Дан файл f, компоненты которого являются целыми числами - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Дан файл f, компоненты которого являются целыми числами. Никакая из компонент не равна нулю. Числа в файле идут в следующем порядке: десять положительных, десять отрицательных и т.д. Переписать компоненты файла f в файл g в следующем порядке: пять положительных, пять отрицательных и т.д.

Решение задачи: «Дан файл f, компоненты которого являются целыми числами»

textual
Листинг программы
const r=20;
var f,g:file of integer;
    n,i,j,a,k,p:integer;
begin
randomize;
assign(f,'filef');
rewrite(f);
assign(g,'fileg');
rewrite(g);
repeat
write('Сколько пар десятков чисел записать в файл? n=');
readln(n);
until n>1;
for i:=1 to n do
 begin
  for j:=1 to 10 do
   begin
    a:=random(20)+1;
    write(f,a);
   end;
  for j:=1 to 10 do
   begin
    a:=-random(20)-1;
    write(f,a);
   end;
 end;
seek(f,0);
writeln('Файл F:');
i:=0;
while not eof(f) do
 begin
  read(f,a);
  i:=i+1;
  write(a:4);
  if i mod 10=0 then writeln;
 end;
writeln;
writeln;
seek(f,0);
for i:=1 to n do
 begin
  k:=r*(i-1);
  seek(f,k);
  for j:=k to k+4 do
   begin
    seek(f,j);
    read(f,a);
    write(g,a);
   end;
  for j:=k+10 to k+14 do
   begin
    seek(f,j);
    read(f,a);
    write(g,a);
   end;
  for j:=k+5 to k+9 do
   begin
    seek(f,j);
    read(f,a);
    write(g,a);
   end;
  for j:=k+15 to k+19 do
   begin
    seek(f,j);
    read(f,a);
    write(g,a);
   end;
 end;
close(f);
seek(g,0);
writeln('Файл G:');
i:=0;
while not eof(g) do
 begin
  read(g,a);
  i:=i+1;
  write(a:4);
  if i mod 10=0 then writeln;
 end;
close(g);
end.

Объяснение кода листинга программы

  1. Объявлены переменные: n, i, j, a, k, p (целые числа)
  2. Задается значение переменной n (количество пар десятков чисел для записи в файл)
  3. Создаются файлы f и g для записи и чтения чисел
  4. В цикле записываются в файл f 10 случайных чисел, затем 10 отрицательных случайных чисел
  5. В цикле считываются числа из файла f и выводятся на экран с шагом 4
  6. Закрывается файл f
  7. В цикле считываются числа из файла g и выводятся на экран с шагом 4
  8. Закрывается файл g
  9. Код завершается

Оцени полезность:

11   голосов , оценка 4.091 из 5
Похожие ответы