В результате выполнения программы напечатало число 40. Какое наибольшее значение может иметь переменная S после выполнения есл вводить только натуральные числа?
Var k, m, S, N: integer;
Dat: array[1..100] of integer;
Begin
N:= 100;
m := 0;
S := 100;
for k := 1 to N do readln(Dat[k]);
for k := 1 to N do
begin
S := S div Dat[k];
if Dat[k]>m then begin m := Dat[k]
end;
end;
writeln(m*2);
end.

Jikogogo Jikogogo    1   25.04.2020 08:56    0

Ответы
охохохо1 охохохо1  25.04.2020 09:30

Объяснение:

) Анализируем программу и определяем назначение каждой из переменных в ней:

N – определяет, какая часть массива Dat реально используется в вычислениях (из него используются элементы с индексами от 1 до N, то есть пять первых элементов);

S – используется для накопления суммы этих элементов массива;

m – изначально равно нулю, а затем переприсваивается – в нее заносится значение элемента массива, если этот элемент больше, чем текущее значение m. Это – типичный алгоритм поиска максимума. Значит, в m определяется (и в конце работы программы выводится на экран) максимальное значение среди обрабатываемых N элементов массива. 2) Итак, из пяти значений массива максимальное равно 10. Каким может быть наибольшее возможное значение суммы этих элементов?

Очевидно, сумма будет наибольшей, если каждое из слагаемых (элементов массива) будет возможно наибольшим. А наибольшее возможное значение элемента массива уже определено: оно равно 10. Если каждый элемент этой части массива будет равен 10, то вычисленный максимум будет равен 10. (Если какие-то элементы массива меньше 10, то это не даст максимально возможную сумму. Если же какие-то элементы массива больше 10, то максимум был бы равен уже не 10, а этому большему значению.)

3) Итак, заданному условию соответствует случай, когда каждый из обрабатываемых пяти элементов массива равен 10. Тогда их сумма (максимально возможная) будет равна 5*10 = 50.

ответ: 50.

1 нравится комментирова

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика