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

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

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

> Набор квадратных матриц
Asmodeus
сообщение 15.12.2006 14:30
Сообщение #1


Новичок
*

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

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


Здравствуйте!
Я первокурсник с Мат-Меха (УрГУ). Помогите плиз с задачкой. Буду очень признателен))

Задача:
Дан набор квадратных матриц. Проверить является ли Абелевой группой.

Нужно написать процедуры:
1. Ввод матрицы.
2. Печать матрицы.
3. Сложение каких-то матриц из этого набора.
4. Умножение каких-то матриц из этого набора.
5. Проверка на равенство каких-то двух матриц из набора.
6. Замкунутость относительно сложения.
7. Замкнутость относительно умножения.
8. Является ли Абелевой группой по умножению.
9. Какая-нибудь матрица из набора является единичной или нет.
10. Произведение каких-нибудь двух, равно единичной матрице.

Вот такая большая задача!
Пожалуйста помогите хотя бы с частью процедур (ну 1,2 сам сделал).
Спасибо всем)))

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 16.12.2006 14:21
Сообщение #2


Гость






Есть, но тогда программа получится гораздо менее читаемой, и будет "пожирать" большие объемы памяти. Смотри сам: у тебя матрицы могут быть разного размера, так? Значит, размер надо где-то хранить. Где? В массиве? Угу, я так и думал. А то, что этот массив НИГДЕ не будет использоваться без связи с массивом матриц, это тебе как? Не мешает? Программа должна быть структурированной, а не хранить размеры здесь, а сами матрицы - там...

Теперь по поводу памяти: моя программа не выделает ни одного байта лишней памяти, ибо ты ввел размерность 3*3 - выделяется место ровно на 9 элементов... Можно (но я ОЧЕНЬ не рекомендовал бы такой подход, никогда не учись СРАЗУ писать "костыли", а то, что я тебе сейчас предложу - именно "костыль") сделать так:

const
max_size = 20; { <--- Вот тебе первое ограничение - макс. порядок матрицы }
type
matrix = array[1 .. max_size, 1 .. max_size] of integer;

{ Здесь - второе ограничение: больше 81 матрицы (при заданном выше max_size)
ты в набор не положишь (размер сегмента данных не позволит) }
vector = array[1 .. 20] of matrix;

procedure input(var mx: matrix; var size: integer);
var i, j: integer;
begin
write('size = '); readln(size);
for i := 1 to size do
for j := 1 to size do begin
write('mx[', i, ', ', j, '] = ');
readln(mx[i, j]);
end;
end;

procedure print(const mx: matrix; size: integer);
var i, j: integer;
begin
for i := 1 to size do begin
for j := 1 to size do
write(mx[i, j]:4);
writeln;
end;
end;

var
mx_set: vector;
sizes: array[1 .. 20] of integer;
i: integer;

begin

for i := 1 to 5 do
input(mx_set[i], sizes[i]);

for i := 1 to 5 do begin
writeln('matrix #', i);
print(mx_set[i], sizes[i]);
end;

end.
А теперь посчитай, сколько памяти ты будешь занимать впустую?
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



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