Теми рефератів
Авіація та космонавтика Банківська справа Безпека життєдіяльності Біографії Біологія Біологія і хімія Біржова справа Ботаніка та сільське гос-во Бухгалтерський облік і аудит Військова кафедра Географія
Геодезія Геологія Держава та право Журналістика Видавнича справа та поліграфія Іноземна мова Інформатика Інформатика, програмування Історія Історія техніки
Комунікації і зв'язок Краєзнавство та етнографія Короткий зміст творів Кулінарія Культура та мистецтво Культурологія Зарубіжна література Російська мова Маркетинг Математика Медицина, здоров'я Медичні науки Міжнародні відносини Менеджмент Москвоведение Музика Податки, оподаткування Наука і техніка Решта реферати Педагогіка Політологія Право Право, юриспруденція Промисловість, виробництво Психологія Педагогіка Радіоелектроніка Реклама Релігія і міфологія Сексологія Соціологія Будівництво Митна система Технологія Транспорт Фізика Фізкультура і спорт Філософія Фінансові науки Хімія Екологія Економіка Економіко-математичне моделювання Етика Юриспруденція Мовознавство Мовознавство, філологія Контакти
Українські реферати та твори » Информатика, программирование » Побудова графіків функцій

Реферат Побудова графіків функцій

МІНІСТЕРСТВО ОСВІТИ І НАУКИ

РОСІЙСЬКОЇ ФЕДЕРАЦІЇ

МІНІСТЕРСТВО АГЕНСТВО ДО ОСВІТИ

Курганський ДЕРЖАВНИЙ УНІВЕРСИТЕТ

Кафедра автоматизації виробничих процесів

Тема курсової роботи:

В«Побудова графіків функцій В»

Курсова робота

Розрахунково-пояснювальна записка.

Дисципліна: Програмування та основи алгоритмізації

Студент: Яковлєв П. С.

Група: Т-2144

Керівник: Скобелєв І. В.

Коміссія__________________

Оценка____________________

Дата защіти_______________

Курган, 2006р.
Зміст

1. Технічне завдання

2. Загальна блок-схема алгоритму

3. Опис роботи програмного продукту

4. Інструкція по інсталяції програмного продукту

5. Інструкція оператору

6. Обмеження даній версії програми

7. Висновок

Список використаної літератури


1. Технічне завдання

Програмний продукт GRAPHIC дозволяє будувати і зберігати графіки будь-яких функцій однієї змінної. Продукт розроблений на мові програмування Мicrosoft Visual C + + 6.0 з використанням об'єктно-орієнтованої методології. Діалог користувача з програмою, а саме введення параметрів, здійснюється за допомогою діалогових вікон програми. Діапазон вводяться значень програмно обмежений, з метою недопущення некоректної роботи або виникнення помилки.

-->>

2. Загальна блок-схема алгоритму

Загальна блок схема алгоритму програми GRAPHIC:



3. Опис роботи програмного продукту

Програма "GRAPHIC" дозволяє будувати і зберігати графіки функцій однієї змінної. При відкритті програми з'являється вікно, в якому вже за замовчуванням побудований графік функції f (x) = sin (x) +0.05 * x на відрізку [-5,10]. Вибравши на панелі меню пункт Функція, і, змінюючи поле введення в діалоговому вікні, можна побудувати необхідний графік функції або змінити відрізок, на якому побудований графік.

Для того, щоб краще зрозуміти роботу програми наведемо деякі коди

class CGRAPHICView: public CView// Клас Single Document

{

public:

CString sFunc;

double XX;

double X1;

double X2;

int SdvX;

int SdvY;

int DlX;

int DlY;

CDC * pDCbuf;

bool GbNeedRepaint;

CMFunc vFunc;

CFuncEval FuncEval;

void Vichislenie ();

void VFillBuffer (CDC * pSrcDC);

// Решта властивостей і методи класу Single Document

};

class CMFunc// Клас розрахунку функції

{

public:

double FXX [400];

double FYY [400];

bool FYYER [400];

int KolT;

double MinY;

double MaxY;

void FuncMaxMinY ();

CMFunc ();

};

void CGRAPHICView :: OnDraw (CDC * pDC)// Функція промальовування документа

{

CGRAPHICDoc * pDoc = GetDocument ();

ASSERT_VALID (pDoc);

// TODO: add draw code for native data here

try

{

VFillBuffer (pDC);

}

catch (...)

{

MessageBox (_T ("Помилка побудови графіка!"), _T ("Помилка"));

}

}

void CGRAPHICView :: Vichislenie ()// Функція обчислення параметрів функції

{

int a; double shag;

extern BOOL bMathError;

FuncEval.SetString (sFunc);

// Обчислюємо крок shag

shag = ((X2-X1)/(vFunc.KolT-1));

// Обчислюємо вузли функції vFunc.FXX [a]

for (a = 0; a <(vFunc.KolT-1); a + +)

vFunc.FXX [a] = X1 + a * shag;

vFunc.FXX [vFunc.KolT-1] = X2;

// Обчислюємо значення функції у вузлах vFunc.FYY [a] і помилку обчислення vFunc.FYYER [a]

for (a = 0; a

bMathError = FALSE;

XX = vFunc.FXX [a];

vFunc.FYY [a] = FuncEval.Compute ();

vFunc.FYYER [a] = BMathError;

}

// Обчислюємо max і min значення функції vFunc.MaxY і vFunc.MinY

vFunc.FuncMaxMinY ();

}

