Задача на матрицу |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Задача на матрицу |
Гость |
20.01.2006 15:47
Сообщение
#1
|
Гость |
Дана матрица размерности N*N, найти минимальный (максимальный) элемент, и заменить нулями элементы в строке и столбце, на пересечении которых расположен данный элемент.
А вот с эти разобраться не получается, подскажите пожалуйста... На надо пихать в одну тему сто разных задач, перемещено Сообщение отредактировано: klem4 - 20.01.2006 15:54 |
klem4 |
20.01.2006 15:53
Сообщение
#2
|
Perl. Just code it! Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Что конкретно н получается ? Не можешь найти мин. элемент ? Не можешь обнулить ? Для начала сходи сюда :
FAQ : Массивы, матрицы + воспользуйся поиском, задача решалась сотни раз. Будут конкретные впросы, задавай. -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Alla |
20.01.2006 16:09
Сообщение
#3
|
Гость |
Так я вроде в своей теме вопрос задавала
Что не получается, все не получается Пробую найти миниммальный элемент, а вместо этого нахожу максимальный: Код 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 ??? |
klem4 |
20.01.2006 16:12
Сообщение
#4
|
Perl. Just code it! Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Во первых для решения этой задачи тебе надо искать не значение мин. элемента, а его координаты в матрице, чтобы после это обнулить соответствующую строку и столбец
поиск мин. элемента :
Сообщение отредактировано: klem4 - 20.01.2006 16:13 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Гость |
20.01.2006 16:18
Сообщение
#5
|
Гость |
Тоесть надо jmin=0 и imin=0 сделать и показать матрицу a[a,j] и ВСЕ ?
|
klem4 |
20.01.2006 16:21
Сообщение
#6
|
Perl. Just code it! Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Нет .. надо обнулить строку с номером imin, показываю как это делается, столбец сделаешь самостоятельно
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Гость |
20.01.2006 16:22
Сообщение
#7
|
Гость |
Но ведь и значение мин элемента тоже надо показать ???
|
klem4 |
20.01.2006 16:46
Сообщение
#8
|
Perl. Just code it! Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
И что мешает ? writeln(a[imin, jmin]);
Настоятельно рекомендую взять лекции у одногруппников ... -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Alla |
20.01.2006 16:52
Сообщение
#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ой строки первго столбца ??? И минимальный элемент мне так и не удалось вывести, выводится только наибольший |
klem4 |
20.01.2006 16:58
Сообщение
#10
|
Perl. Just code it! Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Посмотри, подправил :
program test1; -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
20.01.2006 17:00
Сообщение
#11
|
Гость |
Цитата На нули меняется пересечение перdой строки первго столбца ??? Это смотря какие данные ты вводишь... Говорили же неоднократно - приводите данные, на которых тестировалась программа !!!klem4, так и будем полностью решать все время? |
Гость |
20.01.2006 17:05
Сообщение
#12
|
Гость |
Все с нулями разобрались, кстати а чем я ошиблась...
И еще минимальное число так и не удалось вывести при написании элементарного writeln(a[imin, jmin]) выводится 0, хотя мин - 1, а при writeln(a[i,j]) выводится максимум |
volvo |
20.01.2006 17:08
Сообщение
#13
|
Гость |
Ты уже затерла минимальное значение нулем... Чтобы этого не происходило - замени
for j:=1 to m do на for j:=1 to m do Больше ничего в программе не добавляй, все прекрасно отрабатывает... |
Alla |
20.01.2006 17:11
Сообщение
#14
|
Гость |
klem, Volvo, вы лучшие, СПАСИБО !!!
|
Текстовая версия | 24.04.2024 23:40 |