![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Серёжка |
![]()
Сообщение
#1
|
![]() Группа: Пользователи Сообщений: 7 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
Народ помогите с задачей:
Дана матрица B размером m*n и вектор C размером k, нужно заменить вектором С столбцы марицы B, не содержащие ни одного отрицательного элемента? Я эту задачу начал делать, но не могу сообразить какой цикл там надо применять при замене столбца на вектор. Помогите с решением. Плиз. Заранее спасибо! Вот начало моей программы:
|
![]() ![]() |
samec |
![]()
Сообщение
#2
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 180 Пол: Мужской Реальное имя: Юра Репутация: ![]() ![]() ![]() |
А если возникнет ситуация, при которой число строк матрицы больше или наоборот меньше размерности вектора, то по какому правилу заменть столбцы???
|
Серёжка |
![]()
Сообщение
#3
|
![]() Группа: Пользователи Сообщений: 7 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
А если возникнет ситуация, при которой число строк матрицы больше или наоборот меньше размерности вектора, то по какому правилу заменть столбцы??? В этом случае я думаю надо делать так: если число строк матрицы больше чем размерность вектора то нужно вектор дополнить нулями, ну а если число строк меньше чем размерность вектора, то нужно вектор обрезать. |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Серёжка, кстати, это - классический пример ситуации, когда человек сначала создает себе проблемы, а потом успешно их решает... А если не создавать?
Я вот о чем: смотрим внимательно на задание - Цитата Дана матрица B размером m*n и вектор C размером k, нужно заменить вектором С столбцы марицы B, не содержащие ни одного отрицательного элемента? Представляешь, насколько все будет проще, если рассматривать матрицу НЕ как массив строк (что ты делаешь сейчас), а как массив столбцов? С одной стороны это облегчает поиск отрицательных элементов в столбце (ты же будешь работать со столбцом, как с обычным массивом)... С другой стороны - замена столбца - вообще одним оператором... |
Серёжка |
![]()
Сообщение
#5
|
![]() Группа: Пользователи Сообщений: 7 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
Серёжка, кстати, это - классический пример ситуации, когда человек сначала создает себе проблемы, а потом успешно их решает... А если не создавать? Я вот о чем: смотрим внимательно на задание - Представляешь, насколько все будет проще, если рассматривать матрицу НЕ как массив строк (что ты делаешь сейчас), а как массив столбцов? С одной стороны это облегчает поиск отрицательных элементов в столбце (ты же будешь работать со столбцом, как с обычным массивом)... С другой стороны - замена столбца - вообще одним оператором... Ну я примерно так и мыслю, просто мои познания Паскаля очень, очень маленькие. ![]() А код будет примерно такой при замене столбцов, правда я его ещё не додумал:
Если что не та подправте пожалуста. ![]() Сообщение отредактировано: Серёжка - 16.05.2007 11:09 |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Да не так ты мыслишь... Вот что я имел в виду:
type(функцию min придется написать самому...) При распечатке матрицы надо учитывать то же самое, что и при вводе - индексы меняются местами! Сообщение отредактировано: volvo - 16.05.2007 11:26 |
Серёжка |
![]()
Сообщение
#7
|
![]() Группа: Пользователи Сообщений: 7 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
Ого как сложно!!!
![]() Слушай, извини за наглость, но не мог бы ты объяснить вот эти строчки кода, а то я совсем их не понял: type |
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Все далеко не так сложно, как тебе кажется... А если в результате написать программу твоим первоначальным способом, и тем, что я предложил, то разница в размере будет налицо... Да и отлаживать/изменять структурированную программу проще.
Теперь о вопросе: Цитата {А почему здесь матрица, представлена как одномерный массив?} Да, но ты не сказал, массив ЧЕГО? Это массив столбцов, а ведь каждый из них представляем собой в свою очередь тоже массив...Вот ты написал: matrix=array[index_1,index_2] of real;А ведь это - то же самое, что matrix=array[index_1] of array[index_2] of real;, ну и у меня так же, только я сначала отдельно описываю тип, а потом его использую... А ниже - функция, которая в передаваемом ей массиве ищет отрицательный элемент, и как только первый отрицательный найден, запоминает в качестве своего результата True (изначально я предполагаю, что в столбце НЕТ отрицательных элементов) |
Серёжка |
![]()
Сообщение
#9
|
![]() Группа: Пользователи Сообщений: 7 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
Вроде понял, что к чему!
![]() ОГРОМНОЕ СПАСИБО!!! |
Серёжка |
![]()
Сообщение
#10
|
![]() Группа: Пользователи Сообщений: 7 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
А как написать функцию min? А то я что то не врубаюсь...
![]() |
volvo |
![]()
Сообщение
#11
|
Гость ![]() |
Цитата А как написать функцию min? function min(a, b: integer): integer; |
![]() ![]() |
![]() |
Текстовая версия | 25.06.2025 7:19 |