Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.12.2013, 01:02   #1
anuta1995
Новичок
Джуниор
 
Регистрация: 23.12.2013
Сообщений: 4
По умолчанию найти наименьший элемент матрицы X (15,20) и записать нули в ту строку и столбец , где он находится

найти наименьший элемент матрицы X (15,20) и записать нули в ту строку и столбец , где он находится
FRee paskal
anuta1995 вне форума Ответить с цитированием
Старый 24.12.2013, 01:20   #2
proef
Форумчанин
 
Регистрация: 08.06.2013
Сообщений: 133
По умолчанию

ну наименьший элемент матрицы находится по такому принципу
:
инициализируешь переменную min = (допустим) 10000,s(строка),st(столбец)
матрица а[n,m]
цикл по строкам (i) до n
{
цикл по столбцам (j) до m
{
если (min > a[i,j])
тогда
min = a[i,j] ;
i = s;
st = j;
} }
потом просто выводишь переменную min
потом
цикл по строкам(i) до n
{
a[i,st] = 0;}
цикл по столбцам (J) до m
a[s,j] = 0;}

Последний раз редактировалось proef; 24.12.2013 в 02:05.
proef вне форума Ответить с цитированием
Старый 24.12.2013, 07:33   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

позвольте чуть-чуть подправить алгоритм.

совершенно незачем иницилизировать min значение значением 10000.
если действительно нужная такая переменная, то в неё можно взять любое РЕАЛЬНОЕ значение из матрицы (обычно берут первое, и обычно это A[1,1] )
но, в данном случае min вообще не нужен!

я бы предложил такое решение:
Код:
const n=15; m=20;
var A : array[1..n, 1..m] of  integer;
 i, j, MinI, MinJ : integer;
begin
   {заполним матрицу случайными числами для простоты}
   Randomize;
   for i:=1 to n do
     for j:=1 to m do 
       A[i,j] := Random(100);

  {выведем матрицу на экран}
  WriteLn('Начальная матрица: ');
   for i:=1 to n do begin
     for j:=1 to m do 
       Write(A[i,j]:3,' ');
     WriteLn
   end;

  {найдём индексы строки и столбца с минимальным элементом}
  MinI := 1;  MinJ := 1; {изначально принимаем за минимальный элемент значение A[1,1]}
   for i:=1 to n do
     for j:=1 to m do 
       if A[i,j] <  A[MinI,MinJ] then begin
         MinI := i; MinJ := j;
       end

  WriteLn('Минимальный элемент ', A[MinI,MinJ], ' найден в ',MinI,' строке ',MinJ, 'столбце.' )

  {обнулим MinI строку}
  for j:=1 to m do A[MinI, j] := 0;

  {обнулим MinJ столбец}
  for i:=1 to т do A[i,MinJ] := 0;

  {выведем матрицу на экран}
  WriteLn('Полученная матрица: ');
   for i:=1 to n do begin
     for j:=1 to m do 
       Write(A[i,j]:3,' ');
     WriteLn
   end;

  Readln;
end.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставить нулевую строку и нулевой столбец перед строкой и столбцом где находится первый минимальный элемент Proskurina Помощь студентам 1 03.03.2013 19:24
Найти наибольший и наименьший элемент в каждой строке матрицы. Отсортировать... (Паскаль) Tifa Помощь студентам 0 27.01.2011 23:07
вычеркнуть строку и столбец на пересечении которого находится максимальный элемент Amalia Общие вопросы Delphi 2 03.04.2010 08:01
найти наибольший и наименьший элемент матрицы B(N x M) и поменять их местами поЛотЕнчик_просТо Общие вопросы C/C++ 2 13.05.2009 12:17
Найти максимальный элемент матрицы и вставить правее него столбец из нулей и ниже него строку из нулей. Romer9999 Паскаль, Turbo Pascal, PascalABC.NET 3 28.11.2008 11:28