Вставить число 100 после первого числа —100 - Free Pascal
Формулировка задачи:
Имеется файл с целыми числами. Вставить число 100 после первого числа —100. Результат записать в другой файл.
Решение задачи: «Вставить число 100 после первого числа —100»
textual
Листинг программы
uses crt;
var f,g:file of integer;
n,i,k:byte;
a,b:integer;
begin
clrscr;
assign(f,'file1');
rewrite(f);
assign(g,'file2');
rewrite(g);
write('Сколько элементов ввести в файл F n=');
readln(n);
for i:=1 to n do
begin
write('a[',i,']=');
readln(a);
write(f,a);
end;
reset(f);
writeln('Содержание исходного файла:');
k:=0;
while not eof(f) do
begin
read(f,a);
write(a,' ');
write(g,a);
if(a=-100)and(k=0)then
begin
k:=1;
b:=100;
write(g,b)
end;
end;
writeln;
close(f);
reset(g);
writeln('Содержание измененного файла:');
while not eof(g) do
begin
read(g,a);
write(a,' ');
end;
close(g);
readln
end.
Объяснение кода листинга программы
- Объявление переменных:
- f, g: файлы для записи и чтения целых чисел;
- n, i, k: булевые переменные для контроля цикла;
- a, b: переменные для хранения чисел.
- Очистка экрана и открытие файлов:
- clrscr: очистка экрана;
- assign(f, 'file1'): открытие файла 'file1' для записи;
- rewrite(f): очистка файла 'file1';
- assign(g, 'file2'): открытие файла 'file2' для записи;
- rewrite(g): очистка файла 'file2'.
- Ввод данных:
- write('Сколько элементов ввести в файл F n=');
- readln(n): ввод числа в переменную n.
- Цикл для записи чисел в файл 'file1':
- for i:=1 to n do: цикл для записи n чисел;
- write('a[', i, ']=');
- readln(a): ввод числа в переменную a;
- write(f, a): запись числа в файл 'file1'.
- Чтение и запись чисел в файл 'file2':
- reset(f): возврат курсора в начало файла 'file1';
- while not eof(f) do: цикл для чтения всех чисел из файла 'file1';
- read(f, a): чтение числа из файла 'file1' в переменную a;
- write(a, ' '): вывод числа a с пробелом;
- if (a = -100) and (k = 0) then: проверка на первое вхождение числа -100;
- begin: начало блока кода;
- k := 1: установка флага k = 1 при первом вхождении числа -100;
- b := 100: установка значения переменной b равным 100;
- write(g, b): запись числа b в файл 'file2';
- end: конец блока кода;
- write(g, a): запись числа a в файл 'file2'.
- Закрытие файлов:
- close(f): закрытие файла 'file1';
- reset(g): возврат курсора в начало файла 'file2';
- close(g): закрытие файла 'file2'.
- Вывод содержимого файла 'file2':
- while not eof(g) do: цикл для чтения всех чисел из файла 'file2';
- read(g, a): чтение числа из файла 'file2' в переменную a;
- write(a, ' '): вывод числа a с пробелом;
- end: конец цикла.