В чем ошибка: program gadanie;var a:array[1..1000] of integer;n,s,i:...

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

В чем ошибка: program gadanie;var a:array[1..1000] of integer;n,s,i: integer;beginreadln(n);s:=0;for i:=1 to 1000 doif n mod a[i] = 0 then s:=s+a[i];writeln(s); end.


image

Информатика (16 баллов) | 161 просмотров
0

вообще я хочу перебрать массив от 1 до 1000 есть остаток или нет

0

я понял но в воде написано нужен массив

0

В какой воде?

0

в вводе

0

Ты вообще в состоянии объяснить, зачем он нужен?

0

Вводится массив из 1000 значений? Бред.

0

я фото прикрепил с задачей

0

Ты там хоть раз встретил слово "массив"? Я - нет.

0

Впрочем, твоё дело. Я всё равно на Поцкале не пишу.

0

а мне надо

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

Что касается ошибок, то в условии сказано, что введенное число n находится в диапазоне [1; 1000], то есть, программа не должна высчитывать сумму, если пользователь ввел  число, не входящее в этот диапазон. А вы вместо этого создали массив, с которым еще и вычисления проводите, хотя сами в него не занесли ни одного значения.


Вот правильный код:


var

  n, sum: integer;

   

begin

   

  write('Введите число: ');

  readln(n);

   

  if ((n >= 1) and (n

  begin

     for var i := 1 to n do

     begin

        if (n mod i = 0) then

           sum := sum + i;

     end;

     

     write('Сумма всех натуральных чисел: ', sum);

  end

   

  else

     write('Ошибка ввода! Число должно быть в диапазоне [1; 1000]');

   

end.


image
(13.4k баллов)