Предмет: Информатика,
автор: 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)
тут находим разницу между числом а и целой частью числа а.
Похожие вопросы
Предмет: Українська література,
автор: Ананасик313
Предмет: Английский язык,
автор: артур080
Предмет: Русский язык,
автор: Кошка22337
Предмет: Математика,
автор: ARTEM20318