Предмет: Информатика,
автор: MAKRONMAN
Где ошибка!!!!!
var b,N:integer;
var d:integer;
var g,h:real;
begin
readln(N);
b:=0;
for d:=1 to N do
begin
h:=d;
if sqrt(h) mod 1 =0
then b:=b+1;
end;
write(' ',b);
end.
Ответы
Автор ответа:
1
Ответ:
Объяснение:
ошибка тут
if sqrt(h) mod 1 =0
оператор mod - возвращает остаток от деления (a mod b), причём a,b - целые.
В Вашем случае sqrt(h) - вернёт не целое число, а вещественное. Поэтому возникает ошибка совместимости типов
если нужно узнать целое ли число получается после корня, можно так
a:=sqrt(h)
a-trunc(a)
тут находим разницу между числом а и целой частью числа а.
Интересные вопросы
Предмет: Английский язык,
автор: annIvanova67
Предмет: Английский язык,
автор: aaaaas44
Предмет: Окружающий мир,
автор: паха49
Предмет: Қазақ тiлi,
автор: bantysh
Предмет: Алгебра,
автор: parkjiminmochiiui