Страница 1 из 1
работа с двумерным массивом в Delphi
Добавлено: 12 сен 2010, 17:08
Loslobos
помогите плиз!
Дан массив a:array[1..2,1..15] of integer.Известно, что среди его элементов дваи только два равны между собой.Напечатайте их индексы.
зарание примного блашодарен!!!если возможно то желательно скорее помогите по мойе теие это вопрос жизни и смерит)
Re: работа с двумерным массивом в Delphi
Добавлено: 12 сен 2010, 20:07
Sheka
Решу вопрос в благоприятную сторону.
255507394
----------------------------------------------------
Sheka, буду банить всерьез и надолго!
Читать правила.
Re: работа с двумерным массивом в Delphi
Добавлено: 13 сен 2010, 09:34
dr.Jekill
Алгоритм может быть таким:
1. Заполнили массив;
2. Запомнили первый элемент и его индекс;
3. Проходим по массиву в поисках элемента равного ранее запомненному:
- Элемент найден: запоминаем его индекс, прерываем цикл;
- Элемент не найден: запоминаем следующий элемент, переходим к шагу 3.
----------------------------------
Учитесь программировать. Выкладывайте сюда то, что получится.
Re: работа с двумерным массивом в Delphi
Добавлено: 13 сен 2010, 15:16
Loslobos
вот что у меня вышел за бред )неуверен токо в правильности его пожалуйсто оцените и подкоректируйте мою ересь)))
Код: Выделить всё
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
Edit1: TEdit;
Button1: TButton;
Label1: TLabel;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure StringGrid1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
const n=2;
m=15;
var
Form1: TForm1;
a:array[1..n,1..m] of integer;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var f,b,c,d,i,j,p,q:byte;
begin
randomize;
//создадим таблицу 2х15 с фиксированными ячейками
Stringgrid1.ColCount:=m+1;
Stringgrid1.RowCount:=n+1;
for i:=1 to n do
Stringgrid1.Cells[0,i]:=Inttostr(i);
for i:=1 to m do
Stringgrid1.Cells[i,0]:=Inttostr(i);
//заполним матрицу разными числами
for i:=1 to n do
for j:=1 to m do
a[i,j]:=m*i+j; //от 16 до 42
//выберем 2 случайных ячейки
f:=random(n)+1;
b:=random(m)+1;
a[f,b]:=50; //запищим в них число,которого еще нет
repeat
c:=random(n)+1;
d:=random(m)+1;
until(c<>f)or(d<>b);
a[c,d]:=a[f,b];
//заполним таблицу
for i:=1 to n do
for j:=1 to m do
Stringgrid1.Cells[j,i]:=Inttostr(a[i,j]);
end;
procedure TForm1.Button1Click(Sender: TObject);
var i,j,p,q:byte;
begin
//пройдем 2 раза по матрице сравнивая разные ячейки
for i:=1 to n do
for j:=1 to m do
for p:=1 to n do
for q:=1 to m do
if(a[i,j]=a[p,q])and((p<>i)or(q<>j)) then //найдем одинаковые
Edit1.Text:='1 - ['+inttostr(p)+','+inttostr(q)+'] 2 - ['+
inttostr(i)+','+inttostr(j)+']';
end;
end.
Re: работа с двумерным массивом в Delphi
Добавлено: 13 сен 2010, 15:18
Loslobos
где написаны иероглифы там должны быть описания кода но они както коряво скопировалися((((( этот код мне помогали составлять знакомые только он вышел какойто сильно замутный
Re: работа с двумерным массивом в Delphi
Добавлено: 13 сен 2010, 15:27
Loslobos
вот вродебы все подкариктировал теперь проверте мою глупость плиззз)