Задача: Массив целых чисел из 10 элементов заполнить случайным образом. Упорядочить массив по возрастанию. Подсчитать количество и сумму элементов, больших 10 и меньших 40, вывести полученный результат.
Текст программы:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, ComCtrls;
type
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
StringGrid1: TStringGrid;
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Button3: TButton;
StringGrid2: TStringGrid;
Label3: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
//описание переменных
var
Form1: TForm1;
mas:array[1..10] of integer;
i,j:integer;
k,s,buf:integer;
implementation
{$R *.dfm}
//процедура для заполнения массива случайными числами
procedure TForm1.Button1Click(Sender: TObject);
begin
randomize;
for i:=1 to 10 do begin
mas[i]:=random(80); //заполнение массива случайными числами в пределах от 0 до 80
StringGrid1.Cells[i-1,0]:=IntToStr(mas[i]);//вывод элементов массива в компонент StringGrid1
end;
end;
//процедура для сортировки массива по возрастанию
procedure TForm1.Button2Click(Sender: TObject);
begin
for i:=1 to 10 do begin
for j:=i+1 to 10 do
if mas[j]< mas[i] then
begin //обмен элементов местами с помощью вспомогательной переменной
buf:=mas[ i ];
mas[i]:=mas[j];
mas[j]:=buf;
end;
end;
for i:=1 to 10 do
StringGrid2.Cells[i-1,0]:=IntToStr(mas[i]); //вывод элементов массива в компонент StringGrid2
end;
//процедура для вычисления количества и суммы элементов больших 10 и меньших 40
procedure TForm1.Button3Click(Sender: TObject);
begin
//начальные значение переменным для подсчета количества и суммы элементов массива в диапазоне от 10 и до 40
s:=0;
k:=0;
for i:=1 to 10 do
if ((mas[i]>=10) and (mas[i]<=40)) then begin
s:=s+mas[i];
k:=k+1;
end;
//вывод значений количества и суммы в компоненты Edit1 и Edit2
Edit1.Text:=IntToStr(k);
Edit2.Text:=IntToStr(s);
end;
end.