Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Блок-схема алгоритма решения задачи



МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ

УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ

«БАРАНОВИЧСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

 

Факультет ___________________________________

Кафедра _____________________________________

Дата регистрации работы в деканате ____________

Дата регистрации работы на кафедре ____________

Отметка о допуске к защите ____________

Оценка за защиту ____________

 

КУРСОВАЯ РАБОТА

по дисциплине «Основы алгоритмизации и программирования»

Тема: «Моделирование логических игровых программ средствами Delphi»

 

Исполнитель:

студент 1 курса, группы ИСТ-12

студент (факультет, курс, группа)

 

Сергеев Андрей Сергеевич

(фамилия, имя, отчество)

 

 

Руководитель:

преподаватель-стажер

(ученое звание, ученая степень, должность)

 

Тимовец Анна Николаевна

(фамилия, имя, отчество)

 

Барановичи 2013

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ

УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ

«БАРАНОВИЧСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

РЕЦЕНЗИЯ

на курсовую работу

(регистрационный №_____)

Студента____________________________________________________

Факультет___________________________________________________

Курс_______________

Дисциплина

____________________________________________________________

Рецензент

____________________________________________________________

Дата получения работы для рецензирования ______________________

Дата возвращения работы после рецензирования __________________

Оценка_________ Подпись преподавателя-рецензента______________

Текст рецензии:

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

__________________________________________________________________

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

__________________________________________________________________

____________________________________________________________________________________________________________________________________

РЕФЕРАТ

Курсовая работа: 26 с., 10 рис., 7 источников, 2 прил., 5 табл.

СРЕДА DELPHI, ГРАФИЧЕСКАЯ ПРОГРАММА, ПОСТРОЕНИЕ ФРАКТАЛА, ВЕРОЯТНОСТНЫЕ РАСПРЕДЕЛЕНИЯ

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

Предмет исследования – среда Borland Delphi и ее графические средства для построения фрактальных множеств.

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

Основой для выполнения работы стала справочная, научная и учебная литература.

При выполнении работы использовался метод: анализ научно-методической литературы, проектов.

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

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

 

________________________

(подпись студента)


СОДЕРЖАНИЕ

ВВЕДЕНИЕ……………………………………………………………………..…6

1 ТЕОРЕТИЧЕСКАЯ ЧАСТЬ…………………..……………………………….8

1.1 Постановка задачи………………………………………………..……8

1.2 Математическая модель фрактала………………………………….…8

1.3 Алгоритм решения задачи…………………………………………….8

1.4 Блок-схема алгоритма……………………………………………......10

2 ПРАКТИЧЕСКАЯ ЧАСТЬ………………………………………………...…12

2.1 Описание объектов, свойств, методов……………………………….12

2.2 Формы и основные модули текста программы……………………..16

2.3 Результаты тестирования программного продукта…………………19

2.4 Анализ результатов……………….……...…………………………...22

ЗАКЛЮЧЕНИЕ………………………………………………………….………24

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ ……………………..……...26

ПРИЛОЖЕНИЕ А ………………………….…...………………………………27

ПРИЛОЖЕНИЕ Б ……………………………………………………...………..31

 

 


ВВЕДЕНИЕ

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

Бурное развитие вычислительной техники, потребность в эффективных средствах разработки программного обеспечения привели к появлению систем программирования, ориентированных на так называемую " быструю разработку", среди которых можно выделить Borland Delphi.

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

При построение математических структур наряду с точностью важным фактором является скорость расчета точек и их построения. Данная программа разработанная в среде Borland Delphi 7 может за минимальное время построить фрактал «Лист папоротника» в заданном масштабе, а при желании пользователя можно масштабировать участки фрактала, что позволяет более полно и точно понять принципы фрактальных структур.

Фракта́ л (лат. fractus — дроблёный, сломанный, разбитый) — геометрическая фигура, обладающая свойством самоподобия, то есть составленная из нескольких частей, каждая из которых подобна всей фигуре вцелом.

