Предмет: Информатика, автор: Max161161161

Нельзя преобразовать 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.

Ответы

Автор ответа: Maksim2009rus
1
Ошибка заключается в том, что тип объявленного массива А является "real". Числа типа "real" не имеют операцию "остаток от деления на число". (Строчка, где это проверяется в Вашей программе: "if A[i] mod 5 <>0 then S:=S+A[i];")

Max161161161: при изменении на if A[i] mod 5 =0 then S:=S+A[i]; так же ничего не меняется ,но gj lheujve pflfxe yt htibnm
Max161161161: По другому задачу не решить*
Maksim2009rus: Нельзя к A[i] применять mod, нужно сначала округлить A[i] до целого, например, функцией Trunc, как вариант, или подумать над другим алгоритмом
Maksim2009rus: Либо сделать массив A из целых чисел.. всё зависит от конкретного задания
Max161161161: дана последовательность действительных чисел а1,а2...аn.
Определить произведение элементов массива кратных 5
Max161161161: как-то так звучит задача ,может подскажешь как быть
Похожие вопросы
Предмет: Математика, автор: enelo444