Скачиваний:
19
Добавлен:
26.05.2014
Размер:
3 Кб
Скачать
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls,MAS_PP;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Edit2: TEdit;
    Button1: TButton;// ввод массива
    Button2: TButton;// вывод массива
    Button3: TButton;// показ результатов в Form2
    Button4: TButton;// суммирование
    Button5: TButton;// максимальный элемент
    Label3: TLabel;
    Edit3: TEdit;
    Button6: TButton;// массив из элементов, кратных "к"
    Button7: TButton;// сортировка массива по возрастанию
    Button8: TButton;// освобождение памяти и выход
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  A:arr;
  n:integer;

implementation

uses Unit2;

{$R *.DFM}

Function GetSubstr(st:string;k:integer):string;
  Var i,p:integer;
 Begin for i:=1 to k-1 do
         begin
          p:=Pos(' ',st);
          st:=copy(st,p+1,length(st)-p);
         end;
       p:=Pos(' ',st);
       if p <> 0 then result:=copy(st,1,p-1)
                 else result:=st
 end;

procedure TForm1.Button1Click(Sender: TObject);
 // ввод массива
  Var i:integer;
 begin
  n:=StrToInt(Edit1.Text);
  SetLength(A,n);        // Выделение памяти
  for i:=0 to n-1 do
   A[i]:=StrToInt(GetSubstr(Edit2.text,i+1));
   {В динамическом массиве индекс 1-го элемента равен нулю,
   а из редактора Edit берется 1-й,2-й ит.д. элементы}
end;

procedure TForm1.Button2Click(Sender: TObject);
 // вывод массива
var i:integer;
 begin
 for i:= 0 to n-1 do
  Form2.listBox1.items.Add(IntToStr(A[i]))
end;

procedure TForm1.Button3Click(Sender: TObject);
 // показ результатов в Form2
begin
 Form2.show
end;

procedure TForm1.Button4Click(Sender: TObject);
 // суммирование
 Var k,i,S:integer;
     B:arr;
 begin  k:=0;
   for i:=0 to n-1 do
     if A[i]>0 then
       begin
        SetLength(B,k+1);    // Выделение памяти
        B[k]:=A[i]; k:=k+1
       end;
   S:=Sum(k,B);
   Form2.Edit1.Text:=IntToStr(S) ;
end;

procedure TForm1.Button5Click(Sender: TObject);
 // максимальный элемент
 Var amax,i,kmax:integer;
 begin
   amax:=Max(n,A);
   kmax:=0;
   for i:= 0 to n-1 do
     if A[i]=amax then kmax:=kmax+1;
   Form2.Edit2 .text:=inttostr(amax);
   Form2.Edit3.text:=inttostr(kmax);
 end;

procedure TForm1.Button6Click(Sender: TObject);
 // массив из элементов, кратных "к"
 var B:arr;
     k,kk,i:integer;
 begin
   k:=StrToInt(Edit3.text);
   Kratn(n,A,k,B,kk);
   if kk=0 then Form2.listBox2.items.Add('нет кратных')
           else
         for i:= 0 to kk-1 do
            Form2.listBox2.items.Add(IntToStr(B[i]));
   B:=nil
end;

procedure TForm1.Button7Click(Sender: TObject);
 // сортировка массива по возрастанию
 var i:integer;
 begin
   Sort(n,A);
   for i:= 0 to n-1 do
   Form2.listBox3.items.Add(IntToStr(A[i]))
end;

procedure TForm1.Button8Click(Sender: TObject);
 // освобождение памяти и выход
begin
  A:=nil;
 close
end;

end.
Соседние файлы в папке Project _DinMas
  • #
    26.05.2014876 б19ProjectDM.res
  • #
    26.05.20142 Кб18Unit1.~dfm
  • #
    26.05.20143 Кб18Unit1.~pas
  • #
    26.05.20148 Кб18Unit1.dcu
  • #
    26.05.20142 Кб18Unit1.dfm
  • #
    26.05.20143 Кб19Unit1.pas
  • #
    26.05.20142 Кб18Unit2.~dfm
  • #
    26.05.2014589 б18Unit2.~pas
  • #
    26.05.20144 Кб18Unit2.dcu
  • #
    26.05.20142 Кб18Unit2.dfm
  • #
    26.05.2014589 б18Unit2.pas