Статистика
Всего в нашей базе более 4 327 663 вопросов и 6 445 978 ответов!

Элемент матрицы назовем седловой точкой,если он является наименьшим в своей строке и одновременно наибольшим в своем столбце или,наоборот,является

10-11 класс

наибольшим в своей строке и наименьшим в своем столбце. Для заданной целой матрицы размером n*m напечатать индексы всех ее седловых точек.

Sandryska 10 июня 2013 г., 18:21:39 (10 лет назад)
Рейтинг
+ 0 -
0 Жалоба
+ 0 -
аминачка112
10 июня 2013 г., 19:03:27 (10 лет назад)

const
  n = 4;
  m = 6;

var
  a: array[1..n, 1..m] of integer;  // основной массив
  Rext: array[1..n, 1..2] of integer; // номера столбцов с min и max в строках
  Cext: array[1..2, 1..m] of integer; // номера строк с min и max в столбцах
  i, j, amin, amax: integer;

begin
  // заполняем массив А случайными числами
  Randomize;
  writeln('Исходный массив');
  for i := 1 to n do
  begin
    for j := 1 to m do
    begin
      a[i, j] := random(100) - 50;
      write(a[i, j]:4);
    end;
    writeln;
  end;
  // Заполняем массив Rext n x 2
  for i := 1 to n do
  begin
    amin := 10000;  //заведомо больше a[i,j]
    amax := -10000; //заведомо меньше a[i,j]
    for j := 1 to m do
    begin
      if amin > a[i, j] then begin
        amin := a[i, j]; Rext[i, 1] := j
      end;
      if amax < a[i, j] then begin
        amax := a[i, j]; Rext[i, 2] := j
      end
    end;
  end;
  // Заполняем массив Cext 2 x m
  for j := 1 to m do
  begin
    amin := 10000;  //заведомо больше a[i,j]
    amax := -10000; //заведомо меньше a[i,j]
    for i := 1 to n do
    begin
      if amin > a[i, j] then begin
        amin := a[i, j]; Cext[1, j] := i
      end;
      if amax < a[i, j] then begin
        amax := a[i, j]; Cext[2, j] := i
      end
    end
  end;
  writeln;
  // Ищем седловые точки
  writeln('*** Седловые точки ***');
  for i := 1 to n do
  begin
    j := Rext[i, 1];
    if Cext[2, j] = i then
      write('[', i, ',', j, '] ')
    else begin
      j := Rext[i, 2];
      if Cext[1, j] = i then
        write('[', i, ',', j, '] ')
    end
  end;
  writeln
end.

Тестовое решение:

Исходный массив
  35  34 -17 -33  20 -29
  -8 -31  -4 -20   8  -1
 -39  -7 -12  27  42   9
  32  13 -17  37  19 -24

*** Седловые точки ***
[2,5]



Ответить

Другие вопросы из категории

Pascal ABC

Вычислить сумму квадратов отрицательных чисел,
стоящих на местах, кратных 3; подсчитать количество чисел, не принадлежащих промежутку [А, В).

РЕШИТЕ ПОЖАЛУЙСТА ТРИ ЗАДАЧИ 1)Вывести на экран число симметричное в веденному двухзначному число. 2)Вывести на экран

результат сравнения двух чисел.

3)Вести линейный массив и вычислить сумму всех элементов этого массива.

Найти первое число Фибоначчи, больше m (m>1)

Помогите написать программу и в ней разобраться)

Читайте также

Элемент матрицы назовем седловой точкой,если он является наименьшим в своей строке и одновременно наибольшим в своем столбце или,наоборот,является

наибольшим в своей строке и наименьшим в своем столбце. Для заданной целой матрицы размером n*m напечатать индексы всех ее седловых точек.

Дан массив: BBABBAAA. К чему Незнайка применил следующий алгоритм: если первый элемент массива равен"А", то меняем местами перые два элемента массива, а

если же первый элемент массива равен "B" , то переносим его на третью с конца позицию.Каку юпоследовательность получил Незнайка, если данный алгоритм он применил 6 раз?

Элемент матрицы называется локальным минимумом, если

он строго меньше всех имеющихся у него соседей. Подсчитать количество локальных
минимумов заданной матрицы размером 10 на 10.

Найти сумму модулей элементов, расположенных выше
главной диагонали.
на языке С

СРОЧНО!Пишу прогу с процедурами, которая считает количество "особых "элементов матрицы, но в конце проги не работает writeln, в чём может быть проблема?

Вот задача.
Заданная целочисленная матрица размером NXM. Определить k-количество "особых" элементов матрицы, считая элемент "особым", если в его строке слева от него находятся элементы, меньшие его, а справа - большие.
Вот мой код.И если уж у меня все плохо,то предложите свой код программы.
program samost;
const n=5;
m=5;
type tmatr = array[1..n, 1..m] of integer;
var a:tmatr;
i,j,k:integer;
procedure PrintMatrix(var g:tmatr);
begin
var i,j,k:integer;
for i:=1 to n do
begin
for j:=1 to n do
write(g[i,j]:4);
writeln
end;
end;
procedure MakeMatrix;
begin
var i,j,k:integer;
randomize;
for i:=1 to n do
for j:=1 to n do
begin
a[i,j]:=random(10)-5;
end;
end;
begin
MakeMatrix;
writeln('matrica A: ');
PrintMatrix(a);

k:=0;
for i:=1 to n do
for j:=1 to m do
begin
if (a[i,j]<a[i+1,j])and(a[i,j]>a[i-1,j]) then inc(k)
end;
writeln('kolichestvo elementov = ',k);
end.

найти максимальный по значению элемент матрицы x (n,m) (n<=10,m<=15) и увеличить его в 2 раза. после этого вычислить среднее арифмитическое

положительных элементов матрицы. полученную матрицу x и среднее арифмитическое распечатать



Вы находитесь на странице вопроса "Элемент матрицы назовем седловой точкой,если он является наименьшим в своей строке и одновременно наибольшим в своем столбце или,наоборот,является", категории "информатика". Данный вопрос относится к разделу "10-11" классов. Здесь вы сможете получить ответ, а также обсудить вопрос с посетителями сайта. Автоматический умный поиск поможет найти похожие вопросы в категории "информатика". Если ваш вопрос отличается или ответы не подходят, вы можете задать новый вопрос, воспользовавшись кнопкой в верхней части сайта.