Вопрос задан 16.01.2020 в 06:26. Предмет Информатика. Спрашивает Григорьева Дарья.

Var sum:real; x,n:integer; begin readln(n); begin sum:=0; for x:=1 downto 1/n*n do sum:=sum+x; end;

writeln(sum); end. В ЧЁМ ПРОБЛЕМА?ПОДСКАЖИТЕ ПОЖАЛУЙСТА.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Кондратьева Александра.

Просто нужно заменить integer на real из-за деления


0 0
Отвечает Скорбач Егор.

в цикле for значения x должны быть типа integer, а деление автоматически дает real. +  ко всему 1/n*n  всегда будет давать единицу, т к это все равно что n/n. Что прога делать должна?

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Проблема в данном коде заключается в некорректном использовании цикла for. В строке "for x:=1 downto 1/n*n do sum:=sum+x;" ошибка заключается в том, что переменная x должна уменьшаться, а не увеличиваться. Также, выражение "1/n*n" некорректно, так как оператор деления (/) имеет более высокий приоритет, чем оператор умножения (*), поэтому выражение должно быть записано как "(1/n)*n".

Корректный код будет выглядеть так:

Var sum: real; x, n: integer; begin readln(n); sum := 0; for x := 1 downto (1/n)*n do sum := sum + x; writeln(sum); end;

В этом коде переменная x будет уменьшаться от 1 до 1/n * n, а затем суммироваться с переменной sum.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос