методичка. метода по ООП для практики. Лабораторная работа 1. Линейный вычислительный процесс 2 Общие теоретические сведения 2 Создание оконного приложения 6
Скачать 1.1 Mb.
|
9.2. Пример создания оконного приложенияНаписать программу отображения графика выбранной функции с помощью компонент Сhart и Image. Настройка формыПанель диалога программы с получеными результатами представлена на рис. 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 } } //------------------------ Построить график в 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; } 9.3. Индивидуальные заданияНаписать программу вывода графиков функции (лабораторная работа №3) Y(x) и ее разложения в ряд S(x) для аргумента x, изменяющегося от a до b с шагом h (вводятся с клавиатуры) с использованием компоненты Сhart и графика функции Y(x) с использованием компоненты Image. Приложение 1 Приложение 1. Операции и основные математические функции1. Операции приведены в порядке убывания приоритета, операции с разными приоритетами разделены чертой.
Окончание прил. 1
Стандартные математические функции Для использования математических функций необходимо подключить файл math.h. Параметры и возвращаемые результаты большинства математических функций имеют тип double. Аргументы тригонометрических функций задаются в радианах. Напомним, что 2 (рад) равно 360о (град).
Приложение 2 |