RSS    

   Курсовая работа: Программа для решения дифференциальных уравнений первого порядка методом Рунге-Кутта

На рис.1 представлена страница Classes окна Exploring Classes. На ней отображено иерархическое дерево наследования для класса TForm 1. В правой части окна расположена панель, содержащая три страницы - Scope, Inheritance, References. Страница Scope содержит древовидную диаграмму всех объектов, переменных и методов выделенного на левой панели класса. При этом ветвь Inherited содержит имена класса-предка и класса-потомка. Страница Inheritance содержит поддерево иерархии классов, начиная с класса-предка для выделенного на левой панели класса.

На странице References можно узнать имена всех модулей и номера строк, в которых встречается имя данного класса.

Для того чтобы добавить в проект собственные описания производных классов, наиболее целесообразно создать отдельный модуль и в interface-секции модуля записать все объявления классов.

Все классы VCL-библиотеки Delphi разбиты на группы, которые расположены в каталоге Delphi7\Source\VCL. Для того чтобы просмотреть файл библиотеки, достаточно выполнить File | Open и выбрать каталог и имя файла. Справа в окне кода программы (рис.2) будет показан код модуля, а слева — список всех объявленных в нем классов.

СВОЙСТВА / МЕТОДЫ И ОБРАБОТЧИКИ СОБЫТИЙ

Каждый объект обладает набором свойств. Свойства могут быть как наследуемые от родительского класса, так и добавленные индивидуально для создаваемого объекта. Список всех свойств объекта и их значений отображается в диалоговом окне Object Inspector.

Ссылка на свойство в программном модуле записывается как

Имя_объекта.Свойство;

Метод - это процедура или функция, ассоциируемая с некоторым объектом.

Ссылка на методов программном модуле записывается как

Имя_0бъекта. Метод;

Delphi-приложение выполняется в среде Windows, и как любое Windows-приложение, получает сообщения о возникающих для него событиях. Управление приложением фактически сводится к обработке получаемых сообщений.

Методы, в которых содержится код обработки события, называются обработчиками событий (Event Handler). Delphi автоматически генерирует процедуры обработки событий – обработчики событий для любого компонента. При этом имя обработчика событий формируется из имени компонента и названия события (например, EditlClick). Имя обработчика события автоматически квалифицируется именем класса формы.

Например: TForml.ButtonlClick(Sender: TObject);.

Для каждого компонента предусмотрено одно стандартное событие. Например, для командной кнопки, флажка, списка, поля ввода - это событие Click, а для формы - событие FormCreate.

Для того чтобы автоматически добавить в модуль объявление и описание обработчика стандартного события, достаточно выполнить на компоненте формы или самой форме двойной щелчок мышью. Объявление события добавляется в interface-секцию модуля, а пустое описание события - в implementation-секцию модуля. Далее в редакторе кода внутри уже имеющегося блока begin end; следует только ввести код обработчика события.

Например:

procedure TForml.ButtonlClick(Sender: TObject);

begin

{место для введения кода}

end;

Для того чтобы добавить обработчик любого события, можно выбрать в инспекторе объектов страницу Events и выполнить двойной щелчок мышью в поле, расположенном справа от имени события. Это поле представляет собой комбинированное окно списка - в него можно вводить новое значение имени обработчика события двойным щелчком мыши или выбирать имя уже существующей процедуры. Это позволяет при необходимости определять одну процедуру обработки событий одновременно для нескольких событий.


2. ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ (ПО)

2.1 Назначение программного продукта

Программа предназначена для решения заданных программно обыкновенных дифференциальных уравнений первого порядка методом Рунге – Кутта, вывода результата решения ОДУ на экран в виде графика в декартовой системе координат.

2.2 Основные задачи

Программа обеспечивает решение следующих задач:

− ввод исходных данных;

− решение ОДУ и вывод результата решения в численном и аналитическом виде;

− обнуление результатов решения ОДУ;

− контроль корректности ввода исходных данных и вывод на экран сообщение о содержании

ошибки с рекомендацией по её устранению;

− контроль возникновения в процессе вычислений ошибки «деление на ‘0’» и вывод на экран

