|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
12.11.2009, 19:25 | #1 |
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
Типичные задачи и примеры. Теория.
ИМХО всем уже надоели одни и те же вопросы по матрицам. Посылаешь их в поиск, посылаешь, а они все пишут и пишут и пишут...
P.S. Если тема нужная - прикрепите, пожалуйста. ------------------------------------------------------------ Определение матрицы:Матрица - это множество чисел, сгруппированных в столбцы и строки. Пример матрицы: Код:
Главная диагональ: Главная диагональ имеется только у квадратных матриц и координаты точек главной диагонали задаются следующей формулой: Код:
Код:
Побочная диагональ: Побочная диагональ также определяется только у квадратных матриц и задается следующей формулой: Код:
Код:
Для этого мы воспользуемся формулой главной диагонали - A[N,N]. Код HTML:
Если X>Y Тогда элемент выше главной диагонали. Если X=Y Тогда элемент на главной диагонали. Eckb X<Y Тогда элемент ниже главной диагонали. Код HTML:
Если X>Y-MAX+1 Тогда выше Если X=Y-MAX+1 Тогда на Если X<Y-MAX+1 Тогда ниже Для этого воспользуемся старым как мир способом ПРОМЕЖУТОЧНОЙ ПЕРЕМЕННОЙ (ПП): Обозначения: A - первый перемещаемый элемент, B - второй перемещаемый элемент, PP - промежуточная переменная. Код:
Код:
Максимальный элемент матрицы - это ячейка матрицы, имеющая максимальное значение. Максимальных элементов может быть несколько. Пример: Код:
Как найти максимальный элемент: Для этого необходимо использовать метод пузырька (другое название - метод коробочки). В чем он заключается? Проще простого: Код:
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ |
12.11.2009, 19:25 | #2 |
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
Минимальный элемент ищется аналогично, только условие стоит наоборот: в коробку кладется наименьший элемент.
Реализация на паскале: Код:
Аналогично примеру ищем максимальный и минимальный элементы и меняем их местами: Код:
Как поменять местами строки: Одно из распространенных заданий, но решается оно до банальности просто: Код:
P.S. Если я что-то упустил - напомните, пожалуйста. P.P.S. Если кто-то переведет вышеприведенные примеры на другие языки - статья обретет большую внутрифорумную репутацию. P.P.P.S. 2Студенты! В этой теме постить задания НЕ НАДО! P.P.P.P.S. (c) Копирайт Alex Cones 2009.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ Последний раз редактировалось Alex Cones; 12.11.2009 в 19:27. |
13.11.2009, 07:58 | #3 |
Пользователь
Регистрация: 13.05.2009
Сообщений: 39
|
а существуют ли в Delphi уже созданные функции (или целые библиотеки функций) для работы с матрицами?
Например, расчёт определителя, сложение матриц и так далее... Понятно, что можно взять справочник по математике (того же Бронштейна), там всё расписано, и всё это сделать, но неужели нет уже сделанных функций |
13.11.2009, 09:15 | #4 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Ну я знач малость покритикую старавши довести автора до кондиции
Цитата:
Дело в том что паскль не очень то любит если в разделе Var идет присваивание. Это раз Второе - обьявлен двумерный массив Array[1..3,1..3], а присваивается как линейный - = (2,2,2,3,3,3,1,1,1); Некузяво... Может какая-то школьная версия паскаля такое и прохавает, но... Посему решил предложить свой вариант - А заодно соригинальничать: Код:
Кста, тот метод инвертирования координат достаточно эффективен при огромных массивах. Надеюсь понятно что нужно и в остальных примерах слегка поправить описание массива.
I'm learning to live...
Последний раз редактировалось Stilet; 13.11.2009 в 09:18. |
|
25.12.2009, 23:56 | #5 |
Участник клуба
Регистрация: 06.04.2009
Сообщений: 1,524
|
Дополню примеры на языках Си и Си++
Как поменять местами два элемента диагонали: Пример на Си Код:
Код:
Пример на Си Код:
Код:
Для конкретного языка подключить соответствующие библиотеки и вместо комментария "//Вывод" выбрать соответствующий способ Код:
Как поменять местами строки: Код:
P.P.S. (с) Копирайт psycho-coder 2009. Модераторам: Может тему прикрепить? Последний раз редактировалось psycho-coder; 26.12.2009 в 00:13. |
19.01.2010, 21:20 | #6 |
Новичок
Джуниор
Регистрация: 19.01.2010
Сообщений: 2
|
А как найти умножения не парных елементов квадратной матрици више главной диагонали???
|
19.01.2010, 22:01 | #7 | |
Участник клуба
Регистрация: 03.12.2009
Сообщений: 1,013
|
pacing
из приведенных выше примерах, можно догадаться как, вам все разжевали что и как Цитата:
Последний раз редактировалось Базиля; 19.01.2010 в 22:14. |
|
19.01.2010, 22:37 | #8 |
Новичок
Джуниор
Регистрация: 19.01.2010
Сообщений: 1
|
Произведение матриц
Подскажите алгоритм перемножения матриц A[n,n] и В [n,n].
|
20.01.2010, 01:38 | #9 | |
Студент, не
Старожил
Регистрация: 29.01.2009
Сообщений: 2,067
|
Цитата:
A(nxm)*B(mxr)=C(nxr) Умножение матриц не подчиняется коммутативному закону - то есть A*B не равно B*A... Добавлено от модератора: перемножение матриц (A x B) определено только в том случае, если количество столбцов матрицы A совпадает с количеством строк матрицы B. Если такое соотношение не выполняется, то произведение не существует/не определено. Поэтому формулировка A*B <> (не равно) B*A - некорректна. Сравнивать можно только однородные объекты - если произведение матриц B*A неопределено, то оно не является матрицей, оно вообще ничем не является.
I am the First of Cyber Evolution...
I am the First to Program your Future... Последний раз редактировалось Вадим Мошев; 03.01.2016 в 21:33. |
|
12.03.2010, 16:19 | #10 |
Участник клуба
Регистрация: 29.12.2009
Сообщений: 1,166
|
как-то писал под заказ решение СЛАУ, выкладываю часть исходников
примеры работы с матрицами на C#, нахождение определителя матрицы любой размерности, транспонирование матрицы, умножение матриц между собой и на число, сложение матриц, решение СЛАУ методом Крамера, диагональные матрицы, с помощью этих реализаций решить СЛАУ можно будет практически любым способом Код:
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть] Последний раз редактировалось RUSt88; 12.03.2010 в 16:26. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Теория вероятности. Решить 2 задачи | Worldqwerty | Помощь студентам | 2 | 14.01.2013 14:52 |
Типичные задачи на С++ | Heming | Помощь студентам | 3 | 15.10.2012 11:13 |
Теория языков программирования и проектирование компиляторов (задачи) | Onni | Помощь студентам | 0 | 03.06.2012 21:18 |
Теория информации + теория её передачи. | vedro-compota | Общие вопросы по программированию, компьютерный форум | 4 | 23.10.2010 10:06 |
решение инженерных задач современными средствами компьютерной техники и типичные задачи автоматизированны | Дініс | Свободное общение | 1 | 12.09.2009 00:02 |