АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Настройка формы. Панель диалога программы с получеными результатами представлена на рис

Читайте также:
  1. BRP открывает новый виток инновационного развития с выпуском платформы Ski-Doo REV
  2. II. ЦЕЛИ И ФОРМЫ ДЕЯТЕЛЬНОСТИ ПРИХОДА
  3. IV. Формы контроля
  4. IV. Формы контроля
  5. V. Формы контроля
  6. VII Формы текущего и итогового контроля
  7. VII. Новые формы российского предпринимательства
  8. Автонастройка режима
  9. Авторитаризм и его формы
  10. Авторитет и влияние менеджера, и их формы.
  11. Аграрные отношения и формы землевладения. Усиление эксплуатации общинников.
  12. Административно-политические реформы 60 – 70-х гг. XIX в.

Панель диалога программы с получеными результатами представлена на рис. 9.2.

 

Рис. 9.2

 

 

Текст программы, реализующий поставленную задачу, может иметь следующий вид:

...

//---------------------------------------------------------------------------

double a,b,h,y_min,y_max;

int n;

typedef double (*Tfun)(double);

Tfun f;

double fun0(double);

double fun1(double);

double fun2(double);

//----------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)

{

Edit1->Text="-3,1416"; // a

Edit2->Text="3,1416"; // b

Edit3->Text="50"; // n

RadioGroup1->ItemIndex = 0;

}

//----------------- Задать начальные значения ------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

double x, r;

a=StrToFloat(Edit1->Text);

b=StrToFloat(Edit2->Text);

n=StrToInt(Edit3->Text);

h = (b-a)/n;

switch(RadioGroup1->ItemIndex) {

case 0: f = fun0; break;

case 1: f = fun1; break;

case 2: f = fun2; break;

}

y_min = y_max = f(a);

for (x = a+h; x<=b; x+=h) {

r = f(x);

if(y_min>r)

y_min = r;

if(y_max<r)

y_max = r;

}

}

//------------------------ Построить график в Chart ----------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)

{

Chart1->Series[0]->Clear(); // Очистка графика

for(double x=a; x<=b; x+=h)

Chart1->Series[0]->AddXY(x,f(x));

}


//--------------------- Копировать в буфер ----------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)

{

Chart1->CopyToClipboardMetafile(True);

}

//--------------------- Построить график в Image ---------------------------

void __fastcall TForm1::Button4Click(TObject *Sender)

{

int xmax, ymax, xt, yt, y0, x0;

double hx,hy,x;

Image1->Canvas->Pen->Color=clBlack; // Установка цвета пера

// Поиск координат правого нижнего угла холста Image

xmax = Image1->Width;

ymax = Image1->Height;

// Закрашивание холста Image текущей белой кистью

Image1->Canvas->Rectangle(0,0,xmax,ymax);

// Поиск середины холста

y0=ymax/2;

x0=xmax/2;

// Вычерчивание координатных линий

Image1->Canvas->MoveTo(0,y0);

Image1->Canvas->LineTo(xmax,y0);

Image1->Canvas->MoveTo(x0,0);

Image1->Canvas->LineTo(x0,ymax);

Image1->Canvas->Pen->Color=clRed; // Установка цвета пера

Image1->Canvas->Pen->Width=2; // Установка ширины пера

// Поиск шагов по х и у с масштабированием

hx=(b-a)/xmax;

hy=(y_max-y_min)/ymax;

Image1->Canvas->MoveTo(ceil(x0+a/hx),ceil(y0-f(a)/hy));

for(x=a; x<=b; x+=h)

Image1->Canvas->LineTo(ceil(x0+x/hx),ceil(y0-f(x)/hy));

}

//------------------------------------------------------------

double fun0(double r)

{

return sin(r);

}

//------------------------------------------------------------

double fun1(double r)

{

return r*r;

}

//------------------------------------------------------------

double fun2(double r)

{

return r*r*r;

}

 

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)