Помощь - Поиск - Пользователи - Календарь
Полная версия: Сумма чётных чисел в массиве.
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Psychologist
Доброго времени суток.
Скажите пожалуйста, почему вылетает ошибка "Error 26: Type mismatch" при запуске программы:
Program work2;
Var
mas1 : array [1..10] of integer;
i : integer;
n : integer;
S : integer;
rez : Integer;
Begin
For i:=1 to 10 do Readln (mas1[i]);
For i:=1 to 10 do Begin
if mas1[i] mod 2 = 0 then n:=n+1;
end;

For i:=1 to 10 do Begin
Writeln (mas1[i]);
if mas1[i] mod 2 = 0 then S:=S+mas1[i];
end;

rez:=S/n;
Writeln (rez);
end.

Выделяется ; в строке "rez:=S/n;"
volvo
Цитата
почему вылетает ошибка "Error 26: Type mismatch" при запуске программы:
Потому, что результат операции деления - всегда вещественный, а Rez - целочисленный. Автоматического преобразования Integer <- Real в языке нет, надо делать это руками:
{ или }
Rez := Trunc(s/n);
{ или }
Rez := s div n;
{ или (лучше всего) }
Rez: Real;

...
Psychologist
volvo: Спасибо!
andriano
Второй вариант, думаю, лучше.
А первый я бы записал так:
Rez := round(s/n);
Мало ли, вдруг в результате деления получится что-то вроде 3.99999999999.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.