Умножение матриц с удаление нулевых строк! |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Умножение матриц с удаление нулевых строк! |
metamfetamin |
Сообщение
#1
|
Пионер Группа: Пользователи Сообщений: 55 Пол: Мужской Репутация: -1 |
Люди помогите пожалуста!!!
Нужно написать програму на Pascal умножение 2-ух матриц. И что бы в программе выполнялась проверка на нулевые строки и столбцы и если в матрицах они есть то что б удаляло.... Матрица А[7x6] и B[6x8] Матрицы находятся на диске С:\ в текстовом файле (пример С:\1.txt). Прикрепленные файлы 1.txt ( 462 байт ) Кол-во скачиваний: 260 |
мисс_граффити |
Сообщение
#2
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
чем-то не понравилось выложенное умножение?
Массивы. Матрицы. Типичные задачи. -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
metamfetamin |
Сообщение
#3
|
Пионер Группа: Пользователи Сообщений: 55 Пол: Мужской Репутация: -1 |
|
мисс_граффити |
Сообщение
#4
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
вот и я спрашиваю - чем?
-------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
metamfetamin |
Сообщение
#5
|
Пионер Группа: Пользователи Сообщений: 55 Пол: Мужской Репутация: -1 |
В самой проге не выполняется не одно действие которое должно выполнятся:
1) Ни вывод матриц. 2)ни удаление нулевых строк и столбцов. 3) А по скольку не выполняется 2 пункт то соответственно и умножение получених матриц не выполняется. |
Ozzя |
Сообщение
#6
|
Гуру Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: 16 |
1. Есть по той же ссылке, 2-3 экрана вверх прокрутить.
2. Поищи в "Задачах" - "удаление строк (столбцов)". |
Neznaika |
Сообщение
#7
|
Пионер Группа: Пользователи Сообщений: 51 Пол: Мужской Репутация: 0 |
Вы определяете матрицы как a:array [1..8,1..8] of string [1];,
то есть как таблицы строк, а не чисел. Это может привести к размягчению мозга. Чтобы это не произошло нужно работать с числами, а не со строками, и все преобразования из строк в числа возложить на процедуры ввода/вывода. Я немного изменил формат файла 1.txt на следующий: ============= Файл 1.txt ==================== М P1 A[1,1] ... A[1,P1] ........................ A[M,1] ... A[M,P1] P2 N B[1,1] ... B[1,N] ........................ B[P2,1] ... B[P2,N] ========================================= В архиве программа умножения матриц A и B - MMUL. Вызов: MMUL < 1.txt Попробуйте самостоятельно написать удаление строк/столбцов. Только необходимо учесть, что после такого удаления матрицы нельзя будет перемножить. Прикрепленные файлы MMUL.rar ( 5 килобайт ) Кол-во скачиваний: 198 |
volvo |
Сообщение
#8
|
Гость |
Цитата Только необходимо учесть, что после такого удаления матрицы нельзя будет перемножить. Неверно... НЕ ВСЕГДА можно будет перемножить, ибо в приведенном автором примере матрицы и после удаления остаются сцепленными... |
Neznaika |
Сообщение
#9
|
Пионер Группа: Пользователи Сообщений: 51 Пол: Мужской Репутация: 0 |
volvo, да, с матрицами в 1.txt так и будет.
Но я изменил формат, чтобы можно было вводить любые матрицы до 32x32 включительно, предупреждение не помешает. ------------------------------------------------------------------------------------------------------------ Поспешил, правильно так: Цитата Только необходимо учесть, что после такого удаления матрицы не всегда удастся перемножить. Сообщение отредактировано: Neznaika - |
metamfetamin |
Сообщение
#10
|
Пионер Группа: Пользователи Сообщений: 55 Пол: Мужской Репутация: -1 |
Вы определяете матрицы как a:array [1..8,1..8] of string [1];, то есть как таблицы строк, а не чисел. Это может привести к размягчению мозга. Чтобы это не произошло нужно работать с числами, а не со строками, и все преобразования из строк в числа возложить на процедуры ввода/вывода. Я немного изменил формат файла 1.txt на следующий: ============= Файл 1.txt ==================== М P1 A[1,1] ... A[1,P1] ........................ A[M,1] ... A[M,P1] P2 N B[1,1] ... B[1,N] ........................ B[P2,1] ... B[P2,N] ========================================= В архиве программа умножения матриц A и B - MMUL. Вызов: MMUL < 1.txt Попробуйте самостоятельно написать удаление строк/столбцов. Только необходимо учесть, что после такого удаления матрицы нельзя будет перемножить. А почему после того как я ввожу две матрицы и нажимаю enter то ничего не происходит и оно меня обратно выкидывает к листинку???? |
Neznaika |
Сообщение
#11
|
Пионер Группа: Пользователи Сообщений: 51 Пол: Мужской Репутация: 0 |
Можно перед end. поставить ReadLn, тогда программа остановится и будет ждать нажатия Enter.
Или лучше запускать её в FAR'е так, как я написал выше: MMUL < 1.txt Там можно после запуска программы нажать Ctrl+O и посмотреть результат, выводимый на экран. |
metamfetamin |
Сообщение
#12
|
Пионер Группа: Пользователи Сообщений: 55 Пол: Мужской Репутация: -1 |
Попробуйте самостоятельно написать удаление строк/столбцов. Только необходимо учесть, что после такого удаления матрицы нельзя будет перемножить. У меня есть кусочки програмы ...... по поводу удаления строк и столбцов......но я не могу сообразить куда и как и кусочки засунуть чтоб они удаляли нулевые строки из вводимы матриц?????? Сами кусочки по удалению строк и столбцов вот.!!!!!!!! Добавлено через 14 мин. Можно перед end. поставить ReadLn, тогда программа остановится и будет ждать нажатия Enter. Или лучше запускать её в FAR'е так, как я написал выше: MMUL < 1.txt Там можно после запуска программы нажать Ctrl+O и посмотреть результат, выводимый на экран. У меня есть вот в файле некоторые кусочки с програм которые можно использовать в моей программе....... но я незнаю как и куда ети кусочки нужно повставлять и где и что в переменних нужно дополнительно описать????????? Прикрепленные файлы _________________________.txt ( 1.14 килобайт ) Кол-во скачиваний: 249 __________________________________.txt ( 2.22 килобайт ) Кол-во скачиваний: 267 |
volvo |
Сообщение
#13
|
Гость |
metamfetamin, в аттаче - программа, которая работает с заданным тобой же файлом данных (без изменения формата): читает исходные матрицы A и B из файла, удаляет в них нулевые строки/столбцы, потом проверяет, являются ли полученные после удаления строк/столбцов матрицы сцепленными в любой комбинации (т.е., можно ли производить умножение A * B или B * A), и если умножение матриц допустимо - то оно производится... Иначе выдается сообщение о невозможности операции...
__m_mx.pas ( 2.51 килобайт ) Кол-во скачиваний: 518 На всякий случай - файл данных, с которым отработала программа: mx.txt ( 471 байт ) Кол-во скачиваний: 513 Будут вопросы - задавай, постараюсь объяснить то, что тебе будет неясно... Update: В случае, когда обе матрицы - квадратные (когда возможны оба варианта перемножения) производится умножение res = A * B Сообщение отредактировано: volvo - |
Текстовая версия | 11.01.2025 4:57 |