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

gas2013 gas2013    1   19.09.2019 06:05    114

Ответы
Тунеков23 Тунеков23  08.10.2020 01:36
Ну конечно он будет ругаться , у вас значению а с типом integer присваивается значение sum с вещественным типом, это недопустимо. Можно исправить , либо сменить тип переменной а на real, либо сменить тип переменной sum на integer. Ну или 3й вариант. Переменная а будет вещественного типа, а sum- целого, так как только вещественным значениям могут присваиваться целые.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика