Одномерные и многомерные массивы (задание 1)

Задача: Массив целых чисел из 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.

Добавить комментарий