void CGRAPHICView :: VFillBuffer (CDC * pSrcDC)// Функція малювання графіка

{

int OtstX;

int OtstY;

int DlOX;

int DlOY;

int KolLX;

int KolLY;

SdvX = 30;

SdvY = 30;

DlX = 700;

DlY = 370;

OtstX = 80;

OtstY = 30;

DlOX = DlX-OtstX-50;

DlOY = DlY-2 * OtstY;

KolLX = 10;

KolLY = 10;

double KoefX;

double KoefY;

int a; double d, dd; CString sss;

if (GbNeedRepaint == TRUE) {

// Обчислення параметрів функції (об'єкт vFunc класу CMFunc)

Vichislenie ();

//????????????????????????????????????????????? ??

pDCbuf-> DeleteDC ();

pDCbuf-> CreateCompatibleDC (PSrcDC);

CBitmap bitmap;

bitmap.CreateCompatibleBitmap (pSrcDC, DlX, DlY);

CBitmap * pbmp = pDCbuf-> SelectObject (& bitmap);

// Малювання графіка -------------------------------------------------

// Кольори (Розмітки (ліній) - cvet1, осей - cvet2, графіка - cvet3)

CPen cvet1 (PS_SOLID, 1, RGB (100,100,50));

CPen cvet2 (PS_SOLID, 1, RGB (200,0,200));

CPen cvet3 (PS_SOLID, 1, RGB (255,0,0));

// Відключаємо фон тексту і встановлюємо колір тексту

pDCbuf-> SetBkMode (TRANSPARENT);

pDCbuf-> SetTextColor (RGB (0,0,210));

// зафарбовують область графіка

pDCbuf-> FillSolidRect (0,0, DlX, DlY, RGB (235,235,235));

// Малювання розмітки X

pDCbuf-> SelectObject (cvet1);

d = ((double) DlOX/(KolLX-1));

for (a = 0; a

pDCbuf-> MoveTo (OtstX + (int) (a * d), OtstY);

pDCbuf-> LineTo (OtstX + (int) (a * d), OtstY + DlOY);

}

// Малювання розмітки Y

d = ((double) DlOY/(KolLY-1));

for (a = 0; a

pDCbuf-> MoveTo (OtstX, OtstY + (int) (a * d));

pDCbuf-> LineTo (OtstX + DlOX, OtstY + (int) (a * d));

}

// Підписи X

d = (X2-X1)/(KolLX-1);

dd = ((double) DlOX/(KolLX-1));

for (a = 0; a <(KolLX-1); a + +) {

sss.Format (_T ("% .3 f"), X1 + a * d);

pDCbuf-> TextOut (OtstX + (int) (a * dd) -4 * sss.GetLength (), OtstY + DlOY +3, sss);

}

sss.Format (_T ("% .3 f"), X2); a = KolLX-1;

pDCbuf-> TextOut (OtstX + (int) (a * dd) -4 * sss.GetLength (), OtstY + DlOY +3, sss);

// Підписи Y

d = (vFunc.MaxY-vFunc.MinY)/(KolLY-1);

dd = ((double) DlOY/(KolLY-1));

for (a = 1; a <(KolLY-1); a + +) {

sss.Format (_T ("% .3 f"), vFunc.MinY + a * d);

pDCbuf-> TextOut (OtstX-3-7 * sss.GetLength (), OtstY + DlOY-(int) (a * dd) -7, sss);

}

sss.Format (_T ("% .3 f"), vFunc.MinY);

pDCbuf-> TextOut (OtstX-3-7 * sss.GetLength (), OtstY + DlOY-12, sss);

sss.Format (_T ("% .3 f"), vFunc.MaxY); a = KolLY-1;

pDCbuf-> TextOut (OtstX-3-7 * sss.GetLength (), OtstY + DlOY-(int) (a * dd) -7, sss);

// Підпис "Графік функції ... "

sss.Format (_T ("на відрізку [% .2 f,% .2 f]"), X1, X2);

pDCbuf-> TextOut (OtstX +80-2 * sFunc.GetLength (), OtstY-25, (_T ("Графік функції f (x) =") + sFunc + sss));

// Обчислення коефіцієнтів стиску на екрані KoefX і KoefY

KoefX = ((double) DlOX)/(X2-X1);

KoefY = ((double) DlOY)/(vFunc.MaxY-vFunc.MinY);

// Малювання осей X і Y

pDCbuf-> SelectObject (cvet2);

if (X1 <= 0 && X2> = 0) {

pDCbuf-> MoveTo (OtstX-(int) (X1 * KoefX), OtstY);

pDCbuf-> LineTo (OtstX-(int) (X1 * KoefX), OtstY + DlOY);

}

if (vFunc.MinY <= 0 && vFunc.MaxY> = 0) {

pDCbuf-> MoveTo...


Страница 1 из 3Следующая страница

Друкувати реферат
Замовити реферат
Товары
загрузка...
Наверх Зворотнiй зв'язок