Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2013, 17:30   #1
Evil93
 
Регистрация: 26.10.2013
Сообщений: 5
По умолчанию Программа описывающая модель бросания мяча в стену

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    Button2: TButton;
    Image1: TImage;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Button3: TButton;
    Label13: TLabel;
    Button4: TButton;
    Label14: TLabel;
    Button5: TButton;
    Label15: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  V0, A, S, H: real;
  const
  G=9.81;
  Pi=3.14;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
L: real;
begin
V0:=strtofloat(Edit1.text);
A:=strtofloat(Edit2.text);
S:=strtofloat(Edit3.text);
H:=strtofloat(Edit4.text);
L:=S*Tan(A*Pi/180)-G*Sqr(S)/(2*Sqr(V0*cos(A*Pi/180)));
Label1.Caption:=floattostr(L);
if L<0 then
Label2.Caption:='Nedolet'
else if L>H then
label2.Caption:='Perelet'
else
label2.caption:='popadanie';
end;

procedure TForm1.Button2Click(Sender: TObject);
var
x, y, n: integer;
T: real;
begin
Image1.Picture:=nil;
V0:=strtofloat(Edit1.text);
A:=strtofloat(Edit2.text);
S:=strtofloat(Edit3.text);
H:=strtofloat(Edit4.text);
with image1.Canvas do
  begin
    While T<5 do
      begin
        T:=T+0.005;
        Y:=380-Round(10*(V0*sin(A*Pi/180)*t-g*t*t/2));
        X:=5+Round(10*(V0*cos(A*Pi/180)*t));
        Pixels[x,y]:=clblack;
      end;
    Moveto (0,380); lineto(800,380);
    Moveto (5,0); lineto(5,400);
    moveto(round(5+10*s),round(380));
    lineto(round(5+10*s), 380-round(10*H));
    N:=0;
    While N<800 do
      begin
        N:=N+50;
        Moveto(5+N,380); lineto(5+N,400);
        textout(7+N,380,inttostr(round(N/10)));
      end;
    N:=0;
    While N<400 do
      begin
        N:=N+50;
        Moveto(0,380-N); lineto(10,380-N);
        textout(0,380-N,inttostr(round(N/10)));
      end;
    end;
end;

procedure TForm1.Button3Click(Sender: TObject);
var
 V0, S, H, L: real;
 A: integer;
begin
  label13.Caption:=' ';
  V0:=strtofloat(Edit1.text);
  S:=strtofloat(Edit3.text);
  H:=strtofloat(Edit4.text);
    for A:=0 to 90 do
    Begin
      L:=S*Tan(A*Pi/180)-G*Sqr(S)/(2*Sqr(V0*cos(A*Pi/180)));
      if (0<L) and (l<h) then
        begin
          label13.caption:=label13.Caption+' '+inttostr(A);
        end;
    end;
    if label13.Caption=' ' then
      Label13.Caption:='Ne naydeno';
end;

procedure TForm1.Button4Click(Sender: TObject);
var
 A, S, H, L: real;
 V0: integer;
begin
label14.Caption:=' ';
A:=strtofloat(Edit2.text);
S:=strtofloat(Edit3.text);
H:=strtofloat(Edit4.text);
for V0:=1 to 200 do
Begin
L:=S*Tan(A*Pi/180)-G*Sqr(S)/(2*Sqr(V0*cos(A*Pi/180)));
if (0<L) and (l<h)
then
begin
label14.caption:=label14.Caption+' '+inttostr(V0);
end;
end;
if label14.Caption=' ' then
label14.Caption:='Ne naydeno';
end;


procedure TForm1.Button5Click(Sender: TObject);
var
S, H, L: real;
A, V0: integer;
begin
label15.Caption:=' ';
V0:=strtoint(Edit1.text);
A:=strtoint(Edit2.text);
S:=strtofloat(Edit3.text);
H:=strtofloat(Edit4.text);
while label15.Caption=' ' do
begin
for V0:=1 to 200 do
  begin
    for A:=0 to  90 do
      Begin
        L:=S*Tan(A*Pi/180)-G*Sqr(S)/(2*Sqr(V0*cos(A*Pi/180)));
        if (0<L) and (l<h)
        then
        label15.Caption:=inttostr(V0)+' _ '+inttostr(A);
        end;
  end;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
with Image1.Canvas do
  begin
    MoveTo(0, 0);
    LineTo(Image1.Width-1, 0);
    LineTo(Image1.Width-1, Image1.Height-1);
    LineTo(0, Image1.Height-1);
    LineTo(0, 0);
  end;
end;

end.
Evil93 вне форума Ответить с цитированием
Старый 09.12.2013, 17:47   #2
Evil93
 
Регистрация: 26.10.2013
Сообщений: 5
По умолчанию

Программа описывающая модель размножения бактерий
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Edit2: TEdit;
    Button1: TButton;
    Timer1: TTimer;
    Timer2: TTimer;
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  n, c, x, y: Integer;
  B: array[1..512] of TShape;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
