Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Матрицы

Автор: Татьяна 30.05.2003 13:16

И снова матрица не программируется((((

Найти все так называемые "седловые точки" матрицы, т.е. элементы наименьшие в своей строке и наибольшие в своем столбце и наоборот

и почему у меня ничего не получается??...

Автор: Паук 30.05.2003 15:49

Почему не получается - не знаю...
Задачу надо поставить корректно...

Автор: Татьяна 30.05.2003 16:47

Задачу переформулировать не могу. Именно так она поставлена преподом, а они, как известно, ничего не меняют в условии.... т.е. надо записать так, так тебе говорится.

Автор: Noname 30.05.2003 19:11

Блин! точно баба вопрос задавала!

Татьяна, А ты случаем не в Питере живешь?

Автор: reill 31.05.2003 3:50

2Татьяна
переформулировать не значит менять услови - это значит написать его корректно, чтоб людям понятно было...

Автор: Alesha_GA 31.05.2003 3:57

Цитата
А ты случаем не в Питере живешь?

Питер моя территория.
Есть проблемы?!

Автор: Alex 31.05.2003 15:22

Я так приблизительно анализировал это дело и пришел к выводу что седловых точек может быть только две!Большего я как не пытался так и не смог!Если седня буду вечером напишу решение!

Автор: Alex 31.05.2003 15:28

Недоделанное немного нашел:
Для наибольшего в строке и наименьшего в столбце:
ищет строчку, вечером переделаю:

Код
uses crt;
const n=3;m=4;
var a:array[1..m,1..n] of integer;i,j,k,l,min,max,str:integer;
{k-номер столбца, где находится максимальный элемент строки}
begin
ClrScr;
for i:=1 to m do
for j:=1 to n do begin
write('a[',i,',',j,']=');
readln(a[i,j]);
end;
for i:=1 to m do
begin
max:=a[i,1];
 for j:=1 to n do
  if a[i,j]>max then begin max:=a[i,j];k:=j;end;
min:=a[1,k];
for l:=1 to n do
 if a[l,k]<min then min:=a[l,k];
if min=max then begin str:=i;break;end;
end;
writeln('The number of needed string is ',str);
readln
end.

Автор: Alex 1.06.2003 13:50

Вот решение задачи:

Код
program sort;
uses crt;
const n=3;m=4;
var a:array[1..m,1..n] of integer;i,j,k,k1,ind,l,min,max,min1,max1:integer;
str,stb:array[1..2*m] of integer;
{k-номер столбца, где находится максимальный элемент строки}
{k1-номер столбца, где находится минимальный элемент строки}
begin
ClrScr;
for i:=1 to m do
for j:=1 to n do begin
write('a[',i,',',j,']=');
readln(a[i,j]);
end;
ind:=0;k:=0;k1:=0;
for i:=1 to m do
begin
max:=a[i,1];min1:=a[i,1];
 for j:=1 to n do begin
  if a[i,j]>max then begin max:=a[i,j];k:=j;end;
  if a[i,j]<min1 then begin min1:=a[i,j];k1:=j;end;
  end;
min:=a[1,k];max1:=a[1,k1];
for l:=1 to n do begin
 if a[l,k]<min then min:=a[l,k];
 if a[l,k1]>max1 then max1:=a[l,k1];
 end;
if min=max then begin ind:=ind+1;str[ind]:=i;stb[ind]:=j;end;
 end;
if ind=0 then writeln('Седловых точек нет')
         else for i:=1 to ind do
              writeln('Седловая точка равна ',a[str[ind],stb[ind]]);
readln
end.

Автор: Татьяна 3.06.2003 12:17

Ребят, что вы все не по делу? переформулировать-не переформулировать... как поставил препод задачу (кстати, он не женщина, самый настоящий седой профессор мужеского пола), так вам и написала.

Автор: Татьяна 3.06.2003 12:17

Не обижайтесь, но сразу видно, что из вас всех по-мужски к этому вопросу только Alex подошел: без всяких философствований раз - и решение!  :-*

Автор: AlaRic 3.06.2003 15:38

Цитата
Не обижайтесь, но сразу видно, что из вас всех по-мужски к этому вопросу только Alex подошел: без всяких философствований раз - и решение!  :-*

Не обижайся, но задачу должна была сделать ты, так как ее задали тебе!

Автор: Татьяна 3.06.2003 17:07

Я никого не принуждала, прошу заметить >:(

Автор: GLuk 3.06.2003 19:35

А сама над решением не хотела подумать??
Да и начала ли хотя бы делать??
У Alex'a вишь просто маленький опыт общения, судя по парочке сабжей.
И на форуме проблемы обсуждаются, а не решаются!
Не подумай, что я злой - как сабака, слишком много таких как ты (в плане которые хотят чиста мужского подхода ;)).

Автор: Татьяна 3.06.2003 19:54

А потому и хотят мужского подхода, что ныне его днем с огнем не сыщешь, увы.
Эмансипация, млин

Автор: GLuk 3.06.2003 19:59

Все-таки квестчин висит, по поводу начала делать или нет??
И то, что ты вкладываешь в понятие мужского подхода - очень туманно...
А эмансипация на Ямайке.

Автор: trminator 3.06.2003 22:54

Блин... развели флуд... "эмансипация, мужской подход" >:( ... Alex, скажи лучше: неужели только ДВЕ седловые точки? Больше получить пока и у меня не вышло, но доказать я это тоже не могу  ???

Автор: Alex 4.06.2003 1:45

Доказательство я не помню, да оно было в добавок устное!Устное доказательство очень редко бывает правильным!

Автор: Татьяна 4.06.2003 11:24

Ладно, ребята...  я самоустраняюсь, дабы не портить своим присутствием ваш замечательный форум ОБСУЖДЕНИЯ  проблем.

Искренее спасибо всем!

Автор: GLuk 4.06.2003 19:17

2Alex: Может посмотришь... вчера попробовал, чтобы прога генерила различные массивы и выводила кол-во седловых точек только больше 2х - дык хрена лысого (минут 10 ждал...)??