Найти максимальный элемент массива и его индексы.
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
var
A : array of array of integer;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
i, j : integer;
S : String;
begin
Randomize;
SetLength(A,StrToInt(Edit1.Text),StrToInt(Edit2.Text));
for i := 0 to StrToInt(Edit1.Text)-1 do
begin
for j :=0 to StrToInt(Edit2.Text)-1 do
begin
A[i,j] := random(100);
S:=S+' '+ IntToStr(A[i,j]);
end;
Memo1.Lines.Add(S);
S:='';
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
i, j : integer;
max_i, max_j : integer;
begin
max_i := 1; max_j:=1;
for i:=0 to StrToInt(Edit1.Text)-1 do
begin
for j:=0 to StrToInt(Edit2.Text)-1 do
begin
if A[i,j]>A[max_i,max_j] then
begin
max_i:=i;
max_j:=j;
end;
end;
end;
Memo1.Lines.Add('Максимальное значение: '+IntToStr(A[max_i,max_j])) ;
Memo1.Lines.Add('Индексы макимального числа в массиве: '+IntToStr(max_i+1)+':'+IntToStr(max_j+1));
end;
end.
2) Дано целое число n > 2 сформировать и вывести целочисленный массив размера n содержащий n первых элементов последовательности чисел фибоначчи.
F1=1, F2=1...
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
Button1: TButton;
Memo1: TMemo;
function ffib(n: integer):integer;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TForm1 }
function TForm1.ffib(n: integer): integer;
begin
if n<=2 then result:=1 else
begin
Result:=ffib(n-1)+ffib(n-2);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Fib: array of integer;
n, i: integer;
begin
Memo1.Clear;
n:=StrToInt(Edit1.Text);
SetLength(Fib,n);
for i:=0 to n-1 do
begin
Fib[i]:=ffib(i+1);
Memo1.Text:=Memo1.Text+' '+IntToStr(Fib[i]);
end;
end;
end.