Скачиваний:
15
Добавлен:
26.05.2014
Размер:
3.47 Кб
Скачать
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.2014264 б15ProjectDM.dpr
  • #
    26.05.2014876 б16ProjectDM.res
  • #
    26.05.2014189 б15ProjectDM.~dpr
  • #
    26.05.20147.74 Кб15Unit1.dcu
  • #
    26.05.20142.41 Кб15Unit1.dfm
  • #
    26.05.20143.47 Кб15Unit1.pas
  • #
    26.05.20142.41 Кб15Unit1.~dfm
  • #
    26.05.20143.29 Кб15Unit1.~pas
  • #
    26.05.20143.87 Кб15Unit2.dcu
  • #
    26.05.20141.96 Кб15Unit2.dfm
  • #
    26.05.2014589 б15Unit2.pas