Нельзя преобразовать Real к integer проверил раз 10 , не могу найти ошибку!!!
Program Lol;
Const N=20;
Var A:array [1..N] of real;
S:real;
i:integer;
begin
S:=0;
for i:=1 to 10 do
begin
A[i]:=10*Random-1*(-1);
if A[i] mod 5 <>0 then S:=S+A[i];
writeln('A[',i,']=',A[i]:1:2);
end;
writeln('S=',S:1:2);
end.

25 Ноя 2019 в 19:57
184 +1
0
Ответы
1

Вы пытаетесь найти остаток от деления вещественного числа на целое число, что невозможно. Оператор mod работает только с целыми числами. Если вы хотите проверить, делится ли число A[i] на 5 без остатка, вам нужно сначала преобразовать его в целое число. Например, вы можете использовать функцию Round для округления числа до ближайшего целого:

if Round(A[i]) mod 5 <> 0 then S := S + A[i];

Попробуйте это и убедитесь, что остальная часть кода правильная. Надеюсь, это поможет!

19 Апр в 00:49
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 706 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир