Var i, chet, summa: integer; mass:array[0..24] of integer; Begin for i:=0 to 24 do Begin mass[i]:= random(-50,50); if (mass[i] mod 2 = 0) then Begin chet+=1; writeln('Элемент массива под номером ' + (i+1) + ' равен ' + mass[i] + ' и чётен.'); End else Begin writeln('Элемент массива под номером ' + (i+1) + ' равен ' + mass[i] + ' и нечётен.'); summa+=mass[i]; End; End; Writeln('Количество чётных членов массива: ', chet); Write('Сумма нечётных членов массива: ', summa); End.
Вообщем так. 1. sin это арифметическое действие. Синус можно найти из 90 градусов например. А тут X>10. Из чего синус искать, из большего или может из меньшего? Правильной будет запись if x>10 then ... какое-то действие... sin(x) else ... sin (x); вообщем нельзя ставить оператор сравнения в арифметическое действие т.к. им задаются условия.
2. Попытка использовать арифметические операции с "false". 3. Выражение теряет смысл. And это логическая операция. Лог выражение должно быть вида A and B. Соответственно исправить можно так '(x=0) and (round(sqrt(x)) mod 2=0)' 4. Не пишут 2 or подряд т. к. теряется логика операции.
i, chet, summa: integer;
mass:array[0..24] of integer;
Begin
for i:=0 to 24 do
Begin
mass[i]:= random(-50,50);
if (mass[i] mod 2 = 0) then
Begin
chet+=1;
writeln('Элемент массива под номером ' + (i+1) + ' равен ' + mass[i] + ' и чётен.');
End
else
Begin
writeln('Элемент массива под номером ' + (i+1) + ' равен ' + mass[i] + ' и нечётен.');
summa+=mass[i];
End;
End;
Writeln('Количество чётных членов массива: ', chet);
Write('Сумма нечётных членов массива: ', summa);
End.