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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2009, 23:34   #1
SWAT92Shtorm
Готов помочь
Пользователь
 
Регистрация: 06.06.2009
Сообщений: 27
По умолчанию Делфи-компонент(срочно)

Создать компонент для исследования графика функции y=ax^3+bx^2+cx+d. Компонент
должен соответствовать следующим требованиям:
- должны присутствовать оси X и Y;
- должна присутствовать возможность вывода сетки с заданными шагами по осям X и Y;
- вдоль осей должны быть выведены промежуточные деления с надписями;
- масштаб по осям должен задаваться крайними значениями;
- график функции должен быть непрерывным;
- аргументы функции должны задаваться пользователем;
- цвет линии графика должен быть настраиваемым.
В ВУЗе
SWAT92Shtorm вне форума Ответить с цитированием
Старый 03.12.2009, 00:00   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Тема для фриланса
mihali4 вне форума Ответить с цитированием
Старый 03.12.2009, 00:12   #3
notHaker
Форумчанин
 
Аватар для notHaker
 
Регистрация: 01.12.2009
Сообщений: 569
По умолчанию

Думаю уместна будет цитата одного товарища - "Вы бы ещё свои ботинки выкладывали и просили, чтобы мы их почистили"...

ТоварищЪ SWAT92Shtorm. Выкладывайте исходники, идеи и вам скорее всего помогут. А такой топик = наглость по отношению к людям, которые помогают за бесплатно.

Уважаемый mihali4. Не могли бы вы помоч вот с этой темой?
Код - это работа, а работа стоит денег.

pz-game.ru. 2d зомби-сурвивал для олдфагов.
notHaker вне форума Ответить с цитированием
Старый 20.12.2009, 21:00   #4
SWAT92Shtorm
Готов помочь
Пользователь
 
Регистрация: 06.06.2009
Сообщений: 27
По умолчанию

unit lab2;

interface

uses
WinTypes, WinProcs, Messages, Classes, Graphics, Controls, ExtCtrls, SysUtils;

type
grafikk = class(TGraphicControl)
private
img: TBitmap;
sss: boolean;
sh,aa,bb,cc,dd,kzx,kzy: integer;
gc: TColor;
procedure setset(val: boolean);
procedure setsh(val: integer);
procedure setgc(val: TColor);

procedure seta(val: integer);
procedure setb(val: integer);
procedure setc(val: integer);
procedure setd(val: integer);
procedure setkzx(val: integer);
procedure setkzy(val: integer);

protected
procedure Paint; override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property setka: boolean read sss write setset;
property shag: integer read sh write setsh;
property grafcolor: TColor read gc write setgc;

property a: integer read aa write seta;
property b: integer read bb write setb;
property c: integer read cc write setc;
property d: integer read dd write setd;

property krainX: integer read kzx write setkzx;
property krainY: integer read kzy write setkzy;



end;

procedure Register;

implementation
procedure Register;
begin
RegisterComponents('win32', [grafikk]);
end;

constructor grafikk.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
// ControlStyle:=ControlStyle+[csFramed];
Width := 450;
Height := 450;
img:= TBitmap.Create;
sss:=true;
sh:=40;
gc:=clred;
aa:=1;
bb:=2;
cc:=3;
dd:=4;
kzx:=20;
kzy:=20;

end;




procedure grafikk.Paint;
var x0,y0,i: integer; x,y: real;
begin
img.Width:=width;
img.Height:=Height;
img.Canvas.FillRect(img.Canvas.Clip Rect);
x0:= width div 2;
y0:= Height div 2;

if sss then
begin
img.Canvas.Pen.Width:=1;
img.Canvas.Pen.Color:=clBlue;
i:=x0 mod sh ;
repeat
img.Canvas.MoveTo(i,0);
img.Canvas.lineTo(i,Height);
inc(i,sh);
until (i>=width);
i:=y0 mod sh ;
repeat
img.Canvas.MoveTo(0,i);
img.Canvas.lineTo(width,i);
inc(i,sh);
until (i>=Height);
end;



x:=-kzx;


repeat
y:=-(aa*(x*x*x)+bb*(x*x)+cc*x+dd);

img.Canvas.Pixels[round(((x/kzx)*x0)+x0), round(((y/kzy)*y0))+y0]:=gc;
x:=x+0.001;


until x>=kzx;



img.Canvas.Pen.Width:=2;
img.Canvas.Pen.Color:=clBlack;


i:=x0 mod sh;
repeat
img.Canvas.MoveTo(i,y0-3);
img.Canvas.lineTo(i,y0+3);
img.Canvas.TextOut(i-7,y0+4,copy(floattostr(-((x0-i)/x0)*kzx),0,4));
inc(i,sh);
until (i>=width);
i:=y0 mod sh ;
repeat
img.Canvas.MoveTo(x0-3,i);
img.Canvas.lineTo(x0+3,i);
img.Canvas.TextOut(x0+4,i-7,copy(floattostr(((y0-i)/y0)*kzy),0,4));

inc(i,sh);
until (i>=Height);



img.Canvas.moveTo(x0,0);
img.Canvas.lineTo(x0,Height);
img.Canvas.moveTo(0,y0);
img.Canvas.lineTo(width,y0);



canvas.Draw(0,0,img);
end;

procedure grafikk.seta(val: integer);
begin
if val<>aa then
begin
aa:=val;
paint;
end;
end;
procedure grafikk.setb(val: integer);
begin
if val<>bb then
begin
bb:=val;
paint;
end;
end;
procedure grafikk.setc(val: integer);
begin
if val<>cc then
begin
cc:=val;
paint;
end;
end;
procedure grafikk.setd(val: integer);
begin
if val<>dd then
begin
dd:=val;
paint;
end;
end;



procedure grafikk.setset(val: boolean);
begin
if val<>sss then
begin
sss:=val;
paint;
end;
end;


procedure grafikk.setkzx(val: integer);
begin
if val<>kzx then
begin
kzx:=val;
paint
end;
end;
procedure grafikk.setkzy(val: integer);
begin
if val<>kzy then
begin
kzy:=val;
paint
end;
end;



procedure grafikk.setsh(val: integer);
begin
if (val<>sh) and (val>0) then
begin
sh:=val;
paint;
end;
end;


procedure grafikk.setgc(val: TColor);
begin
if val<>gc then
begin
gc:=val;
paint;
end;
end;




destructor grafikk.Destroy;
begin
img.Free;


inherited;
end;

end.


В ВУЗе
SWAT92Shtorm вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Срочно!!! 2 задачи в делфи!! Kit_Kat Фриланс 2 20.05.2009 02:47
Как мне подключить компонент myodbc к делфи Droid БД в Delphi 0 18.02.2009 19:47
исправить компонент под делфи 2007 Roof Компоненты Delphi 1 31.08.2008 09:09
Очень срочно 2 задачки на делфи... Milky-way Помощь студентам 12 29.10.2007 21:01