![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Ellsa |
![]() ![]()
Сообщение
#1
|
![]() lehf ![]() ![]() Группа: Пользователи Сообщений: 115 Пол: Женский Репутация: ![]() ![]() ![]() |
знаю,что много раз здесь уже такое решалось.Но я не могу найти ошибку у себя....
Помогите,пожалуйста,если можете. Задание: переставить в каждом столбце прямоугольной матрицы все отрицательные элементы в конец столбца.Распечатать часть полученной матрицы,состоящую из n первых строк,не имеющих отрицательных элементов. program z9; я ввожу матрицу: 1 2 3 4 7 8 -2 9 -10 3 -2 4 1 0 -1 2 0 1 0 1 мне выдает: 7 8 3 9 1 3 -2 4 1 2 -1 4 0 1 0 2 я делала отдельно сортировку,без вывода строк,а с выводом матрицы....он по-прежнему считает все верно,кроме выделенных элементов. и строки по сути он не те выводит....я думала задать просто l1 номер строки с первым отрицательным элементом...но.... ![]() Сообщение отредактировано: Ellsa - 12.01.2007 13:44 |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата переставить в каждом столбце прямоугольной матрицы все отрицательные элементы в конец столбца и отсортировать столбцы по убыванию - это разные вещи... |
Ellsa |
![]()
Сообщение
#3
|
![]() lehf ![]() ![]() Группа: Пользователи Сообщений: 115 Пол: Женский Репутация: ![]() ![]() ![]() |
но если отсортировать столбцы по убыванию,то все отрицательные элементы окажутся внизу.Разве нет?
|
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Да, но порядок НЕотрицательных может измениться... Если тебе это безразлично, тогда можно сортировать...
|
Ellsa |
![]()
Сообщение
#5
|
![]() lehf ![]() ![]() Группа: Пользователи Сообщений: 115 Пол: Женский Репутация: ![]() ![]() ![]() |
да,мне безразлично.
а...хотя наверно нет...мне же надо будет столбцы вывести...но я тогда просто создам вторую матрицу....отсортированную....можно так? Сообщение отредактировано: Ellsa - 12.01.2007 13:57 |
Malice |
![]()
Сообщение
#6
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вот это:
меняем на:
У тебя сдвиг элементов проводился 1 раз в каждом столбе, а вдруг еще надо ? По этому добавим цикл по к. Плюс цикл по j надо до m. |
Ellsa |
![]()
Сообщение
#7
|
![]() lehf ![]() ![]() Группа: Пользователи Сообщений: 115 Пол: Женский Репутация: ![]() ![]() ![]() |
но ведь к даже нигде больше не используется в программе кроме как
for k:=1 to n do или его задать надо? |
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Кроме всего прочего - при поиске L1 идем снизу вверх, а не сверху вниз...
for i:=n downto 1 do P.S. Кстати, repeat/until здесь совершенно лишние... Сообщение отредактировано: volvo - 12.01.2007 14:07 |
Ellsa |
![]()
Сообщение
#9
|
![]() lehf ![]() ![]() Группа: Пользователи Сообщений: 115 Пол: Женский Репутация: ![]() ![]() ![]() |
почему?Мы ведь должны найти строки,которые не содержат отрицательных элементов и идем пока не встретим отрицательный элемент....а на полследней строке он сразу же нам встретится....
а цикл этот я вставила чтоб остановится когда будет самое первое отрицательное число...я просто не знаю как еще мне остановится. Сообщение отредактировано: Ellsa - 12.01.2007 14:08 |
volvo |
![]()
Сообщение
#10
|
Гость ![]() |
я просто сразу убрал repeat/until, поэтому и шел снизу вверх, твой вариант тоже работает...
![]() Цитата я просто не знаю как еще мне остановится. Вот тебе и преимущество прохода СНИЗУ - не надо останавливаться, идем по всей матрице... Последняя строка, где был отрицательный элемент будет запомнена... |
Ellsa |
![]()
Сообщение
#11
|
![]() lehf ![]() ![]() Группа: Пользователи Сообщений: 115 Пол: Женский Репутация: ![]() ![]() ![]() |
volvo а как работает k не можешь мне,балде,объяснить немного.... ![]() когда мы его прибавляем в цикл,это дает пробег цикла n раз....это я поняла из слов Malice...но я не понимаю,почему он пробегает по всей матрице из-за k,раз он к ней получается и не привязан никак...ну вот появилось k...а что такое k в принципе? i-номер строки. j-номер столбца... а k? ![]() |
volvo |
![]()
Сообщение
#12
|
Гость ![]() |
Заходим сюда: Методы сортировок
и смотрим, как делается пузырьковая сортировка одномерного массива - два вложенных цикла... Чтобы сравнить "все элементы со всеми" тебе недостаточно пройти одним циклом по массиву один раз, надо проходить несколько раз... Для этого и добавляется еще один цикл... K можно, наверное, назвать счетчиком проходов по столбцу... |
Ellsa |
![]()
Сообщение
#13
|
![]() lehf ![]() ![]() Группа: Пользователи Сообщений: 115 Пол: Женский Репутация: ![]() ![]() ![]() |
volvo
Malice СПАСИБО ВАМ БОЛЬШОЕ! ![]() ОЧЕНЬ ПОМОГЛИ!!!Теперь я понимаю пузырек... ![]() |
Ozzя |
![]()
Сообщение
#14
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ellsa
Осталось только послать ПМ модераторам форума сообщение, дабы они вышеуказанным товарищам повысили рейтинг. ![]() |
![]() ![]() |
![]() |
Текстовая версия | 19.07.2025 19:05 |