Нельзя преобразовать 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.
Вы пытаетесь найти остаток от деления вещественного числа на целое число, что невозможно. Оператор mod работает только с целыми числами. Если вы хотите проверить, делится ли число A[i] на 5 без остатка, вам нужно сначала преобразовать его в целое число. Например, вы можете использовать функцию Round для округления числа до ближайшего целого:
if Round(A[i]) mod 5 <> 0 then S := S + A[i];
Попробуйте это и убедитесь, что остальная часть кода правильная. Надеюсь, это поможет!
Вы пытаетесь найти остаток от деления вещественного числа на целое число, что невозможно. Оператор mod работает только с целыми числами. Если вы хотите проверить, делится ли число A[i] на 5 без остатка, вам нужно сначала преобразовать его в целое число. Например, вы можете использовать функцию Round для округления числа до ближайшего целого:
if Round(A[i]) mod 5 <> 0 then S := S + A[i];
Попробуйте это и убедитесь, что остальная часть кода правильная. Надеюсь, это поможет!