Записать в новый файл все элементы данного в обратном порядке и найти сумму всех отрицательных компонентов - Turbo Pascal
Формулировка задачи:
Пожалуйста,помогите,срочно надо сдать((
Дан файл вещественных чисел. Записать в новый файл все элементы данного в обратном порядке и найти сумму всех отрицательных компонентов.
Решение задачи: «Записать в новый файл все элементы данного в обратном порядке и найти сумму всех отрицательных компонентов»
textual
Листинг программы
var f, g: file of double; i: longword; n: longint; x, s: double; begin randomize; repeat write('File size = '); readln(n) until n > 0; assign(f, 'src.dat'); rewrite(f); writeln('Source file:'); for i := 1 to n do begin x := -99 + 199 * random; write(x:8:3); write(f, x) end; writeln; assign(g, 'dst.dat'); rewrite(g); s := 0; writeln('Destination file:'); for i := filesize(f) - 1 downto 0 do begin seek(f, i); read(f, x); if x < 0 then s := s + x; write(x:8:3); write(g, x) end; writeln; if s = 0 then write('Negative elements not found.') else write('Sum of negative elements = ', s:0:3); close(f); close(g); readln end.
Объяснение кода листинга программы
- Создаются две переменные типа file of double: f и g. Они будут использоваться для чтения и записи данных в файлы.
- Создается переменная i типа longword. Она будет использоваться для чтения размеров файлов.
- Создается переменная n типа longint. Она будет использоваться для определения количества элементов в файле.
- Создаются две переменные x и s типа double. Они будут использоваться для хранения чисел из файла и суммы отрицательных чисел соответственно.
- Используется функция randomize для инициализации генератора случайных чисел.
- Запускается цикл repeat, который продолжается до тех пор, пока n > 0. В каждой итерации цикла выводится сообщение о размере файла.
- Задается имя файла 'src.dat' и происходит его перезапись.
- Задается имя файла 'dst.dat' и происходит его перезапись.
- Инициализируется переменная s со значением 0. Она будет использоваться для подсчета суммы отрицательных чисел.
- Запускается цикл for, который начинается с i = 1 и продолжается до i = filesize(f) — 1 (используется функция filesize для определения размера файла).
- Внутри цикла происходит чтение числа x из файла 'f' и запись числа x в файл 'g'. Если число x отрицательное, то к переменной s прибавляется его значение.
- После завершения цикла выводится сообщение о том, что отрицательные числа не найдены, или выводится сумма отрицательных чисел.
- Закрываются файлы 'f' и 'g' с помощью функции close.
- Выводится сообщение 'Read from file successfully', если все прошло успешно.
- Программа завершается с помощью функции readln.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д