Роль фракталов в машинной графике сегодня достаточно велика. Они приходят на помощь, например, когда требуется, с помощью нескольких коэффициентов, задать линии и поверхности очень сложной формы. С точки зрения машинной графики, фрактальная геометрия незаменима при генерации искусственных облаков, гор, деревьев, поверхности моря. Фактически это способ легкого представления сложных объектов, образы которых весьма похожи на природные[1].

В качестве примера фрактальных структур мы рассмотрим множество или фрактал «Лист папоротника» – один из тех объектов, которые удобно строить при помощи вероятностных распределений.

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

Предмет исследования – среда Borland Delphi и ее графические средства для построения фрактальных множеств.

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

Для достижения данной цели в исследовании необходимо решить следующие задачи:

· осуществить постановку задачи;

· создать блок-схемы алгоритмов;

· осуществить описание объектов, свойств, методов;

· разработать формы и текст программы;

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

Основой для выполнения работы стала справочная, научная и учебная литература.

Основным методом исследования был выбран общенаучный метод анализа.

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

К работе прилагается электронный носитель информации.


ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

Постановка задачи

Задачей курсовой работы является: построение фрактала «Лист папоротника».

Для достижения данной цели необходимо составить приложение в среде Delphi. Приложение должно строить изображение фрактала «лист папоротника» с использованием графических средств среды Delphi при помощью метода многократных итераций (повторений).

1.2. Математическая модель фрактала " Лист папоротника"

Для построения фрактала используется подход, называемый методом итерируемых функций или IFS-методом (аббревиатура IFS происходит от английских слов iterated function system). IFS-метод основан на аффинных (от лат. affinis - родственный) преобразованиях координат точек по формулам:

 

X=ax+by+e, (1.1)

 

где a, b, e–заданные коэффициенты, x, y–текущие координаты, X–вновь вычисленная координата.

 

Y=cx+dy+f, (1.2)

 

где c, d, f– заданные коэффициенты, x, y – текущие координаты, Y– вновь вычисленная координата[2].

 

Основная идея этого метода заключается в том, чтобы, зафиксировав какую-либо начальную точку, далее циклически совершать афинное преобразование системы координат, в которой точка строится.То есть, если на определённом шаге цикла имеется точка А с координатами (х, y), то при следующей итерации цикла изображается точка В, чьи координаты имеют вид (ax+by+e, cx+dy+f). Таким образом наблюдается явное выражение " новой" системы координат (точки В) через " старую" (точку А).

В свою очередь коэффициенты преобразования систем координат выбираются в зависимости от попадания некоторой случайной величины в соответствующий диапазон значений[3].

Алгоритм решения задачи

1) Для решения поставленной задачи нужно создать процедуру, вызов которой реализует создание фрактала.

А) Константа iterations отвечает за количество итераций (повторений) случайного рисования точки как мельчайшей составляющей изображения листа папоротника. Остальные переменные отвечают за размеры и координаты изображения.

Б) В теле процедуры создадим систему, которая задаст масштаб и координаты фрактала. Зададим исходные данные для итерируемой точки.

В) При помощи цикла for реализуем выполнение итераций.

Г) В теле процедуры используем случайное преобразование координаты точки. Выберем диапазоны для случайной величины (от 0 до 0.85 - соответствует преобразованию множества точек, отвечающих за " густоту" и " высоту" листа папоротника, от 0.85 до 0.92 - рисует листики слева от стебля, от 0.92 до 0.99 - рисует листики справа от стебля, остальные диапазоны - изображение стебля). Координаты точки в разных диапазонах преобразуются по формулам: X=ax+by+e, Y=cx+dy+f. Логическое выполнение программы осуществляют операторы if и else.

2) Выведем результат на графический компонент Image.

Да Нет

x: = 0.84 * x -0.045 * y; y: = 0.045 * t + 0.86 * y + 1.6;
if p < = 0.92


Да Нет

x: = 0.25 * x - 0.26 * y; y: = 0.23 * t + 0.25 * y + 1.6;
if p < = 0.99


Да Нет

x: = -0.135 * x + 0.28 * y; y: = 0.26 * t + 0.245 * y + 0.44;
А
В
x: = 0.0; y: = 0.16 * y
Б


