
- •Стандартные операции над одномерными массивами
- •Перестановка двух элементов
- •Вставка нового элемента в указанное место массива
- •Удаление элемента из указанного места массива
- •Пример обработки одномерного массива c перестановкой элементов
- •Процедура обработки щелчка на кнопке «Вычисление» (кн. Button_calc)
- •Глобальные объявления
- •Процедура обработки щелчка на кнопке «Этап 1» (кн. Button_etap1)
- •Процедура обработки щелчка на кнопке «Этап 2» (кн. Button_etap2)
- •Процедура обработки щелчка на кнопке «Очистка» (кн. Button_clear)
Глобальные объявления
implementation
type mas=array[1..10] of real;
var X:mas;
N:integer;
Процедура обработки щелчка на кнопке «Этап 1» (кн. Button_etap1)
procedure TForm1.Button_etap1Click(Sender: TObject);
Var
A,B,S:real;
i,i0,k:integer;
begin
A:=StrToFloat(Edit_A.Text);
B:=StrToFloat(Edit_B.Text);
N:=Memo_X.Lines.Count; // размерность X
k:=0; S:=0;
for i:=1 to N do
begin
X[i]:=StrToFloat(Memo_X.Lines[i-1]);
if (X[i]>=A) and (X[i]<=B) then
begin
k:=k+1;
S:=S+X[i];
i0:=i; // номер последнего элемента из интервала [A,B]
end;
end;
If (k=0) then
ShowMessage('Массив X не содержит элементов из интервала ['+
FloatToStr(A) + ',' + FloatToStr(B)+']')
else
begin
Edit_k.Text:=IntToStr(k);
Edit_S.Text:=FloatToStr(S);
for i:=i0 to N-1 do
X[i]:=X[i+1];
N:=N-1;
// вывод в поле Memo_X1 массива Х после удаления эл-та
for i:=1 to N do
Memo_X1.Lines.Add(FormatFloat('##0.0',X[i]))
end
end;
Процедура обработки щелчка на кнопке «Этап 2» (кн. Button_etap2)
procedure TForm1.Button_etap2Click(Sender: TObject);
Var
C,min:real;
i,j,nmin:integer;
begin
for i:=1 to N-1 do
begin
min:=X[i]; nmin:=i;
for j:=i+1 to N do
if (X[j]<min) then
begin
min:=X[j]; nmin:=j; //минимальный эл-т и его номер
end; // for j
X[nmin]:= X[i]; // перестановка элементов
X[i]:= min;
// вывод отсортированного массива Х в поле Memo_X2
Memo_X2.Lines.Add(FormatFloat('##0.0',X[i]))
end; //for i
//вывод последнего(N-го)эл-та
Memo_X2.Lines.Add(FormatFloat('##0.0',X[N]));
C:=(X[N]+X[N-1]+X[N-2]+X[N-3])/4;
Edit_C.Text:=FloatToStr(C);
i:=1;
while (i<=N) do
begin
if (i mod 2 =0) then X[i]:=C;
// вывод в поле Memo_X3 массива Х после его преобразования
Memo_X3.Lines.Add(FormatFloat('##0.0',X[i]));
i:=i+1
end;
end;
Процедура обработки щелчка на кнопке «Очистка» (кн. Button_clear)
procedure TForm1.Button_clearClick(Sender: TObject);
begin
Edit_A.Clear ;
Edit_B.Clear ;
Edit_k.Clear ;
Edit_S.Clear ;
Memo_X.Clear ;
Edit_C.Clear ;
Memo_X1.Clear ;
Memo_X2.Clear ;
Memo_X3.Clear ;
end;