Реферат

Реферат Расчет корней уравнения по методу Лобачевского

Работа добавлена на сайт bukvasha.net: 2015-10-28

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 11.11.2024



Оглавление

  1. Введение………………………………………………………………………….3

  2. Назначение и область применения……………………………………………..4

  3. Технические характеристики…………………………………………………...4

  4. Разработка программы…………………………………………………………..5

  5. Текст программы………………………………………………………………...9

  6. Описание программы…………………………………………………………..13

  7. Тестирование программы……………………………………………………...14

  8. Список литературы……………………………………………………………..16


2. Назначение и область применения.

Приложение разработано для учебных целей.

3.Технические характеристики.

Написать программу, выполняющую следующие действия:

• Нахождение корней алгебраического уравнения методом Лобачевского - Греффе: для случая действительных корней;

• если таких корней нет, выдать на дисплей соответствующее сообще­ние.

Описание алгоритма.








Ввод данных:

коэффициентов уравнения, заданной точности




Квадрирование методом Лобачевского - Греффе

Расчет корней уравнения,

проверка знаков










нет







да


Организация входных и выходных данных.

  1. Ввод при помощи мыши и клавиатуры;

  2. Вывод результатов расчета на дисплей.


Выбор состава технических и программных средств.

Программа разработана в програмной среде C++Builder 2009 .

Запуск программы возможен в среде ОС семейства Windows

4. Разработка программы.

  1. О
    1
    сновное окно программы








2

4

5







6







3





Номер

Компонент

Название и назначение

Событие


1

TForm

Расчёт корней алгебраического уравнения по методу Лобачевского Основное окно программы




2

TStringGrid

Таблица ввода коэффициентов уравнения

ввод коэффициентов уравнения

StringGridSetEditText

3

TButton

Кнопка «Расчёт корней алгебраического уравнения по методу Лобачевского»

Вычисление корней уравнения

Button2Click

4

TEdit

Округлить до

Поле ввода округления результата

Edit3Change

5

TEdit

Наибольшая степень уравнения

Определение количества полей ввода коэффициентов в TStringGrid

Edit2Change

6

TMemo

Поле вывода результатов

Вывод корней уравнения





Спецификация программы.

Обозначение

Наименование

Примечание


sdiapp.bdsproj

Файл опций проекта

Связывает все файлы приложения

sdiapp.cbproj

Файл проекта

Реализация программы

sdiapp.cbproj.local

Файл ресурсов

Двоичный файл

sdiapp.cpp

Файл проекта

Объектный код проекта

SDIAPP.ICO

Файл проекта

Файл иконки

SDIMAIN.h

Файл модуля 1 проекта

Заголовочный файл

SDIMAIN.CPP

Файл модуля 1 проекта

Реализация программы

SDIMAIN.dfm

Файл формы модуля 1 проекта

Графическая часть модулей

ABOUT.H

Файл модуля 2 проекта

Заголовочный файл

ABOUT.DFM

Файл формы модуля 2 проекта

Объектный код модуля

ABOUT.CPP

Файл модуля 2 проекта

По умолчанию

sdiapp.exe

Исполняемый скомпилированый файл

Файл запуска приложения

Function.h

Файл модуля проекта

Реализация программы

5. Текст программы.

SDIMAIN.cpp

//---------------------------------------------------------------------

#include

#pragma hdrstop

#include "SDIMain.h"

#include "About.h"

#include

#include

//#include

#define M 15

//double *A = new double;

//double *X = new double;

double A[M], X[M];

#include "Function.h"

int N = 0; //количество аргументов

double epsilon = 0; //приближение

int round = -15;

//---------------------------------------------------------------------

#pragma resource "*.dfm"

TSDIAppForm *SDIAppForm;

//---------------------------------------------------------------------

__fastcall TSDIAppForm::TSDIAppForm(TComponent *AOwner)

: TForm(AOwner)

{

}

//---------------------------------------------------------------------

void __fastcall TSDIAppForm::FileNew1Execute(TObject *Sender)

{

// Do nothing

}

//---------------------------------------------------------------------------

void __fastcall TSDIAppForm::FileOpen1Execute(TObject *Sender)

{

OpenDialog->Execute();

}

//---------------------------------------------------------------------------

void __fastcall TSDIAppForm::FileSave1Execute(TObject *Sender)

{

SaveDialog->Execute();

}

//---------------------------------------------------------------------------

void __fastcall TSDIAppForm::FileExit1Execute(TObject *Sender)

