Матрица, Поменять местами строки |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Матрица, Поменять местами строки |
Invisible |
Сообщение
#1
|
Гость |
Привет. Помогите решить задачу.
Дана матрица размером 5*4. Поменять местами первую строку и строчку, в которой находится первый нулевой элемент. Заранее спасибо! |
klem4 |
Сообщение
#2
|
Perl. Just code it! Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Читайте правила !
Первым дело FAQ и поиск ! Таких задача решено уйма и в FAQ они тоже есть ! FAQ : Массивы, матрицы, типичные задачи. -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Invisible |
Сообщение
#3
|
Гость |
Да, читал и пробовал. Программа работает, но что-то не то... Не правильно получается.
|
klem4 |
Сообщение
#4
|
Perl. Just code it! Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
И вот это читал ? Как поменять в матрице строки или столбцы ?
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Invisible |
Сообщение
#5
|
Гость |
Ну, вот допустим программа после использования вашего FAQ:
Код uses crt; const size_row = 5; size_col = 4; type tvector = array[1 .. size_col] of integer; tmatrix = array[1 .. size_row] of tvector; procedure swap_rows(var mx: tmatrix; const i, j: integer); var T: tvector; begin T := mx[i]; mx[i] := mx[j]; mx[j] := T end; procedure print(var mx: tmatrix); var i, j: integer; begin for i := 1 to size_row do begin for j := 1 to size_col do write(mx[i][j]:4); writeln end; end; var mx: tmatrix; x, i, j: integer; begin clrscr; for i := 1 to size_row do for j := 1 to size_col do mx[i][j] := random(20); writeln('before:'); print(mx); swap_rows(mx, 1, 5); writeln('after:'); print(mx); readln; end. Мне нужно поменять местами первую строку и строчку, в которой находится первый нулевой элемент. Так как мне найти этот первый нулевой элемент? Пробовал добавить строчку if mx[i][1]:=0 then i:=x; И изменить swap_rows(mx, 1, x); Но получил ошибку с boolean. Подскажите как можно это реализовать? |
klem4 |
Сообщение
#6
|
Perl. Just code it! Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Найти первую строку, в которой находится 0 :
Можно так :
только переменную лучьше pos не называть, зарезервированное слово всетаки ... нехорошо это Сообщение отредактировано: klem4 - -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
Сообщение
#7
|
Гость |
Invisible, как вариант:
function contains_zero(var mx: tmatrix; row: integer): boolean; |
Guest |
Сообщение
#8
|
Гость |
Хм.... Спасибо. Но что-то результат не тот:
Что-то тут все в перемешку. Вот сама программа:
Это я попробовал способом volvo. Способами klem4 тоже не получилось. Может я что-то не то делаю? Так ткните носом пожалуйста. |
volvo |
Сообщение
#9
|
Гость |
Guest, а что собственно в результате не нравится? По-моему все верно: первый раз ноль встречается в 3-ей строке, она и меняется местами с первой...
Или тебе нужен первый ноль в каком-то определенном столбце? |
Invisible |
Сообщение
#10
|
Гость |
О, извините. Все правильно. Меня просто зациклило в одном месте.
"поменять местами первую строку и строчку, в которой находится первый нулевой элемент". Я думал, что 0 - это первый элемент строки, а это не обязательно так, дошло. То есть я думал, что менять должна строка, где 0 певрый стоит. Всем огромное спасибо. |
Текстовая версия | 23.12.2024 20:25 |