[100баллов]:PASCAL:
Создать файл F целого типа. Вычислить сумму четных компонент файла. Увеличить на значение суммы отрицательные компоненты второй половины файла, после этого из файла F удалить минимальную компоненту. Исходный и файл после замены распечатать.

14 Мар 2020 в 19:49
155 +1
0
Ответы
1

program SumAndModify;

var
F: file of integer;
num, sum, min, count, i: integer;

begin
Assign(F, 'file.txt');
Rewrite(F);

// Вводим числа в файл
writeln('Введите числа (для окончания введите 0): ');
repeat
readln(num);
if num <> 0 then
write(F, num);
until num = 0;

Close(F);

// Вычисляем сумму четных компонент файла
sum := 0;
Reset(F);
while not EOF(F) do
begin
read(F, num);
if num mod 2 = 0 then
sum := sum + num;
end;

writeln('Сумма четных компонентов файла F: ', sum);

// Увеличиваем на значение суммы отрицательные компоненты второй половины файла
Reset(F);
Seek(F, FileSize(F) div 2);
while not EOF(F) do
begin
read(F, num);
if num < 0 then
begin
num := num + sum;
Seek(F, FilePos(F) - 1);
write(F, num);
end;
end;

// Находим минимальную компоненту и удаляем
Reset(F);
min := MaxInt;
count := 0;
while not EOF(F) do
begin
read(F, num);
if num < min then
begin
min := num;
count := FilePos(F);
end;
end;

Reset(F);
Seek(F, count-1);
for i := count to FileSize(F) do
begin
Seek(F, i);
read(F, num);
Seek(F, i-1);
write(F, num);
end;
Truncate(F);

// Выводим исходный и измененный файл
Reset(F);
writeln('Исходный файл F:');
while not EOF(F) do
begin
read(F, num);
write(num, ' ');
end;

Close(F);
end.

18 Апр 2024 в 16:13
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир