Записать в конец файла среднее арифметическое его чисел - Turbo Pascal
Формулировка задачи:
Дан текстовый файл, с последовательностью вещественных чисел. Записать в конец фала среднее арифметическое
помогите решить
Решение задачи: «Записать в конец файла среднее арифметическое его чисел»
textual
Листинг программы
uses crt; var f:text; nf:string; a,s:real; k:integer; begin clrscr; write('Имя файла для чтения: '); readln(nf);{вводим без расширения, например input} nf:=nf+'.txt'; assign(f,nf); {$I-} reset(f); {$I+} if IOResult <> 0 then begin writeLn('Файл ',nf,' не найден!'); writeLn('Работа программы завершена. Нажмите ENTER'); readln; exit; end; s:=0; k:=0; while not eof(f) do begin read(f,a); k:=k+1; s:=s+a end; close(f); s:=s/k; append(f); writeln(f); write(f,'Sr.arifm.=',s:0:2); close(f); write('Результат дописан в файл ',nf); readln end.
Объяснение кода листинга программы
- Создаётся переменная
f
типаtext
, которая будет использоваться для чтения и записи в файл. - Создаётся переменная
nf
типаstring
, в которую будет записываться имя файла для чтения. - Создаются переменные
a
,s
иk
типаreal
иinteger
соответственно, которые будут использоваться для хранения чисел из файла и подсчёта их количества. - Выполняется инициализация переменной
f
с помощью функцииassign(f,nf)
. - Выполняется проверка на успешность инициализации переменной
f
с помощью оператораif
. Если процесс инициализации не удался, выводится сообщение об ошибке и работа программы завершается. - Инициализируется счётчик
k
равным 0. - Инициализируется счётчик
s
равным 0. - Запускается цикл
while not eof(f)
do`, который будет выполняться до тех пор, пока не будет достигнут конец файла. - Внутри цикла выполняется чтение числа из файла в переменную
a
с помощью функцииread(f,a)
. - Счётчик
k
увеличивается на 1. - Переменная
s
увеличивается на сумму прочитанного числа и текущего значения счётчикаk
. - После завершения цикла выполняется закрытие файла
f
с помощью функцииclose(f)
. - Вычисляется среднее арифметическое чисел в файле, для чего переменная
s
делится на счётчикk
. - Выполняется запись результата в конец файла с помощью функции
append(f)
. - Выполняется запись сообщения в конец файла с помощью функции
write(f,str)
. - Выполняется закрытие файла с помощью функции
close(f)
. - Выводится сообщение о том, что результат дописан в файл с именем
nf
. - Выполняется ожидание ввода пользователя с помощью функции
readln
. - Программа завершается.