Pascal, не понимаю, почему компилятор выдает ошибку текст задачи в принципе не нужен, а программа вот:
var k,i,f,a,n,b:real;
begin
readln(n);
k:=0;
a:=0;
repeat
b:=n div 10;
a:=a+1;
until b=0;
a:=power(10,a);
for i:=1 to n-1 do begin
a:=a/10;
f:=n mod a;
if (f/i)=0 then k:=k+1;
end;
if k=0 then writeln ('простое')else writeln('net');
end.
компилятор выдает ошибку "нельзя преобразовать тип real в integer" в строке b:=n div 10;
ЧТО С НЕЙ НЕ ТАК АААААААА спасибо

28 Сен 2019 в 19:44
173 +1
0
Ответы
1

Проблема заключается в том, что операторы деления и взятия остатка от деления (/ и mod) применяются только к целым числам, а не к вещественным. Поэтому в данном случае вам нужно использовать целочисленное деление (div) и целочисленный остаток от деления (mod).

Измените строку:

b:=n div 10;

на:

b:=Trunc(n / 10);

Trunc() - это функция, которая округляет вещественное число до ближайшего целого. В данном случае она приведет результат деления n на 10 к целому числу.

После этого ваш код должен скомпилироваться без ошибок.

19 Апр 2024 в 19:02
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир