Другие языки программирования и технологии

нахождение наибольшего элемента массива через функцию

Нужно, чтобы в Edit1 написал массив, а в Edit2 вывел из этого массива наибольшее число
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Edit2: TEdit;
Button2: TButton;
Button3: TButton;
Edit1: TEdit;
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1; Edit1: TEdit;

implementation

{$R *.dfm}

function factor(i:integer):integer;
begin
if i=1 then factor:=1 else
factor:=i*factor(i-1)
end;

function fib(i:integer):integer;
begin
if i<=2 then fib:=1 else
fib:=fib(i-1)+fib(i-2)
end;

function max_num(i:integer):integer;
var
ar:array[1..20] of integer;
max_num:integer;
max_index:integer;
begin
randomize;
Edit1.Clear;
for i:=1 to 20 do begin
ar:=random(100);
Edit1.Text:=Edit1.Text+' '+inttostr(ar);
end;
max_index:=1;
max_num:=ar[1];
for i:=2 to 20 do begin
if ar>max_num then begin
max_index:=i;
max_num:=ar;
end;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var n:integer;
begin
n:=strtoint(Edit1.Text);
edit2.Text:=inttostr(factor(n))
end;

procedure TForm1.Button2Click(Sender: TObject);
var n:integer;
begin
n:=strtoint(Edit1.Text);
edit2.Text:=inttostr(fib(n))

end;

procedure TForm1.Button3Click(Sender: TObject);
var n:integer;
begin
n:=strtoint(Edit1.Text);
edit2.Text:=inttostr(max_num(n))
end;
end.
"kaz Nur Company"
"kaz Nur Company"
331
Зачем столько кнопок и функции, вычисляющие факториал и числа Фибоначчи?

> Нужно, чтобы в Edit1 написал массив
Нужно, чтобы кто написал? Программа написал или пользователь?

Программа, считывающая массив из Edit1, который туда написал пользователь:

unit N94885139;

interface

uses
  Windows, Messages, SysUtils, Classes, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    Label1: TLabel;
    Label2: TLabel;
    procedure Button1Click(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function max_num(var a: array of double): double;
var
  i :integer;
begin
  for i := Low(a) to High(a) do
    if (i = Low(a)) or (a[і] > Result) then
      Result := a[і]
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  StrList: TStringList;
  a: array of double;
  i: integer;
begin
  StrList := TStringList.Create;
  with StrList do
  begin
    Delimiter := #$20;
    DelimitedText := Edit1.Text;
    setlength(a, Count);
    for i := 0 to Count - 1 do
      if not TryStrToFloat(Strings[і], a[і]) then
      begin
        ShowMessage('Ошибка! Элементы массива'#13#10+
          'должны быть действительными числами. ');
        exit
      end;
    Free
  end;
  Edit2.Text := FloatToStr(max_num(a)) 
end;

end.

Валерий *******
Валерий *******
51 590
Лучший ответ

Похожие вопросы