Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Поиск минимального значения среди сумм элементов строк матрицы

38K
02 мая 2011 года
LenivecSid
3 / / 27.04.2008
Необходимо чтобы выводилось на экран значение минимальной суммы элементов, среди строк матрицы. У меня выводится максимальная сумма строки. Помогите пожалуйста.
Код:
Код:
Program matrix;
Uses Crt;
type mas=array [1..100,1..100] of integer;
{+----- Ввод размерности массива -----------+}
procedure input(var X:mas; var n:integer);
var i,j:integer;
begin
     writeln(' Введите размер кв. матрицы: ');
     readln(n);
{+----- Заполнение массива -----------------+}
writeln('введите кв. матрицу X');
   for i:=1 to n do
       for j:=1 to n do
begin
 write('x[',i,',',j,']= ');
 readln(x[i,j]);
end;
{+----- Вывод массива на экран ----+}
begin
Writeln ('Матрица: ');
  for i:=1 to n do begin
    for j:=1 to n do
      begin
        write(' ',x[i,j],' ');
      end;
    writeln;
  end;
end;
end;
{+----- Расчет суммы элементов строки ------------------+}
procedure f1(X:mas; n:integer; var min_i:integer);
var i,j,si:integer;
begin
   min_i:=x[1,1];
for i:=1 to n do
begin
   si:=0;
   for j:=1 to n do
      si:=si+x[i,j];
   if si > min_i then
        min_i:=si;
end;
end;
{+----- Вывод результата на экран ------------------+}
procedure pr3(min_i:integer);
begin
writeln('мин. сумма= ',min_i);
end;
{+----- Начало программы ------------------+}
var A:mas;
si,i,j,n,s,min_i:integer;
begin
Clrscr;
input(A,n);
f1(A,n,min_i);
pr3(min_i);
end.
2.1K
02 мая 2011 года
Norgat
452 / / 12.08.2009
 
Код:
if si > min_i then
        min_i:=si;


Пробовал на < менять?)
38K
03 мая 2011 года
LenivecSid
3 / / 27.04.2008
Пробовал. Выводит первый элемент матрицы, а мне нужно минимальную сумму строки.
2.1K
03 мая 2011 года
Norgat
452 / / 12.08.2009
Тэкс.

 
Код:
begin
   min_i:=x[1,1];


а потом:

 
Код:
if si > min_i then


Ест. тут может быть проблема. Если у тебя нету в строках отрицательных эл-тов, то, скорее всего, у тебя сумма каждой строки будет больше 1го эл-та матрицы.

Как то так нужно(псевдокод):

Код:
procedure f1(X:mas; n:integer; var min_i:integer);
var i,j,si:integer;
begin
// посчитать сумму первой строки
   for i:= 1 to n do
     min_i:= min_i +x[1,i];

// а сюда бы ещё и проверочку на то, что n > 1
// посчитать суммы строк со 2й по n-ю
for i:=2 to n do
begin
   si:=0;
// считаем сумму
   for j:=1 to n do
      si:=si+x[i,j];
// если она меньше текущей - сменить минимальную сумму на новую
   if si < min_i then
        min_i:=si;
end;
end;
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог