Методы и средства объектно-ориентированного программирования

Рассмотрение принципов разработки программы для определения площади геометрической фигуры. Описание метода решения и алгоритма программы. Определение функционального назначения. Описание логической структуры. Характеристика входных и выходных данных.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 22.02.2019
Размер файла 1,4 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ПЕНЗЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

Кафедра «Автоматика и телемеханика»

Курсовая работа

по дисциплине “Программирование и основы алгоритмизации”

на тему “Методы и средства объектно-ориентированного программирования”

ПГУ 3.27.03.04.004 ПЗ

Направление подготовки - 15.03.06 Мехатроника и робототехника

Профиль подготовки - Мехатроника

Выполнил студент: Губин Е.А.

Группа: 16ПН1

Руководитель: к.т.н., доцент Берестень М.П.

2017

Реферат

Пояснительная записка содержит 20 страниц, 5 рисунков.

ГЕОМЕТРИЧЕСКАЯ ФИГУРА, ЯЗЫК OBJECT-PASCAL, АЛГОРИТМ, ПРОГРАММА, СРЕДА DELPHI.

Цель работы -разработка программы для определения площади геометрической фигуры.

В результате проектирования разработана программа на языке Object-Pascal в среде Delphi.

Метод решения реализован в виде отдельной подпрограммы. Результат программы выводится на экран дисплея. Программа предназначена для использования на персональных типа IBM PC стандартной комплектации.

Оглавление

программа площадь геометрический логический

Введение

1. Описание метода решения

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

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

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

3.2 Функциональное назначение

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

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

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

4. Описание применения

Заключение

Список использованных источников

Приложения

Введение

В настоящее время можно говорить, что появился новый способ теоретического исследования сложных процессов, допускающих математическое описание,-- вычислительный эксперимент, т.е. исследование естественнонаучных проблем средствами вычислительной математики.

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

В современных условиях умение создавать качественные программные продукты играет для специалистов в данной области все более значимую роль на рынке труда и, безусловно, повышает интерес работодателей к ним. Это приводит к появлению новых и к повышению ранее предъявленных требований к специалистам, занимающимся автоматизацией рабочих мест. Качественно спроектированный и реализованный программный продукт позволяет ускорить процесс документооборота, избавляет от ошибок связанных с человеческим фактором (неверный ввод данных, вычислительные операции, проведенные в ручную документы, реализованные не по типовому образцу и т.д.).

Решение крупных научно-технических проблем, примерами которых могут служить проблемы овладения ядерной энергией и освоения космоса и многое другое стало возможным лишь благодаря применению математического моделирования и новых численных методов, предназначенных для ЭВМ.

Численные методы интегрирования - раздел вычислительной математики, занимающийся разработкой и применением методов приближённого вычисления определённых интегралов.

При решении задач научного и инженерно-технического характера математическими методами часто возникает необходимость проинтегрировать какую-либо функцию. Численное интегрирование является общим способом интегрирования любых функций. Методы численного интегрирования в большинстве своем просты и легко переводятся на алгоритмические языки, что позволяет выполнять все элементы информационных процессов, протекающих в любых отраслях.

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

1. Описание метода решения

Нахождение площади фигуры проводится в несколько этапов.

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

Для функций:

y=k1sin(x)

y = k2x

Выберем следующие значение: k1 = 3, k2= 0.5

Построим график данных функций:

Рисунок 1.1 - График функций

По графику найдем начальные приближения.

Шаг 2. Нахождение точек пересечения функций.

Метод секущих - итерационный численный метод приближенного нахождения корня уравнения.

Для решения уравнения необходимо воспользоваться итерационной формулой метода хорд:

Повторять вычисления следует до тех пор, пока не станет меньше или равно заданному значению погрешности.

Описание метода:

Будем искать нуль функции f(x){\displaystyle f(x)}. Выберем две начальные точки {\displaystyle C_{1}(x_{1};y_{1})} C1(x1,y1) и C2(x2,y2){\displaystyle C_{2}(x_{2};y_{2})} и проведем через них прямую. Она пересечет ось абсцисс в точке {\displaystyle (x_{3};0)}(x3, 0) . Теперь найдем значение функции с абсциссой {\displaystyle x_{3}} x3. Временно будем считать {\displaystyle x_{3}} x3 корнем на отрезке {\displaystyle [x_{1};x_{2}]}[x1, x2]. Пусть точка {\displaystyle C_{3}}C3 имеет абсциссу {\displaystyle x_{3}} x3 и лежит на графике. Теперь вместо точек {\displaystyle C_{1}} C1 и {\displaystyle C_{2}} C2 мы возьмём точку {\displaystyle C_{3}} C3 и точку {\displaystyle C_{2}} C2. Теперь с этими двумя точками проделаем ту же операцию и так далее, то есть будем получать две точки {\displaystyle C_{n+1}} Cn+1 и {\displaystyle C_{n}} Cn и повторять операцию с ними. Отрезок, соединяющий последние две точки, пересекает ось абсцисс в точке, значение абсциссы которой можно приближённо считать корнем. Эти действия нужно повторять до тех пор, пока не получим значение корня с нужным приближением.

Шаг 3. Вычисление определенного интеграла

Формула Симпсона относится к приёмам численного интегрирования. Получила название в честь британского математика Томаса Симпсона.

Суть метода заключается в приближении подынтегральной функции на отрезке [a,b] интерполяционным многочленом второй степени p2(x), то есть приближение графика функции на отрезке параболой. Метод Симпсона имеет порядок погрешности 4 и алгебраический порядок точности 3.

Формулой Симпсона называется интеграл от интерполяционного многочлена второй степени на отрезке [a,b]:

Для более точного вычисления интеграла, интервал [a,b]Размещено на http://www.allbest.ru/

разбивают на N=2n отрезков одинаковой длины и применяют формулу Симпсона на каждой соседней паре из них. Значение исходного интеграла является суммой результатов интегрирования на всех отрезках.

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

Алгоритм основной программы приведен на рисунке А1(Приложение А).

Алгоритм начинается с нахождения точек пересечения функций методом секущих. Поиск точек осуществляется в подпрограмме «sekushie». Алгоритм работы подпрограммы «sekushie» приведен в Приложении А.

Далее, по найденным точкам становится возможным вычислить площадь фигуры заданной графиками функций используя подпрограмму Simpson.

Алгоритм расчета площади:

Находим площадь на интервале [x1, x2]

Находим площадь на интервале [x2, x3]

Суммируем найденные значения.

Где X1, X2 и X3 точки пересечения (слева направо) функций.

Алгоритм работы подпрограммы Simpson приведен в рисунке А3(Приложение А).

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

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

Разработанная программа имеет название Find. Программа написана на языке Object-Pascal в среде Delphi версии 7.0. Текст содержится в файле Unit1.pas и приведён в приложении Б.

3.2 Функциональное назначение

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

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

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

- ввод интервалов поиска корней.

- ввод точности;

- ввод количества интервалов разбиения.

-вызов подпрограммы sekushie для нахождения точек пересечения графиков функций.

- вызов подпрограммы Simpson для вычисления интеграла.

- построение графиков функций;

Подпрограмма sekushie содержит цикл в котором вычисляется точка пересечения функций.

Подпрограммы Simpson содержат цикл в котором вычисляется определенный интеграл.

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

Для вызова программы на выполнение необходимо перейти в каталог, в котором расположен файл Find.exe, и запустить его на выполнение.

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

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

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

4. Описание применения

Программа предназначена для определения площади геометрической фигуры, полученной при пересечении заданных функций.

Программа предназначена для выполнения на персональных компьютерах типа IBM PC стандартной комплектации.

Размер файла с исполняемым модулем программы составляет 588 Кбайт.

Порядок работы с программой:

- запустить Find.exe

Рисунок 4.1 -окно программы

- нажмите кнопку «Найти площадь»

Рисунок 4.2 -результат работы программы

Рисунок 4.3 -График функций

Обработка ошибок:

Рисунок 4.4 - обработка ошибок

Рисунок 4.5 - обработка ошибок

Заключение

В данной курсовой работе была разработана программа Find, предназначенная для нахождения площади фигуры заданной функциями.

Все требования, предъявляемые к данной программе, были выполнены.

Были решены следующие задачи:

1.Изучена необходимая литература.

2.Обзорно рассмотрены существующие методы по решению нелинейных уравнений.

3.Изучен метод секущих для решения нелинейных уравнений.

4.Изучен метод Симпсона для нахождения площади фигуры

5.Проведены тестирование и отладка программы.

Список использованных источников

1. В.М. Вержбицкий. Численные методы (линейная алгебра и нелинейные уравнения). - Москва, «Высшая школа»; 2000.

2. Н.С.Бахвалов, А.В.Лапин, Е.В.Чижонков. Численные методы в задачах и упражнениях. - Москва, «Высшая школа»; 2000.

Приложение А

Рисунок А.1 - блок-схема

Рисунок А.2 - блок-схема sekushie

Рисунок А.3 - блок-схема Simpson

Приложение Б

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

Unit1.pas:

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Spin;

type

TmyFunc = function(x : real) : real;

TForm1 = class(TForm)

Label1: TLabel;

Label2: TLabel;

Button1: TButton;

Edit7: TEdit;

Memo1: TMemo;

Label3: TLabel;

GroupBox1: TGroupBox;

Edit5: TEdit;

Edit3: TEdit;

Edit2: TEdit;

Edit1: TEdit;

Edit4: TEdit;

Edit6: TEdit;

Label6: TLabel;

Label5: TLabel;

Label4: TLabel;

Label7: TLabel;

SpinEdit1: TSpinEdit;

procedure Button1Click(Sender: TObject);

procedure Edit1KeyPress(Sender: TObject; var Key: Char);

private

{ Private declarations }

function ChechParam: Boolean;

public

{ Public declarations }

end;

function fsin(x : real) : Real;

function fline(x : Real) : real;

var

Form1: TForm1;

eps : real; // точночть вычислений

implementation

uses Unit2;

{$R *.dfm}

function fsin(x : real) : Real;

begin

fsin := 3*sin(x);

end;

function fline(x : Real) : real;

begin

fline := 0.5 * x;

end;

function f(x : real) : Real;

begin

f := fsin(x) - fline(x);

end;

function sekushie( a, b : Real; var k : integer) : real;

var

x, x0 : Real;

begin

k := 0;

x := a;

repeat

x0 := x;

x := x0 - (f(x0)/(f(x0)-f(b)))*(x0-b);

Inc(k);

until Abs(x - x0) <= eps;

sekushie := x;

end;

function Simpson(f1, f2 : TmyFunc; a, b : Real; N : Integer) : real;

var i : integer;

S, S1, k, h : Real;

begin

h := abs(a - b)/N;

S1 := h * (f1(a) - f2(a));

repeat

S := S1;

h := abs(a - b)/N;

k := a;

for i := 1 to N - 1 do

begin

k := k + h;

if Odd(i) then S1 := s1 + 4*(f1(k) - f2(k))

else S1 := S1 + 2 * (f1(k) - f2(k));

end;

S1 := (s1 + (f1(a) - f2(a)) + (f1(b) - f2(b)))*h/3;

n := n * 2; // удваиваем кол-во разбиений, если точность не достигнута

until abs(S - S1)<=eps;

Simpson := S1;

end;

procedure TForm1.Button1Click(Sender: TObject);

var

x1, x2, x3, S: real;

k : integer;

begin

if not ChechParam then Exit;

eps := StrToFloat(Edit7.Text); N := SpinEdit1.Value;

x1 := sekushie( StrToFloat(Edit1.Text), StrToFloat(Edit2.Text), k);

Memo1.Lines.Add('Первая точка пересечения: ' + FloatToStr(x1) +'. Количество итераций - ' + IntToStr(k));

x2 := sekushie( StrToFloat(Edit4.Text), StrToFloat(Edit3.Text), k);

Memo1.Lines.Add('Вторая точка пересечения: ' + FloatToStr(x2) +'. Количество итераций - ' + IntToStr(k));

x3 := sekushie( StrToFloat(Edit5.Text), StrToFloat(Edit6.Text), k);

Memo1.Lines.Add('Третья точка пересечения: ' + FloatToStr(x3) +'. Количество итераций - ' + IntToStr(k));

S := Simpson(fline, fsin, X1, x2,N);

S := S + Simpson(fsin, fline, X2, X3,N);

