Пытался создать программу, которая создаёт два одномерных массива, в каждом из которых находит минимальное значение и эти значения сравнивает, выводя в отдельный Эдит результат (t). Точную формулировку задания, к сожалению, не помню. Как я понял, у меня как-то неправильно создаются массивы, но что нужно сделать не пойму.
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls;
type
TForm1 = class(TForm)
Panel1: TPanel;
Edit1: TEdit;
Edit2: TEdit;
Memo1: TMemo;
Panel2: TPanel;
Panel3: TPanel;
Label1: TLabel;
BitBtn1: TBitBtn;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
A=array[0..100] of integer;
B=array[0..100] of integer;
var
Form1: TForm1;
N1,N2:String;
N11,N22,a1,b1,minA,minB:integer;
implementation
{$R *.dfm}
//label restart;
procedure TForm1.FormCreate(Sender: TObject);
begin
Button2.Enabled:=False;
Button3.Enabled:=False;
Button4.Enabled:=False;
end;
procedure TForm1.Button1Click(Sender: TObject); //кнопка создания массивов
begin
N1:=Edit1.Text;
N2:=Edit2.Text;
N11:=StrToInt(N1);
N22:=StrToInt(N2);
if N11<0 then
N11:=1
Else if N11>99 then
N11:=99
else
ShowMessage('Длина массива X: Введите число');
if N22<0 then
N22:=1
Else if N22>99 then
N22:=99
else
ShowMessage('Длина массива Y: Введите число');
randomize;
for a1:=0 to N11-1 do
A(a1):=(-99+random(198));;
for b1:=0 to N22-1 do
B(b1):=-99+random(198);
Button2.Enabled:=True;
end;
procedure TForm1.Button2Click(Sender: TObject); //кнопка нахождения минимумов
begin
minA:=A(a1);
minB:=B(b1);
for a1:=1 to N11-1 do
if A(a1)<minA then
minA:=A(a1);
for b1:=1 to N22-1 do
if B(b1)<minB then
minB:=B(b1);
Button3.Enabled:=True;
end;
procedure TForm1.Button3Click(Sender: TObject); //кнопка сравнения минимумов матриц и вывода t
begin
end;
procedure TForm1.Button4Click(Sender: TObject); //кнопка для сброса полей (возврат к начальным условиям)
var m:Integer;
begin
Edit1.Text:='Длина массива X';
Edit2.Text:='Длина массива Y';
for m:=1 to 15 do
Memo1.Lines.Delete(m);
Memo1.Lines.Add:='Здесь будет результат программы (значение t) и';
Memo1.Lines.Add:='минимальные значения матриц X и Y.';
end;
//goto restart;
end.
Ошибки и предупреждения:
Код:
[Warning] Unit1.pas(72): For loop control variable must be simple local variable
[Error] Unit1.pas(73): Invalid typecast
[Warning] Unit1.pas(74): For loop control variable must be simple local variable
[Error] Unit1.pas(75): Invalid typecast
[Error] Unit1.pas(81): Invalid typecast
[Error] Unit1.pas(82): Invalid typecast
[Warning] Unit1.pas(83): For loop control variable must be simple local variable
[Error] Unit1.pas(84): Invalid typecast
[Error] Unit1.pas(85): Invalid typecast
[Warning] Unit1.pas(86): For loop control variable must be simple local variable
[Error] Unit1.pas(87): Invalid typecast
[Error] Unit1.pas(88): Invalid typecast
[Error] Unit1.pas(99): Not enough actual parameters
[Error] Unit1.pas(99): Incompatible types: 'Integer' and 'String'
[Error] Unit1.pas(100): Not enough actual parameters
[Error] Unit1.pas(100): Incompatible types: 'Integer' and 'String'