IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Задача на поиск значений в матрице
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  0  +


Добрый вечер. Вот тут подкинули задачку:

Написать программу, которая в прямоугольной матрице NxM действительных чисел находит максимальное значение из минимальных значений столбцов и минимальное значение из максимальных значений строк (max(j)(min(i)(Aij)) и min(i)(max(j)(Aij)))

Поиском пользовался, но как-то ничего подобного найти не смог, или был невнимателен, так что буду благодарен за любую помощь, а это что смог накидать, не бейте, программер из меня почти никакой... Как программа должна работать я понимаю, а как это реализовать представляю с трудом.

Но это еще не все, самое непонятное то, что нужно чтобы данные этой программы читались из файла%/ что это такое я не понимаю, но такое вот было требование. Объясните, пожалуйста, что это и с чем едят.


function poisk_max(ma:integer):integer;
var
mb,max:integer;
begin
mb:=0; {poisk max v stroke "ma"}
max:=dmas[0,ma];
while not(mb=n) do
begin
if (dmas[mb,ma]>=max) then
max:=dmas[mb,ma];
mb:=mb+1;
end;
poisk_max:=max;
end;

function poisk_min:integer;
var
mina,min:integer;
begin
mina:=0;
min:=results[mina];
while not(mina=n) do {ischet min v massive "results"}
begin
if (results[mina]<=min) then
min:=results[mina];
mina:=mina+1;
end;
poisk_min:=min;
end;

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Пионер
**

Группа: Пользователи
Сообщений: 70
Пол: Мужской
Реальное имя: Илья

Репутация: -  2  +


Чтото подобное писал на с++
Условие:
Элемент матрицы назовём седловой точкой, если он является наименьшим в своей строке и одновременно наибольшим в своём столбце, или наоборот является наибольшим в строке и наименьшим в столбце. Для заданной целой матрицы размером n x m напечататать индексы всех её седловых точек.

< ... >

 ! 
Sto, читай Правила. Программный текст на C вырезан. Lapp


 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Sto, а ко всему прочему, не кажется тебе, что "седловая точка", и то, что указано в условии - несколько разные вещи? Если бы было надо седловые точки - выкладывалось по крайней мере 3 программы на Паскале...

erwin, пишешь функцию, которая по номеру столбца выдает минимальное значение в нем содержащееся; допустим, называешь ее min_col, и вызываешь так:

max_col := -10000.0; { <--- заведомо меньше, чем минимум в первом столбце }

for i := 1 to M do begin { M - число столбцов !!! }
curr_min := min_col(i);
if max_col < curr_min then max_col := curr_min;
end;

{ в результате вот тут у тебя в переменной max_col хранится максимум из минимумов столбцов }


Аналогично делаешь для строк, только все с точностью "до наоборот" - функция ищет максимум в сроке, а в цикле - из этих максимумов находишь наименьший...

Как найти min/max строки/столбца - можешь посмотреть в FAQ-е и в поиске, это решалось неоднократно...
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 21.09.2020 19:43
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name