Файлы - Pascal ABC (12703)

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

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

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

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

textual
Листинг программы
  1. var f:file of integer;
  2.     n,i,j,k,a,b:integer;
  3. begin
  4. randomize;
  5. assign(f,'file');
  6. rewrite(f);
  7. write('Сколько чисел записать в файл? n=');
  8. readln(n);
  9. for i:=1 to n do
  10.  begin
  11.   a:=random(50);
  12.   write(f,a);
  13.  end;
  14. writeln('Содержание исходного файла:');
  15. reset(f);
  16. while not eof(f) do
  17.  begin
  18.   read(f,a);
  19.   write(a:4);
  20.  end;
  21. writeln;
  22. {будем удалять с четными номерами, это элементы с нечетными индексами}
  23. reset(f);
  24. i:=1; {начнем с номера 2, индекс=1}
  25. seek(f,i);
  26. while i<filesize(f) do{идем до конца файла}
  27.  begin
  28.   for j:=i to filesize(f)-2 do{от этого элемента до предпоследнего}
  29.    begin
  30.     seek(f,j+1);{читаем на 1 впереди}
  31.     read(f,a);
  32.     seek(f,j); {вставляем его на место предыдущего}
  33.     write(f,a);
  34.    end;
  35.   seek(f,filesize(f)-1);{встаем на последний элемент и обрезаем файл}
  36.   truncate(f);
  37.   i:=i+1;{следующий элемент будет с начальным четным номером}
  38.  end;
  39. writeln('Удаление элементов с четными номерами');
  40. reset(f);
  41. while not eof(f) do
  42.  begin
  43.   read(f,a);
  44.   write(a:4);
  45.  end;
  46. close(f);
  47. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут