Содержание
 Введение
 1 Теоретическая часть
 2 Программная реализация решения задачи
 3 Пример выполнения программы
 Заключение
 Список использованных источников и литературы
  Введение
 В XXI веке в развитии человеческой цивилизации происходят глобальные изменения, ведущие к её новому этапу - постиндустриальному обществу, все шире использующему компьютеризированные орудия труда и информационные технологии.
 Стремительное развитие индустрии, влечет за собой все больший и больший интерес начинающих программистов создавать то, что актуально в наше время. Мы в своей курсовой работе предлагаем упрощенный и автоматизированный вариант табуляции функций.
 Данная программа, написанная на языке высокого уровня C++ в среде визуального программирования CodeGear RadStudio 2009.
 Цель написания данной курсовой работы – табуляция функций.
 Курсовая работа проста, удобна и практична в использовании.
 Курсовая работа содержит: введение, теоретическую часть, практическую реализацию, заключение, литературу, которая использовалась при написании курсовой работы.
  1. Теоретическая часть
 Понятие функции.
 Пусть Х и Y - некоторые множества.
 Если каждому элементу xХ ставится в соответствие по некоторому правилу единственный элемент y Y , то говорят, что на множестве Х задана функция (отображение) со значениями в множестве Y :
 f : XY, 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 <Classes.hpp>
 #include <Controls.hpp>
 #include <StdCtrls.hpp>
 #include <Forms.hpp>
 #include "HandTuning.h"
 #include "Chart.hpp"
 #include "Series.hpp"
 #include "TeEngine.hpp"
 #include "TeeProcs.hpp"
 #include <ExtCtrls.hpp>
 #include "HandTuning.h"
 #include <Grids.hpp>
 //---------------------------------------------------------------------------
 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 <vcl.h>
 #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.  ............