Помощь - Поиск - Пользователи - Календарь
Полная версия: Помогите понять код программы.
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
bmwmylovely
Данн прямоугольный массив 10х20 напишите программу поиска стороки с найменьшей суммой элементов, вывести на зкран номер строки и сумму её элементов.

{Часть 1}
var i,x,j,min,s, imin:integer;
A:array [0..10,0..20] of integer;
begin
for i:=1 to 10 do
for j:=1 to 20 do
A[i,j]:=random(10)+11;

for i:=1 to 10 do
for j:=1 to 20 do
write(A[i,j]:2,' ;');
{Часть 2}
imin:=1;
for j:=1 to 20 do
min:=min+A[1,j];

for i:=2 to 10 do
begin
for j:=1 to 20 do
s:=s+A[i,j];
if s < min then
begin
min:=s;
imin:=i;
end;
s:=0;
end;
writeln(' min, ' ',imin);

end.


Не могу понять вторую часть, а конкретно:

Код
imin:=1;
for j:=1 to 20 do
min:=min+A[1,j];

for i:=2 to 10 do
begin
    for j:=1 to 20 do
        s:=s+A[i,j];
    if s < min then


... может кто ни будь очень подробно объяснить, буду очень благодарен.
Гость
imin:=1; // считаем, что минимальная сумма будет в первой строке (надо же с чего-то начинать)
for j:=1 to 20 do
min:=min+A[1,j]; // считаем эту сумму в первой строке

for i:=2 to 10 do // смотрим остальные строки со 2-й по 10-ю
begin
for j:=1 to 20 do
s:=s+A[i,j]; // считаем сумму в очередной строке
if s < min then // если она меньше той, которую мы считали минимальной ранее
begin
min:=s; // принимаем ее за минимальную
imin:=i; // запоминаем, в какой строке она была
end;
s:=0; // сбрасываем сумму (надо бы перед циклом ее поставить, а не после)
end;
writeln(' min, ' ',imin); // выводим мин.сумму и номер строки, в которой она получается
// ^ первая кавычка тут лишняя

Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.