Задача с матрицами, Прошу помощи в решении. |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Задача с матрицами, Прошу помощи в решении. |
jetman |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 13 Пол: Мужской Реальное имя: Александр Репутация: 0 |
Проблема не дающая заснуть уже четвертый день:
Дана целая матрица размера nxm. Для каждой строки матрицы найти сумму четных элементов и произведение нечетных. Результаты оформить в виде матрицы (nx2). В полученной матрице упорядочить (переставить) строки по возрастанию второго элемента в строке. Буду признателен за любую помощь. Сообщение отредактировано: jetman - |
klem4 |
Сообщение
#2
|
Perl. Just code it! Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
А что уже готово, какие моменты неопнятны/не получаются ? Вот загляни в наш FAQ по массивам и матрицам, может найдешь ответы на свои вопросы : http://forum.pascal.net.ru/index.php?showtopic=2694
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
klem4 |
Сообщение
#3
|
Perl. Just code it! Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
На усмотрение модератора выкладываю свое решение, захотелось отвлечься и решил сделать задачу :p2:
код временно скрыт... Пусть автор сначала скажет что у него конктретно не получается. админ. вырезанно Сообщение отредактировано: Altair - -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Altair |
Сообщение
#4
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
АВТОР ПРОГРАММЫ: klem4
uses crt; -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
jetman |
Сообщение
#5
|
Новичок Группа: Пользователи Сообщений: 13 Пол: Мужской Реальное имя: Александр Репутация: 0 |
Первый момент: неясно как Для каждой строки матрицы найти сумму четных элементов и произведение нечетных.
А второй: как результаты оформить в виде матрицы (nx2). В полученной матрице упорядочить (переставить) строки по возрастанию второго элемента в строке. В общем-то получается что ничего неясно... Сделал я похоже в своей жизни вторую ошибку. |
volvo |
Сообщение
#6
|
Гость |
Еще один вариант, более простой и, по-моему, более правильно интерпретирующий условие (пока тоже скрыто) :
uses crt; |
volvo |
Сообщение
#7
|
Гость |
Цитата(jetman @ 19.10.2005 10:06) Первый момент: неясно как Для каждой строки матрицы найти сумму четных элементов и произведение нечетных. const m = ...; n = ...;Для умножения - аналогично... Цитата(jetman @ 19.10.2005 10:06) как результаты оформить в виде матрицы (nx2). В полученной матрице упорядочить (переставить) строки по возрастанию второго элемента в строке. Посмотри FAQ: Методы сортировок и заодно вот это: FAQ: Как задать матрицу, чтобы быстро поменять местами ее строки Этого должно хватить. Цитата(jetman @ 19.10.2005 10:06) Сделал я похоже в своей жизни вторую ошибку. "Не сразу Москва строилась" (С) |
jetman |
Сообщение
#8
|
Новичок Группа: Пользователи Сообщений: 13 Пол: Мужской Реальное имя: Александр Репутация: 0 |
:fire: :help:
Я в тупике (точнее тупик в моей голове) :ypr: . Ну не могу я написать эту :ryg: программу. Мож чего не догнал :orangun: И так еще раз и попорядку: 1. Мне надо ВВЕСТИ матрицу в память (точно вот так):
2.Для каждой строки матрицы найти сумму четных элементов и произведение нечетных. Сумма ЧЕТНЫХ:
Произведение НЕЧЕТНЫХ:
3. Вывести s и r виде матрицы матрицы (nx2). В полученной матрице упорядочить (переставить) строки по возрастанию второго элемента в строке.
В итоге если это правильно написать и составить по пунктам 1, 2, 3 должно работать, но как это сделать не понятно??? :help: |
volvo |
Сообщение
#9
|
Гость |
jetman, во-первых, посмотри пост №6 (я его только что открыл, раньше ты его не мог видеть, ну и пост №4 заодно...), а во вторых:
function umn(a: matrix; i: byte): integer; Первая ошибка: после того, как ты R присвоил 0, неважно, что ты будешь делать дальше, у тебя произведение ВСЕГДА будет равно 0... Нулем инициализируется переменная при сложении; при умножении надо инициализировать единицей... Вторая: (r, a[i, j])*(r, a[i,j]) ... Что бы этим хотел сделать? Вот так находится произведение: ... |
jetman |
Сообщение
#10
|
Новичок Группа: Пользователи Сообщений: 13 Пол: Мужской Реальное имя: Александр Репутация: 0 |
Я конечно дико извиняюсь , но ведь приведенные вами программы работают по принципу случайных чисел, а мне (как я понял) нужно вводит матрицу самому (вручную) или я опять чего-то непонял
|
volvo |
Сообщение
#11
|
Гость |
Ну, так замени
x[i,j] := random(11);на beginв процедуре InitArray... |
jetman |
Сообщение
#12
|
Новичок Группа: Пользователи Сообщений: 13 Пол: Мужской Реальное имя: Александр Репутация: 0 |
Получилось вот так, но есть одна проблема лишние нули (и как я понимаю неверный результат). |
volvo |
Сообщение
#13
|
Гость |
Цитата(jetman @ 21.10.2005 6:08) { Должен ведь ограничивать максимальный размер матрицы, но почему то этого не делает} :yes: Должен... При условии, что ты будешь матрицу вводить, как положено! Смотри внимательно: procedure InitArray(var x : TArr);Вывод: никогда не давай локальным переменным тех же имен, что и глобальным... Вот правильный вариант InitArray: program test; |
jetman |
Сообщение
#14
|
Новичок Группа: Пользователи Сообщений: 13 Пол: Мужской Реальное имя: Александр Репутация: 0 |
Все работает, поверить не могу, ОГРОМНОЕ Вам человеческое спасибо volvo, klem4, altair
|
Текстовая версия | 16.05.2024 23:14 |