Главная страница

методичка. метода по ООП для практики. Лабораторная работа 1. Линейный вычислительный процесс 2 Общие теоретические сведения 2 Создание оконного приложения 6


Скачать 1.1 Mb.
НазваниеЛабораторная работа 1. Линейный вычислительный процесс 2 Общие теоретические сведения 2 Создание оконного приложения 6
Анкорметодичка
Дата11.01.2022
Размер1.1 Mb.
Формат файлаdoc
Имя файламетода по ООП для практики.doc
ТипЛабораторная работа
#328342
страница18 из 19
1   ...   11   12   13   14   15   16   17   18   19

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. Операции приведены в порядке убывания приоритета, операции с разными приоритетами разделены чертой.

Опера­ция

Краткое описание

Использование

Выполне-ние

Первичные (унарные) операции

.

Доступ к члену

объект . член

Слева

направо

->

Доступ по указателю

указатель -> член

[ ]

Индексирование

переменная [выражение]

( )

Вызов функции

ID(список)

Унарные операции

++

Постфиксный инкремент

lvalue++

Справа

налево

--

Постфиксный декремент

lvalue--

sizeof

Размер объекта (типа)

sizeof(ID или тип)

++

Префиксный инкремент

++lvalue

--

Префиксный декремент

--lvalue



Побитовое НЕ

выражение

!

Логическое НЕ

!выражение

- (+)

Унарный минус (плюс)

- (+)выражение

*

Разадресация указателя

*выражение

&

Адрес

&выражение

()

Приведение типа

(тип)выражение

Бинарные и тернарная операции

*

Умножение

выражение * выражение

Слева

направо

/

Деление

выражение / выражение

%

Получение остатка

выражение % выражение

+ ( - )

Сложение (вычитание)

выражение + (-) выражение

<<

Сдвиг влево

выражение << выражение

>>

Сдвиг вправо

выражение >> выражение

<

Меньше

выражение < выражение

<=

Меньше или равно

выражение <= выражение

>

Больше

выражение > выражение

>=

Больше или равно

выражение >= выражение

==

Равно

выражение == выражение

!=

Не равно

выражение != выражение

&

Побитовое И

выражение & выражение

^

Побитовое исключ. ИЛИ

выражение ^ выражение

|

Побитовое ИЛИ

выражение | выражение

&&

Логическое И

выражение && выражение

||

Логическое ИЛИ

выражение || выражение

Окончание прил. 1


Опера­ция

Краткое описание

Использование

Выполне-ние

?:

Условная операция (тернарная)

выражение ? выражение : выражение

Справа

налево


=

Присваивание

lvalue = выражение

*=

Умножение с присваиванием

lvalue *= выражение

/=

Деление с присваиванием

lvalue /= выражение

%=

Остаток от деления с присв-м

lvalue %= выражение

+=

Сложение с присваиванием

lvalue += выражение

- =

Вычитание с присваиванием

lvalue -= выражение

<<=

Сдвиг влево с присваиванием

lvalue <<= выражение

>>=

Сдвиг вправо с присваиванием

lvalue >>= выражение

&=

Поразрядное И с присваив-м

lvalue &= выражение

|=

Поразрядное ИЛИ с присв-м

lvalue |= выражение

^=

Поразрядное ИСКЛЮЧАЮ­ЩЕЕ ИЛИ с присваиванием

lvalue ^= выражение

,

Последовательное вычисление

выражение, выражение

Слева

направо


Стандартные математические функции

Для использования математических функций необходимо подключить файл math.h. Параметры и возвращаемые результаты большинства математических функций имеют тип double.

Аргументы тригонометрических функций задаются в радианах. Напомним, что 2 (рад) равно 360о (град).


Математическая функция

ID функции

Математическая

функция

ID функции



sqrt(x)

arcsin(x)

asin(x)

|x|

fabs(x)

arctg(x)

atan(x)

ex

exp(x)

arctg(x/y)

atan2(x,y)

xy

pow(x, y)

sh(x)=1/2 (ex-e-x)

sinh(x)

ln(x)

log(x)

ch(x)=1/2 (ex+e-x)

cosh(x)

lg10(x)

log10(x)

tgh(x)

tanh(x)

sin(x)

sin(x)

Остаток от деления x на y

fmod(x,y)

cos(x)

cos(x)

Округление к большему

ceil(x)

tg(x)

tan(x)

Округление к меньшему

floor(x)

Приложение 2

1   ...   11   12   13   14   15   16   17   18   19


написать администратору сайта