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

Ответы 1

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

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years