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

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

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

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


Гость






Дана матрица размерности N*N, найти минимальный (максимальный) элемент, и заменить нулями элементы в строке и столбце, на пересечении которых расположен данный элемент.
А вот с эти разобраться не получается, подскажите пожалуйста...

На надо пихать в одну тему сто разных задач, перемещено

Сообщение отредактировано: klem4 -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Perl. Just code it!
******

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

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


Что конкретно н получается ? Не можешь найти мин. элемент ? Не можешь обнулить ? Для начала сходи сюда :
FAQ : Массивы, матрицы + воспользуйся поиском, задача решалась сотни раз.

Будут конкретные впросы, задавай.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Так я вроде в своей теме вопрос задавала smile.gif
Что не получается, все не получается sad.gif
Пробую найти миниммальный элемент, а вместо этого нахожу максимальный:
Код

program test1;
const n=3;
      m=3;
var
a : array[1..n, 1..m] of integer;
i,j,min : integer;
begin
writeln('Vvod elementov', n, 'x', m);
  min:=a[1,1];
  for i:=1 to n do
   for j:=1 to m do
  begin
   readln(a[i,j]);
   if min < a[i,j] then
   min:=a[i,j];
  end;
  writeln(min);
  readln;
end.


Как элементы заменить я вообще не представляю, как указать ту строку и столбец в которой мне надо заменять и как сказать, чтобы заменилось на 0 ???
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Perl. Just code it!
******

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

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


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

поиск мин. элемента :


imin := 1;
jmin := 1;

for i := 1 to n do
for j := 1 to m do
if a[i,j] < a[imin,jmin] then begin
imin := i;
jmin := j;
end;

// теперь imin содержит искомую строку, которую надо обнулить, а jmin искомый столбец



Сообщение отредактировано: klem4 -


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Тоесть надо jmin=0 и imin=0 сделать и показать матрицу a[a,j] и ВСЕ ?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Perl. Just code it!
******

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

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


Нет .. надо обнулить строку с номером imin, показываю как это делается, столбец сделаешь самостоятельно


(*
обнуление строк с номером imin
*)
for j := 1 to m do a[imin,j] := 0;



--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Но ведь и значение мин элемента тоже надо показать ???
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Perl. Just code it!
******

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

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


И что мешает ? writeln(a[imin, jmin]);

Настоятельно рекомендую взять лекции у одногруппников ...


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Посмотрите пожалуйста:
Код
program test1;

const n=3; m=3;

var
a : array[1..n, 1..m] of integer;
i,j,sum,s,jmin,imin : integer;

begin
  writeln('Vvod elementov', n, 'x', m);
  imin := 1;
  jmin := 1;

  for i:=1 to n do
    for j:=1 to m do
     begin
       readln(a[i,j]);
     end;

  for i:=1 to n do
    begin
     writeln;
      for j:=1 to m do
      write(a[i,j]);
    end;

    writeln;

  if a[i,j] < a[imin,jmin] then
    begin
     imin := i;
     jmin := j;
    end;

  for j:=1 to m do
    a[imin,j]:=0;
  for i:=1 to n do
    a[i,jmin]:=0;

  for i:=1 to n do
    begin
     writeln;
      for j:=1 to m do
       write(a[i,j]);
    end;
readln;
end.


На нули меняется пересечение перdой строки первго столбца ???
И минимальный элемент мне так и не удалось вывести, выводится только наибольший sad.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Perl. Just code it!
******

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

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


Посмотри, подправил :

program test1;

const n=3; m=3;

var
a : array[1..n, 1..m] of integer;
i,j,sum,s,jmin,imin : integer;

begin

writeln('Vvod elementov', n, 'x', m);

imin := 1;
jmin := 1;

for i:=1 to n do
for j:=1 to m do
begin
readln(a[i,j]);
if a[i,j] < a[imin, jmin] then begin
imin := i;
jmin := j;
end;
end;

for i:=1 to n do
begin
writeln;
for j:=1 to m do
write(a[i,j],' ');
end;

writeln;

for j:=1 to m do
a[imin,j]:=0;
for i:=1 to n do
a[i,jmin]:=0;

for i:=1 to n do
begin
writeln;
for j:=1 to m do
write(a[i,j],' ');
end;
readln;
end.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Гость






Цитата
На нули меняется пересечение перdой строки первго столбца ???
Это смотря какие данные ты вводишь... Говорили же неоднократно - приводите данные, на которых тестировалась программа !!!

klem4, так и будем полностью решать все время? dry.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Гость






Все с нулями разобрались, кстати а чем я ошиблась...
И еще минимальное число так и не удалось вывести при написании элементарного
writeln(a[imin, jmin]) выводится 0, хотя мин - 1, а при writeln(a[i,j]) выводится максимум sad.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Гость






Ты уже затерла минимальное значение нулем... Чтобы этого не происходило - замени
for j:=1 to m do
a[imin,j]:=0;
for i:=1 to n do
a[i,jmin]:=0;


на
  for j:=1 to m do
if j <> jmin then a[imin,j]:=0;
for i:=1 to n do
if i <> imin then a[i,jmin]:=0;

Больше ничего в программе не добавляй, все прекрасно отрабатывает...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Гость






klem, Volvo, вы лучшие, СПАСИБО !!!
 К началу страницы 
+ Ответить 

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

 





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