Файлы - 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.
Объяснение кода листинга программы
- Создание переменной
f
типаfile of integer
для работы с файлом целых чисел. - Задание начального значения переменной
n
равным 10. - Вызов функции
randomize
для инициализации генератора случайных чисел. - Вызов функции
assign(f,'file')
для присвоения имени файлу. - Вызов функции
rewrite(f)
для очистки содержимого файла. - Вызов функции
write('Сколько чисел записать в файл? n=')
для получения от пользователя количества чисел, которые нужно записать в файл. - Цикл
for i:=1 to n do
для записи в файлn
случайных чисел от 0 до 50. - Внутри цикла присваивание переменной
a
случайного числа от 0 до 50. - Вызов функции
write(f,a)
для записи числаa
в файл. - Вызов функции
writeln('Содержание исходного файла:')
для вывода содержимого файла до текущего момента. - Вызов функции
reset(f)
для сброса файла перед чтением. - Вызов функции
while not eof(f)
для чтения содержимого файла до конца. - Чтение числа
a
из файла с помощью функцииread(f,a)
. - Вызов функции
seek(f,i)
для перемещения файла к нужному индексу. - Чтение числа
a
из файла с помощью функцииread(f,a)
. - Вызов функции
write(f,a)
для записи числаa
в файл. - Вызов функции
seek(f,i+1)
для перемещения файла к следующему элементу. - Повторение шагов 13-16 до тех пор, пока не достигнут конец файла.
- Вызов функции
truncate(f)
для обрезки файла после последнего элемента. - Увеличение значения переменной
i
на 1 для перехода к следующему элементу с четным номером. - Вызов функции
writeln('Удаление элементов с четными номерами')
для вывода информации о процессе удаления элементов с четными номерами. - Сброс файла перед чтением содержимого.
- Чтение числа
a
из файла с помощью функцииread(f,a)
. - Вызов функции
write(a:4)
для записи числаa
в файл в формате четырехзначного числа. - Закрытие файла с помощью функции
close(f)
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д