![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
18192123 |
![]()
Сообщение
#1
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Дана квадратная матрица порядка n. Сформировать вектор х, где чередуются положительные и отрицательные элементы из матрицы (вектор х начинается с отрицательного элемента)
(задача решается только с использованием массивов, процедур) Я думаю вначале нужно найти первый отрицательный элемент, тогда в векторе х положительные элементы будут занимать чётные позиции ( а как реализовать насчёт позициий - не знаю) И ещё: число положительных и отрицательных не во всех случаях равно, эти варианты то же нужно учесть или этого можно избежать? Подскажите пожалуйста!!! |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Ну, начать-то наверное, надо с того, что посчитать количество отрицательных элементов матрицы... Тогда ты сможешь сделать один простой цикл (пройти по матрице, в случае положительного элемента увеличивая индекс положительных, четный, на 2 или 1 в зависимости от количества отрицательных элементов в матрице; аналогично - для отрицательных индексов...)
Объяснить - гораздо сложнее чем сделать, но все же попробуй понять, что тут написано, и реализовать это... Вся программа (с выводом результата) заняла у меня всего 30 строк... |
18192123 |
![]()
Сообщение
#3
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
в случае положительного элемента увеличивая индекс положительных, четный, на 2 или 1 в зависимости от количества отрицательных элементов в матрице вот основного я как раз и не смогла понять.... почему на 1 или 2? (Я так рассуждала - если, например количество положительных больше ,то оставшиеся из них просто будут приписывать в конец вектора....) |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Цитата (Я так рассуждала - если, например количество положительных больше ,то оставшиеся из них просто будут приписывать в конец вектора....) ![]()
У меня neg - число отриц. эл-тов в матрице pos - число положит. эл-тов (pos := N*N - neg) |
18192123 |
![]()
Сообщение
#5
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
|
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
![]() inc(i_pos, 1 + byte(i_pos < 2 * neg)); аналогична: if i_pos < 2 * neg then inc(i_pos, 1 + 1) else inc(i_pos, 1 + 0) (а если результат одинаков - зачем набирать больше текста? ![]() |
18192123 |
![]()
Сообщение
#7
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Большое спасибо! Насчёт заполнения вектора - я всё поняла (урааа!!!
![]() Но у меня возник очень глупый вопрос: а как вывести элементы сформированного вектора? ( ведь когда заполняем вектор отрицательными элементами использовали vec[i_neg], а с положительными vec[i_pos] |
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Ну, и что? Это ведь ты для заполнения использовала эти индексы... А после заполнения просто проходи от 1 до N*N и распечатывай все подряд...
|
18192123 |
![]()
Сообщение
#9
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
|
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 5:57 |