Помогите с матрицами! |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Помогите с матрицами! |
bonchmen |
Сообщение
#1
|
Группа: Пользователи Сообщений: 1 Пол: Мужской Репутация: 0 |
Здравствуйте, уважаемые Профи. Помогите пожалуйста решить такую задачку:
задана матрица 15*15. Необходимо: 1) Взять одну строку из этой матрицы и перемножить на остальные строчки; 2) Вычислить сумму каждой строки новой матрицы; 3) Сдвинуть строки исходной матрицы так, чтобы последний столбец стал 1-м, 1-й - вторым и т.д.; 4) Перемножить "сдвинутую" на ту же самую строчку исходной матрицы, что и в 1); 5) Повторить все операции до тех пор, пока сдвигаемая матрица не станет исходной (15 сдвигов); 6) Из сумм строк всех полученных матриц выбрать наибольшую по модулю. Задавать и перемножать матрицы я научился, хотя препод объясняет из рук вон плохо, с циклами вроде тоже разобрался кое-как, не могу понять как осуществить сдвиг строк матрицы и как выбрать потом максимальное значение. Подскажите пожалуйста. Заранее спасибо! |
klem4 |
Сообщение
#2
|
Perl. Just code it! Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Ну во первых покажи что уже есть ... По поводу сдвига все просто :
Запоминаешь первый столбец, далее сдвигаешь for i := 1 to n - 1 do begin
// i-й столбец = i+1 - й столбец
end;
// после цикла присваеваешь n-му столбцу значения первого, которые ты запомнил ...
Цитата 6) Из сумм строк всех полученных матриц выбрать наибольшую по модулю. Пишешь ф-ю, которая считает сумму столбца, ну а далее все как обычно Function Sum(m : TMatrix, col : integer) : integer;
begin
// ...
end;
col := 1;
max := abs(Sum(m , col));
for col := 2 to n do
if abs(sum(m, col)) > max then max := abs(sum(m, col));
В таком духе ... -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Текстовая версия | 7.01.2025 3:16 |