Люди помогите пожалуста!!!
Нужно написать програму на Pascal умножение 2-ух матриц.
И что бы в программе выполнялась проверка на нулевые строки и столбцы и если в матрицах они есть то что б удаляло....
Матрица А[7x6] и B[6x8]
Матрицы находятся на диске С:\ в текстовом файле (пример С:\1.txt).
Прикрепленные файлы
1.txt ( 462 байт )
Кол-во скачиваний: 236
чем-то не понравилось выложенное умножение?
http://forum.pascal.net.ru/index.php?s=&showtopic=2694&view=findpost&p=23475
вот и я спрашиваю - чем?
В самой проге не выполняется не одно действие которое должно выполнятся:
1) Ни вывод матриц.
2)ни удаление нулевых строк и столбцов.
3) А по скольку не выполняется 2 пункт то соответственно и умножение получених матриц не выполняется.
1. Есть по той же ссылке, 2-3 экрана вверх прокрутить.
2. Поищи в "Задачах" - "удаление строк (столбцов)".
Вы определяете матрицы как 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 килобайт )
Кол-во скачиваний: 174
volvo, да, с матрицами в 1.txt так и будет.
Но я изменил формат, чтобы можно было вводить любые матрицы до 32x32 включительно,
предупреждение не помешает.
------------------------------------------------------------------------------------------------------------
Поспешил, правильно так:
Можно перед end. поставить ReadLn, тогда программа остановится и будет ждать нажатия Enter.
Или лучше запускать её в FAR'е так, как я написал выше:
MMUL < 1.txt
Там можно после запуска программы нажать Ctrl+O и посмотреть результат, выводимый на экран.
metamfetamin, в аттаче - программа, которая работает с заданным тобой же файлом данных (без изменения формата): читает исходные матрицы A и B из файла, удаляет в них нулевые строки/столбцы, потом проверяет, являются ли полученные после удаления строк/столбцов матрицы сцепленными в любой комбинации (т.е., можно ли производить умножение A * B или B * A), и если умножение матриц допустимо - то оно производится... Иначе выдается сообщение о невозможности операции...
__m_mx.pas ( 2.51 килобайт )
Кол-во скачиваний: 472
На всякий случай - файл данных, с которым отработала программа:
mx.txt ( 471 байт )
Кол-во скачиваний: 472
Будут вопросы - задавай, постараюсь объяснить то, что тебе будет неясно...
Update: В случае, когда обе матрицы - квадратные (когда возможны оба варианта перемножения) производится умножение
res = A * B