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

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

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

> Умножение матриц с удаление нулевых строк!
metamfetamin
сообщение 7.10.2007 18:00
Сообщение #1


Пионер
**

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

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


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



Прикрепленные файлы
Прикрепленный файл  1.txt ( 462 байт ) Кол-во скачиваний: 208
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 12)
мисс_граффити
сообщение 7.10.2007 22:07
Сообщение #2


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

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

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


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


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


Пионер
**

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

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


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

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


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


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

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

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


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


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


Пионер
**

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

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


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


Гуру
*****

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

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


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


Гость






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


Пионер
**

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

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


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



Сообщение отредактировано: Neznaika - 8.10.2007 14:04
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
metamfetamin
сообщение 8.10.2007 20:53
Сообщение #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 
 К началу страницы 
+ Ответить 
Neznaika
сообщение 8.10.2007 21:13
Сообщение #11


Пионер
**

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

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


Можно перед end. поставить ReadLn, тогда программа остановится и будет ждать нажатия Enter.
Или лучше запускать её в FAR'е так, как я написал выше:
MMUL < 1.txt
Там можно после запуска программы нажать Ctrl+O и посмотреть результат, выводимый на экран.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
metamfetamin
сообщение 8.10.2007 21:22
Сообщение #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 ( 2.22 килобайт ) Кол-во скачиваний: 243
Прикрепленный файл  _________________________.txt ( 1.14 килобайт ) Кол-во скачиваний: 245
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 9.10.2007 13:11
Сообщение #13


Гость






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

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


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


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

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

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

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

 



- Текстовая версия 20.07.2025 22:30
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"