А
Б
В
Вывод результата работы процедуры: Form1.image1.Canvas. Pixels[mid_x+round (radius*x), mid_y-round(radius*y)+35]: = clGreen  

Окончание процедуры  

Рисунок 1.1 — блок-схема алгоритма построения фрактала

ПРАКТИЧЕСКАЯ ЧАСТЬ

Компонент Button

Компонент Button представляет собой командную кнопку [4]. Свойства компонента приведены в таблице 2.1.

Таблица 2.1. Свойства компонента Button (командная кнопка)

Name Имя компонента. Используется в программе для доступа к компоненту и его свойствам
Caption Текст на кнопке
Left Расстояние от левой границы кнопки до левой границы формы
Top Расстояние от верхней границы кнопки до верхней границы формы
Height Высота кнопки
Width Ширина кнопки
Enabled Признак доступности кнопки. Если значение свойства равно True, то кнопка доступна. Если значение свойства равно False, то кнопка не доступна, например, в результате щелчка на кнопке событие Click не возникает
Visible Позволяет скрыть кнопку (False) или сделать ее видимой (True)
Hint Подсказка — текст, который появляется рядом с указателем мыши при позиционировании указателя на командной кнопке
ShowHint Разрешает (True) или запрещает (False) отображение подсказки при позиционировании указателя на кнопке

Компонент Image

Компонент представляет собой некоторую ограниченную поверхность с канвой, на которую можно заносить изображения. Компонент намного богаче по своим возможностям и удобнее, чем обычное рисование на канве[5].

Свойства компонента приведены в таблице 2.2.

Таблица 2.2 – Свойства компонента Image

Picture Изображение отображающееся в поле компонента
Width, Height Размеры компонента. Если эти размеры меньше размера иллюстрации, а значение свойств Strech, AutoSize и Proportional равны False, то отображается часть изображения.
Proportional позволяет автоматически масштабировать картинки без искажения. Для выполнения масштабирования, значение свойства AutoSize должно быть равным False
Strech позволяет автоматически масштабировать (сжимать или растягивать) изображение в соответствии с размером компонента Image. Если размер компонента не пропорционален размеру изображения, то изображение будет искажено
AutoSize позволяет автоматически изменять размер компонента в соответствии с размером изображения
Center позволяет определять расположение изображения в поле компонента Image по горизонтали, если ширина картинки меньше ширины компонента. Если свойства равно False, то изображение прижато к правой границе, если True то изображение располагается по центру
Canvas поверхность, позволяющая вывести графику
Transpa­rent указывает прозрачный цвет фона изображения

Свойство Canvas

Canvas представляет из себя область компонента, на которой можно создавать, хранить и модифицировать графическое изображение[4].

Свойства класса TCanvas приведены в таблице 2.3.

Таблица 2.3 – Свойства класса TCanvas.

Pen Карандаш. Определяет цвет, стиль и толщинц линии, которую рисует, например метод Lineto
PenPos Положение(координаты) карандаша
Brush Кисть. Определяет цвет и стиль закраски области, например прямоугольника, который рисует метод Rectangle.
Font Шрифт. Определяет шрифт, который используется для вывода текста, например методом TextOut.

 

Таблица 2.4 – Meтоды класса TCanvas:

Lineto(x, y) Рисует линию из текущей точки в точку с указанными координатами (перемещение указателя текущей точки в нужную обеспечивает метод Moveto). Цвет динии определяется свойством Pen.Color.
Rectangle(x1, y1, x2, y2) Рисует прямоугольник. Параметры x1, y1указывают координаты верхней левой точки, аx2, y2 координаты нижней правой точки. Цвет границы прямоугольника определяет свойствоPen.Color, цвет закраски области ― свойствоBrush.Color.
RoundRect(x1, y1, x2, y2, x3, y3) Рисует прямоугольник со скругленными углами. Параметры x1, y1 указывают координаты верхней левой точки, x2, y2 координаты нижней правой точки, а x3, y3 радиус скругления. Цвет границы прямоугольника определяет свойство Pen.Color, цветзакраски области ― свойство Brush.Color.
Ellipse(x1, y1, x2, y2) Рисует эллиспс(окружность). Параметры x1, y1указывают координаты верхней левой точки, аx2, y2 координаты нижней правой точки прямоугольника в который вписана окружность. Цвет границы прямоугольника определяет свойство Pen.Color, цвет закраски области ― свойство Brush.Color.
Arc(x1, y1, x2, y2, x3, y3, x4, y4) Рисует дугу. Параметры x1, y1, x2 и y2 задают эллипс, частью которого является дуга, параметры x3, y3, x4 и y4 ― начальную и конечную точку дуги. Цвет дуги определяет свойство Pen.Color.

Продолжение таблицы 2.4

Pie(x1, y1, x2, y2, x3, y3, x4, y4) Рисует сектор. Параметры x1, y1, x2 и y2 задают эллипс, частью которого является сектор, параметры x3, y3, x4 и y4 ― границы сектора. Цвет границы сектора определяет свойствоPen.Color, цвет закраски сектора ― свойствоBrush.Color.
FrameRect(aRect) Рисует контур прямоугольника. ПараметрaRect(тип TRect) определяет положение и размер прямоугольника. Цвет контура определяет свойство Brush.Color.
Polyline(points, n) Рисует ломаную линию. Points ― массив типаTPoint. Каждый элемент массива представляет собой запись, поля x и y которые содержат координаты точки перегиба ломаной. n ― количество звеньев ломаной. МетодPolyline вычерчивает ломанную линию, последовательно соединяя прямые точки, координаты которых находятся в массиве: перевую со второй, вторую с третьей, третью с четвертой и т.д.

Компонент Label

Данный компонент предназначен для отображения текстовой информации. Задать текст, отображаемый в поле компонента можно как во время разработки формы, так и во время работы программы, присвоив значение свойству Text[6].

Свойства компонента приведены в таблице 2.4.

Таблица 2.5 – Свойства компонента Label

Name Имя компонента. Используется в программе для доступа к компоненту и его свойствам
Text содержит отображаемый текст
Location Положение компонента на поверхности формы
Size Размер компонента (поля отображения текста)
Font Шрифт, используемый для отображения текста
ForeColor Цвет текста, отображаемого в поле компонента
BackColor Цвет закраски области вывода текста

Продолжение таблицы 2.5

TextAlign Способ выравнивания (расположения) текста в поле компонента. На практике используют выравнивание по левой и верхней границам (TopLeft), по середине (TopCentre) и по центру (MiddleCenter)
BorderStyle Вид рамки (границы) компонента. По умолчанию вокруг поля Label отсутствует (значение свойства равно None). Граница компонента может быть обычной (Fixed3D) или тонкой (FixedSingle)

 

Рисунок 2.1 – объекты главной формы

- Button - командная кнопка;

- Image – компонента для вывода графической информации;

Рисунок 2.2 – объекты дополнительной формы

- Label - информационные метки;

 

Основная форма приложения имеет вид:

Рисунок 2.3 – вид основной формы программы

 

Дополнительная форма выглядит так:

 

Рисунок 2.4 – вид дополнительной формы программы

Основной модуль текста программы:

procedure gf;

 

Const

iterations = 500000; //Кол-во итераций

 

Var

t, x, y: real;

p: real; //Случайная величина

k: longint;

mid_x, mid_y, radius: integer;

 

begin

mid_x: = form1.width div 2;

mid_y: = form1.height -200; //Масштабирование и координирование изображения

radius: = trunc(0.1 * mid_y);

randomize;

x: = 1.0;

y: = 0.0;

for k: = 1 to iterations do

begin

p: = random;

t: = x;

if p < = 0.85 then //Построение верхней части листа

begin

x: = 0.84 * x -0.045 * y;

y: = 0.045 * t + 0.86 * y + 1.6;

end

else

if p < = 0.92 then //Построение левого листа

 

begin

x: = 0.25 * x - 0.26 * y;

y: = 0.23 * t + 0.25 * y + 1.6;

end

else

if p < = 0.99 then //Построение стебля

begin

x: = -0.135 * x + 0.28 * y;

y: = 0.26 * t + 0.245 * y + 0.44;

end

else

begin

x: = 0.0;

y: = 0.16 * y;

end;

Form1.image1.Canvas.Pixels[mid_x+round(radius*x), mid_y-round(radius*y)+35]: =clGreen //Вывод изображения

end;

end;

Рисунок 2.5 – визуальное представление программы

1.Для получения изображения листа папоротника нужно нажать кнопку «Изобразить фрактал».

Рисунок 2.6 –результат нажатия кнопки «Изобразить фрактал»

2.Программа предоставляет возможность очистки окна с изображением, что можно сделать, нажав на кнопку «Очистить форму».

Рисунок 2.7 – при очистке формы

3.Так же можно узнать информацию об авторе данного приложения, нажав на кнопку «Об авторе».

Рисунок 2.8 – информация о создателе приложения

4.При нажатии кнопки «Вернуться назад» пользователь переместится на главную форму.

Рисунок 2.9 – Вернуться назад

5.Закрытие программы осуществляется нажатием на кнопку «Закрыть», стандартно располагающуюся в верхнем правом углу программы.

ЗАКЛЮЧЕНИЕ

Для выполнения выполнения задания, необходимо было реализовать алгоритм построения фрактала «Лист папоротника» в среде Delphi. В ходе работы были созданы формы на которых размещены компоненты, которые необходимы для решения поставленной задачи. Во время разработки программы были углублены и закреплены знания по алгоритмизации, программированию и разработке графических программ в интегрированной визуальной среде программирования Delphi. Также была изучена и проанализирована дополнительная литература, содержащая информацию о среде разработки Delphi, математических множествах и фракталах. В результате была разработана программа которая способна построить фрактал «Лист папоротника».

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

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

1. Сжатие изображений и информации

2. Сокрытие информации на изображении, в звуке

3. Шифрование данных с помощью фрактальных алгоритмов

4. Создание фрактальной музыки

5. Моделирование систем[7].

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

Приложение можно доработать и использовать для создания более сложных фракталов.

Таким образом, поставленные цели были достигнуты, цели работы были выполнены.

 


Приложение А

Листинг программы

unit Unit1;

 

Interface

 

Uses

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

Dialogs, StdCtrls, ExtCtrls, XPMan;

 

Type

TForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

image1: TImage;

xpmanifest1: TXPManifest;

Button3: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

 

Private

{ Private declarations }

Public

{ Public declarations }

end;

 

Var

Form1: TForm1;

 

Implementation

 

{$R *.dfm}

uses unit2;

 

procedure gf;

 

Const

iterations = 500000; //Кол-во итераций

 

Var

t, x, y: real;

p: real; //Случайная величина

k: longint;

mid_x, mid_y, radius: integer;

 

begin

mid_x: = form1.width div 2;

mid_y: = form1.height -200; //Масштабирование и координирование изображения

radius: = trunc(0.1 * mid_y);

randomize;

x: = 1.0;

y: = 0.0;

for k: = 1 to iterations do

begin

p: = random;

t: = x;

if p < = 0.85 then //Построение верхней части листа

begin

x: = 0.84 * x -0.045 * y;

y: = 0.045 * t + 0.86 * y + 1.6;

end

else

if p < = 0.92 then //Построение левого листа

 

begin

x: = 0.25 * x - 0.26 * y;

y: = 0.23 * t + 0.25 * y + 1.6;

end

else

if p < = 0.99 then //Построение стебля

begin

x: = -0.135 * x + 0.28 * y;

y: = 0.26 * t + 0.245 * y + 0.44;

end

else

begin

x: = 0.0;

y: = 0.16 * y;

end;

Form1.image1.Canvas.Pixels[mid_x+round(radius*x), mid_y-round(radius*y)+35]: =clGreen

end; //Вывод изображения

end;

 

procedure TForm1.Button1Click(Sender: TObject); //Инициализация построения фрактала

 

begin

gf;

button1.enabled: =false;

Button3.Enabled: =True;

end;

 

procedure TForm1.Button2Click(Sender: TObject); //Кнопка «Об авторе»

begin

form1.Visible: =false;

form2.show;

end;

 

procedure TForm1.Button3Click(Sender: TObject); //Кнопка «Очистить форму»

begin

image1.Canvas.Rectangle(0, 0, ClientHeight, ClientWidth);

Button3.Enabled: =False;

Button1.Enabled: =True;

end;

 

procedure TForm1.FormCreate(Sender: TObject); //Исходные параметры формы

begin

Button3.Enabled: =False;

image1.Canvas.Rectangle(0, 0, ClientHeight, ClientWidth);

Form1.BorderIcons: = [biSystemMenu, biMinimize];

end;

 

end.


 

Приложение Б

Вторая форма

unit Unit2;

 

Interface

 

Uses

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

Dialogs, StdCtrls, jpeg, ExtCtrls;

 

Type

TForm2 = class(TForm)

Label1: TLabel;

Button1: TButton;

label2: TLabel;

procedure Button1Click(Sender: TObject);

 

 

Private

{ Private declarations }

Public

{ Public declarations }

end;

 

Var

Form2: TForm2;

 

Implementation

 

{$R *.dfm}

uses unit1;

 

procedure TForm2.Button1Click(Sender: TObject); //Кнопка «Вернуться назад»

begin

form2.Visible: =false;

form1.show;

end;

 

end.

 

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ

УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ

«БАРАНОВИЧСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

 

Факультет ___________________________________

Кафедра _____________________________________

Дата регистрации работы в деканате ____________

Дата регистрации работы на кафедре ____________

Отметка о допуске к защите ____________

Оценка за защиту ____________

 

КУРСОВАЯ РАБОТА

по дисциплине «Основы алгоритмизации и программирования»

Тема: «Моделирование логических игровых программ средствами Delphi»

 

Исполнитель:

студент 1 курса, группы ИСТ-12

студент (факультет, курс, группа)

 

Сергеев Андрей Сергеевич

(фамилия, имя, отчество)

 

 

Руководитель:

преподаватель-стажер

(ученое звание, ученая степень, должность)

 

Тимовец Анна Николаевна

(фамилия, имя, отчество)

 

Барановичи 2013

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ

УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ

«БАРАНОВИЧСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

РЕЦЕНЗИЯ

на курсовую работу

(регистрационный №_____)

Студента____________________________________________________

Факультет___________________________________________________

Курс_______________

Дисциплина

____________________________________________________________

Рецензент

____________________________________________________________

Дата получения работы для рецензирования ______________________

Дата возвращения работы после рецензирования __________________

Оценка_________ Подпись преподавателя-рецензента______________

Текст рецензии:

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

__________________________________________________________________

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

__________________________________________________________________

____________________________________________________________________________________________________________________________________

РЕФЕРАТ

Курсовая работа: 26 с., 10 рис., 7 источников, 2 прил., 5 табл.

СРЕДА DELPHI, ГРАФИЧЕСКАЯ ПРОГРАММА, ПОСТРОЕНИЕ ФРАКТАЛА, ВЕРОЯТНОСТНЫЕ РАСПРЕДЕЛЕНИЯ

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

Предмет исследования – среда Borland Delphi и ее графические средства для построения фрактальных множеств.

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

Основой для выполнения работы стала справочная, научная и учебная литература.

При выполнении работы использовался метод: анализ научно-методической литературы, проектов.

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

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

 

________________________

(подпись студента)


СОДЕРЖАНИЕ

ВВЕДЕНИЕ……………………………………………………………………..…6

1 ТЕОРЕТИЧЕСКАЯ ЧАСТЬ…………………..……………………………….8

1.1 Постановка задачи………………………………………………..……8

1.2 Математическая модель фрактала………………………………….…8

1.3 Алгоритм решения задачи…………………………………………….8

1.4 Блок-схема алгоритма……………………………………………......10

2 ПРАКТИЧЕСКАЯ ЧАСТЬ………………………………………………...…12

2.1 Описание объектов, свойств, методов……………………………….12

2.2 Формы и основные модули текста программы……………………..16

2.3 Результаты тестирования программного продукта…………………19

2.4 Анализ результатов……………….……...…………………………...22

ЗАКЛЮЧЕНИЕ………………………………………………………….………24

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ ……………………..……...26

ПРИЛОЖЕНИЕ А ………………………….…...………………………………27

