Помощь - Поиск - Пользователи - Календарь
Полная версия: Построение графика функции
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
Mad Dam
Здравствуйте уважаемые программисты, не могли бы вы помочь мне сделать курсовую работу на Delphi. Преподаватель дал 2 задания для курсовой, которые нужно делать каждую отдельно.
1. Построить графики функций: arctg(x), где x-ограниченно.
2. Вычислить с заданной точностью значения тригонометрической функции sin(x).
Помогите пожалуйста, а то я сам мало что знаю, а написать эти 2 программы нужно уже в ближайшее время. Буду очень признателен.
Ozzя
2.
Общие вопросы по математике.
1.
Добавлено через 19 мин.
Взято отсюда - Построение любого графика
и переделано под Дельфи.
Оптимизация, подстановка своей ф-ции и проч. - на Вас.

unit Unit1;

interface

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

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
const
{ OPTIONS }
shag=0.0001;
lgr = -50;
pgr = 50;
zcrtX=320;
zcrty=240;
mtrX=10;
mtrY=10;
colorG=15;
colorOXY=4;
OXYminX=-200;
OXYmaxX=200;
OXYminY=-200;
oxymaxY=200;
Var
x,y:real;{extended;}
i:integer;
Begin
for i:=OXYminX to OXYmaxX do
canvas.Pixels[zcrtX+i,zcrty]:=colorOXY;
for i:=OXYminY to OXYmaxY do
canvas.Pixels[zcrtX,zcrty-i]:=colorOXY;

x:=lgr;
while x<=pgr do
begin
if x<>2 then
begin y:=abs(x/(x-2))-1; {***}
canvas.Pixels[zcrtx+trunc(x*mtrX),zcrty-trunc(y*mtrY)]:=colorg;
end;
x:=x+shag;
end;

end;

end.
Mad Dam
uses Series;
procedure TForm1.Button1Click(Sender: TObject);
var
x, y: Integer;
s, t: TLineSeries;
begin
with Chart1 do
begin
Title.Text.Clear;
Title.Text.Add('Заголовок для Chart');
s := TLineSeries.Create(nil);
s.Clear;
s.Title := 'Chart Line 1';
s.ParentChart := Chart1;
s.XValues.DateTime := True;
begin
x:=-1;
while x<=1 do
begin
s.AddXY(x , arctg(x) );
x:=x+0.1;
end;
end;
end;
end.


вот то что я сделал, но у меня эта програма не работает...пожалуйста помогите в чем проблема...
volvo
Цитата
пожалуйста помогите в чем проблема...
Проблема в синтаксисе прежде всего... Тебе же компилятор должен сказать, что именно неправильно. X, Y в частности, должны быть вещественными, а не целочисленными. Вот так все работает:
procedure TForm1.Button1Click(Sender: TObject);
var
x, y: double;
s, t: TLineSeries;
begin
with Chart1 do begin
Title.Text.Clear;
Title.Text.Add('Заголовок для Chart');
s := TLineSeries.Create(nil);
s.Clear;
s.Title := 'Chart Line 1';
s.ParentChart := Chart1;
s.XValues.DateTime := True;

x:=-1;
while x<=1 do begin
s.AddXY(x , arctan(x) );
x:=x+0.1;
end;
end;
end;
Mad Dam
а там после последнего end'а точка с запятой должна быть или точка?
спасибо большое) очень признателен...
volvo
Цитата
после последнего end'а точка с запятой должна быть или точка?
Это - описание процедуры. Здесь точка с запятой... Но ниже у тебя должен быть и End с точкой, означающий конец модуля.
Mad Dam
спасибо большое))очень благодарен...
а скажи пожалуйста...для чего мы в тексте используем это:
s.XValues.DateTime := True
и почему x и y заданы через double...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.