![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#4
|
|||
|
|||
![]() Вообщем вот, работает, выполняеться, выкладываю с заданием
В одномерном массиве, состоящем из 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. |