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

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

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

> Двумерный массив. соседи элементов, оочень интересная задача не для глупых
DruiD
сообщение 24.10.2006 5:47
Сообщение #1


Новичок
*

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

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


Будем называть соседями элемента с индексами i,j некой матрицы такие элементы, что соответствующие индексы которых отличаются от i,j не больше чем на единицу. Для данной целочисленной матрицы А(m*m) найдите матрицу В, которая состоит из нулей и единиц, элемент которой bi равен единице, когда все соседи a ij меньше самого a ij.
Обьясню подробно:
У каждого элемента в матрице есть соседние элементы: справа, слева, сверху, снизу и по диагоналям (соответсвенно у крайних элементов соседей меньше). Необходимо найти сумму всех соседей и определить больше ли сумма соседей самого элемента. Если да то в новой матрице на месте элемента ставим 0 если нет, то 1.


Сообщение отредактировано: DruiD - 24.10.2006 5:51
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
DruiD
сообщение 29.10.2006 17:15
Сообщение #2


Новичок
*

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

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


Вышеуказанное утверждение (ix = 0) and (iy = 0) неправильно так как нам будет искать сумму только по диагоналям. Блоки ix = 0 и iy = 0 необходимо расписывать отдельно. Вот Полная программа
program insatiable;
const m=4;
var A:array[1.. m,1..m]of integer;
i,j: byte;
B:array[1..m,1..m]of byte;
ix,iy,s: integer;
Begin
for i:=1 to m do
for j:=1 to m do
begin
writeln ('stro4ka ',i,' stolbec ',j,' ');
readln (A[i,j]);
end;
for i:=1 to m do
for j:=1 to m do
begin
s:=0;
for ix:=-1 to 1 do
begin
for iy:=-1 to 1 do
if ix<>0 then begin
if iy<>0 then
begin
if ((i+ix)>0) and ((i+ix)<=m) and
((j+iy)>0) and ((j+iy)<=m) then inc(s,A[i+ix, j+iy]);
end
else
begin
if((i+ix)>0) and ((i+ix)<=m) then inc(s,A[i+ix, j+iy]);
end
end
else
begin
if iy<>0 then

if ((j+iy)>0) and ((j+iy)<=m) then inc(s,A[i+ix, j+iy]);

end;

end;
if s<A[i,j] then B[i,j]:=1 else B[i,j]:=0;
end;
for i:=1 to m do begin writeln;
for j:=1 to m do write(' ',B[i,j]);
end;
readln;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 



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