{

Close();

}

//---------------------------------------------------------------------------

void __fastcall TSDIAppForm::HelpAbout1Execute(TObject *Sender)

{

AboutBox->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall TSDIAppForm::Button1Click(TObject *Sender)

{

if (N !=0) {


int iter=1;


while (Lobochevsky_Root(N,iter,Memo1,StringGrid1)){

iter++;

}

if (Сheck_Marks(N, epsilon, StringGrid1,Memo1)) Print_Result(N, round,Memo1);

else { Memo1->Clear(); Memo1->Lines->Add("Корней нет");}

}

}

//---------------------------------------------------------------------------

void __fastcall TSDIAppForm::Edit3Change(TObject *Sender)

{

try{

if (Edit3->Text != "") epsilon = StrToFloat(Edit3->Text);

else epsilon = 0;

}

catch (...){

ShowMessage("Не верный ввод");

epsilon = 0;

Edit3->SetFocus();

}

}

//---------------------------------------------------------------------------

void __fastcall TSDIAppForm::CheckBox1Click(TObject *Sender)

{

if (Edit4->Visible){

Edit4->Visible = false;

round = -15;

}

else Edit4->Visible = true;

}

//---------------------------------------------------------------------------

void __fastcall TSDIAppForm::Edit4Change(TObject *Sender)

{

try{

if (Edit4->Text != ""){

round = StrToFloat(Edit4->Text);

round = -round;

Print_Result(N, round,Memo1);

}

else round = 15;

}

catch (...){

ShowMessage("Не верный ввод");

round = 15;

Edit4->SetFocus();

}

}

//---------------------------------------------------------------------------

void __fastcall TSDIAppForm::CheckBox2Click(TObject *Sender)

{

if (Edit3->Visible) {

Edit3->Visible = false;

epsilon = 0;

}

else Edit3->Visible = true;

}

//---------------------------------------------------------------------------

void __fastcall TSDIAppForm::MaskEdit1Change(TObject *Sender)

{

try{

if (MaskEdit1->Text != "") N = StrToInt(MaskEdit1->Text);

else N = 0;

//*A = N;

//*X = N;

N++;

if (N < 16){

StringGrid1->ColCount=N;

for (int i = 0; i < N; i++) {

StringGrid1->Cells[i][0]="A"+IntToStr(i);

}

}

}

catch (...){

ShowMessage("Не верный ввод");

N = 0;

MaskEdit1->SetFocus();

}

}

//---------------------------------------------------------------------------

Function.h

//---------------------------------------------------------------------

#include

#pragma hdrstop

#include "SDIMain.h"

#include "About.h"

#include

#include

//#include

#define M 15

//double *A = new double;

//double *X = new double;

double A[M], X[M];

#include "Function.h"

int N = 0; //количество аргументов

double epsilon = 0; //приближение

int round = -15;

//---------------------------------------------------------------------

#pragma resource "*.dfm"

TSDIAppForm *SDIAppForm;

//---------------------------------------------------------------------

__fastcall TSDIAppForm::TSDIAppForm(TComponent *AOwner)

: TForm(AOwner)

{

}

//---------------------------------------------------------------------

void __fastcall TSDIAppForm::FileNew1Execute(TObject *Sender)

{

// Do nothing

}

//---------------------------------------------------------------------------

void __fastcall TSDIAppForm::FileOpen1Execute(TObject *Sender)

{

OpenDialog->Execute();

}

//---------------------------------------------------------------------------

void __fastcall TSDIAppForm::FileSave1Execute(TObject *Sender)

{

SaveDialog->Execute();

}

//---------------------------------------------------------------------------

void __fastcall TSDIAppForm::FileExit1Execute(TObject *Sender)

{

Close();

}

//---------------------------------------------------------------------------

void __fastcall TSDIAppForm::HelpAbout1Execute(TObject *Sender)

{

AboutBox->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall TSDIAppForm::Button1Click(TObject *Sender)

{

if (N !=0) {


int iter=1;


while (Lobochevsky_Root(N,iter,Memo1,StringGrid1)){

iter++;

}

if (Сheck_Marks(N, epsilon, StringGrid1,Memo1)) Print_Result(N, round,Memo1);

else { Memo1->Clear(); Memo1->Lines->Add("Корней нет");}

}

}

//---------------------------------------------------------------------------

void __fastcall TSDIAppForm::Edit3Change(TObject *Sender)

{

try{

if (Edit3->Text != "") epsilon = StrToFloat(Edit3->Text);

else epsilon = 0;

}

catch (...){

ShowMessage("Не верный ввод");

epsilon = 0;

Edit3->SetFocus();

}

}

//---------------------------------------------------------------------------

void __fastcall TSDIAppForm::CheckBox1Click(TObject *Sender)

{

if (Edit4->Visible){

Edit4->Visible = false;

round = -15;

}

else Edit4->Visible = true;

}

//---------------------------------------------------------------------------

void __fastcall TSDIAppForm::Edit4Change(TObject *Sender)

{

try{

if (Edit4->Text != ""){

round = StrToFloat(Edit4->Text);

round = -round;

Print_Result(N, round,Memo1);

}

else round = 15;

}

catch (...){

ShowMessage("Не верный ввод");

round = 15;

Edit4->SetFocus();

}

}

//---------------------------------------------------------------------------

void __fastcall TSDIAppForm::CheckBox2Click(TObject *Sender)

{

if (Edit3->Visible) {

Edit3->Visible = false;

epsilon = 0;

}

else Edit3->Visible = true;

}

//---------------------------------------------------------------------------

void __fastcall TSDIAppForm::MaskEdit1Change(TObject *Sender)

{

try{

if (MaskEdit1->Text != "") N = StrToInt(MaskEdit1->Text);

else N = 0;

//*A = N;

//*X = N;

N++;

if (N < 16){

StringGrid1->ColCount=N;

for (int i = 0; i < N; i++) {

StringGrid1->Cells[i][0]="A"+IntToStr(i);

}

}

}

catch (...){

ShowMessage("Не верный ввод");

N = 0;

MaskEdit1->SetFocus();

}

}

//---------------------------------------------------------------------------

6.Описание программы.


Общие сведения:

1. Написана программа, выполняющая следующие действия:

• Находит корни алгебраического уравнения методом Лобачевского-Греффе: для случая действительных корней

• если таких корней нет, выдаётся на дисплей соответствующее сообщение.
Функциональное назначение:

Приложение разработано для учебных целей.


Описание логической структуры:

На вход процедуры расчета корней уравнения по методу Лобачевского подаются данные из формы ввода в виде таблицы. Процедура производит квадрирование с количеством итераций пока не происходит переполнения стека слишком большим числом. Затем происходит растет корней с количеством итераций меньших на шаг. Далее идет проверка знаков методом подстановки получившихся корней уравнения в исходное и сравнение результата с приближением (по умолчанию это ноль). При не возможности достигнуть заданного приближения выдается сообщение о не возможности найти корни уравнения.


Используемые технические средства:

Программа разработана в программной среде C++Builder 2009 ;

Запуск программы возможен в среде ОС семейства Windows.


Вызов и загрузка:

Программа запускается выполнением файла Qadrirovanie.exe


Входные данные:

Ввод данных при помощи мыши и клавиатуры;


Выходные данные:

Вывод результатов расчета на дисплей.

7
.Тестирование программы.


1. Пример расчета уравнения в среде MathCad 14.




2. Пример расчета уравнения в среде в данном проекте.



8
.Список литературы.


  1. Павловская Т.А. С/С++. Программирование на языке высокого уровня. Учебник. – СПб: Питер, 2001 -464с

  2. Павловская Т.А., Щупак Ю.А. С/С++. Программирование на языке высокого уровня. Структурное программирование. Практикум. – СПб: Питер, 2002

  3. Павловская Т.А., Щупак Ю.А. С++. Объектно-ориентированное программирование. Практикум. – СПб: Питер, 2004

  4. P. Лафоре. Объектно-ориентированное программирование в С++. 4-е издание. – СПб: Питер, 2004

  5. Демидович Б.П., Марон Н.А. Основы вычислительной математики. - М.: Наука, 1970. – 660 с.

1. Реферат Либеральные теории Нового времени
2. Реферат Судовая эксплуатация
3. Реферат Оценка эффективности инвестиций 4
4. Статья на тему Рост бактерии Basillus subtilis и биосинтез нуклеозида инозина на высоко дей
5. Реферат на тему Is There Life Beyond Earth Essay Research
6. Курсовая Роль государства в Рыночной экономике 8
7. Реферат Раннее и первое детство
8. Реферат на тему Affirmative Action Essay Research Paper AFFIRMATIVE ACTIONA
9. Реферат Управление финансами в некоммерческих организациях
10. Реферат Евгения императрица Франции