Файлы - Pascal ABC (12703)

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

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

Дан файл целых чисел.Удалить из него элементы с четным номером.

Решение задачи: «Файлы»

textual
Листинг программы
var f:file of integer;
    n,i,j,k,a,b:integer;
begin
randomize;
assign(f,'file');
rewrite(f);
write('Сколько чисел записать в файл? n=');
readln(n);
for i:=1 to n do
 begin
  a:=random(50);
  write(f,a);
 end;
writeln('Содержание исходного файла:');
reset(f);
while not eof(f) do
 begin
  read(f,a);
  write(a:4);
 end;
writeln;
{будем удалять с четными номерами, это элементы с нечетными индексами}
reset(f);
i:=1; {начнем с номера 2, индекс=1}
seek(f,i);
while i<filesize(f) do{идем до конца файла}
 begin
  for j:=i to filesize(f)-2 do{от этого элемента до предпоследнего}
   begin
    seek(f,j+1);{читаем на 1 впереди}
    read(f,a);
    seek(f,j); {вставляем его на место предыдущего}
    write(f,a);
   end;
  seek(f,filesize(f)-1);{встаем на последний элемент и обрезаем файл}
  truncate(f);
  i:=i+1;{следующий элемент будет с начальным четным номером}
 end;
writeln('Удаление элементов с четными номерами');
reset(f);
while not eof(f) do
 begin
  read(f,a);
  write(a:4);
 end;
close(f);
end.

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

  1. Создание переменной f типа file of integer для работы с файлом целых чисел.
  2. Задание начального значения переменной n равным 10.
  3. Вызов функции randomize для инициализации генератора случайных чисел.
  4. Вызов функции assign(f,'file') для присвоения имени файлу.
  5. Вызов функции rewrite(f) для очистки содержимого файла.
  6. Вызов функции write('Сколько чисел записать в файл? n=') для получения от пользователя количества чисел, которые нужно записать в файл.
  7. Цикл for i:=1 to n do для записи в файл n случайных чисел от 0 до 50.
  8. Внутри цикла присваивание переменной a случайного числа от 0 до 50.
  9. Вызов функции write(f,a) для записи числа a в файл.
  10. Вызов функции writeln('Содержание исходного файла:') для вывода содержимого файла до текущего момента.
  11. Вызов функции reset(f) для сброса файла перед чтением.
  12. Вызов функции while not eof(f) для чтения содержимого файла до конца.
  13. Чтение числа a из файла с помощью функции read(f,a).
  14. Вызов функции seek(f,i) для перемещения файла к нужному индексу.
  15. Чтение числа a из файла с помощью функции read(f,a).
  16. Вызов функции write(f,a) для записи числа a в файл.
  17. Вызов функции seek(f,i+1) для перемещения файла к следующему элементу.
  18. Повторение шагов 13-16 до тех пор, пока не достигнут конец файла.
  19. Вызов функции truncate(f) для обрезки файла после последнего элемента.
  20. Увеличение значения переменной i на 1 для перехода к следующему элементу с четным номером.
  21. Вызов функции writeln('Удаление элементов с четными номерами') для вывода информации о процессе удаления элементов с четными номерами.
  22. Сброс файла перед чтением содержимого.
  23. Чтение числа a из файла с помощью функции read(f,a).
  24. Вызов функции write(a:4) для записи числа a в файл в формате четырехзначного числа.
  25. Закрытие файла с помощью функции close(f).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

8   голосов , оценка 3.125 из 5