Одномерные и двумерные массивы (задание 2)

Задача: Заполнить матрицу 10×10 следующим образом:
Вывести заполненную матрицу на экран компьютера или на принтер. Подсчитать количество ненулевых элементов. Найти произведение всех элементов больших 4 и меньших 8, вывести полученный результат.
Текст программы:
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;

StringGrid3: TStringGrid;

Button4: TButton;

Label4: TLabel;

Label5: TLabel;

Edit3: TEdit;

Edit4: TEdit;

Button5: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

mas:array[1..10] of integer;

matr:array[1..10,1..10] of integer;

i,j:integer;

k,s,buf,p:integer;

implementation

{$R *.dfm}

//процедура для заполнения массива случайными числами

procedure TForm1.Button1Click(Sender: TObject);

begin

randomize;

end;

//процедура для сортировки массива по возрастанию

procedure TForm1.Button2Click(Sender: TObject);

begin

for i:=1 to 10 do begin

StringGrid2.Cells[i-1,0]:=IntToStr(mas[i]);

end;

//процедура для вычисления количества и суммы элементов больших 10 и меньших 40

procedure TForm1.Button3Click(Sender: TObject);

begin

s:=0;

k:=0;

Edit2.Text:=IntToStr(s);

end;

//заполнение матрицы по образцу

procedure TForm1.Button4Click(Sender: TObject);

begin

for i:=1 to 10 do begin

for j:=1 to 10 do begin

if ((i<=5) and (j<=5) and (i>=j)) then matr[i,j]:=j;

if ((i>=6) and (j>=6) and (i<=j)) then matr[i,j]:=j;

//вывод элементов матрицы в компонент StringGrid3

StringGrid3.Cells[i-1,j-1]:=IntToStr(matr[i,j]);

end;

end;

end;

//определение количества ненулевых элементов и произведения элементов матрицы, которые находятся в диапазоне от 4 до 8

procedure TForm1.Button5Click(Sender: TObject);

begin

k:=0;

p:=1;

for i:=1 to 10 do begin

for j:=1 to 10 do begin

if matr[i,j]>0 then k:=k+1;

if ((matr[i,j]>=4) and (matr[i,j]<=8)) then p:=p+matr[i,j];

end;

end;

Edit3.Text:=IntToStr(k);

Edit4.Text:=IntToStr(p);

end;

end.

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