Консультация № 194933
11.03.2019, 17:34
0.00 руб.
0 2 1
Здравствуйте! У меня возникли сложности с таким вопросом:Программа Pascal ABC
Дан файл целых чисел, не равных нулю. Число отрицательных компонент равно числу положительных. Используя вспомогательный файл, создать новый файл, чтобы не было двух соседних чисел с одним знаком.

Обсуждение

давно
Профессор
401888
1232
11.03.2019, 17:39
общий
Возник такой вопрос, это задание на типизированные файлы, или текстовые?
давно
Профессор
401888
1232
11.03.2019, 19:37
общий
11.03.2019, 19:47
это ответ
Здравствуйте, tanya.hryanina!
Создадим в блокноте исходный текстовый файл fileF.txt в который запишем равное количество положительных и отрицательных чисел через пробелы.
Типа такого
20 15 5 6 21 25 -9 -8 -10 -15 -17 -25
[code lang=pascal]var f,g,h:text;
a:integer;
begin
assign(f,'fileF.txt'); //файл в папке с программой
reset(f);
assign(g,'fileG.txt'); //создаем новый файл
rewrite(g);
assign(h,'fileH.txt');//создаем вспомогательный файл
rewrite(h);
while not seekeof(f) do //читаем файл F первый раз
begin
read(f,a);
if a>0 then write(h,' ',a)//пишем в вспомогательный файл положительные числа
end;
reset(f);
reset(h);
while not seekeof(f) do //читаем файл F второй раз
begin
read(f,a);
if a<0 then//если отрицательное
begin
write(g,' ',a);//пишем в новый файл
read(h,a); //читаем число из вспомогательного файла
write(g,' ',a);//пишем в новый файл
end;
end;
close(f);
close(g);
close(h);
erase(h);//уничтожим вспомогательный файл
write('Файл fileF.txt переписан в файл filG');
end.[/code]
5
Форма ответа