IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Умножение матриц с удаление нулевых строк!
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 55
Пол: Мужской

Репутация: -  -1  +


Люди помогите пожалуста!!!
Нужно написать програму на Pascal умножение 2-ух матриц.
И что бы в программе выполнялась проверка на нулевые строки и столбцы и если в матрицах они есть то что б удаляло....
Матрица А[7x6] и B[6x8]
Матрицы находятся на диске С:\ в текстовом файле (пример С:\1.txt).



Прикрепленные файлы
Прикрепленный файл  1.txt ( 462 байт ) Кол-во скачиваний: 136
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


чем-то не понравилось выложенное умножение?
Массивы. Матрицы. Типичные задачи.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 55
Пол: Мужской

Репутация: -  -1  +


Цитата(мисс_граффити @ 7.10.2007 23:07) *

чем-то не понравилось выложенное умножение?


А чем сообственно не понравилось?????
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


вот и я спрашиваю - чем?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 55
Пол: Мужской

Репутация: -  -1  +


В самой проге не выполняется не одно действие которое должно выполнятся:
1) Ни вывод матриц.
2)ни удаление нулевых строк и столбцов.
3) А по скольку не выполняется 2 пункт то соответственно и умножение получених матриц не выполняется.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

Репутация: -  16  +


1. Есть по той же ссылке, 2-3 экрана вверх прокрутить.
2. Поищи в "Задачах" - "удаление строк (столбцов)".
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 килобайт ) Кол-во скачиваний: 88
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Цитата
Только необходимо учесть, что после такого удаления матрицы нельзя будет перемножить.
Неверно... НЕ ВСЕГДА можно будет перемножить, ибо в приведенном автором примере матрицы и после удаления остаются сцепленными...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Пионер
**

Группа: Пользователи
Сообщений: 51
Пол: Мужской

Репутация: -  0  +


volvo, да, с матрицами в 1.txt так и будет.
Но я изменил формат, чтобы можно было вводить любые матрицы до 32x32 включительно,
предупреждение не помешает.
------------------------------------------------------------------------------------------------------------
Поспешил, правильно так:
Цитата
Только необходимо учесть, что после такого удаления матрицы не всегда удастся перемножить.



Сообщение отредактировано: Neznaika -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Пионер
**

Группа: Пользователи
Сообщений: 55
Пол: Мужской

Репутация: -  -1  +


Цитата(Neznaika @ 8.10.2007 14:34) *

Вы определяете матрицы как 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 то ничего не происходит и оно меня обратно выкидывает к листинку????
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Пионер
**

Группа: Пользователи
Сообщений: 51
Пол: Мужской

Репутация: -  0  +


Можно перед end. поставить ReadLn, тогда программа остановится и будет ждать нажатия Enter.
Или лучше запускать её в FAR'е так, как я написал выше:
MMUL < 1.txt
Там можно после запуска программы нажать Ctrl+O и посмотреть результат, выводимый на экран.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Пионер
**

Группа: Пользователи
Сообщений: 55
Пол: Мужской

Репутация: -  -1  +


Цитата(Neznaika @ 8.10.2007 14:34) *

Попробуйте самостоятельно написать удаление строк/столбцов.
Только необходимо учесть, что после такого удаления матрицы нельзя будет перемножить.



У меня есть кусочки програмы ...... по поводу удаления строк и столбцов......но я не могу сообразить куда и как и кусочки засунуть чтоб они удаляли нулевые строки из вводимы матриц??????
Сами кусочки по удалению строк и столбцов вот.!!!!!!!!

Добавлено через 14 мин.
Цитата(Neznaika @ 8.10.2007 22:13) *

Можно перед end. поставить ReadLn, тогда программа остановится и будет ждать нажатия Enter.
Или лучше запускать её в FAR'е так, как я написал выше:
MMUL < 1.txt
Там можно после запуска программы нажать Ctrl+O и посмотреть результат, выводимый на экран.



У меня есть вот в файле некоторые кусочки с програм которые можно использовать в моей программе....... но я незнаю как и куда ети кусочки нужно повставлять и где и что в переменних нужно дополнительно описать?????????


Прикрепленные файлы
Прикрепленный файл  _________________________.txt ( 1.14 килобайт ) Кол-во скачиваний: 140
Прикрепленный файл  __________________________________.txt ( 2.22 килобайт ) Кол-во скачиваний: 150
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Гость






metamfetamin, в аттаче - программа, которая работает с заданным тобой же файлом данных (без изменения формата): читает исходные матрицы A и B из файла, удаляет в них нулевые строки/столбцы, потом проверяет, являются ли полученные после удаления строк/столбцов матрицы сцепленными в любой комбинации (т.е., можно ли производить умножение A * B или B * A), и если умножение матриц допустимо - то оно производится... Иначе выдается сообщение о невозможности операции...

Прикрепленный файл  __m_mx.pas ( 2.51 килобайт ) Кол-во скачиваний: 334


На всякий случай - файл данных, с которым отработала программа:
Прикрепленный файл  mx.txt ( 471 байт ) Кол-во скачиваний: 314


Будут вопросы - задавай, постараюсь объяснить то, что тебе будет неясно...

Update: В случае, когда обе матрицы - квадратные (когда возможны оба варианта перемножения) производится умножение
res = A * B

Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 27.11.2020 2:10
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name