Набор квадратных матриц |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Набор квадратных матриц |
Asmodeus |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 15 Пол: Мужской Репутация: 0 |
Здравствуйте!
Я первокурсник с Мат-Меха (УрГУ). Помогите плиз с задачкой. Буду очень признателен)) Задача: Дан набор квадратных матриц. Проверить является ли Абелевой группой. Нужно написать процедуры: 1. Ввод матрицы. 2. Печать матрицы. 3. Сложение каких-то матриц из этого набора. 4. Умножение каких-то матриц из этого набора. 5. Проверка на равенство каких-то двух матриц из набора. 6. Замкунутость относительно сложения. 7. Замкнутость относительно умножения. 8. Является ли Абелевой группой по умножению. 9. Какая-нибудь матрица из набора является единичной или нет. 10. Произведение каких-нибудь двух, равно единичной матрице. Вот такая большая задача! Пожалуйста помогите хотя бы с частью процедур (ну 1,2 сам сделал). Спасибо всем))) |
volvo |
Сообщение
#2
|
Гость |
Массивы. Матрицы. Типичные задачи.
Здесь есть еще как минимум 3 пункта твоего задания... |
Asmodeus |
Сообщение
#3
|
Новичок Группа: Пользователи Сообщений: 15 Пол: Мужской Репутация: 0 |
Извинте, но я не вижу там чего-то похожего с моими заданиями...
|
volvo |
Сообщение
#4
|
Гость |
Я не знаю, как ты смотришь, но то сообщение, на которое ведет моя ссылка, содержит процедуры для сложения и перемножения квадратных матриц. Не это ли требовалось тебе по заданию?
|
Asmodeus |
Сообщение
#5
|
Новичок Группа: Пользователи Сообщений: 15 Пол: Мужской Репутация: 0 |
Все правильно. Главная прблема вот в чем: Вот есть две процедуры одна для считывания одной матрицы, другая для вывода считанной матрицы на экран. Но мне нужно чтобы был набор квадратных матриц, т.е. нужно сделать так чтобы при запуске программы вводишь нужное число матриц, затем поэлементно задаешь каждую матрицу матрицу. запоминаешь каждую матрицу и выводишь на экран. Затем проделываются все нужные операции и выводятся результаты. |
volvo |
Сообщение
#6
|
Гость |
А что, массивы матриц уже запретили делать?
type а потом - печать и перебор всех возможных сочетаний матриц из этого массива (можно, в принципе, сделать массив матриц и динамическим, только вот надо ли?) |
Asmodeus |
Сообщение
#7
|
Новичок Группа: Пользователи Сообщений: 15 Пол: Мужской Репутация: 0 |
Вот начало программы:
Код Program Matrix; const m=2; type tm=1..m; y=array[tm,tm] of integer; mas=array[1..100] of y; Procedure ReadMatrix(var n:integer; {считывание матрицы} var matrix:y); var i,j:integer; begin write ('Vvedite kol-vo strok & stolbcov matrix-->'); readln (n); for i:=1 to n do begin for j:=1 to n do read (matrix[i,j]); writeln; end; end; Procedure WriteMatrix(var n:integer; {вывод матрицы на экран} var matrix:y); var i,j:integer; begin writeln ('matrix'); for i:=1 to n do begin for j:=1 to n do write (matrix[i,j],' '); writeln; end; end; var n:integer; {тестовая программа} matrix1:y; begin ReadMatrix(n,matrix1); readln; WriteMatrix(n,matrix1); readln; end. напишите пожалуйста, как задать набор матриц. |
volvo |
Сообщение
#8
|
Гость |
Ах, вот оно в чем дело... Тогда придется работать вот так:
{$R-} |
Asmodeus |
Сообщение
#9
|
Новичок Группа: Пользователи Сообщений: 15 Пол: Мужской Репутация: 0 |
Воо)) жесть!
Спасибо большое!!! Очень помог! Риспект тебе) |
Asmodeus |
Сообщение
#10
|
Новичок Группа: Пользователи Сообщений: 15 Пол: Мужской Репутация: 0 |
А есть способ написать эту же программу, но без использования записей. И всяких процедур типа getmem, sizeof ?
|
volvo |
Сообщение
#11
|
Гость |
Есть, но тогда программа получится гораздо менее читаемой, и будет "пожирать" большие объемы памяти. Смотри сам: у тебя матрицы могут быть разного размера, так? Значит, размер надо где-то хранить. Где? В массиве? Угу, я так и думал. А то, что этот массив НИГДЕ не будет использоваться без связи с массивом матриц, это тебе как? Не мешает? Программа должна быть структурированной, а не хранить размеры здесь, а сами матрицы - там...
Теперь по поводу памяти: моя программа не выделает ни одного байта лишней памяти, ибо ты ввел размерность 3*3 - выделяется место ровно на 9 элементов... Можно (но я ОЧЕНЬ не рекомендовал бы такой подход, никогда не учись СРАЗУ писать "костыли", а то, что я тебе сейчас предложу - именно "костыль") сделать так: constА теперь посчитай, сколько памяти ты будешь занимать впустую? |
Текстовая версия | 13.11.2024 19:40 |