Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2009, 13:48   #1
КРОШка
Новичок
Джуниор
 
Регистрация: 15.11.2009
Сообщений: 2
По умолчанию Двумерный массив на Delphi

Помогите пожалуйста с задачей. Заранее спасибо.

Будем называть соседями элемента a_ij некоторой матрицы такие элементы этой матрицы, соответствующие индексы которых отличаются от i и j не более чем на единицу. Для данной квадратной матрицы [a_ij] (i = 1, …, n) найти матрицу [b_ij] (i = 1, …, n) из нулей и единиц, элемент которой b_ij = 1, когда все соседи a_ij меньше самого a_ij, в противном b_ij случае = 0.
КРОШка вне форума Ответить с цитированием
Старый 15.11.2009, 14:22   #2
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Код:
type matrix=array[1..100,1..100] of Integer;
var a,b:matrix;
    x,y,n:Integer;
procedure  ahez(i,j:integer);
var f:Boolean;
begin
 f:=True;
if a[i,j]<a[i-1,j-1] then f:=false;
if a[i,j]<a[i,j-1] then f:=false;
if a[i,j]<a[i-1,j] then f:=false;
if a[i,j]<a[i+1,j+1] then f:=false;
if a[i,j]<a[i,j+1] then f:=false;
if a[i,j]<a[i+1,j] then f:=false;
if f then b[i,j]:=1
else b[i,j]:=0;
end;
begin
  { TODO -oUser -cConsole Main : Insert code here }
randomize;
readln(n);
for x:=1 to n do
for y:=1 to n do
a[x,y]:=Random(24)+1;
for x:=1 to n do begin
for y:=1 to n do
write(a[x,y]:4);
writeln;end;
for x:=1 to n do
for y:=1 to n do
ahez(x,y);
writeln('---------------');
 for x:=1 to n do begin
for y:=1 to n do
write(b[x,y]:4);
writeln;end;
readln;

end.
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 15.11.2009, 18:38   #3
КРОШка
Новичок
Джуниор
 
Регистрация: 15.11.2009
Сообщений: 2
По умолчанию

Мне бы через StringGrid.
Я сама написала код,но не уверена.

var
Form1: TForm1;
a:array[0..100,0..100] of integer;
b:array[0..100,0..100] of integer;
i,j,n:integer;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
// Чистка StringGrid
procedure grid_clean(g:TStringGrid);
var i,j:integer;
begin
for i:=0 to g.ColCount-1 do
for j:=0 to g.RowCount-1 do
g.Cells[i,j]:='';
end;
// Автоматическое заполнение массива
begin
n:=5;
for i:=0 to n do
begin
for j:=0 to n do
begin
a[i,j]:=random(10)-5;
StringGrid1.Cells[i,j]:=inttostr(a[i,j]);
end;
end;
begin
for i:=0 to n do
begin
for j:=0 to n do
begin
if i-j<=1
then a[i,j]:=b[i,j];
begin
if a[i,j]>b[i,j]
then b[i,j]:=1
else b[i,j]:=0;
StringGrid3.Cells[i,j]:=inttostr(b[i,j]);
end;
end;
end;
end;
end;

end.
КРОШка вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двумерный массив Delphi Wise Помощь студентам 5 24.12.2007 23:10
Delphi Двумерный массив forumu Помощь студентам 3 24.12.2007 13:58
Delphi Двумерный массив forumu Помощь студентам 1 23.12.2007 02:04