Модуль для работы с массивами
есть 2 массива из них создается 3
если вы знаете проще описание данных инструкций, буду очень признателен
Код:
var
tabl1:array[1..9,1..12]of variant;
shapka:array[1..9]of string=('Номер строки','Номер схемы','A, см','P1, кН','P2, кН','P3, кН','l1, м','l2, м','l3, м');
word:array[1..8]of string=('е','в','г','д','е','г','д','е');
stolb1_2:array[1..10]of integer;
stolbA:array[1..10]of integer;
stolbP1:array[1..10]of integer=(300,270,290,280,260,250,240,230,220,210);
stolbP2:array[1..10]of integer=(150,130,140,120,160,150,140,130,120,110);
stolbP3:array[1..10]of integer=(70,80,90,60,75,50,80,75,70,100);
stolbl1:array[1..10]of real=(0.60,0.50,1.00,0.90,0.80,0.70,1.00,1.10,1.15,1.20);
stolbl2:array[1..10]of real=(0.40,0.50,0.60,0.70,0.80,0.90,1.00,0.80,0.40,1.20);
stolbl3:array[1..10]of real=(0.50,0.40,1.00,0.80,0.60,0.70,1.00,0.80,0.90,1.20);
tabl2:array[1..6,1..2]of variant;
abvgdeword:array[1..6]of string;
abvgde:array[1..6]of integer;
tabl3:array[1..8,1..4]of variant;
abvgdecifri:array[1..8]of integer;
abvgdecifrizamena:array[1..8]of integer;
dannie:array[1..9]of variant;
procedure TForm1.Button1Click(Sender: TObject);
var
i,j:integer;
a,b,v,g,d,e:integer;
begin
for i:=1 to 9 do
begin
tabl1[i,1]:=shapka[i];
end;
for i:=1 to 8 do
begin
tabl1[i+1,2]:=word[i];
end;
for j:=1 to 10 do
begin
stolb1_2[j]:=j;
stolbA[j]:=29+j;
end;
for j:=1 to 10 do
begin
tabl1[1,j+2]:=stolb1_2[j];
tabl1[2,j+2]:=stolb1_2[j];
tabl1[3,j+2]:=stolbA[j];
tabl1[4,j+2]:=stolbP1[j];
tabl1[5,j+2]:=stolbP2[j];
tabl1[6,j+2]:=stolbP3[j];
tabl1[7,j+2]:=stolbl1[j];
tabl1[8,j+2]:=stolbl2[j];
tabl1[9,j+2]:=stolbl3[j];
end;
for i:=1 to 9 do
begin
for j:=1 to 12 do
begin
stringgrid1.Cells[i-1,j-1]:=tabl1[i,j];
end;
end;
case length(edit1.Text) of
1:
begin
a:=0;
b:=strtoint(copy(edit1.Text,1,1));
v:=a;
g:=b;
d:=a;
e:=b;
end;
2:
begin
a:=strtoint(copy(edit1.Text,1,1));
v:=a;
d:=a;
b:=strtoint(copy(edit1.Text,2,1));
g:=b;
e:=b;
end;
3:
begin
a:=strtoint(copy(edit1.Text,1,1));
g:=a;
b:=strtoint(copy(edit1.Text,2,1));
d:=b;
v:=strtoint(copy(edit1.Text,3,1));
e:=v;
end;
end;
abvgdeword[1]:='а';
abvgdeword[2]:='б';
abvgdeword[3]:='в';
abvgdeword[4]:='г';
abvgdeword[5]:='д';
abvgdeword[6]:='е';
abvgde[1]:=a;
abvgde[2]:=b;
abvgde[3]:=v;
abvgde[4]:=g;
abvgde[5]:=d;
abvgde[6]:=e;
for i:=1 to 6 do
begin
tabl2[i,1]:=abvgdeword[i];
tabl2[i,2]:=abvgde[i];
end;
for i:=1 to 6 do
begin
for j:=1 to 2 do
begin
stringgrid2.Cells[i-1,j-1]:=tabl2[i,j];
end;
end;
for j:=1 to 8 do
begin
for i:=1 to 6 do
begin
if (tabl2[i,1])=(tabl1[j+1,2])
then
begin
abvgdecifri[j]:=tabl2[i,2];
end
else continue;
end;
end;
for i:=1 to 8 do
begin
abvgdecifrizamena[i]:=abvgdecifri[i];
if abvgdecifrizamena[i]=0
then abvgdecifrizamena[i]:=10
else continue;
end;
for j:=1 to 10 do
begin
for i:=1 to 8 do
begin
if abvgdecifrizamena[i]=tabl1[1,j+2]
then dannie[i]:=tabl1[i+1,j+2]
else continue;
end;
end;
for i:=1 to 8 do
begin
tabl3[i,1]:=tabl1[i+1,1];
tabl3[i,2]:=tabl1[i+1,2];
tabl3[i,3]:=abvgdecifri[i];
tabl3[i,4]:=dannie[i];
end;
for j:=1 to 4 do
begin
for i:=1 to 8 do
begin
stringgrid3.Cells[i-1,j-1]:=tabl3[i,j];
end;
end;
end;
что хочу сделать:
1) пар массивов очень много, около 40, описывать инструкции по созданию 3 массива для каждой пары очень долго, хотелось бы создать модуль который все это бы умел
2) 2 массив не меняется, меняются только 1 и 3
3)в массивах будут меняться только число столбцов, число строк останется неизменным, меняются значения элементов массивов
|