Я написал программу в Pascal ABC Net: var a,x,n,y: integer; i,s,sum,b: real; begin n :=...

0 голосов
127 просмотров

Я написал программу в 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=сумму чисел в числе, получившееся в результате сложения чисел, вводимых человеком.


Информатика (2.8k баллов) | 127 просмотров
0

И тд

0

создавайте ещё один вопрос, вам обьязательно помогут))

0

интересно что в задании нету ничего сказано, о цветах, в отличии от имплементации в вашем коде, или я что-то не понял?)

0

ой, да у вас там после а=sum а присваивается новое значение, это зачем вообще ооооой

0

Я изменил

0

Но результат другим не стал

0

а к чему здесь цвета?

0

Нужно мне

0

в задании о них не сказано

Дан 1 ответ
0 голосов

Ну конечно он будет ругаться , у вас значению а с типом integer присваивается значение sum с вещественным типом, это недопустимо. Можно исправить , либо сменить тип переменной а на real, либо сменить тип переменной sum на integer. Ну или 3й вариант. Переменная а будет вещественного типа, а sum- целого, так как только вещественным значениям могут присваиваться целые.

(454 баллов)