![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
матрица
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;