Помощь - Поиск - Пользователи - Календарь
Полная версия: Действия над двумерными Массивами
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Аристократ
Ребята, выручайте. Я понимаю, что уже не раз обращался к вам... Но завтра я мне надо сделать еще две проги и навсегда распрощаться м Паскалем. Может быть эти программы уже есть у кого-нибудь... Или есть похожие программы. Умоляю вас прикрепите их сюда. А может кто-нибудь знает как их написать. В них условий много и просто голова кругом идет....

Даны мозаичные изображения замочной скважины и ключа. Пройдет ли ключ в скважину? То есть даны матрицы K(m1,n1) и L(m2,n2) , m1>m2, n1>n2, состоящие из нулей и единиц. Проверить можно ли наложить матрицу L на матрицу K (разрешается сдвиг, поворот на угол, кратный 900 , и зеркальное отображение) так, чтобы каждой единице матрицы L соответствовал нуль в матрице K, и если можно, то как (на сколько и в каком направлении следует подвинуть, повернуть и/или зеркально отобразить матрицу L по отношению к матрице K до выполнения условия)?

Двоичный массив, представленный в виде двоичных кодов, упаковать, используя байтовое представление длин цепочек. Решить также обратную задачу, то есть массив в байтовом представлении длин цепочек нулей и единиц преобразовать в двоичный массив.
Lapp
М
Название крайне неинформативно. Будь добр, измени.

мисс_граффити
про ключи...
тебе нужна процедура транспонирования и сложения, например. это есть в FAQ
повернул матрицу, сложил. прошелся по ней - если все эл-ты равны 1, все ок. если нет - повернул еще раз.
Аристократ
транспонировать я вроде умею, у меня есть сделанная прога(это предыдущее задание из контрольной). складывать вроде умею. Но суметь это все применить и связать мне не под силу. Помогите пожалуйста.
Над сложением сейчвас подумаю.
Вот транспонирование.

Uses crt;
Const row=3; col=row;
Var a: array [1..row,1..col] of Integer;
I,j,buf: integer;
Begin
Randomize;
Writeln('MATRICA');
For i:=1 to row do
begin
for j:=1 to col do
begin
a[i,j]:=random(100);
write(a[i,j]:4);
end;
writeln;
end;
{transpon главной диагонали}
for i:=1 to row do
for j:=i+1 to col do
begin
buf:=a[i,j]; a[i,j]:=a[j,i]; a[j,i]:=buf;
end;
writeln('trans');
for i:=1 to row do
begin
for j:=1 to col do write(a[i,j]:4);
writeln;
end;

for i := 1 to row - 1 do
for j := 1 to row - i do begin
buf:=a[i,j]; a[i,j]:=a[row-j+1,row-i+1]; a[row-j+1,row-i+1]:=buf;
end;
for i:=1 to row do
for j:=i+1 to col do
begin
buf:=a[i,j]; a[i,j]:=a[j,i]; a[j,i]:=buf;
end;
writeln('trans');
for i:=1 to row do
begin
for j:=1 to col do write(a[i,j]:4);
writeln;
end;
readln;
{транспонирования относительно побочной диагонали.}
for i:=1 to row do
for j:=i+1 to col do
begin
if a[i,j] <> a[j,i] then
begin
end;
end;
for i:=1 to row do
begin
for j:=1 to col do write(a[i,j]:4);
writeln;
end;
readln;
end.


Аристократ
Ребята, ну помогите пожалуйста, мне их уже через 12 часов сдавать. А я сам не могу...
мисс_граффити
а в чем проблема-то? раз транспонировать ты умеешь... транспонировал - сложил - проверил. транспонировал еще раз...
Аристократ
Ну вот сложение матриц. Я вашу мысль понял, постараюсь реализовать. Если можно можете дать ссылки ПРОЦЕДУР транспонирования относительно главной и побочной диагонали и сложения. Буду очень признателен. А кто-нибудь знает что-нибудь по второй задаче??? З.Ы тоже очень надо
 
for i:=1 to m do
for j:=1 to m do
c[i,j]:=a[i,j]+b[i,j];
for i:=1 to m do
begin
for j:=1 to m do
write(c[i,j]:7:2);
writeln;
end;
readln;

Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.