![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
metamfetamin |
![]()
Сообщение
#1
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 55 Пол: Мужской Репутация: ![]() ![]() ![]() |
Люди помогите пожалуста!!!
Нужно написать програму на Pascal умножение 2-ух матриц. И что бы в программе выполнялась проверка на нулевые строки и столбцы и если в матрицах они есть то что б удаляло.... Матрица А[7x6] и B[6x8] Матрицы находятся на диске С:\ в текстовом файле (пример С:\1.txt). Прикрепленные файлы ![]() |
![]() ![]() |
мисс_граффити |
![]()
Сообщение
#2
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
чем-то не понравилось выложенное умножение?
Массивы. Матрицы. Типичные задачи. -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
metamfetamin |
![]()
Сообщение
#3
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 55 Пол: Мужской Репутация: ![]() ![]() ![]() |
|
мисс_граффити |
![]()
Сообщение
#4
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
вот и я спрашиваю - чем?
-------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
metamfetamin |
![]()
Сообщение
#5
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 55 Пол: Мужской Репутация: ![]() ![]() ![]() |
В самой проге не выполняется не одно действие которое должно выполнятся:
1) Ни вывод матриц. 2)ни удаление нулевых строк и столбцов. 3) А по скольку не выполняется 2 пункт то соответственно и умножение получених матриц не выполняется. |
Ozzя |
![]()
Сообщение
#6
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: ![]() ![]() ![]() |
1. Есть по той же ссылке, 2-3 экрана вверх прокрутить.
2. Поищи в "Задачах" - "удаление строк (столбцов)". |
Neznaika |
![]()
Сообщение
#7
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 51 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вы определяете матрицы как 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 Попробуйте самостоятельно написать удаление строк/столбцов. Только необходимо учесть, что после такого удаления матрицы нельзя будет перемножить. Прикрепленные файлы ![]() |
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Цитата Только необходимо учесть, что после такого удаления матрицы нельзя будет перемножить. Неверно... НЕ ВСЕГДА можно будет перемножить, ибо в приведенном автором примере матрицы и после удаления остаются сцепленными... |
Neznaika |
![]()
Сообщение
#9
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 51 Пол: Мужской Репутация: ![]() ![]() ![]() |
volvo, да, с матрицами в 1.txt так и будет.
Но я изменил формат, чтобы можно было вводить любые матрицы до 32x32 включительно, предупреждение не помешает. ------------------------------------------------------------------------------------------------------------ Поспешил, правильно так: Цитата Только необходимо учесть, что после такого удаления матрицы не всегда удастся перемножить. Сообщение отредактировано: Neznaika - 8.10.2007 14:04 |
metamfetamin |
![]()
Сообщение
#10
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 55 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вы определяете матрицы как 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 Пол: Мужской Репутация: ![]() ![]() ![]() |
Можно перед end. поставить ReadLn, тогда программа остановится и будет ждать нажатия Enter.
Или лучше запускать её в FAR'е так, как я написал выше: MMUL < 1.txt Там можно после запуска программы нажать Ctrl+O и посмотреть результат, выводимый на экран. |
metamfetamin |
![]()
Сообщение
#12
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 55 Пол: Мужской Репутация: ![]() ![]() ![]() |
Попробуйте самостоятельно написать удаление строк/столбцов. Только необходимо учесть, что после такого удаления матрицы нельзя будет перемножить. У меня есть кусочки програмы ...... по поводу удаления строк и столбцов......но я не могу сообразить куда и как и кусочки засунуть чтоб они удаляли нулевые строки из вводимы матриц?????? Сами кусочки по удалению строк и столбцов вот.!!!!!!!! Добавлено через 14 мин. Можно перед end. поставить ReadLn, тогда программа остановится и будет ждать нажатия Enter. Или лучше запускать её в FAR'е так, как я написал выше: MMUL < 1.txt Там можно после запуска программы нажать Ctrl+O и посмотреть результат, выводимый на экран. У меня есть вот в файле некоторые кусочки с програм которые можно использовать в моей программе....... но я незнаю как и куда ети кусочки нужно повставлять и где и что в переменних нужно дополнительно описать????????? Прикрепленные файлы ![]() ![]() |
volvo |
![]()
Сообщение
#13
|
Гость ![]() |
metamfetamin, в аттаче - программа, которая работает с заданным тобой же файлом данных (без изменения формата): читает исходные матрицы A и B из файла, удаляет в них нулевые строки/столбцы, потом проверяет, являются ли полученные после удаления строк/столбцов матрицы сцепленными в любой комбинации (т.е., можно ли производить умножение A * B или B * A), и если умножение матриц допустимо - то оно производится... Иначе выдается сообщение о невозможности операции...
![]() На всякий случай - файл данных, с которым отработала программа: ![]() Будут вопросы - задавай, постараюсь объяснить то, что тебе будет неясно... Update: В случае, когда обе матрицы - квадратные (когда возможны оба варианта перемножения) производится умножение res = A * B Сообщение отредактировано: volvo - 9.10.2007 15:11 |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 22:30 |