SetLength(A,N,M);
for i:= 0 to N-l do for j:=0 to M-l do A[i, j] := Random(lOO);
end;

1 : begin

SetLength(B,N,M);
for i:= 0 to N-l do for j:=0 to M-l do B[i, j] :=l+99* Random;
end;

2 : begin

SetLength(S,N,M);

for i:= 0 to N-l do begin

S[i, 0] := Dep[l+Random(MDep)];
S[i, 1] := Fam[l+Random(MFam)];
end;
end;
end;
// Заполнение таблиц for i:= 0 to N - 1 do begin // Заполнение первого столбца таблицы номерами строк SGA.Cells[0, i] := IntToStr(i+1);
// Заполнение таблицы SGA случайными данными for j:=0 to M-l do case RGType.Itemlndex of 0: SGA.Cells[j+1, i] := IntToStr(A[i,j]);
1: SGA.Cells[j+1, i] := FloatToStrF(B[i,j],ffGeneral,5,0);
2: SGA.Cells[j+1, i] := S[i,j];
end;
end;

// Заполнение первой строки таблицы результатов // номерами столбцов for i:= 1 to М do begin

SGC.Cells[i,0] := IntToStr (i-1);
SGC.Cells[i, 1] : = end;
SGC.Cells [0,1] := ' ';
end;
procedure TForml.BRunClick(Sender: TObject);
var i, j, XI:integer;
XR: real;
XS: string;
L: boolean;

begin

// Перенос данных из таблицы в массив for i:= 0 to N - 1 do for j:=0 to M-l do case RGType.Itemlndex of 0: A[i,j] := StrToInt(SGA.Cells[j+1, i]);
1: B[i,j] := StrToFloat(SGA.Cells[j+1, i]);
2: S[i,j] := SGA.Cells[j+1, i];
end;

// Сортировка массива if (CBSort.Checked) then begin case RGType.Itemlndex of

0: MinSort2(A, SEIndex.Value);
1: MinSort2(B, SEIndex.Value);
2: MinSort2(S, SEIndex.Value);
end;
// Перенос данных из массива в таблицу for i:= 0 to N - 1 do for j:=0 to M-l do case RGType.Itemlndex of 0: SGA.Cells[j+1, i] := IntToStr(A[i,j]);
1: SGA.Cells[j+1, i] := FloatToStr(B[i,j]);
2: SGA.Cells[j+1, i] := S[i,j];
end;
end;

// Чтение условий поиска try

case RGType.Itemlndex of

0: XI := StrToInt (EX.Text);
1: XR := StrToFloat(EX.Text);

2: XS := EX.Text; end; except

Application.MessageBox('Неверный формат значения критерия1, 'Исправьте неверное число', MB_OK+MB_ICONSTOP);
exits-end;

// Поиск

case CBMethod.Itemlndex of 0: if (CBSort.Checked) then case RGType.Itemlndex of 0: L := FindISort(A, XI, SEIndex.Value, Rowl);
1: L := FindRSort(B, XR, SEIndex.Value, RowR);

2: L := FindSSort(S, XS, SEIndex.Value, RowS); end else

case RGType.Itemlndex of

0: L := Findl(A, XI, SEIndex.Value, Rowl);
1: L := FindR(B, XR, SEIndex.Value, RowR);
2: L := FindS(S, XS, SEIndex.Value, RowS);
end;

1: if (CBSort.Checked) then case RGType.Itemlndex of 0: FindNearlSort(A, XI, SEIndex.Value, Rowl); 1: FindNearRSort(B, XR, SEIndex.Value, RowR); 2: FindNearSSorttS, XS, SEIndex.Value, RowS); end else

case RGType.Itemlndex of

0: FindNearl(A, XI, SEIndex.Value, Rowl);
1: FindNearR(B, XR, SEIndex.Value, RowR);
2: FindNearS(S, XS, SEIndex.Value, RowS);
end;

2: if(RGType.Itemlndex <> 1) then begin

Application.MessageBox('Метод применим только для'+

#13'массивов действительных чисел', 'Ошибка', MB_OK+MB_ICONSTOP);

Exits-end else

if (CBSort.Checked)

then InterpRSort(B, XR, SEIndex.Value, RowR) else InterpR(B, XR, SEIndex.Value, RowR);

⇐ Предыдущая страница| |Следующая страница ⇒

Приемы программирования в Delphi на основе VCL



Новости за месяц

  • Апрель
    2020
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31