begin
n:=StrToInt(Edit1.text);
c:=StrToInt(Edit2.text);
Randomize;
for i:=1 to n do
begin
       B[i] := TShape.Create(Form1);
       B[i].Parent := Form1;
       B[i].Shape := stCircle;
       B[i].Top := Random(600)+100;
       B[i].Left :=Random(600)+100;
       B[i].Width := 20;
       B[i].Height := 20;
       B[i].Brush.Color :=  clLime;
       B[i].Pen.Color := clGreen;
     end;
Timer1.Enabled:=True;
Timer2.Enabled:=True;
Button1.Enabled:=False;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  i: Integer;
begin
Randomize;
for i:=1 to n do
begin
B[i].Top := B[i].Top+Random(20)-10;
B[i].Left :=B[i].Left+Random(20)-10;
end;
end;

procedure TForm1.Timer2Timer(Sender: TObject);
var
  f, j, i, p: Integer;
begin
  if c=0 then
    begin
      Timer1.Enabled:=False;
      Timer2.Enabled:=False;
    end
  else
    begin
      f:=n+1;
      i:=1;
      p:=2*n;
        for j:=f to p do
          begin
            B[j] := TShape.Create(Form1);
            B[j].Parent := Form1;
            B[j].Shape := stCircle;
            B[j].Top := B[i].Top;
            B[j].Left :=B[i].Left;
            B[j].Width := 20;
            B[j].Height := 20;
            B[j].Brush.Color :=  clLime;
            B[j].Pen.Color := clGreen;
            i:=i+1;
          end;
        n:=n*2;
        c:=c-1;
    end;
end;
end.
Evil93 вне форума Ответить с цитированием
Старый 09.12.2013, 18:17   #3
Evil93
 
Регистрация: 26.10.2013
Сообщений: 5
По умолчанию

Программа нахождения площади круга и числа Пи методом Монте-Карло
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Image1: TImage;
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  r, n, m, i: Integer;
  x, y: Real;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
image1.Canvas.Brush.Color:=clWhite;
image1.Canvas.Rectangle(100-r, 100-r, 100+r, 100+r);
image1.Canvas.FillRect(Rect(100-r, 100-r, 100+r, 100+r));
M:=0;
R:=StrToInt(Edit1.Text);
N:=StrToInt(Edit2.Text);
image1.Canvas.Rectangle(100-r, 100-r, 100+r, 100+r);
image1.Canvas.Ellipse(100-r, 100-r, 100+r, 100+r);
Randomize;
for I:=1 to n do
begin
  X:=Random(2*r)-r;
  Y:=Random(2*r)-r;
  Image1.Canvas.Pixels[Round(x)+100, Round(y)+100]:=clBlack;
  if Sqr(x)+sqr(y)<=sqr(r)
  then M:=M+1
end;
Label1.Caption:=FloatToStr(4*sqr(r)*m/n);
Label2.Caption:=FloatToStr(4*m/n);
end;

end.
Evil93 вне форума Ответить с цитированием
Старый 09.12.2013, 20:55   #4
Evil93
 
Регистрация: 26.10.2013
Сообщений: 5
По умолчанию

Программа работы полусумматора
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  a, b: string;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
a:=Edit1.Text;
b:=Edit2.Text;
if (a='1') and (b='1') then
  begin
    Label3.Caption:='1';
    Label7.Caption:='0';
  end
else
  begin
    Label3.Caption:='0';
    Label7.Caption:='0';
  end;
if  (a='1') or (b='1') then
  begin
    Label4.Caption:='1';
  end
else
  begin
    Label4.Caption:='0';
  end;
if ((a='1') and (b='0'))or((a='0') and (b='1')) then
  begin
    Label8.Caption:='1';
  end
else
  begin
    Label8.Caption:='0';
  end;
end;

end.
Evil93 вне форума Ответить с цитированием
Старый 09.12.2013, 21:19   #5
Evil93
 
Регистрация: 26.10.2013
Сообщений: 5
По умолчанию

Программа работы триггера
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  s, r: string;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
s:=edit1.Text;
r:=edit2.Text;
if (s='1') or (label8.Caption='1') then
  begin
    Label3.Caption:='1';
    Label7.Caption:='0';
  end
else
  begin
    Label3.Caption:='0';
    Label7.Caption:='1';
  end;
if (r='1') or (label7.Caption='1') then
  begin
    Label4.Caption:='1';
    Label8.Caption:='0';
  end
else
  begin
    Label4.Caption:='0';
    Label8.Caption:='1';
  end;
end;

end.
Evil93 вне форума Ответить с цитированием
Старый 09.12.2013, 21:29   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А к чему это все? Полюбуйтесь?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Физическая модель падающего мяча. Visual С++ Adept22 Помощь студентам 4 18.05.2013 11:26
Моделирование бросания игральных костей(теория вероятностей) diallfam Помощь студентам 4 08.01.2012 19:36
Иммитационная модель системы массового обслуживания. (программа для курсового) Mrshilov Помощь студентам 5 09.10.2011 11:31
Иммитационная модель системы массового обслуживания. (программа для курсового) Mrshilov Фриланс 5 09.10.2011 08:35
Программа - модель сети на С++ Vinnipux Фриланс 11 20.03.2010 15:51