![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Invisible |
![]()
Сообщение
#1
|
Гость ![]() |
Привет. Помогите решить задачу.
Дана матрица размером 5*4. Поменять местами первую строку и строчку, в которой находится первый нулевой элемент. Заранее спасибо! |
![]() ![]() |
klem4 |
![]()
Сообщение
#2
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Читайте правила !
Первым дело FAQ и поиск ! Таких задача решено уйма и в FAQ они тоже есть ! FAQ : Массивы, матрицы, типичные задачи. -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Invisible |
![]()
Сообщение
#3
|
Гость ![]() |
Да, читал и пробовал. Программа работает, но что-то не то... Не правильно получается.
|
klem4 |
![]()
Сообщение
#4
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
И вот это читал ? Как поменять в матрице строки или столбцы ?
![]() -------------------- 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 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Найти первую строку, в которой находится 0 :
Можно так :
только переменную лучьше pos не называть, зарезервированное слово всетаки ... нехорошо это Сообщение отредактировано: klem4 - 13.11.2005 12:12 -------------------- 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 певрый стоит. Всем огромное спасибо. |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 20:32 |