|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Модуль для работы с массивами
есть 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)в массивах будут меняться только число столбцов, число строк останется неизменным, меняются значения элементов массивов |
#2
|
|||
|
|||
мне почему-то кажется, что вы неправильно понимаете задачу (т.е. алгоритм решения). Выкладывайте текст задания - посмотрим.
|
#3
|
|||
|
|||
какое задание?
алгоритм я сделал такой как мне надо ну я объясню какую я преследую цель 1 массив Код HTML:
2 массив (2 строка массива формируется из цифр ввденных в поле edit) Код HTML:
3 массив (как он формируется: берем буквы 2 массива и ищем совпадения с буквами 1 массива, при совпадении берем цифру напротив букв 2 массива и потом сравниваем с цифрами 1 столбца 1 массивами при овпадении выбираем в массиве 1 данные [совпадение букв 2 массив 1, совпадение цифр 2 массива с 1] Код HTML:
массивов №1 около 40 и все они разных размеров и содержания хочу написать модуль который бы умел делать алгоритм описанный в предыдущем посте Последний раз редактировалось Pavel_Aleksandrovich, 08.09.2012 в 11:53. |