Создайте два новых файла из положительных и отрицательных чисел соответственно - Turbo Pascal
Формулировка задачи:
Помогите, пожалуйста, написать программу. Дан текстовый файл, содержащий вещественные числа. Создайте два новых файла из положительных и отрицательных чисел соответственно. Подсчитать количество компонент в полученных файлах.
Решение задачи: «Создайте два новых файла из положительных и отрицательных чисел соответственно»
textual
Листинг программы
{Дан текстовый файл, содержащий вещественные числа. Создайте два новых файла из положительных и отрицательных чисел соответственно. Подсчитать количество компонент в полученных файлах. } Var f,f1,f2: text; a: real; kp,ko:integer; Begin ko:=0; kp:=0; Assign (f,'f1.txt'); Assign (f1,'1.txt'); Assign (f2,'2.txt'); Reset (f); Rewrite (f1); Rewrite (f2); While not EoF (f) do begin Read(f,a); If a>0 then begin Write (f1,a,' '); inc(kp); end else if a<0 then begin write (f2,a,' '); inc(ko); end; end; Close(f1); Close(f2); Close(f); WriteLn('Количество отрицательных компонентов: ',ko); WriteLn('Количество положительных компонентов: ',kp); readln; end.
Объяснение кода листинга программы
- Создаются три переменные типа text: f, f1 и f2, которые будут использоваться для работы с файлами.
- Создаются две переменные типа integer: kp и ko, которые будут использоваться для подсчета количества положительных и отрицательных чисел соответственно.
- Задаются два файла: f, который будет использоваться для чтения исходного текстового файла, и f1 и f2, которые будут использоваться для записи двух новых файлов из положительных и отрицательных чисел соответственно.
- Выполняется перенаправление файлов с помощью функции Assign.
- Сбрасывается буфер в файле f с помощью функции Rewrite.
- Запускается цикл While, который будет выполняться до тех пор, пока не будет достигнут конец файла (EoF).
- Внутри цикла происходит чтение числа из файла f и его запись в файл f1 или f2 в зависимости от знака числа.
- После каждой записи увеличивается значение соответствующей переменной kp или ko.
- По завершении цикла закрываются файлы f1 и f2 с помощью функции Close.
- Выводится количество отрицательных и положительных компонентов в полученных файлах с помощью функции WriteLn.
- Вызывается функция readln для чтения пользовательского ввода.