Содержание
Введение
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 <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. Пример выполнения программы
Пример 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
! | Как писать курсовую работу Практические советы по написанию семестровых и курсовых работ. |
! | Схема написания курсовой Из каких частей состоит курсовик. С чего начать и как правильно закончить работу. |
! | Формулировка проблемы Описываем цель курсовой, что анализируем, разрабатываем, какого результата хотим добиться. |
! | План курсовой работы Нумерованным списком описывается порядок и структура будующей работы. |
! | Введение курсовой работы Что пишется в введении, какой объем вводной части? |
! | Задачи курсовой работы Правильно начинать любую работу с постановки задач, описания того что необходимо сделать. |
! | Источники информации Какими источниками следует пользоваться. Почему не стоит доверять бесплатно скачанным работа. |
! | Заключение курсовой работы Подведение итогов проведенных мероприятий, достигнута ли цель, решена ли проблема. |
! | Оригинальность текстов Каким образом можно повысить оригинальность текстов чтобы пройти проверку антиплагиатом. |
! | Оформление курсовика Требования и методические рекомендации по оформлению работы по ГОСТ. |
→ | Разновидности курсовых Какие курсовые бывают в чем их особенности и принципиальные отличия. |
→ | Отличие курсового проекта от работы Чем принципиально отличается по структуре и подходу разработка курсового проекта. |
→ | Типичные недостатки На что чаще всего обращают внимание преподаватели и какие ошибки допускают студенты. |
→ | Защита курсовой работы Как подготовиться к защите курсовой работы и как ее провести. |
→ | Доклад на защиту Как подготовить доклад чтобы он был не скучным, интересным и информативным для преподавателя. |
→ | Оценка курсовой работы Каким образом преподаватели оценивают качества подготовленного курсовика. |
Курсовая работа | Деятельность Движения Харе Кришна в свете трансформационных процессов современности |
Курсовая работа | Маркетинговая деятельность предприятия (на примере ООО СФ "Контакт Плюс") |
Курсовая работа | Политический маркетинг |
Курсовая работа | Создание и внедрение мембранного аппарата |
Курсовая работа | Социальные услуги |
Курсовая работа | Педагогические условия нравственного воспитания младших школьников |
Курсовая работа | Деятельность социального педагога по решению проблемы злоупотребления алкоголем среди школьников |
Курсовая работа | Карибский кризис |
Курсовая работа | Сахарный диабет |
Курсовая работа | Разработка оптимизированных систем аспирации процессов переработки и дробления руд в цехе среднего и мелкого дробления Стойленского ГОКа |