Memo1.Lines.add('Площадь геометрической фигуры ровна ' + FloatToStr(S));

Form2.show;

end;

function chech(ed : TEdit) : Boolean;

var b : Boolean;

i : double;

begin

b := True;

if not TryStrToFloat(ed.Text, i) then

begin

b := False;

ed.SetFocus;

ShowMessage('Некорректный ввод');

end;

chech := b;

end;

function TForm1.ChechParam: Boolean;

var i : integer;

b : Boolean;

ed : array [1..7] of TEdit;

begin

ed[1] := Edit1; ed[2] := Edit2; ed[3] := Edit3;

ed[4] := Edit4; ed[5] := Edit5; ed[6] := Edit6; ed[7] := Edit7;

for i := 1 to 7 do

begin

b := chech(ed[i]);

if not b then Break;

end;

ChechParam := b;

end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

// запрет ввода невалидных значений

if not (key in ['0'..'9', ',','-',#8]) then Key := #0;

end;

end.

Unit2.pas:

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Unit1, TeEngine, Series, ExtCtrls, TeeProcs, Chart;

type

TForm2 = class(TForm)

Chart1: TChart;

Series1: TFastLineSeries;

Series2: TFastLineSeries;

procedure FormShow(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.FormShow(Sender: TObject);

var i : real;

begin

i := -10;

while i <= 10 do

begin

Series1.AddXY(i, fsin(i), ' ');

Series2.AddXY(i, fline(i), ' ');

i := i + 0.1;

end;

end;

end.

Размещено на Allbest.ru


Подобные документы

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

    курсовая работа [969,3 K], добавлен 26.03.2009

  • Общее описание и структура программы, ее компоненты и функции, сферы практического применения. Требования к функциональным возможностям. Характеристика логической структуры, используемые технические средства. Исследование входных и выходных данных.

    курсовая работа [94,7 K], добавлен 30.01.2016

  • Разработка программы логической игры в "крестики-нолики" пять в ряд на поле размера 15х15 клеток с применением графики на языке Pascal с использованием объектно-ориентированного программирования. Структура алгоритма программы и описание ее работы.

    курсовая работа [821,5 K], добавлен 13.02.2012

  • Разработана программа решения двух задач на языке программирования Turbo Pascal. Спецификация задания. Описание входных и выходных данных. Математическая постановка задачи. Алгоритм ее решения. Описание и блок-схема программы. Результаты тестирования.

    курсовая работа [275,8 K], добавлен 28.06.2008

  • Разработка программы тестирования студентов по MS PowerPoint с кодом на языке Delphi. Создание алгоритма для решения функциональных требований задачи. Описание переменных, вспомогательных процедур, входных и выходных данных для реализации программы.

    курсовая работа [1,5 M], добавлен 21.09.2010

  • Создание программы, реализующей игру "Линии". Среда разработки программы, описание ее общего вида. Основные алгоритмы программы. Реализация программы в среде разработки Microsoft Visual Studio 2008 на языке объектно-ориентированного программирования С++.

    курсовая работа [639,0 K], добавлен 16.03.2012

  • Рассмотрение теории и технологии работы со средой программирования Delphi. Описание Описание интерфейса программы, структуры данных, генерации точек. Разработка задания по выявлению всех квадратов, которые могут быть образованы точками на плоскости.

    реферат [21,0 K], добавлен 13.01.2015

  • Особенности разработки приложений для операционной системы с помощью императивного, структурированного, объектно-ориентированного языка программирования Delphi. Формальное начало программы. Выделение конца программного блока. Листинг и описание программы.

    курсовая работа [1,2 M], добавлен 04.08.2014

  • Разработка программы с использованием принципов объектно-ориентированного программирования на языке высокого уровня С средствами Microsoft Visual Studio 2010. Построение алгоритма реализации. Класс программы, инструкция по использованию программы.

    курсовая работа [1,0 M], добавлен 26.12.2013

  • Вычисление площади геометрических фигур с помощью интегрального исчисления. Основные свойства площади как функции. Разработка алгоритма работы программы на языке Object-Pascal в среде Delphi. Текст программы, порядок ее запуска и полученный результат.

    курсовая работа [281,0 K], добавлен 06.06.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.