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

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

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

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


Новичок
*

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

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


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


Сообщение отредактировано: DruiD -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #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

 





- Текстовая версия 28.03.2024 23:14
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name