Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > C/C++/С#


Ответ
 
Опции темы Опции просмотра
Старый 08.06.2011, 14:36   #1 (permalink)
Илья 104
Новичок
 
Регистрация: 08.06.2011
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
Exclamation График функций

Здавствуйте, нужны скрины программы графика функций,но при запуске программы выдает ошибку в библиотеках.Кто поможет зделать скрины программы?
Вот сама программа:
Цитата:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
// обработка события OnPaint
void __fastcall TForm1::FormPaint(TObject *Sender)
{
Grafik();
}
// обработка события OnResize
void __fastcall TForm1::FormResize(TObject *Sender)
{
TRect ret = Rect(0,0, ClientWidth, ClientHeight) ;
Canvas ->FillRect(ret); // стереть
Grafik();
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Grafik() ;
}
//---------------------------------------------------------------------------


#include "math.h" // для доступа к sin и ехр
// функция, график которой надо построить
float f(float x)
{
return als(sin(x))-als(cos(x));
}
void TForm1::Grafik()
{
float xmin,xmax,ymin,ymax;// преременные для рассчета мин и макс на заданном
//с клавиатуры промежутке
float z,t,a,j;//координаты вывода таблицы
float x1, x2; // границы изменения аргумента функции
float y1, y2; // границы изменения значения функции
float x; // аргумент функции
float y; // значение функции в точке х
float dx; // приращение аргумента
int l, b; // левый нижний угол области вывода графика
int w, h; // ширина и высота области вывода графика
float mx, my; // масштаб по осям X и Y
int x0, y0; // начало координат
// область вывода графика
l = 10; // X — координата левого верхнего угла
b = Form1->ClientHeight-20; // Y — координата левого нижнего угла
h = Form1->ClientHeight-100; // высота
w = Form1->Width -400; // ширина

xmin=StrToFloat(Edit3->Text);// запоминаем начало промежутка
xmax=StrToFloat(Edit4->Text);// запоминаем конец промежутка
dx=StrToFloat(Edit5->Text);// запоминаем шаг

//найдем мин макс значения функции на данном промежутке
x=xmin;
ymax=f(x);
ymin=f(x);

z=700;
t=75;
a=850;
j=75;


do
{
y=f(x);
if (y<ymin) ymin=y;
if (y>ymax) ymax=y;
Canvas->TextOutA(z-7,t, (x));
Canvas->TextOutA(a-50,j, (y));
Canvas->MoveTo(z-10,t-5);


x+=dx;

t+=20;
j+=20;

Canvas->LineTo(z-10,t-2) ;
Canvas->LineTo(a+50,j-2);

}
while (x<=xmax);
z=700;
t=75;

Canvas->MoveTo(900,j-2);
Canvas->LineTo(900,70);
Canvas->LineTo(900,70);
Canvas->LineTo(z-10,t-5);
Canvas->MoveTo(z+90,70);
Canvas->LineTo(z+90,j);

Edit1->Text=ymin;//выводим полученное мин значение
Edit2->Text=ymax;//выводим полученное макс значение

x1 = -3; // нижняя граница диапазона аргумента
x2 = 3; // верхняя граница диапазона аргумента
dx = 0.314; // шаг аргумента
// найдем максимальное и минимальное значение
// функции на отрезке [xl,x2]
x = x1;
y1 = f(x); // минимум
y2 = f (x); // максимум

do
{
y = f (x);
if ( y < y1) y1 = y;
if ( y > y2) y2 = y;
x+= dx;
}
while (x <= x2);
// вычислим масштаб
my = (float)h/abs(y2-y1); // масштаб по оси Y
mx = w/abs(x2-x1); // масштаб по оси X
// оси
x0 = 1+abs (x1*mx) ;
y0 = b-abs (y1*my) ;
Canvas->MoveTo (x0+5,b) ; Canvas ->LineTo (x0+5,b-h) ;
Canvas ->MoveTo (l-2,y0) ;Canvas->LineTo (l+w,y0) ;
Canvas->TextOutA(x0+5,b-h, FloatToStrF(y2, ffGeneral, 6,3));
Canvas->TextOutA(x0+5,b, FloatToStrF(y1, ffGeneral, 6, 3)) ;
// построение графика
x = x1;
Canvas->Pixels [x0+x*mx] [y0-y*my] = clNavy;
Canvas->MoveTo ((x0+x*mx),(y0-y*my));

do
{
y = f (x);
Canvas ->LineTo ((x0+x*mx),(y0-y*my)) ;
x+= dx;
}
while (x <= x2) ;
Edit1->Text=ymin;
Edit2->Text=ymax;

}



//---------------------------------------------------------------------------
Илья 104 вне форума   Ответить с цитированием

Старый 08.06.2011, 14:36
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Вот вам несколько похожих тем, почитайте их и скорее всего вы найдете ответ

График в Excel'e
Назначение функций кнопок

Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 08:36.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.