Найти количество квадратов нечетных чисел среди компонент файла - PascalABC.NET (25405)
Формулировка задачи:
Дан файл f, компоненты которого являются целыми числами. Найти количество квадратов нечетных чисел среди компонент
Решение задачи: «Найти количество квадратов нечетных чисел среди компонент файла»
textual
Листинг программы
var
f:file of integer;
i,k,j:integer;
begin
randomize;
assign(f,'int.dat');
{ rewrite(f);//генерация файла
for i:=1 to 20 do write(f,sqr(random(100)));
close(f);}
reset(f);
writeln('Содержимое файла:');
k:=0;
while not eof(f) do begin
read(f,i);
write(i,' ');
j:=Trunc(sqrt(i));
if (j*j=i) and (odd (j)) then k:=k+1;
end;
writeln;
writeln('Количество квадратов нечетных чисел:',k);
close(f);
end.
Объяснение кода листинга программы
- Импортируется пространство имен System.IO
- Создаются три переменные типа integer i, k, j
- Импортируется функция random из пространства имен System.Random
- Создается файл с именем
int.datс помощью функции assign - Заголовок цикла while, который выполняется до тех пор, пока не достигнут конец файла
- Внутри цикла while считывается число из файла в переменную i
- Число выводится на экран с помощью функции write
- Вычисляется квадратный корень из числа i с помощью функции Trunc
- Проверяется, является ли квадрат корня из i равным i и является ли i нечетным числом
- Если условие выполняется, то значение переменной k увеличивается на 1
- После окончания цикла while выводится на экран количество найденных квадратов нечетных чисел с помощью функции writeln
- Закрывается файл с помощью функции close