ПРИЛОЖЕНИЕ Б ……………………………………………………...………..31

 

 


ВВЕДЕНИЕ

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

Бурное развитие вычислительной техники, потребность в эффективных средствах разработки программного обеспечения привели к появлению систем программирования, ориентированных на так называемую " быструю разработку", среди которых можно выделить Borland Delphi.

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

При построение математических структур наряду с точностью важным фактором является скорость расчета точек и их построения. Данная программа разработанная в среде Borland Delphi 7 может за минимальное время построить фрактал «Лист папоротника» в заданном масштабе, а при желании пользователя можно масштабировать участки фрактала, что позволяет более полно и точно понять принципы фрактальных структур.

Фракта́ л (лат. fractus — дроблёный, сломанный, разбитый) — геометрическая фигура, обладающая свойством самоподобия, то есть составленная из нескольких частей, каждая из которых подобна всей фигуре вцелом.

Роль фракталов в машинной графике сегодня достаточно велика. Они приходят на помощь, например, когда требуется, с помощью нескольких коэффициентов, задать линии и поверхности очень сложной формы. С точки зрения машинной графики, фрактальная геометрия незаменима при генерации искусственных облаков, гор, деревьев, поверхности моря. Фактически это способ легкого представления сложных объектов, образы которых весьма похожи на природные[1].

В качестве примера фрактальных структур мы рассмотрим множество или фрактал «Лист папоротника» – один из тех объектов, которые удобно строить при помощи вероятностных распределений.

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

Предмет исследования – среда Borland Delphi и ее графические средства для построения фрактальных множеств.

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

Для достижения данной цели в исследовании необходимо решить следующие задачи:

· осуществить постановку задачи;

· создать блок-схемы алгоритмов;

· осуществить описание объектов, свойств, методов;

· разработать формы и текст программы;

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

Основой для выполнения работы стала справочная, научная и учебная литература.

Основным методом исследования был выбран общенаучный метод анализа.

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

К работе прилагается электронный носитель информации.


ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

Постановка задачи

Задачей курсовой работы является: построение фрактала «Лист папоротника».

Для достижения данной цели необходимо составить приложение в среде Delphi. Приложение должно строить изображение фрактала «лист папоротника» с использованием графических средств среды Delphi при помощью метода многократных итераций (повторений).

1.2. Математическая модель фрактала " Лист папоротника"

Для построения фрактала используется подход, называемый методом итерируемых функций или IFS-методом (аббревиатура IFS происходит от английских слов iterated function system). IFS-метод основан на аффинных (от лат. affinis - родственный) преобразованиях координат точек по формулам:

 

X=ax+by+e, (1.1)

 

где a, b, e–заданные коэффициенты, x, y–текущие координаты, X–вновь вычисленная координата.

 

Y=cx+dy+f, (1.2)

 

где c, d, f– заданные коэффициенты, x, y – текущие координаты, Y– вновь вычисленная координата[2].

 

Основная идея этого метода заключается в том, чтобы, зафиксировав какую-либо начальную точку, далее циклически совершать афинное преобразование системы координат, в которой точка строится.То есть, если на определённом шаге цикла имеется точка А с координатами (х, y), то при следующей итерации цикла изображается точка В, чьи координаты имеют вид (ax+by+e, cx+dy+f). Таким образом наблюдается явное выражение " новой" системы координат (точки В) через " старую" (точку А).

В свою очередь коэффициенты преобразования систем координат выбираются в зависимости от попадания некоторой случайной величины в соответствующий диапазон значений[3].

Алгоритм решения задачи

1) Для решения поставленной задачи нужно создать процедуру, вызов которой реализует создание фрактала.

А) Константа iterations отвечает за количество итераций (повторений) случайного рисования точки как мельчайшей составляющей изображения листа папоротника. Остальные переменные отвечают за размеры и координаты изображения.

Б) В теле процедуры создадим систему, которая задаст масштаб и координаты фрактала. Зададим исходные данные для итерируемой точки.

В) При помощи цикла for реализуем выполнение итераций.


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-08-31; Просмотров: 1195; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.284 с.)
Главная | Случайная страница | Обратная связь