2014 dxdy logo

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

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




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


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

код: [ скачать ] [ спрятать ]
Используется синтаксис 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, Супермодераторы



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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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