// PascalABC.NET 3.1, сборка 1230 от 27.04.2016 const КолСтрок=3; КолСтолбцов=5; begin var Массив: array [1..КолСтрок,1..КолСтолбцов] of integer; var СуммыПоСтрокам: array[1..КолСтолбцов] of integer; Writeln('Введите элементы массива (',КолСтрок,',', КолСтолбцов,') построчно:'); for var строка:=1 to КолСтрок do for var столбец:=1 to КолСтолбцов do begin Read(Массив[строка,столбец]); СуммыПоСтрокам[строка]+=Массив[строка,столбец] end; Writeln('Суммы построчно:'); for var строка:=1 to КолСтрок do Print(СуммыПоСтрокам[строка]) end.
) Анализируем программу и определяем назначение каждой из переменных в ней:
N – определяет, какая часть массива Dat реально используется в вычислениях (из него используются элементы с индексами от 1 до N, то есть пять первых элементов);
S – используется для накопления суммы этих элементов массива;
m – изначально равно нулю, а затем переприсваивается – в нее заносится значение элемента массива, если этот элемент больше, чем текущее значение m. Это – типичный алгоритм поиска максимума. Значит, в m определяется (и в конце работы программы выводится на экран) максимальное значение среди обрабатываемых N элементов массива. 2) Итак, из пяти значений массива максимальное равно 10. Каким может быть наибольшее возможное значение суммы этих элементов?
Очевидно, сумма будет наибольшей, если каждое из слагаемых (элементов массива) будет возможно наибольшим. А наибольшее возможное значение элемента массива уже определено: оно равно 10. Если каждый элемент этой части массива будет равен 10, то вычисленный максимум будет равен 10. (Если какие-то элементы массива меньше 10, то это не даст максимально возможную сумму. Если же какие-то элементы массива больше 10, то максимум был бы равен уже не 10, а этому большему значению.)
3) Итак, заданному условию соответствует случай, когда каждый из обрабатываемых пяти элементов массива равен 10. Тогда их сумма (максимально возможная) будет равна 5*10 = 50.
const
КолСтрок=3;
КолСтолбцов=5;
begin
var Массив: array [1..КолСтрок,1..КолСтолбцов] of integer;
var СуммыПоСтрокам: array[1..КолСтолбцов] of integer;
Writeln('Введите элементы массива (',КолСтрок,',',
КолСтолбцов,') построчно:');
for var строка:=1 to КолСтрок do
for var столбец:=1 to КолСтолбцов do begin
Read(Массив[строка,столбец]);
СуммыПоСтрокам[строка]+=Массив[строка,столбец]
end;
Writeln('Суммы построчно:');
for var строка:=1 to КолСтрок do Print(СуммыПоСтрокам[строка])
end.
Тестовое решение
Введите элементы массива (3,5) построчно:
7 -5 13 19 -11
8 23 -15 -6 0
12 -6 -9 0 12
Суммы построчно:
23 10 9
Объяснение:
) Анализируем программу и определяем назначение каждой из переменных в ней:
N – определяет, какая часть массива Dat реально используется в вычислениях (из него используются элементы с индексами от 1 до N, то есть пять первых элементов);
S – используется для накопления суммы этих элементов массива;
m – изначально равно нулю, а затем переприсваивается – в нее заносится значение элемента массива, если этот элемент больше, чем текущее значение m. Это – типичный алгоритм поиска максимума. Значит, в m определяется (и в конце работы программы выводится на экран) максимальное значение среди обрабатываемых N элементов массива. 2) Итак, из пяти значений массива максимальное равно 10. Каким может быть наибольшее возможное значение суммы этих элементов?
Очевидно, сумма будет наибольшей, если каждое из слагаемых (элементов массива) будет возможно наибольшим. А наибольшее возможное значение элемента массива уже определено: оно равно 10. Если каждый элемент этой части массива будет равен 10, то вычисленный максимум будет равен 10. (Если какие-то элементы массива меньше 10, то это не даст максимально возможную сумму. Если же какие-то элементы массива больше 10, то максимум был бы равен уже не 10, а этому большему значению.)
3) Итак, заданному условию соответствует случай, когда каждый из обрабатываемых пяти элементов массива равен 10. Тогда их сумма (максимально возможная) будет равна 5*10 = 50.
ответ: 50.
1 нравится комментирова