соответствующего сообщения о содержании ошибки с рекомендацией по её устранению.

2.3 Входные и выходные данные

Входными данными для программы являются:

− начальное условие решения ОДУ − у'(х0) = у0.,

− начальное и конечное значения отрезка, в пределах которого находится решение ОДУ;

−величина шага дифференцирования,

−формула образцовой функции.

Выходными данными программы являются:

− массив (х1 ,у1 ; х2 ,у2;…; хi ,уi) − решений выбранного дифференциального уравнения на заданном

интервале;

− график функции, которая, будучи подставленной, в исходное образцовое уравнение, обращает его в

тождество и одновременно удовлетворяет начальному условию.


3. ПРОЕКТИРОВАНИЕ

3.1 Выделение основных объектов ПО

− Объект класса TRKutta (Form1) – главная окно программы.

− Объект класса TRngeKutta (Form2) – окно вывода графика функции-решения ДУ.

− Объект класса TSpravka (Form3) – окно «О программе».

− Объект класса TRungeKutta – координатная плоскость и график функции;

3.2 Описание полей и методов

Класс TRKutta (родительский класс TForm)

Поля класса:

x1 - значение x1(начало отрезка);

x2 - значение x2(конец отрезка);

yc - начальные значения (Y0) для передачи в графический модуль;

xc - начальные значения (х0)для передачи в графический модуль;

y - значение Y(x1);

h – зачение величины шага вычислений;

f - значение функции при начальных условиях

zx - массив значений аргумента;

zy - массив значений функции;

line_arr - размерность массивa;

Методы класса:

procedure Button1Click – вычисление значений функции – решения ОДУ;

procedure Button2Click – очистка полей ввода/вывода данных;

procedure Button3Click - вывод окна ГРАФИК;

procedure Button4Click - выход из программы;

procedure RadioGroup1Click - выбор образцовой функции;

procedure Button5Click - активация ввода образцовых функций;

procedure Button6Click - деактивация ввода образцовых функций;

procedure N7Click - вывод информации о программе;

Класс TRungeKutta (родительский класс TObject)

Поля класса

x0,y0 - координаты начала координатных осей;

dx,dy - шаг координатной сетки (в пикселях)

y1,y2,xP,xL - засечки по оси Y и X

dlx,dly - шаг меток (оцифровки) линий сетки по X и Y

cross - счетчик неоцифрованных линий сетки

dcross - количество неоцифрованных линий между оцифрованными

razm – размер массивов;

uzx - Динамический массив координат-X

uzy - Динамический массив координат-Y

uxc,uyc - Оцифровка по осям

mx, my - масштабы по осям X и Y;

BaseMasht_X,BaseMasht_Y - МАХ значения элементов в массивах

Методы класса

function MaxAbsElementArray – определяет MAX элемент массива по модулю;

procedure UstanovkaParametrov – вычисляет исходные параметры необходимые для построения декартовой плоскости;

procedure KoordPloskost – вычерчивает координатную плоскость;

Конструктор

constructor TRungeKutta.CreateGr - создание объекта (график функции, координатная сетка, координатные оси)

Класс Form2 (родительский класс TForm)

Поле класса (private)

RungeKutta - переменная-объект класса TRungeKutta ;

Методы класса

procedure N4Click - вывод графика функции в окне 'График';

procedure N5Click - закрытие окна 'График';

Класс Form3 (родительский класс TForm)

Метод класса

procedure Button1Click – процедура вывода информации о программе

3.3 Иерархия классов на основе выделенных объектов


4. ОСНОВНЫЕ ФОРМЫ И КОМПОНЕНТЫ, ИСПОЛЬЗУЕМЫЕ ДЛЯ РЕАЛИЗАЦИИ ПРОГРАММЫ. ОСНОВНЫЕ АЛГОРИТМИЧЕСКИЕ РЕШЕНИЯ РЕЗУЛЬТАТЫ РАБОТЫ ПРОГРАММЫ



Страницы: 1, 2, 3, 4, 5, 6, 7


Новости


Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

                   

Новости

© 2010.