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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.11.2014, 18:57   #1
tdsotm
 
Регистрация: 30.10.2014
Сообщений: 9
По умолчанию Найти седловые точки в матрице(помогите найти ошибку) - pascal

Код:
const
  m = 4; //stolb
  n = 3;  //stroka

var
  A: array[1..10, 1..10] of integer; 
  l,i, j: integer;
  mintd: array[1..10] of integer;//tr -stroka td-stolb html
  maxtd: array[1..10] of integer; 
  mintr: array[1..10] of integer; 
  maxtr: array[1..10] of integer;

begin
  Randomize;
  for i := 1 to n do 
  begin
    for j := 1 to m do 
    begin
      write('a[', i,j,']=');
      readln(a[i,j]);
    end;
  end;
  writeln;
  writeln('Исходная матрица:');
  for i := 1 to n do
  begin
    for j := 1 to m do
      write(a[i, j]:4);
    writeln;
  end;
  
  
  for i := 1 to n do
  begin
    mintd[i] := 9;
    for j := 1 to m do
    begin
      if A[i, j] < mintd[i] then mintd[i] := A[i, j];{находим минимумы в столбцах}
    end;
  end;
  
  for i := 1 to n do
  begin
    maxtd[i] := 0;
    for j := 1 to m do
    begin
      if A[i, j] > maxtd[i] then maxtd[i] := A[i, j];{находим максимумы в столбцах }
    end;
  end;
  
  for i := 1 to n do
  begin
    maxtr[i] := 0;
    for j := 1 to m do
    begin
      if A[j, i] > maxtr[i] then maxtr[i] := A[j, i];{находим максимумы в строках}
    end;
  end;  
  
  for i := 1 to n do
  begin
    mintr[i] := 9;
    for j := 1 to m do
    begin
      if A[j, i] < mintr[i] then mintr[i] := A[j, i];{находим мминимумы в строках }
    end;
  end; 
  
  for i := 1 to n do
    for j := 1 to m do   
      if ((A[i, j] = maxtr[i]) and (A[i, j] = mintd[j])) or ((A[i, j] = mintr[i]) and (A[i, j] = maxtd[j])) then 
        begin 
          writeln('Седловая точка матрицы ', i, j); 
          l:=l+1; 
        end;
      if l=0 then writeln('Седловых точек нет');
end.
Седловая точка - минимальная в строке и максимальная в столбце или наоборот, структуру программы менять не надо. Помогите найти ошибку или переписать программу так, чтобы был ручной ввод массива + минимальные/максимальные значения строк/столбцов хранились в отдельных массивах.
tdsotm вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите найти ошибку: *.exe вызвал срабатывание точки останова Gretchem Waide Помощь студентам 2 04.11.2014 18:02
В матрице упорядочить строки по возрастанию максимальных элементов. Помогите найти ошибку. amerhant Помощь студентам 3 16.01.2010 19:39
Помогите найти ошибку в программе на Pascal Cade Паскаль, Turbo Pascal, PascalABC.NET 1 04.07.2009 20:07
Как в Word найти седловые точки матриц — теория игр Sasha_Smirnov Microsoft Office Word 2 21.05.2009 20:19