Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

матрица


aids ©   (2007-09-12 23:37:00) 

подскажите плиз циклы чтобы заполнить матрицу по диагонали а то уже запарился подбирать индексы

для 5 матрица имеет вид
   1   2  4   7   11
   3   5  8   12 16
   6   9  13 17  20
   10 14 18 21  23
   15 19 22 24  25


iam   (2007-09-13 10:32:00) [1]


const n = 7;

var i, j, nextRowStartNumber: Integer;
   Arr: Array[1..n, 1..n] of Integer;
begin
...
nextRowStartNumber := 0;
for i := 1 to n do begin
Inc(nextRowStartNumber, i);
Arr[i,1] := nextRowStartNumber;
for j := 2 to n do
  Arr[i,j] := nextRowStartNumber+(j-1)+(i-1)
end;


iam   (2007-09-13 10:29:00) [2]

const n = 7;

var i, j, nextRowStartNumber: Integer;
    Arr: Array[1..n, 1..n] of Integer;
begin
...
nextRowStartNumber := 0;
for i := 1 to n do begin
 Inc(nextRowStartNumber, i);
 Arr[i,j] := nextRowStartNumber;
 for j := 2 to n do begin
   Arr[i,j] := nextRowStartNumber+(j-1)+(i-1)
 end;
end;


первоклассник   (2007-09-13 04:28:00) [3]

Эх - студенты:-(

Это задание к программированию с натяжкой можно отнести, ну чуточку самую малость подумать и всё.

И здесь тоже самое:
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1189575199&n=18


aids   (2007-09-13 00:24:00) [4]

#include
#include

int m[9][9];
int i, j, p, last_i, last_j;

int main()

{
char flag;

last_i=i=8; // çàäàþ íà-àëüíûå êîîðäèíàòû òî-êè
last_j=j=0;
flag=1;
p=1;
while(flag)
{
 m[i][j]=p;
 if(!j||!i)
 {  
  last_j++;
  j=(last_j8)
   last_i--;
  i=last_i;
  if(last_i


Virgo_Style   (2007-09-13 00:17:00) [5]

Нет желания причесывать код, править индексы - сделай сам. Возможно, можно сделать и умнее - но поздно и спать пора)

procedure TForm1.Button1Click(Sender: TObject);
var N:integer;
r,c,value,increment:integer;
Arr:Array of array of integer;

begin
N:=StrToInt(Edit1.Text);

SetLength(Arr,N+1,N+1);

Value:=1;
Increment:=1;

for c:=1 to N do begin
  Arr[c,1]:=Value;
  Inc(Value,Increment);
  Inc(Increment);
end;

Increment:=N;

for r:=2 to N do begin
  Arr[N,r]:=Value;
  Dec(Increment);
  Inc(Value,Increment);
end;

for r:=2 to N do
 for c:=1 to N-1 do
   Arr[c,r]:=Arr[c+1,r-1]+1;

StringGrid1.RowCount:=N+1;
StringGrid1.ColCount:=N+1;

for c:=1 to N do
 for r:=1 to N do
   StringGrid1.Cells[c,r]:=IntToStr(Arr[c,r]);

end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо