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

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

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

 
 Ответить  Открыть новую тему 
> Действия над двумерными Массивами, распознавание контура на матрице
Аристократ
сообщение 13.06.2007 7:29
Сообщение #1


Новичок
*

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

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


Ребята, выручайте. Я понимаю, что уже не раз обращался к вам... Но завтра я мне надо сделать еще две проги и навсегда распрощаться м Паскалем. Может быть эти программы уже есть у кого-нибудь... Или есть похожие программы. Умоляю вас прикрепите их сюда. А может кто-нибудь знает как их написать. В них условий много и просто голова кругом идет....

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

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

Сообщение отредактировано: Lapp - 13.06.2007 12:23
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 13.06.2007 11:38
Сообщение #2


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


М
Название крайне неинформативно. Будь добр, измени.



--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 13.06.2007 12:03
Сообщение #3


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

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

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


про ключи...
тебе нужна процедура транспонирования и сложения, например. это есть в FAQ
повернул матрицу, сложил. прошелся по ней - если все эл-ты равны 1, все ок. если нет - повернул еще раз.


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


Новичок
*

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

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


транспонировать я вроде умею, у меня есть сделанная прога(это предыдущее задание из контрольной). складывать вроде умею. Но суметь это все применить и связать мне не под силу. Помогите пожалуйста.
Над сложением сейчвас подумаю.
Вот транспонирование.

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.


 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Аристократ
сообщение 13.06.2007 16:08
Сообщение #5


Новичок
*

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

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


Ребята, ну помогите пожалуйста, мне их уже через 12 часов сдавать. А я сам не могу...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 13.06.2007 16:09
Сообщение #6


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

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

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


а в чем проблема-то? раз транспонировать ты умеешь... транспонировал - сложил - проверил. транспонировал еще раз...


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


Новичок
*

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

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


Ну вот сложение матриц. Я вашу мысль понял, постараюсь реализовать. Если можно можете дать ссылки ПРОЦЕДУР транспонирования относительно главной и побочной диагонали и сложения. Буду очень признателен. А кто-нибудь знает что-нибудь по второй задаче??? З.Ы тоже очень надо
 
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;

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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