IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Курсовая,интеграл, Tchart, Программа перестала высчитывать интеграл
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 20
Пол: Мужской

Репутация: -  0  +


Доброго времени суток...Как понятно приближается сессия и студенты начинают всё больше и больше учиться... так вот к чему это я... Курсовая работа "Вычисление определённго интеграла методом Чебышева" В прошлом семестре делалась аналогичная работа на Паскале, а в этом попросили перенести её на Дельфи, при чём реализовать графическую интерпретацию функции, интеграл которой мы ищет, при чём через Tchart. Вроде бы всё сделал, график рисует, только теперь программа перестала высчитывать интеграл...) Помогите найти ошибку... только оговорюсь, алгоритм вычисление интеграла менять не хочется...) потому что он рабочий точно))
Вот

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons, TeEngine, Series, TeeProcs, Chart;

type
aa=array[1..5] of real;
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
RadioGroup1: TRadioGroup;
Label4: TLabel;
Edit4: TEdit;
BitBtn1: TBitBtn;
Label5: TLabel;
Chart1: TChart;
Series1: TLineSeries;
Panel1: TPanel;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Edit8: TEdit;
Series2: TLineSeries;
Series3: TLineSeries;
Series4: TLineSeries;
function f(x:real;n:integer):real;
procedure BitBtn1Click(Sender: TObject);
procedure RadioGroup1Click(Sender: TObject);
procedure vvod(var a,b:real; var k:aa);
procedure Raschet(var j:aa; var y:aa; var int:real);
private
{ Private declarations }
public
{ Public declarations }
end;
const pi=3.14;
var
Form1: TForm1;
x0,x,e,x1,a,b,c,d,gral:real;
m:integer;
j,y,k:aa;
implementation


{$R *.dfm}
function TForm1.f(x:real;n:integer):real;
begin
case RadioGroup1.ItemIndex of //Выбирает нужное уравнение
0:f:=x*x*x - x*x -x -1;
1:f:=x;
2:f:=x*x ;
end
end;
procedure TForm1.vvod(var a,b:real; var k:aa); //считаем k
var i:integer; t1,t2:real;
Begin
k[1]:=0.5*(b+a);
t1:=0.5*sqrt((5-sqrt(11))/3);
k[2]:=0.5*(b+a)+ 0.5*(b-a)*t1 ;
k[3]:=0.5*(b+a) - 0.5*(b-a)*t1;
t2:=0.5*sqrt((5+sqrt(11))/3);
k[4]:=0.5*(b+a)+ 0.5*(b-a)*t2;
k[5]:=0.5*(b+a) - 0.5*(b-a)*t2;
end;
procedure TForm1.Raschet(var j:aa; var y:aa; var int:real); // расчёт интеграла
var i:integer;
Begin

If RadioGroup1.ItemIndex=0 then
For i:=1 to 5 do
y[i]:=(j[i]*j[i]*j[i]-j[i]*j[i]+j[i]+1);
if RadioGroup1.ItemIndex=1then
For i:=1 to 5 do
y[i]:=j[i];
If RadioGroup1.ItemIndex=2 then
for i:=1 to 5 do
y[i]:=j[i]*j[i];
int:=y[1]+y[2]+y[3]+y[4]+y[5];

gral:=int*(b-a)/5; //получили значение интеграла
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
var r:real;
i:integer;
begin
a:=StrToFloat(Edit1.Text);
b:=StrToFloat(Edit2.Text);
vvod(a,b,k);
raschet(j,y,gral);
Series1.Clear; //Очищает график от предыдущих линий
Series2.Clear;
Series3.Clear;
Series4.Clear;
m:=RadioGroup1.ItemIndex;

// Чертит график и оси координат для 1-го и 3-го уравнений
if (RadioGroup1.ItemIndex=0)or(RadioGroup1.ItemIndex=2)then
begin
for i:=-10 to 10 do begin
Series1.AddXY(i,f(i,m),'',clRed);
Series2.AddXY(0,-f(i,m),'',clBlack);
Series2.AddXY(0,f(i,m),'',clBlack);
Series4.AddXY(-i,0,'',clBlack);
Series4.AddXY(i,0,'',clBlack);end;end else
//Чертит график и оси координат для 2-го уравнения
for i:=-10 to 10 do begin r:=i/10;
Series1.AddXY(i,f(r,m),'',clRed);
Series2.AddXY(0,-f(r,m),'',clBlack);
Series2.AddXY(0,f(r,m),'',clBlack);
Series4.AddXY(-i,0,'',clBlack);
Series4.AddXY(i,0,'',clBlack);end;
// Проводит линию указывающую результат
Series3.AddXY(x,0,'',clGreen);
Series3.AddXY(x,f(x,m),'',clGreen);
//Вывод результата
Edit4.Text:=FLoatToStr(gral);
end;

procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
// Показывает или скрывает панель для ввода коэффициентов
If (RadioGroup1.ItemIndex=2)or(RadioGroup1.ItemIndex=1) Then Panel1.Visible:=True Else
Panel1.Visible:=False;
end;

end.



P.S извиняюсь за создание аналогичной темы...просто не уверен,что если напишу в другой, мне кто-то ответит. Заранее спасибо.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


можешь в архиве кинуть проект (без ехе-шника)?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 20
Пол: Мужской

Репутация: -  0  +


Юлия, извините, а на какой ящик мне скинуть? )) в вашем профиле не нашёл...)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 20
Пол: Мужской

Репутация: -  0  +


Вот...прикрепил)


Прикрепленные файлы
Прикрепленный файл  ________.zip ( 5.25 килобайт ) Кол-во скачиваний: 240
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 19:41
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name