Вообщем вот, работает, выполняеться, выкладываю с заданием
В одномерном массиве, состоящем из n целых элементов, вычислить:
1) сумму отрицательных элементов массива;
2) произведение элементов массива, расположенных между максимальным и минимальным элементами;
3) отсортировать массив по возрастанию элементов.
Код:
unit Unit1;
interface
uses
Windows, Math, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Edit3: TEdit;
Label2: TLabel;
Edit4: TEdit;
Label3: TLabel;
Edit5: TEdit;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Button5: TButton;
Button6: TButton;
Label8: TLabel;
Label9: TLabel;
Edit6: TEdit;
Edit7: TEdit;
Label10: TLabel;
Label11: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
a,d: array of integer;
n,i,j:integer;
t,z:integer;
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); //sozdat' massiv
begin
edit2.Clear;
n:=strtoint(edit1.Text);
setlength(d,n);
randomize;
for i:=0 to n-1 do begin
d[i]:=round(40*random-20);
edit2.text:=edit2.text+inttostr(d[i])+' ';
end;
end;
procedure TForm1.Button2Click(Sender: TObject); //summa otrecatel'nih elementov
var s:integer;
begin
s:=0;
for i:=0 to n-1 do begin
if d[i]<0 then
s:=s+d[i];
end;
edit3.Text:=inttostr(s);
end;
procedure TForm1.Button4Click(Sender: TObject); //sortirovla Massivka
var i,j,t,z :integer;
begin
edit5.Clear;
for i:=0 to n-1 do begin
for j:=i+1 to n-1 do begin
if d[i] > d[j] then begin
t:=d[i];
d[i]:=d[j];
d[j]:=t;
end;
end;
end;
for z:=0 to n-1 do
edit5.Text:=edit5.text+inttostr(d[z])+' ';
end;
procedure TForm1.Button5Click(Sender: TObject); //exit
begin
form1.Close;
end;
procedure TForm1.Button6Click(Sender: TObject); //cleanse:)
begin
edit1.Text:=inttostr(0);
edit2.Clear;
edit3.clear;
edit4.clear;
edit5.clear;
edit6.clear;
edit7.clear;
end;
procedure TForm1.Button3Click(Sender: TObject); //proizvedenie
var maxv,minv,maxi,mini:integer;
pr:integer;
begin
maxv:=d[1];
minv:=d[1];
maxi:=1;
mini:=1;
for i:=0 to N-1 do begin
if d[i] > maxv then begin //nahodim max element matrici
maxv:=d[i];
maxI:=i;
end;
if d[i] < minv then begin //nahodim min element matrici
minv:=d[i];
minI:=i;
end;
end;
pr:=1; //proizvedenie mezhdu!
For I:= Min(mini,maxi)+1 To Max(mini,maxi)-1 Do begin
Pr := pr * d[i];
end;
edit7.text:=inttostr(minv);
edit6.text:=inttostr(maxv);
edit4.Text:=inttostr(pr);
end;
end.