2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 График на Delphi 7
Сообщение27.11.2014, 10:31 
Аватара пользователя


26/09/13
645
Таджикистан
Здравствуйте, подскажите пожалуйста почему программа график не то рисует?
код программа

код: [ скачать ] [ спрятать ]
Используется синтаксис Delphi
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, TeEngine, Series, ExtCtrls, TeeProcs, Chart;
  const mf=500;
type
vector=array[1..mf] of real;
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    Edit1: TEdit;
    Label1: TLabel;
    Edit2: TEdit;
    Label2: TLabel;
    Edit3: TEdit;
    Label3: TLabel;
    Label4: TLabel;
    Edit5: TEdit;
    Label5: TLabel;
    Edit6: TEdit;
    Label6: TLabel;
    Edit7: TEdit;
    Label7: TLabel;
    Edit8: TEdit;
    Label8: TLabel;
    Chart1: TChart;
    Series1: TLineSeries;
    Edit4: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
function lamda(x:real):real;
{Функция вычисления коэффициента теплопроводности по формуле (31)}
begin
lamda:=5500/(560+x)+0.942*(1E-10)*x*sqr(x);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
{Раздел описания переменных, которые мы будем использовать в программе}
  i,j,N:integer;
  T,alfa,beta:vector;
  ai,bi,ci,fi:real;
  ro,ch,tau,h,kap:real;
  Th,T0,Tc,L,t_end,time:real;
//f,g:text;
begin
        N:=StrToInt(Edit1.Text);
        t_end:=StrToFloat(Edit2.Text);
        L:=StrToFloat(Edit3.Text);
        ro:=StrToFloat(Edit4.Text);
        kap:=StrToFloat(Edit5.Text);
        T0:=StrToFloat(Edit6.Text);
        Th:=StrToFloat(Edit7.Text);
        Tc:=StrToFloat(Edit8.Text);
{определяем расчетный шаг сетки по пространственной координате}
h:=L/(N-1);
{определяем расчетный г=шаг сетки по времени}
tau:=t_end/100;
{определяем поле температуры в начальный момент времени}
for i:=1 to N do
T[i]:=T0;
{проводим интегрирование нестациораного уравнения теплопровдности}
for i:=1 to N do
T[i]:=T0;
time:=0;
Chart1.Series[0].Clear;
//Chart1.Series[1].Clear;
//Chart1.Series[2].Clear;
//Chart1.Series[3].Clear;
while time<t_end do {используем цикл с предусловием}
begin
{увеличиваем переменную времени шаг tau}
time:=time+tau;
{определяем начальные прогоночные коэффициенты на основе левого граничного условия}
alfa[1]:=0;
beta[1]:=Th;
{цикл с параметром для определения прогончных коэффициентов по формуле (8)}
for i:=2 to N-1 do
begin
{ai, bi, ci ,fi - коэффициенты канонического представления системы уравнений с трехдиагнальной матрицей}
ai:=0.5*(lamda(T[i])+lamda(T[i+1]))/sqr(h);
ci:=0.5*(lamda(T[i-1])+lamda(T[i]))/sqr(h);
bi:=ai+ci+ro*kap/tau;
fi:=-ro*kap*T[i]/tau;
{alfa[i], beta[i] - прогоночные коэффициенты}
alfa[i]:=ai/(bi-ci*alfa[i-1]);
beta[i]:=(ci*beta[i-1]-fi)/(bi-ci*alfa[i-1]);
end;
{определяем значение температуры на правой границе на основе правого граничного условия}
T[N]:=Tc;
{используя соотношения (7) определяем неизвестное поле температуры}
for i:=N-1 downto 1 do
T[i]:=alfa[i]*T[i+1]+beta[i];
 Memo1.Lines.Clear;
  for i:=1 to n do
   begin
     Chart1.Series[0].Add(T[i],'',clred);
      Memo1.Lines.Add(FloatToStr(T[i]));
 end;
end; {цикл с предусловием окончен}
{выводим результат в файл}
end;
 
end.
 


График должен быт таким

Изображение

 Профиль  
                  
 
 Re: График на Delphi 7
Сообщение07.12.2014, 15:06 


10/05/13
251
Попробуйте нарисовать отрезок $(0, 0) - (200, 200)$

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: mihaild


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group