Показать сообщение отдельно
  #4  
Старый 04.12.2011, 21:45
xrumas xrumas вне форума
Прохожий
 
Регистрация: 01.12.2011
Сообщения: 15
Репутация: 10
По умолчанию

Вообщем вот, работает, выполняеться, выкладываю с заданием
В одномерном массиве, состоящем из 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.
Ответить с цитированием