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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.03.2013, 21:08   #21
Maxim_93m
Пользователь
 
Регистрация: 09.03.2013
Сообщений: 20
По умолчанию

Будьте добры, скажите что нужно добавить,у меня туго с программированием...
Maxim_93m вне форума Ответить с цитированием
Старый 21.03.2013, 20:13   #22
Maxim_93m
Пользователь
 
Регистрация: 09.03.2013
Сообщений: 20
По умолчанию

Всем спасибо,помогли просто
Maxim_93m вне форума Ответить с цитированием
Старый 21.03.2013, 21:52   #23
Uses_crt
Пользователь
 
Регистрация: 11.03.2013
Сообщений: 10
Хорошо

Скажете тогда пожалуста если неясно будет чтото пишите
Вложения
Тип файла: rar Lab №1.rar (290.5 Кб, 30 просмотров)
Uses_crt вне форума Ответить с цитированием
Старый 22.03.2013, 16:38   #24
Maxim_93m
Пользователь
 
Регистрация: 09.03.2013
Сообщений: 20
По умолчанию

Хорошо,благодарю!
Maxim_93m вне форума Ответить с цитированием
Старый 23.03.2013, 22:10   #25
Maxim_93m
Пользователь
 
Регистрация: 09.03.2013
Сообщений: 20
По умолчанию

Код:
unit Lab;

interface

uses
  WinTypes, WinProcs, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls, TeEngine, TeeProcs, Chart, Series;
  const
  dt=0.0001;// Êâàíò âðåìåíè

type
  TForm1 = class(TForm)
    Chart1 : TChart;
    Series1: TLineSeries;
    Chart2: TChart;
    LineSeries1: TLineSeries;
    Chart3: TChart;
    LineSeries2: TLineSeries;
    Label1: TLabel;
    Jestk: TLabel;
    Massa: TLabel;
    Koff: TLabel;
    Vrem: TLabel;
    faza: TLabel;
    Amp_e: TEdit;
    Jestk_e: TEdit;
    Massa_e: TEdit;
    Koff_e: TEdit;
    Vrem_e: TEdit;
    faza_e: TEdit;
    Sbpos: TButton;
    graf: TButton;
    Image1: TImage;
    Timer1: TTimer;
    stop: TButton;
    procedure SbposClick(Sender: TObject);
    procedure grafClick(Sender: TObject);
    procedure stopClick(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
{ Private declarations }
A0,U,k,y,m,w0,x,v:extended;

  public
    { Public declarations }
  end;
  




var
  Form1: TForm1;


implementation

{$R *.DFM}





          // Êíîïêà ïîñòðîèòü ãðàôèêè
procedure TForm1.grafClick(Sender: TObject);

 var t:real;
     

begin
      // Ïðîâåðêà ââîäà èñõîäíûõ äàííûõ
    try
  t:=0;
  y:=StrToFloat(Koff_e.Text); // Êîýôôèöèåíò çàòóõàíèÿ
  A0:=StrToFloat(Amp_e.Text); // Àìïëèòóäà
  U:=StrToFloat(faza_e.Text); // Íà÷àëüíàÿ ôàçà
  m:=StrToFloat(Massa_e.Text); // Ìàññà
  k:=StrToFloat(Jestk_e.Text); // Æåñòêîñòü ïðóæèíû
  Timer1.Enabled:=true;//Âêëþ÷àåì òàéìåð

    except
  on EConvertError do
      begin
        if   (Amp_e.Text='') or (faza_e.Text='')
        or (Massa_e.Text='') or (Jestk_e.Text='') then
 MessageDlg('Íåîáõîäèìî ââåñòè âñå èñõîäíûå äàííûå!',mtInformation,[mbOk],0)
       else
    Exit;
  end;
 end;
 end;

                // Òàéìåð
   procedure Timer1Timer(Sender: TObject);
  var
  xx,yy,i,a,b,x1,y1,w0,k,m,t:integer;
begin
for i:=1 to 100 do //çàâèñèò îò êâàíòà âðåìåíè
 begin
 w0:=sqrt(k/m);
 x:=A0*exp((-y)*t)*cos(w0*t+U)*dt;
 v:= -(((A0*exp((-y)*t))*(y*cos(w0*t+U)+w0*sin(w0*t+U)))*dt;
 t:=t+dt;// Ñëåäóþùèé ìîìåíò âðåìåíè
 end;
end;

        // Ñòðîèì ãðàôèêè
Chart1.Series[1].AddXY(t,x);
Chart2.Series[2].AddXY(t, v);
Chart3.Series[3].AddXY(v,x );
    with Imgage1 do
 begin
  canvas.Pen.color:=clGreen;// Îáâîäêà
  canvas.Brush.Color:=$D8E9EC;// Ôîíîâûé öâåò
  canvas.Rectangle(0,0,Width,Height);// Ïîëå
  canvas.Pen.color:=clBlack;// Öâåò ïðóæèíû
 end;
  xx:=Round(A0*cos(3*pi/2+U));// Îòñòóï ïî îñè Õ
  yy:=Round(A0*sin(3*pi/2+U));// Îòñòóï ïî îñè Y
  image1.canvas.MoveTo((image1.Height div 2),(image1.Width div 2));//Âîçâðàùàåì çíà÷åíèå â öåíòð
  image1.canvas.LineTo(Round(a+cos(b))*xx,Round(c+sin(b)*yy);// Ðèñóåì ïðóæèíó
  b:=b+0.2;
image.canvas.Brush.Color:=clGreen;//öâåò ãðóçà
 image.canvas.Rectangle(x1,y1,x2,y2);//?????? ?????
end;




 


          // Êíîïêà ñòîï
  procedure TForm1.stopClick(Sender: TObject);
      begin
  Timer1.Enabled:=false;
      end;


        // Êíîïêà ñáðîñ äàííûõ
  procedure TForm1.SbposClick(Sender: TObject);

          begin
  Series1.Clear;
  faza_e.Text:='';
  Jestk_e.Text:='';
  Koff_e.Text:='';
  Massa_e.Text:='';
  Amp_e.Text:='';
  Vrem_e.Text:='';
            end;


  end.
Maxim_93m вне форума Ответить с цитированием
Старый 26.03.2013, 23:15   #26
Maxim_93m
Пользователь
 
Регистрация: 09.03.2013
Сообщений: 20
По умолчанию

Код:
unit Lab;

interface

uses
  WinTypes, WinProcs, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls, TeEngine, TeeProcs, Chart, Series;

 const
  dt=0.0001;//квант времени

type
  TForm1 = class(TForm)
    Chart1 : TChart;
    Series1: TLineSeries;
    Chart2: TChart;
    LineSeries1: TLineSeries;
    Chart3: TChart;
    LineSeries2: TLineSeries;
    Label1: TLabel;
    Jestk: TLabel;
    Massa: TLabel;
    Koff: TLabel;
    Vrem: TLabel;
    Amp_e: TEdit;
    Jestk_e: TEdit;
    Massa_e: TEdit;
    Koff_e: TEdit;
    Vrem_e: TEdit;
    Sbpos: TButton;
    graf: TButton;
    Image1: TImage;
    stop: TButton;
    procedure SbposClick(Sender: TObject);
    procedure grafClick(Sender: TObject);
    procedure stopClick(Sender: TObject);



  private
{ Private declarations }


  public
    { Public declarations }
  end;
  




var
  Form1: TForm1;
  flag:boolean;

implementation

{$R *.DFM}





          // Кнопка построить графики
procedure TForm1.grafClick(Sender: TObject);

 var x, t, dt, t0 ,x0, v0,v,a,k,m,a1,v1,x1,y: real;

begin

  y:=StrToFloat(Koff_e.Text); // Коэффициент затухания
  x0:=StrToFloat(Amp_e.Text); // Амплитуда
  m:=StrToFloat(Massa_e.Text); // Масса
  k:=StrToFloat(Jestk_e.Text); // Жесткость пружины
  Vrem_e.Text:=FloatToStr(1/y);
t0:=200;
v0:=0;
x1:=x0;
x:=x0;
v1:=v0;
v:=v0;
 dt:=0.01;
flag:=true;
while  (t0>t) and flag do
 begin
 t:=1/y;
  a:=-k*x/m;
  a1:=(-k*x1-y*v1*m)/m;
  v:=v+a*dt;
  v1:=v1+a1*dt;
  x:=x+v*dt;
  x1:=x1+v1*dt;
   Series1.AddXY(t0,x);
   LineSeries1.AddXY(t0,v);
    LineSeries2.AddXY(x1,v1);

  Application.ProcessMessages
  end;
  end;




          // Кнопка стоп
  procedure TForm1.stopClick(Sender: TObject);
      begin
 flag:=false;
      end;


        // Кнопка сброс данных
  procedure TForm1.SbposClick(Sender: TObject);

          begin
  Series1.Clear;
  LineSeries1.Clear;
  LineSeries2.Clear;

  Jestk_e.Text:='';
  Koff_e.Text:='';
  Massa_e.Text:='';
  Amp_e.Text:='';
  Vrem_e.Text:='';
            end;


  

end.
Maxim_93m вне форума Ответить с цитированием
Старый 22.04.2013, 17:01   #27
Maxim_93m
Пользователь
 
Регистрация: 09.03.2013
Сообщений: 20
По умолчанию

Всем спасибо,кто реально помогал,в отдельности Uses_crt

Вот что получилось:
Вложения
Тип файла: rar Гармонический осциллятор с затуханием.rar (559.6 Кб, 40 просмотров)
Maxim_93m вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[B]Программа простого калькулятора. Сложности в написании.[/B] Karina_91 Помощь студентам 0 01.05.2011 21:17
Программа для создания модели колебания NosferatuD Помощь студентам 0 12.12.2010 20:58
Промоделировать движение РСЛОС wmzvov Безопасность, Шифрование 0 03.05.2010 18:26
программа, перестраивающая график с учетом добавленных в таблицу новых данных beeline_007 Microsoft Office Excel 2 10.03.2010 12:40
СРОЧНО!!! Тема:"Моделирование колебаний линейного гармонического осциллятора" Может у Бука Помощь студентам 1 04.03.2007 16:22