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

14 Мар 2020 в 19:49
139 +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
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 96 340 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир