Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Математическое обеспечение




В данной программе используется алгоритм итерациооного поиска:

Данный алгоритм реализует перебор всех имеющихся значений и выбор из них тех, которые удовлетворяют условиям.

1) Первое из условий, встречающееся в данном алгоритме является: b>=1 & b<=5;

2) Далее реализуется цикл for с условием y<=a и ведется поиск значений y, удовлетворяющих этому условию;

3) While выполняет прербор значений po<=b*12;

4) Размер выплат производится при условии o>=-1 & o<1.

 

Разработка алгоритма программы в виде блок-схемы

Блок-схема функции атерационного поиска:

 

 


 


 

 


Описание Работы Программы

Рис.2

 

При создании данной программы были использованы следующие компоненты:

1. Компонент Label – компонент используется для вывода на форму текста, пояснительных надписей, а так же данных без возможности редактирования.

2. Компонент Edit - поле радактированиия. В данной программе используется для вывода пояснительного текста.

3. Компонент Image – используется для вывода графических изображений, в данной программе для вывода графика.

4. Компонент Memo – элемент редактирования текста, который может содержать несколько строк. При работе программы данный компонент невидим и может распологоться в любом месте формы.

5. Компонент OpenDialog – осуществляет доступ к стандартному диалоговому окну «Открыть файл». Испльзуется для открытия файла из которого загружаются данные.

6. Компонент Button – кнопка. С помощью них осуществляются действия программы (выполняется загрузка файла, алгоритм)

Рис.3

 

В данной программе компонент Button1 представлен в обычной фореме, т.е. стандартная кнопка. Для нее задано событие Button1Click (нажатие кнопки 1) при котором появляется стандартное диалоговое окно «Открыть файл». После выбора файла, так же в этом событии происходит проверка правильности данных и дальнеейшее выполнение алгоритма. После вывода конкретного результата (или сообщения «Введнные данные не верны») можно использовать этот компонент снова.

Так же, в программе имеется компонент Button2 представленный так де в обычной форме. И при заданном событии Button2Click выполняет действие Clouse (выход из программы).

Рис.4  

 

 

Так же при создании программы были изменены некоторые свойства компонента TForm1 (Форма):

В часности изменено свойство BorderIcons (кнопки управления окном) – компонент biMaximaze (развернуть) сделан недоступным.

Был изменен компонент BorderStyle (вид границы) – bsSizeable (обычная граница) была заменена на bsSingle (тонкая граница) для отключения функции свободной трансформации окна.

 

Выводы

 

В ходе выполнения работы был изучен алгоритм итерационного поиска, а так же оновы программиррования в среде Borland C++ Builder. Данный язык так же называют средой быстрой разработки приложений, что вполне оправдано – для создания аналогичной программы на ассемблере необходимо было бы написать код на сотню страниц, в С++ на десяток, а на Borland C++ Builder всего несколько страниц. Borland C++ Builder является средой визуальной разработки приложений. Данный подход к программированию является одним из самых перспективных на сегодняшний день и это вполне оправданно как обьемом кода для написания программы, так и следствием из этого – экономией времени. А всплываюшие подсказки при написании кода, избавляют от необходимости обрашатся к справочникам для уточнения синтаксиса конкретной команды. Однако, для написания лбой программы необходимо знать и уметь составлять алгоритмы решения задачи, что входит исключительно в задачи программиста. В связи с этим, в ходе выполнения работы, были изучены основы програмирования на языке С++, который является базовым для Borland C++ Builder, без знания основ которого не может быть реализован ни один алгоритм. Так что для работы в среде Borland C++ Builder необходимо знание основ как С++, так и объектно ориентиропанного программирования в целом.

 

Список используемой литературы

1. Культин Н.Б. Самоучитель С++ Builder. – СПб.: БХВ-Петербург,2005. – 320с.: ил.

2. Культин Н.Б. С/С++ в задачах и примерах. – СПб.: БХВ-Петербург, 2006. – 288с.: ил.

3. Borland Builder C++. Освой самостоятельно. – СПб.: Питер, 2005. – 702с.: ил.

4. Холзнер С. Visual C++ 6. Учебный курс. – СПб.: Питер, 2006. – 570с.: ил.

5. Красиков И.В., Красикова И.Е. Алгоритмы. Просто как дважды два. – М.: Эксмо,2006. – 256с.: ил.

6. Карпов Б., Баранова Т. С++. Специальный справочник (2-е издание). – СПб.: Питер, 2005. – 381с.: ил.

7. Франка П. С++: Учебный курс. – СПб.: Питер, 2005. – 522с.: ил.

 

 

Приложение

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

 

#include <vcl.h>

#include <math.h>

#pragma hdrstop

 

#include "Unit1.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

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

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

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

 

void __fastcall TForm1::Button1Click(TObject *Sender)

{

long int a,b,c,x,p,po;

float o,y;

 

if (OpenDialog1->Execute())

{

Memo1->Lines->LoadFromFile(OpenDialog1->FileName);

Edit1->Text="Данные загружены";

a=StrToInt(Memo1->Lines->operator [](0));

Label2->Caption=IntToStr(a);

b=StrToInt(Memo1->Lines->operator [](1));

Label4->Caption=IntToStr(b);

c=StrToInt(Memo1->Lines->operator [](2));

Label6->Caption=IntToStr(c);

o=0;

if ((StrToInt(Label4->Caption)>=1) && (StrToInt(Label4->Caption)<=5))

{

for (y=a*c/100;y<=a;y=y+0.001)

{

o=a;

po=1;

while (po<=b*12)

{

o=o+o*c/100;

o=o-y;

po=po+1;

}

if (o<-1) break;

if ((o<1) && (o>=-1))

{

Label8->Caption=FloatToStrF(y,ffFixed,5,2);

o=a;

po=1;

Image1->Canvas->MoveTo(15,200);

Image1->Canvas->LineTo(15,5);

Image1->Canvas->LineTo(10,10);

Image1->Canvas->MoveTo(15,5);

Image1->Canvas->LineTo(20,10);

Image1->Canvas->MoveTo(0,114);

Image1->Canvas->LineTo(500,114);

//Image1->Canvas->MoveTo(0,0);

Image1->Canvas->MoveTo(po*7+14,120-o/10);

while (po<=b*12)

{

 

Image1->Canvas->MoveTo(po*7+14,120-o/10);

Image1->Canvas->LineTo(po*7+15,120-o/10);

 

o=o+o*c/100;

o=o-y;

po=po+1;

}

 

}

}

 

}

else

{

Edit1->Text="Загружаемые данные не верны";

}

}

 

}

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

void __fastcall TForm1::Button2Click(TObject *Sender)

{

Form1->Close();

}

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





Поделиться с друзьями:


Дата добавления: 2016-11-12; Мы поможем в написании ваших работ!; просмотров: 252 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Студент всегда отчаянный романтик! Хоть может сдать на двойку романтизм. © Эдуард А. Асадов
==> читать все изречения...

2481 - | 2215 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.