Я написал программу в Pascal ABC Net:
var
a,x,n,y: integer;
i,s,sum,b: real;
begin
n := 7;
sum := 0.0;
for y := 1 to n do
begin
write(y, '-е число = ');readln(b);
sum := sum + b
end;
a:=sum;
readln( a ); x:=a;
s:=0;
while ( x<>0 ) do
begin
s := s + (x mod 10);
x := x div 10;
end;
case round(a/s) of
1,5,7,9,11,13,15: writeln('Выпадет: Красное');
2,4,6,8,10,12,14,16: writeln('Выпадет: Чёрное');
3: writeln('Выпадет: Зелёное');
else writeln('Выпадет: Неизвестный цвет');
end;
readln;
end.
ПРИ ПОПЫТКЕ ЗАПУСТИТЬ ЕЁ, ПИШЕТ: Program1.pas(12) : Нельзя преобразовать тип real к integer.
Как мне это исправить, чтобы прога нормально работала? Ругается на строчку a:=sum;
Суть программы такова, что нужно человеку сначала ввести n чисел, после чего программа должна сложить данные числа и эту сумму поделить на сумму чисел в числе,которое получилось в первой сумме, когда человек вводил числа.
Формула: frac{ sum_{1} }{sum_{2}}
где sum1= сумму n чисел, которые ввёл человек
sum2=сумму чисел в числе, получившееся в результате сложения чисел, вводимых человеком.
Ответы
Ответ дал:
0
Ну конечно он будет ругаться , у вас значению а с типом integer присваивается значение sum с вещественным типом, это недопустимо. Можно исправить , либо сменить тип переменной а на real, либо сменить тип переменной sum на integer. Ну или 3й вариант. Переменная а будет вещественного типа, а sum- целого, так как только вещественным значениям могут присваиваться целые.
Вас заинтересует
2 года назад
2 года назад
2 года назад
2 года назад
8 лет назад
8 лет назад
9 лет назад