Файлы последовательного доступа - Pascal ABC
Формулировка задачи:
Сформировать файл из значений случайных величин:
0,32;0,524;0,789;0,556;0,761;0,248;0,345;0,911;0,216
Определить для данной последовательности среднее ариф. компонентов, значения которых меньше 0,5
Заранее спасибо!
Либо,если всю программу сделать трудно, то только код для второй части задания..Спасибо
Решение задачи: «Файлы последовательного доступа»
textual
Листинг программы
var f:text;
a,s:real;
n,i,k:integer;
begin
write('Сколько чисел записать в файл n=');
readln(n);
assign(f,'111.txt');
rewrite(f);
for i:=1 to n do
begin
a:=random;
write(f,a:6:2);
end;
close(f);
reset(f);
k:=0;
s:=0;
while not seekeof(f) do
begin
read(f,a);
if a<0.5 then
begin
s:=s+a;
k:=k+1;
end;
end;
close(f);
if k=0 then write('В файле нет чисел меньше 0.5')
else write('Среднее арифметическое чисел меньше 0.5=',s/k:0:2);
end.
Объяснение кода листинга программы
- Создается переменная
fтипаtext, которая будет использоваться для работы с файлами. - Создаются три переменные
a,sиnтипаreal, которые будут использоваться для генерации случайных чисел и подсчета суммы. - Создаются три переменные
i,nиkтипаinteger, которые будут использоваться для работы с индексами и подсчетом чисел. - Выводится запрос на ввод количества чисел, которые нужно записать в файл.
- Задается имя файла
fи происходит перезапись содержимого файла. - Запускается цикл
for, который будет выполняться столько раз, сколько указано в переменнойn. - Внутри цикла генерируется случайное число
aи записывается в файлf. - После завершения цикла
forзакрывается файлf. - Сбрасывается счетчик
kиsв ноль. - Задается условие
while not seekeof(f)для повторного чтения содержимого файла до тех пор, пока файл не будет полностью прочитан. - Внутри условия читается число
aиз файлаf. - Проверяется условие
if a<0.5и если оно истинно, то суммируется числоaсо значением счетчикаsи увеличивается значение счетчикаk. - После завершения условия
whileзакрывается файлf. - Выводится сообщение о том, есть ли числа меньше 0.5 в файле или нет.
- Если значение счетчика
kравно нулю, выводится сообщение о том, что в файле нет чисел меньше 0.5. - Если значение счетчика
kне равно нулю, выводится среднее арифметическое чисел меньше 0.5.