Создание программы табуляции функций
Ахо, А. Построение и анализ вычислительных алгоритмов / А. Ахо, Дж. Хопкрофт, Дж. Ульман. — М.: Мир. 1999. С. 143. Павловская, Т. А. Программирование на языке высокого уровня. / Т. А. Павловская. — М.: Питер, 2003. С. 461. Графиком числовой функции y=f (x) называется совокупность точек плоскости вида (x, f (x)), где х? D (f). Архангельский, А. Я. Программирование в С++ Builder 6. / А. Я… Читать ещё >
Создание программы табуляции функций (реферат, курсовая, диплом, контрольная)
Содержание
1 Теоретическая часть
2 Программная реализация решения задачи
3 Пример выполнения программы Заключение Список использованных источников и литературы
Введение
В XXI веке в развитии человеческой цивилизации происходят глобальные изменения, ведущие к её новому этапу — постиндустриальному обществу, все шире использующему компьютеризированные орудия труда и информационные технологии.
Стремительное развитие индустрии, влечет за собой все больший и больший интерес начинающих программистов создавать то, что актуально в наше время. Мы в своей курсовой работе предлагаем упрощенный и автоматизированный вариант табуляции функций.
Данная программа, написанная на языке высокого уровня C++ в среде визуального программирования CodeGear RadStudio 2009.
Цель написания данной курсовой работы — табуляция функций.
Курсовая работа проста, удобна и практична в использовании.
Курсовая работа содержит: введение, теоретическую часть, практическую реализацию, заключение, литературу, которая использовалась при написании курсовой работы.
1. Теоретическая часть
Понятие функции.
Пусть Х и Y — некоторые множества.
Если каждому элементу x? Х ставится в соответствие по некоторому правилу единственный элемент y? Y, то говорят, что на множестве Х задана функция (отображение) со значениями в множестве Y :
f: X? Y, y=f (x).
Множество Х называется областью определения функции и обозначается Dom (f) или D (f), множество Y называется множеством значений функции и обозначается Im (f) или I (f).
Если функция f переводит элемент x? Х в элемент y? Y, т. е. y=f (x), то у называют образом элемента х, а х называют прообразом элемента у. Образ всегда единственен.
Если обратное соответствие, переводящее У в Х является функцией, т. е. у каждого элемента y? У имеется единственный прообраз x? Х, то это соответствие называют обратным отображением, или обратной функцией.
f -1: Y? Х, х=f -1 (у).
Обратная функция обратима, и обратная функция к обратной функции совпадает с исходной функцией (f -1) -1= f .
Графиком числовой функции y=f (x) называется совокупность точек плоскости вида (x, f (x)), где х? D (f).
Табуляция функции означает создать таблицу, в которой для каждого значения аргумента вычислено соответствующее значение функции.
2. Программная реализация решения задачи
Файл UTabulation. h
//—————————————————————————————————————;
#ifndef UTabulationH
#define UTabulationH
//—————————————————————————————————————;
#include
#include
#include
#include
#include «HandTuning.h»
#include «Chart.hpp»
#include «Series.hpp»
#include «TeEngine.hpp»
#include «TeeProcs.hpp»
#include
#include «HandTuning.h»
#include
//—————————————————————————————————————;
class TfrmTabulation: public TForm
{__published: // IDE-managed Components
THandTuning *htMin;
THandTuning *htMax;
THandTuning *htStep;
TLabel *Label1;
TLabel *Label2;
TLabel *Label3;
TChart *chGraph;
TFastLineSeries *Series1;
TButton *btnCalc;
TButton *btnExit;
TButton *btnClear;
TStringGrid *sgrXY;
TRadioGroup *rgrFunction;
void __fastcall btnExitClick (TObject *Sender);
void __fastcall btnCalcClick (TObject *Sender);
void __fastcall btnClearClick (TObject *Sender);
private: // User declarations
double __fastcall function1(double x);
double __fastcall function2(double x);
double __fastcall function3(double x);
double __fastcall function4(double x);
double __fastcall function5(double x);
double __fastcall function6(double x);
public: // User declarations
__fastcall TfrmTabulation (TComponent* Owner);};
//—————————————————————————————————————;
extern PACKAGE TfrmTabulation *frmTabulation;
//—————————————————————————————————————;
#endif
Файл UTabulation. cpp
//—————————————————————————————————————;
#include
#pragma hdrstop
#include «UTabulation.h»
//—————————————————————————————————————;
#pragma package (smart_init)
#pragma link «Chart»
#pragma link «HandTuning»
#pragma link «Series»
#pragma link «TeEngine»
#pragma link «TeeProcs»
#pragma link «HandTuning»
#pragma resource «*.dfm»
TfrmTabulation *frmTabulation;
double __fastcall TfrmTabulation: function1(double x)
{return sin (x);}
//—————————————————————————————————————;
double __fastcall TfrmTabulation: function2(double x)
{return tan (3 * x);}
//—————————————————————————————————————;
double __fastcall TfrmTabulation: function3(double x)
{return cos (2 * x);}
//—————————————————————————————————————;
double __fastcall TfrmTabulation: function4(double x)
{return (4 — x) / 2;}
//————————————————————————————-;
double __fastcall TfrmTabulation: function5(double x)
{return (1 — tan (x)) / (1 + tan (x));}
//————————————————————————————-;
double __fastcall TfrmTabulation: function6(double x)
{return cos (x) + sin (x);}
//—————————————————————————————__fastcall TfrmTabulation: TfrmTabulation (TComponent* Owner)
: TForm (Owner)
{sgrXY->Rows[0]->Strings[0] = «y» ;
sgrXY->Rows[0]->Strings[1] = «x» ;}
//————————————————————————————-;
void __fastcall TfrmTabulation: btnExitClick (TObject *Sender)
{this->Close ();}
//————————————————————————————-;
void __fastcall TfrmTabulation: btnCalcClick (TObject *Sender)
{Series1->Clear ();
sgrXY->Cells[0][1] = «» ;
sgrXY->Cells[1][1] = «» ;
sgrXY->RowCount = 2;
for (double i = htMin->Value, j=0; i < htMax->Value; i = i + htStep->Value, j++)
{sgrXY->RowCount++;
sgrXY->Rows[j+1]->Strings[0] = FormatFloat («0.00», i);
switch (rgrFunction->ItemIndex)
{case 0:
sgrXY->Rows[j+1]->Strings[1] = FormatFloat («0.00», function1(i));
Series1->AddXY (i, function1(i), «», clRed) ;
break;
case 1:
sgrXY->Rows[j+1]->Strings[1] = FormatFloat («0.00», function2(i));
Series1->AddXY (i, function2(i), «», clRed) ;
break;
case 2:
sgrXY->Rows[j+1]->Strings[1] = FormatFloat («0.00», function3(i));
Series1->AddXY (i, function3(i), «», clRed) ;
break;
case 3:
sgrXY->Rows[j+1]->Strings[1] = FormatFloat («0.00», function4(i));
Series1->AddXY (i, function4(i), «», clRed) ;
break;
case 4:
sgrXY->Rows[j+1]->Strings[1] = FormatFloat («0.00», function5(i));
Series1->AddXY (i, function5(i), «», clRed) ;
break;
case 5:
sgrXY->Rows[j+1]->Strings[1] = FormatFloat («0.00», function6(i));
Series1->AddXY (i, function6(i), «», clRed) ;
break;}}
sgrXY->RowCount = sgrXY->RowCount >= 2? sgrXY->RowCount: sgrXY->RowCount—;}
//————————————————————————————-;
void __fastcall TfrmTabulation: btnClearClick (TObject *Sender)
{Series1->Clear ();
sgrXY->Cells[0][1] = «» ;
sgrXY->Cells[1][1] = «» ;
sgrXY->RowCount = 2;
htMin->Value = 0;
htMax->Value = 0;
htStep->Value = 0.1;}
//—————————————————————————————————————;
3. Пример выполнения программы
Пример 1.
Рисунок 1 — Табуляция функции
Пример 2.
Рисунок 2 — Табуляция функции
Пример 3.
Рисунок 3 — Табуляция функции
Пример 4.
Рисунок 4 — Табуляция функции
Пример 5.
Рисунок 5 — Табуляция функции
Пример 6.
Рисунок 6 — Табуляция функции
Пример 7.
Рисунок 7 — Очистка
Заключение
Проблема повышения качества вычислений, как несоответствие между желаемым и действительным, существует и будет существовать в дальнейшем. Ее решению будет содействовать развитие информационных технологий, которое заключается как в совершенствовании методов организации информационных процессов, так и их реализации с помощью конкретных инструментов — сред и языков программирования.
Итогом работы можно считать созданную программу табуляции функций. Созданная программная реализация может служить органической частью решения более сложных задач.
Список использованных источников и литературы
1. Архангельский, А. Я. Программирование в С++ Builder 6. [Текст] / А. Я. Архангельский. — М.: Бином, 2003. С. 1154.
2. Ахо, А. Построение и анализ вычислительных алгоритмов [Электронный ресурс] / А. Ахо, Дж. Хопкрофт, Дж. Ульман. — М.: Мир. 1999. С. 143.
3. Бронштейн, И. Н. Справочник по математике для инженеров и учащихся втузов [Текст] / И. Н. Бронштейн, К. А. Семендяев. — М.: Наука, 2007. — 708 с.
4. Кремер, Н. Ш. Высшая математика для экономистов: учебник для студентов вузов. [Текст] / Н. Ш. Кремер, 3-е издание — М.:ЮНИТИ-ДАНА, 2006. C. 412.
5. Калиткин, Н. Н. Численные методы. [Электронный ресурс] / Н. Н. Калиткин. — М.: Питер, 2001. С. 504.
6. Павловская, Т. А. Программирование на языке высокого уровня. [Текст] / Т. А. Павловская. — М.: Питер, 2003. С. 461.
7. Семакин, И. Г. Основы программирования. [Текст] / И. Г. Семакин, А. П. Шестаков. — М.: Мир, 2006. C. 346.
8. Табуляция функций [Электронный ресурс] - Режим доступа: http://programmer.zp.ua/index.php