11.09.2013, 16:14
|
Прохожий
|
|
Регистрация: 04.09.2013
Сообщения: 9
Версия Delphi: Delphi 7
Репутация: 10
|
|
спс за код, но я сделал по проще хотя мб и не правильно
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls, Spin;
type
TForm1 = class(TForm)
Button1: TButton;
StringGrid1: TStringGrid;
Label1: TLabel;
SpinEdit1: TSpinEdit;
Edit2: TEdit;
Label4: TLabel;
SpinEdit2: TSpinEdit;
Edit3: TEdit;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
var
d: array of array of real;
k, n, m: integer;
sum, sr: real;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
i, j: integer;
mx: real;
begin
if SpinEdit1.Value = 0 then
begin
Showmessage('Вы не ввели размер матрицы');
exit
end;
randomize;
n := SpinEdit1.Value;
m := SpinEdit2.Value;
StringGrid1.ColCount := m;
StringGrid1.RowCount := n;
Setlength(d, n, m);
for i := 0 to n - 1 do
for j := 0 to m - 1 do
d[i, j] := random(30);
for i := 0 to n - 1 do
for j := 0 to m - 1 do
StringGrid1.Cells[j, i] := FloatToStrF(d[i, j], ffFixed, 5, 0);
sum := 0;
for i := 0 to n - 1 do
begin
sum := sum + d[i, 0];
k := k + 1;
sr := sum / k;
end;
k:=0;
for i := 0 to n - 1 do
for j := 1 to m - 1 do
if d[i, j] > sr then
k := k + 1;
Edit2.Text := 'количество элементов =' + FloatToStrF(k, ffFixed, 5, 0);
Edit3.Text := 'среднее арифметическое =' + FloatToStrF(sr, ffFixed, 5, 2);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
close
end;
end.
Админ: Пользуемся тегами для оформления кода, иначе последуют санкции!
з.ы. а как скидывать код с линейкой
|