Напишіть любу програму в лазарусі

0 голосов
26 просмотров

Напишіть любу програму в лазарусі


Информатика (122 баллов) | 26 просмотров
Дан 1 ответ
0 голосов
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
  ExtCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    EditA: TEdit;
    EditB: TEdit;
    EditC: TEdit;
    EditD: TEdit;
    EditF: TEdit;
    EditG: TEdit;
    EditX: TEdit;
    EditY: TEdit;
    EditN: TEdit;
    Image1: TImage;
    Label1: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    Label15: TLabel;
    Label16: TLabel;
    Label17: TLabel;
    Label18: TLabel;
    LabelOR: TLabel;
    Label2: TLabel;
    LabelNR: TLabel;
    LabelORO: TLabel;
    LabelX_Y: TLabel;
    LabelY_X: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure EditAChange(Sender: TObject);
    procedure Label4Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  A: real; // коэффициент роста популяции
  B: real; // коэффициент уменьшения популяции
  C: real; // коэффициент отлова
  D: real; // коэффициент уменьшения численности хищников в отсутствие жертв
  G: real; // коэффициент увеличения численности хищников при наличии жертв
  F: real; // коэффициент уменьшения численности жертв при наличии хищников
  X: real; // первоначальное количество жертв
  Y: real; // первоначальное количество хищников
  N: integer; // количество циклов(лет)
  I: integer; // счётчик цикла
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.Label4Click(Sender: TObject);
begin

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  //Ввод данных
  A:=StrToFloat(EditA.Text);
  B:=StrToFloat(EditB.Text);
  C:=StrToFloat(EditC.Text);
  D:=StrToFloat(EditD.Text);
  G:=StrToFloat(EditG.Text);
  F:=StrToFloat(EditF.Text);
  X:=StrToFloat(EditX.Text);
  Y:=StrToFloat(EditY.Text);
  N:=StrToInt(EditN.Text);

  //Установка ширины линии рисования
  Image1.Canvas.Pen.Width:=3;
brush.style:= bsSolid; // Присваиваем кисти тип заливки - "полная"
brush.color:= clWhite; //делаем цвет холста белым

//Неограниченный рост
X:=StrToFloat(EditX.Text);
Image1.Canvas.MoveTo(0,250);
Image1.Canvas.Pen.Color:=clDkGray;
For I:=1 to N Do
begin
  Image1.Canvas.LineTo(25*I-25, 250-Round(25*X)+25);
  X:=A*X;
  end;
LabelNR.Caption:=FloatToStr(X);
//Ограниченный рост
X:=StrToFloat(EditX.Text);
Image1.Canvas.MoveTo(0,250);
Image1.Canvas.Pen.Color:=clYellow;
For I:=1 to N Do
begin
  Image1.Canvas.LineTo(25*I-25, 250-Round(25*X)+25);
  X:=(A-B*X)*X;
  end;
LabelOR.Caption:=FloatToStr(X);
//Ограниченный рост с отловом
X:=StrToFloat(EditX.Text);
Image1.Canvas.MoveTo(0,250);
Image1.Canvas.Pen.Color:=clBlue;
For I:=1 to N Do
begin
  Image1.Canvas.LineTo(25*I-25, 250-Round(25*X)+25);
  X:=(A-B*X)*X-C;
LabelORO.Caption:=FloatToStr(X);
end;
LabelORO.Caption:=FloatToStr(X);
//Жертвы
X:=StrToFloat(EditX.Text);
Y:=StrToFloat(EditY.Text);
Image1.Canvas.MoveTo(0,250);
Image1.Canvas.Pen.Color:=clGreen;
For I:=1 to N Do
begin
  Image1.Canvas.LineTo(25*I-25, 250-Round(25*X)+25);
  X:=(A-B*X)*X-C-F*X*Y;
  Y:=D*Y+G*X*Y
end;
LabelX_Y.Caption:=FloatToStr(X);
//Хищники
X:=StrToFloat(EditX.Text);
Y:=StrToFloat(EditY.Text);
Image1.Canvas.MoveTo(0,250);
Image1.Canvas.Pen.Color:=clRed;
For I:=1 to N Do
begin
  Image1.Canvas.LineTo(25*I-25, 250-Round(25*X)+25);
  X:=(A-B*X)*X-C-F*X*Y;
  Y:=D*Y+G*X*Y
end;
LabelY_X.Caption:=FloatToStr(X);
end;

procedure TForm1.EditAChange(Sender: TObject);
begin

end;

end.
(1.8k баллов)