Помощь - Поиск - Пользователи - Календарь
Полная версия: матрица
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
лоен
по идеи этот код должен находить минимальную сумму столбцов.
помогите исправить.
Const
max=20;
type
mat:array[1..max,1..max] of integer;
var
i,j,x,y,s:integer;
min:longint;
procedure vvod_m;
Begin
Writeln('Введите мерность матрици');
Write('i='); readln(i);
Write('j='); readln(j);
Writeln('Введите массив:');
for x:=1 to i do
for y:=1 to j do
Begin
write('a[',x,',',y,']=');
readln(a[x,y]);
End;
End;
begin
vvod_m;
Min:=0;
for y:=1 to j do
begin
s:=0
for x:=1 to i do
begin
s:=s+A[x,y];
if s<min then min:=s;
end;
end;
writeln(‘Минимальная сумма=’, min);
readln;
end.



Добавлено через 15 мин.
не знаю еще как сумму задать. написал ноль. но это по умолчанию неверно.
Client
А ты где описываешь САМ массив (не как тип)?
Основная твоя ошибка здесь:
Min:=0; //А если все элементы положительные?
for y:=1 to j do
begin
s:=0
for x:=1 to i do
begin
s:=s+A[x,y];
if s<min then min:=s; //эту строчку надо вынести в верхний цикл
end;
Вот что получилось:
uses crt;
Const
max=20;
type
mat=array[1..max,1..max] of integer;
var
i,j,x,y,s:integer;
min:longint;
a:mat;
procedure vvod_m;
Begin
Writeln('size');
Write('i='); readln(i);
Write('j='); readln(j);
Writeln('matrix:');
for x:=1 to i do
for y:=1 to j do
Begin
write('a[',x,',',y,']=');
readln(a[x,y]);
End;
End;
begin
clrscr;
vvod_m;
for x:=1 to i do begin
for y:=1 to j do
WRITE(a[x,y]:5);
writeln
end;
Min:=0;
for x:=1 to j do
min:=min+a[x,1];

for y:=1 to j do
begin
s:=0;
for x:=1 to i do
s:=s+A[x,y];
if s<min then min:=s;
end;
writeln(' MIN= ', min);
readln;
end.

лоен
спасибо.
лоен
проверил. почему-то не работает.
задаю матрицу вида:
1 2
3 4
5 6
говорит, что минимум 4 blink.gif
вроде ж ужо все красиво.
volvo
Индексы надо в порядок привести:
 Min:=0;
for x:=1 to i do { <--- Число строк - это I, а не J }
min:=min+a[x,1];
Хотя я бы вместо этого просто присвоил в Min какое-нибудь очень большое значение. Желательно - самое большое: MaxInt
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.