Методы Монте-Карло и их использование в программировании

Обзор основных элементов программирования. Алгоритмы метода Монте-Карло для решения интегральных уравнений второго рода. Способ усреднения подынтегральной функции. Описание программ комплекса: компонент Edit, Panel, Image. Инструкция к работе программы.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 24.05.2016
Размер файла 268,9 K

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

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

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

ВВЕДЕНИЕ

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

Возникновение идеи использования случайных явлений в области приближённых вычислений принято относить к 1878 году, когда появилась работа Холла об определении числа с помощью случайных бросаний иглы на разграфлённую параллельными линиями бумагу. Существо дела заключается в том, чтобы экспериментально воспроизвести событие, вероятность которого выражается через число , и приближённо оценить эту вероятность. Отечественные работы по методу Монте-Карло появились в 1955-1956 годах. С того времени накопилась обширная библиография по методу Монте-Карло. Даже беглый просмотр названий работ позволяет сделать вывод о применимости метода Монте-Карло для решения прикладных задач из большого числа областей науки и техники.

Метод Монте-Карло оказал и продолжает оказывать существенное влияние на развитие методов вычислительной математики (например, развитие методов численного интегрирования) и при решении многих задач успешно сочетается с другими вычислительными методами и дополняет их.

Сущность метода Монте-Карло состоит в следующем: требуется найти значение, а некоторой изучаемой величины.

Основные цели проекта:

* Применения метода Монте-Карло для расчета функционалов и их параметрических производных от решения и нахождения площади;

* Разработка Задачи Дирихле для уравнения Лапласа;

* Приблизительное вычисление числа Пи. При радиусе окружности 1, а площадь окружности будет равна числу Пи;

* Построение информационной модели;

* Расчет площади по построенному графику и вычисление площади.

1. ОБЩАЯ ЧАСТЬ

1.1 Обзор элементов программирования

Delphi - это среда быстрой разработки, в которой в качестве языка программирования используется язык Delphi. Язык Delphi - строго типизированный объектно-ориентированный язык, в основе которого лежит хорошо знакомый программистам Object Pascal. В настоящее время программистам стала доступна очередная версия пакета Delphi - Borland Delphi 7 Studio. Как и предыдущие версии, Borland Delphi 7 Studio позволяет создавать самые различные программы: от простейших однооконных приложений до программ управления распределенными базами. В состав пакета включены разнообразные утилиты, обеспечивающие работу с базами данных, XML-документами, создание справочной системы, решение других задач. Отличительной особенностью седьмой версии является поддержка технологии .NET.

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

· TMainMenu позволяет Вам поместить главное меню в программу. При помещении TMainMenu на форму это выглядит, как просто иконка. Иконки данного типа называют "невидимыми компонентом", поскольку они невидимы во время выполнения программы. Создание меню включает три шага: (1) помещение TMainMenu на форму, (2) вызов Дизайнера Меню через свойство Items в Инспекторе Объектов, (3) определение пунктов меню в Дизайнере Меню.

· TPopupMenu позволяет создавать всплывающие меню. Этот тип меню появляется по щелчку правой кнопки мыши.

· TLabel служит для отображения текста на экране. Вы можете изменить шрифт и цвет метки, если дважды щелкнете на свойство Font в Инспекторе Объектов. Вы увидите, что это легко сделать и во время выполнения программы, написав всего одну строчку кода.

· TEdit - стандартный управляющий элемент Windows для ввода. Он может быть использован для отображения короткого фрагмента текста и позволяет пользователю вводить текст во время выполнения программы.

· TMemo - иная форма TEdit. Подразумевает работу с большими текстами. TMemo может переносить слова, сохранять в Clipboard фрагменты текста и восстанавливать их, и другие основные функции редактора. TMemo имеет ограничения на объем текста в 32Кб, это составляет 10-20 страниц. (Есть VBX и "родные" компоненты Delphi, где этот предел снят).

· TButton позволяет выполнить какие-либо действия при нажатии кнопки во время выполнения программы. В Delphi все делается очень просто. Поместив TButton на форму, Вы по двойному щелчку можете создать заготовку обработчика события нажатия кнопки. Далее нужно заполнить заготовку кодом (подчеркнуто то, что нужно написать вручную):

· TCheckBox отображает строку текста с маленьким окошком рядом. В окошке можно поставить отметку, которая означает, что что-то выбрано. Например, если посмотреть окно диалога настроек компилятора (пункт меню Options | Project, страница Compiler), то можно увидеть, что оно состоит преимущественно из CheckBox'ов.

· TRadioButton позволяет выбрать только одну опцию из нескольких. Если Вы опять откроете диалог Options | Project и выберете страницу Linker Options, то Вы можете видеть, что секции Map file и Link buffer file состоят из наборов RadioButton.

· TListBox нужен для показа прокручиваемого списка. Классический пример ListBox'а в среде Windows - выбор файла из списка в пункте меню File | Open многих приложений. Названия файлов или директорий и находятся в ListBox'е.

· TComboBox во многом напоминает ListBox, за исключением того, что позволяет водить информацию в маленьком поле ввода сверху ListBox. Есть несколько типов ComboBox, но наиболее популярен выпадающий вниз (drop-down combo box), который можно видеть внизу окна диалога выбора файла.

· TScrollbar - полоса прокрутки, появляется автоматически в объектах редактирования, ListBox'ах при необходимости прокрутки текста для просмотра.

· TGroupBox используется для визуальных целей и для указания Windows, каков порядок перемещения по компонентам на форме (при нажатии клавиши TAB).

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

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

программирование подынтегральный функция edit

2. СПЕЦИАЛЬНАЯ ЧАСТЬ

2.1 Общая постановка задачи

Для нахождения значения методами Монте-Карло выбирают такую случайную величину Х, математическое ожидание которой равно, а: М(Х)=а.

Практически же поступают так: производят n испытаний, в результате которых получают n возможных значений Х; вычисляют их среднее арифметическое и принимают x в качестве оценки (приближённого значения) a* искомого числа a:

.

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

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

,

где Х - случайная величина, - значения, вероятности которых соответственно равны .

Математическое ожидание приближённо равно (тем точнее, чем больше число испытаний) среднему арифметическому наблюдаемых значений случайной величины.

Дисперсией (рассеянием) случайной величины называют математическое ожидание квадрата отклонения случайной величины от её математического ожидания:

(3.1.1)

Средним квадратичным отклонением случайной величины Х называют квадратный корень из дисперсии:

(3.1.2).

Точечной называют оценку, которая определяется одним числом.

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

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

Надёжностью (доверительной вероятностью) оценки по называют вероятность , с которой осуществляется неравенство .

Доверительным называют интервал , который покрывает неизвестный параметр с заданной надёжностью .

Нормальным называют распределение вероятностей непрерывной

случайной величины, которое описывается дифференциальной функцией

(3.1.3)

а - математическое ожидание, - среднее квадратичное отклонение нормального распределения.

Пусть для получения оценки a* математического ожидания а случайной величины Х было произведено n независимых испытаний (разыграно n возможных значений Х) и по ним была найдена выборочная средняя , которая принята в качестве искомой оценки: . Ясно, что если повторить опыт, то будут получены другие возможные значения Х, следовательно, другая средняя, а значит, и другая оценка a*. Уже отсюда следует, что получить точную оценку математического ожидания невозможно. Естественно возникает вопрос о величине допускаемой ошибки. Ограничимся отысканием лишь верхней границы допускаемой ошибки с заданной вероятностью (надёжностью) : .

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

Рассмотрим следующие три случая.

Случайная величина Х распределена нормально и её среднее

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

В этом случае с надёжностью верхняя граница ошибки

,(3.1.4)

где n число испытаний (разыгранных значений Х); t - значение аргумента функции Лапласа, при котором , - известное среднее квадратичное отклонение Х.

Случайная величина Х распределена нормально, причём её среднее квадратическое отклонение неизвестно.

В этом случае с надёжностью верхняя граница ошибки

,(3.1.5)

где n - число испытаний; s - «исправленное» среднее квадратическое отклонение, .

Случайная величина Х распределена по закону, отличному от нормального.

В этом случае при достаточно большом числе испытаний (n>30) с надёжностью, приближённо равной , верхняя граница ошибки может быть вычислена по формуле (3.1.4), если среднее квадратическое отклонение случайной величины Х известно; если же неизвестно, то можно подставить в формулу (3.1.4) его оценку s - «исправленное» среднее квадратическое отклонение либо воспользоваться формулой (3.1.5). Заметим, что чем больше n, тем меньше различие между результатами, которые дают обе формулы. Это объясняется тем, что при распределение Стьюдента стремится к нормальному.

Из изложенного следует, что метод Монте-Карло тесно связан с задачами теории вероятностей, математической статистики и вычислительной математики. В связи с задачей моделирования случайных величин (в особенности равномерно распределённых) существенную роль играют также методы теории чисел.

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

Алгоритмы метода Монте-Карло для решения интегральных уравнений второго рода.

Пусть необходимо вычислить линейный функционал , где , причём для интегрального оператора K с ядром выполняется условие, обеспечивающее сходимость ряда Неймана: . Цепь Маркова определяется начальной плотностью и переходной плотностью ; вероятность обрыва цепи в точке равна . N - случайный номер последнего состояния. Далее определяется функционал от траектории цепи, математическое ожидание которого равно . Чаще всего используется так называемая оценка по столкновениям , где ,. Если при , и при , то при некотором дополнительном условии . Важность достижения малой дисперсии в знакопостоянном случае показывает следующее утверждение: если и , где , то , а . Моделируя подходящую цепь Маркова на ЭВМ, получают статистическую оценку линейных функционалов от решения интегрального уравнения второго рода. Это даёт возможность и локальной оценки решения на основе представления: , где . Методом Монте-Карло оценка первого собственного значения интегрального оператора осуществляется интерациональным методом на основе соотношения . Все рассмотренные результаты почти автоматически распространяются на системы линейных алгебраических уравнений вида . Решение дифференциальных уравнений осуществляется методом Монте-Карло на базе соответствующих интегральных соотношений.

Способ усреднения подынтегральной функции.

В качестве оценки определённого интеграла принимают

, (3.1.6)

где n - число испытаний; - возможные значения случайной величины X, распределённой равномерно в интервале интегрирования , их разыгрывают по формуле , где - случайное число.

Дисперсия усредняемой функции равна

, (3.1.7)

где , . Если точное значение дисперсии вычислить трудно или невозможно, то находят выборочную дисперсию (при n>30) , или исправленную дисперсию (при n<30) , где .

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

В качестве оценки интеграла , где область интегрирования D принадлежит единичному квадрату , , принимают

,(3.1.8)

где S - площадь области интегрирования; N - число случайных точек , принадлежащих области интегрирования.

Если вычислить площадь S трудно, то в качестве её оценки можно принять ; в этом случае формула (3.1.5) имеет вид

,

где n - число испытаний.

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

Если вычислить объём трудно, то в качестве его оценки можно принять , в этом случае формула (3.1.6) имеет вид , где n - число испытаний.

2.2 Описание программ комплекса

Компонент Edit:

Свойство Text - содержит текст, который пользователь набирает в окне Edit. Этот текст надо преобразовать в число Ntotal. Для этого в Delphi есть необходимая функция StrToInt:

Ntotal = StrToInt (Edit1.Text).

Компонент Panel:

Свойство Caption - содержит текст, который выводится на панель. Чтобы вывести полученное число Sfig на панель, мы должны преобразовать его в строку S с помощью процедуры Str:

Str(Sfig:10:4, S),

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

Panel1.Caption:= `Площадь фигуры = ` + S

Компонент Image:

Свойства Height и Width -

соответственно высота и ширина компонента;

Свойство Canvas - отводит канву (место) для рисования на компоненте Image;

Методы Canvas:

FillRect(ClientRect) - закрашивает область клиента компонента Image каким - либо цветом

(по - умолчанию - белым), т.е. стирает предыдущую картинку;

MoveTo(X, Y) - перемещает перо в точку с координатами X, Y без проведения линии (координаты задаются в пикселях);

LineTo(X, Y) - проводит линию из текущей точки в точку с координатами X, Y;

Pixels[I, J] - содержит цвет точки с координатами I, J.

У кнопки (компонент Button) мы будем обрабатывать событие onClick (событие нажатие кнопки). Т.е. вышеописанный алгоритм мы программируем в процедуре Button1Click.

Для создания программы были использованы программные средства:

· Borland Delphi 7 - написание, отладка, компиляция и исполнение текста программы;

· Microsoft Word - для ввода и описания текстового документа (проекта);

· Photoshop 6.0 - Редактирование изображений.

Благодаря тому, что программа создана в среде программирования Borland Delphi она поддерживается любыми версиями Microsoft Windows.

2.3 Таблица идентификатора комплекса

Тип

Обозначение

Описание

Alpha

A

Строка длиной не более 255 символов (аналог ShortString)

Number

N

Число с плавающей точкой (аналог Double)

Money

$

То же, что и Number, но при выводе сопровождается обозначением денежного знака

Short

S

Малое целое (аналог SmallInt)

LongInteger

I

Целое (аналог LongInt)

BCD

#

Число в двоично-десятичном формате

Date

D

Дата в диапазоне от 1 января 9999г. до н.э. до 31 декабря 9999г.

Time

T

Время

Timestamp

@

Дата и время

Memo

M

Строка произвольной длины. Первые 240 символов хранятся в файле основной таблице, остальные - в файле с BLOB-данными

Formatted Memo

F

То же, что и Memo но для RTF-текста

Graphic

G

Графическое изображение в формате BMP, PCX, TIFF, GIF или EPS. При выводе преобразуется в BMP, хранится в файле с BLOB-данными

OLE

O

Произвольные данные, которые поддерживаются через OLE. Хранятся в файле в BLOB-данными

Logical

L

Логическое значение (TRUE или FALSE)

Autoincrement

+

Автоинкрементное поле. При добавлении новой записи значение этого поля автоматически увеличивается на 1

Binary

B

Двоичная информация (произвольная последовательность байтов). Подобно Memo, первые 240 байт хранятся в файле основной таблицы, остальные - в BLOB

Bytes

Y

Двоичная информация (произвольная последовательность байтов) длиной не более 255 символов

2.4 Описание наборов данных

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

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

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

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

Тип

Функции

Const

Variable;

Это переменная, значение которой нельзя изменить.

N

Integer;

Переменная для вывода отдельного элемента

A

Real;

Переменная для ввода отдельного элемента

Cos

Real;

подсчитывает косинус числа

Max

Integer;

Переменная для вывода максимального целочисленного элемента

Min

Integer;

Переменная для вывода минимального целочисленного элемента

Y

Integer;

Переменная для вывода отдельного элемента

X

Integer;

Переменная для вывода отдельного элемента

KH

Integer;

Количество шагов сетки

sH

Integer;

Шаг сетки в пикселах

I

Integer;

Переменная для вывода отдельного элемента

r

Real;

Переменная для замены элементы матрицы

p

Real;

Переменная для замены элементы матрицы

K1

Integer;

Переменная для рисования графика

K2

Integer;

Переменная для рисования графика

st

String;

Для вывода строки

M

Integer;

Переменная для вывода отдельного элемента

Sin

Real;

Подсчитывает синус числа

3. ОРГАНИЗАЦИЯ ПРОИЗВОДСТВА

3.1 Комплекс технических средств необходимых для решения задачи

Для работы программы “Решение Методом Монте-Карло” потребуется:

Системные требования:

* Процессор: Core 2 Duo;

* Память: 1 Gb; (2 GB recommended);

* Видеокарта: 256 Mb;

* Свободное место на диске: 30 Mb;

* Операционная система: Windows 7, Windows Vista с пакетом обновления 1 (SP1), Windows Server 2003 с пакетом обновления 2 (SP2).

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

Инсталляция программы не требуется.

3.1 Инструкция пользователю по работе с программой

Чтобы начать работу с программой вычисления методами Монте-Карло необходимо дважды щелкнуть по файлу «MonteKarlo.exe».

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

Рис. 1 Главная форма программы.

Допустим, Вы выбрали первый метод решения “Нахождение площади методом Монте-Карло”

Рис. 2 Вычисление площади.

Необходимо ввести количество испытаний для наглядного примера решения задачи и нажать на кнопку “Вычислить”. Вы увидите точечный рисунок на форме и найденная площадь фигуры. Для того чтобы очистить форму от рисунка и найденного ранее вычисления площади достаточно нажать на кнопку “Очистить”.

Так же для выбора других методов следует выбрать в “Меню” нужный Вам метод. Чтобы вернуться на главную форму выбора методов следует нажать на кнопку “Вернуться”. Для полного выхода из программы нажать на “Выход”.

Рис. 3 Вычисление площади(обозначения)

Для более детального описания работы различных методов нужно при открытие выбранного Вами метода, нажать на пункт меню “Информация”

Рис. 4 Информация.

ЗАКЛЮЧЕНИЕ

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

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

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

· Возможность выводить рисунок с построение точек;

· Нахождение площади фигуры решаемых испытаний;

· Построение графиков;

· Нахождение приблизительного числа П.

СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ

1. И.М.Соболь «Метод Монте-Карло», Москва, 2001 г.

2. И.М.Соболь «Численные методы Монте-Карло», Москва, 2003 г.

3. С.Бобровский «Delphi 5: Учебный курс.», Питер, 2003 г.

4. С.Бобровский «Delphi 7: Учебный курс.» Питер, 2007 г.

5. В.Побельский, С.Фомин «Программирование языке Delphi», Москва, 2001 г.

6. М.Прохоров. «Большая Российская энциклопедия», 2002 г.

7. С.М.Ермаков. «Методы Монте-Карло и смежные вопросы.», 2000 г.

ЛИСТИНГ ПРОГРАММЫ

unit Unit2;

interface

uses

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

Dialogs, ExtCtrls, StdCtrls, Buttons, jpeg, Menus;

type

TForm2 = class(TForm)

Label1: TLabel;

BitBtn1: TBitBtn;

Image1: TImage;

Label2: TLabel;

Edit1: TEdit;

Panel1: TPanel;

Panel2: TPanel;

BitBtn2: TBitBtn;

Label3: TLabel;

BitBtn3: TBitBtn;

BitBtn4: TBitBtn;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N21: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure BitBtn4Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure N21Click(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure N7Click(Sender: TObject);

procedure N2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

const A = -Pi/2.0; B = pi/2.0; n = 1000;

var

Form2: TForm2;

N_total:longint;

implementation

uses Unit1, Unit3, Unit4, Unit5, Unit6, Unit8;

{$R *.dfm}

Function FUNC(x:real):real;

begin

Func:=Cos(x);

end;

Procedure Graphic( var right, down: integer;

var X_min, X_max, Y_min, Y_max, Kx, Ky: real);

type arr=array[1..n] of real;

var

X, Y: arr; dx: real;

i: integer;

begin

dx:=(B-A)/(n-1);

for i:=1 to n do begin X[i]:=A+dx*(i-1);

Y[i]:=FUNC(X[i]);

end;

{Нахождение максимального и минимального значений функции и аргумента}

X_max:=B; X_min:=A;

Y_max:=Y[1]; Y_min:=Y[1];

for i:=2 to n do begin

if Y_max < Y[i] then Y_max:=Y[i];

if Y_min > Y[i] then Y_min:=Y[i];

end;

{Нахождение коэффициентов сжатия}

Kx:=right/(X_max-X_min);

Ky:=down/(Y_max-Y_min);

{Устранение искажения графика}

if Kx < Ky then begin

Ky:=Kx;

down:=round((Y_max-Y_min)*Ky);

end

else begin

Kx:=Ky;

right:=round((X_max-X_min)*Kx);

end;

end;

procedure TForm2.BitBtn1Click(Sender: TObject);

var N_total, N_fig, i:longint;

S_total,S_fig,X,Y:real;

Xg, Yg: integer;

X_min, X_max, Y_min, Y_max, Kx, Ky : real;

Right, Down: integer;

S:string;

begin

randomize;

With Image1, Canvas do

begin

FillRect(ClientRect);

Right := Width;

Down := Height;

Graphic(Right, Down, X_min, X_max, Y_min, Y_max, Kx, Ky);

Width := Right ;

Height := Down ;

{Рисование осей}

Xg:=round(-X_min*Kx);

Yg:=Down-round(-Y_min*Ky);

{Ось Y}

MoveTo(Xg,Down);

LineTo(Xg, 0);

moveto(Xg, 0);

lineto(Xg+4, 10);

moveto(Xg, 0);

lineto(Xg-4, 10);

{Ось Х}

MoveTo(0, Yg-1);

lineTo( Right, Yg-1);

moveto(Right, Yg);

lineto(Right-10, Yg+5);

moveto(Right, Yg);

lineto(Right-10, Yg-5);

N_fig:=0;

N_total:=StrToInt(Edit1.Text);

{Розыгрыш координат точек}

for i:=1 to N_total do

begin

X:=random*(B-A)+A;

Y:=random*(Y_max-Y_min)+Y_min;

if Y <= FUNC(X)then

begin

Xg:=round((X-X_min)*Kx);

Yg:=Down-round((Y-Y_min)*Ky);

Pixels[Xg, Yg]:=clBlack;

Application.ProcessMessages;

N_fig:=N_fig+1;

end;

end;

end;

S_fig:=(Y_max-Y_min)*(B-A)*N_fig/N_total;

Str(S_fig:10:4,S);

Panel1.Caption:='Площадь фигуры = '+S;

Panel2.Caption:='Pi = 3.1416';

end;

procedure TForm2.BitBtn2Click(Sender: TObject);

begin

Form1.Show;

Form2.Hide;

end;

procedure TForm2.BitBtn3Click(Sender: TObject);

begin

Form1.close;

Form2.Close;

Form3.Close;

Form4.Close;

Form5.Close;

Form6.Close;

end;

procedure TForm2.BitBtn4Click(Sender: TObject);

begin

Image1.picture:=nil;

Panel1.Caption:='';

end;

procedure TForm2.N3Click(Sender: TObject);

begin

Form1.close;

Form2.Close;

Form3.Close;

Form4.Close;

Form5.Close;

Form6.Close;

end;

procedure TForm2.N4Click(Sender: TObject);

begin

Form1.Show;

Form2.Hide;

end;

procedure TForm2.N21Click(Sender: TObject);

begin

Form3.Show;

end;

procedure TForm2.N6Click(Sender: TObject);

begin

Form5.Show;

end;

procedure TForm2.N5Click(Sender: TObject);

begin

Form4.Show;

end;

procedure TForm2.N7Click(Sender: TObject);

begin

Form6.Show;

end;

procedure TForm2.N2Click(Sender: TObject);

begin

Form8.Show;

end;

end.

unit Unit3;

interface

uses

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

Dialogs, StdCtrls, ExtCtrls, Math, Buttons, Menus;

type

TForm3 = class(TForm)

PaintBox1: TPaintBox;

Label1: TLabel;

Edit1: TEdit;

Label2: TLabel;

Edit2: TEdit;

Label3: TLabel;

Edit3: TEdit;

Memo1: TMemo;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N11: TMenuItem;

Label4: TLabel;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

procedure PaintBox1Paint(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure N11Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure N7Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure N2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form3: TForm3;

KH : Integer; //Количество шагов сетки

sH : Integer = 0; //Шаг сетки в пикселах

Tochka : TPoint; //Наша точка

ArrPoinr : Array Of TPoint;

implementation

uses Unit1, Unit2, Unit4, Unit5, Unit6, Unit9;

{$R *.dfm}

procedure TForm3.PaintBox1Paint(Sender: TObject);

Var

i : Integer;

begin

If sH=0 Then Exit;

//Перерисовка пути точки...

With PaintBox1, PaintBox1.Canvas Do

Begin

Pen.Color:=clBlack;

//Очищаем поле...

FillRect(ClientRect);

//Рисуем сетку...

Pen.Width:=1;

for i:=0 to KH do

begin

moveto(Min(i*sH,Width-1),0);

lineto(Min(i*sH,Width-1),Height);

moveto(0,Min(i*sH,Height-1));

lineto(Width,Min(i*sH,Height-1));

end;

Pen.Width:=2; //Величина линии между точками

Pen.Color:=clRed;

moveto(ArrPoinr[0].X*sH,ArrPoinr[0].Y*sH);

Ellipse(ArrPoinr[0].X*sH-2,ArrPoinr[0].Y*sH-2,ArrPoinr[0].X*sH+2,ArrPoinr[0].Y*sH+2);

For i:=1 To Length(ArrPoinr)-1 Do

Begin

//Линия до следующей точки

Lineto(ArrPoinr[i].X*sH,ArrPoinr[i].Y*sH);

Ellipse(ArrPoinr[i].X*sH-2,ArrPoinr[i].Y*sH-2,ArrPoinr[i].X*sH+2,ArrPoinr[i].Y*sH+2);

End;

End;

end;

procedure TForm3.BitBtn1Click(Sender: TObject);

Var

r : Byte;

begin

Randomize;

Memo1.Lines.Clear;

KH:=StrToInt(Edit1.Text);

//Начальные координаты точки

Tochka.X:=StrToInt(Edit2.Text);

Tochka.Y:=StrToInt(Edit3.Text);

sH:=(PaintBox1.Height Div KH);

SetLength(ArrPoinr,1); //Для первой точки

ArrPoinr[0]:=Tochka; //Первое положение точки в массив

//Перемещаем точку...

Repeat

r:=Random(101);

Case r Of

0..25 : Tochka.X:=Tochka.X+1;

26..50 : Tochka.Y:=Tochka.Y-1;

51..75 : Tochka.X:=Tochka.X-1;

76..100 : Tochka.Y:=Tochka.Y+1; //Вниз

End;

SetLength(ArrPoinr,Length(ArrPoinr)+1); //Для следующей точки

ArrPoinr[Length(ArrPoinr)-1]:=Tochka; //Очередное положение точки в массив

Memo1.Lines.Add(FloatToStrF(r/100,ffFixed,6,2));

PaintBox1.OnPaint(Sender);

//.Refresh; //Перерисуем PaintBox

Application.ProcessMessages; //Позволяем перерисовать

Until ((Tochka.X=0) Or (Tochka.Y=0) Or (Tochka.X=10) Or (Tochka.Y=10));

//Перемещение закончено

//SetLength(ArrPoinr) = количество шагов перемещения точки в массиве

//в Memo1 - тоже все значения перемещения точки

//ЗДЕСЬ ОБРАБОТКА.........

sH:=0;

Finalize(ArrPoinr); //Освобождаем память массива...

end;

procedure TForm3.BitBtn2Click(Sender: TObject);

begin

Form1.close;

Form2.Close;

Form3.Close;

Form4.Close;

Form5.Close;

Form6.Close;

end;

procedure TForm3.BitBtn3Click(Sender: TObject);

begin

Form1.Show;

Form3.Hide;

end;

procedure TForm3.N11Click(Sender: TObject);

begin

Form2.Show;

end;

procedure TForm3.N3Click(Sender: TObject);

begin

Form1.close;

Form2.Close;

Form3.Close;

Form4.Close;

Form5.Close;

Form6.Close;

end;

procedure TForm3.N5Click(Sender: TObject);

begin

Form4.Show;

end;

procedure TForm3.N6Click(Sender: TObject);

begin

Form5.Show;

end;

procedure TForm3.N7Click(Sender: TObject);

begin

Form6.Show;

end;

procedure TForm3.N4Click(Sender: TObject);

begin

Form1.Show;

Form3.Hide;

end;

procedure TForm3.N2Click(Sender: TObject);

begin

Form9.Show;

end;

end.

unit Unit4;

interface

uses

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

Dialogs, StdCtrls, Buttons, Menus;

type

TForm4 = class(TForm)

BitBtn1: TBitBtn;

Memo1: TMemo;

Memo2: TMemo;

Label1: TLabel;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure N7Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form4: TForm4;

x,y,i,k1,k2:integer; r,p:real; st:string;

implementation

uses Unit1, Unit2, Unit3, Unit5, Unit6;

{$R *.dfm}

procedure TForm4.BitBtn1Click(Sender: TObject);

begin

Form1.close;

Form2.Close;

Form3.Close;

Form4.Close;

end;

procedure TForm4.BitBtn2Click(Sender: TObject);

begin

Form1.Show;

Form4.Hide;

end;

procedure TForm4.BitBtn3Click(Sender: TObject);

begin

randomize; k1:=0;

with form4.Canvas do begin

for i:=1 to 200000 do begin

x:=random(300);

y:=random(300);

r:=sqrt((x-150)*(x-150)+(y-150)*(y-150));

if r<=150 then begin

Pixels[x+30, y+30]:=$000000FF;

inc(k1);

end

Else

begin

Pixels[x+30, y+30]:=$00FF0000;

end;

end;

p:=4*k1/200000;

str(p,st);

TextOut(10, 300, st);

end;

end;

procedure TForm4.N2Click(Sender: TObject);

begin

Form1.close;

Form2.Close;

Form3.Close;

Form4.Close;

Form5.Close;

Form6.Close;

end;

procedure TForm4.N3Click(Sender: TObject);

begin

Form1.Show;

Form4.Hide;

end;

procedure TForm4.N4Click(Sender: TObject);

begin

Form2.Show;

end;

procedure TForm4.N5Click(Sender: TObject);

begin

Form3.Show;

end;

procedure TForm4.N6Click(Sender: TObject);

begin

Form5.Show;

end;

procedure TForm4.N7Click(Sender: TObject);

begin

Form6.Show;

end;

end.

unit Unit5;

interface

uses

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

Dialogs, Math, StdCtrls, ExtCtrls, Buttons, Menus;

type

TForm5 = class(TForm)

Image1: TImage;

Edit1: TEdit;

Edit2: TEdit;

Label1: TLabel;

Label2: TLabel;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

BitBtn3: TBitBtn;

BitBtn4: TBitBtn;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

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

procedure Edit1KeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

procedure BitBtn3Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure BitBtn4Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure N7Click(Sender: TObject);

procedure N8Click(Sender: TObject);

procedure N3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form5: TForm5;

R: integer; //радиус

N: integer; //количество "брошенных" точек

X: real; //координата точек X

Y: real; //координата точек Y

M: integer; //количество точек, попавших

I: integer;

implementation

uses Unit1, Unit2, Unit3, Unit4, Unit10, Unit6;

{$R *.dfm}

procedure TForm5.BitBtn1Click(Sender: TObject);

begin

//Стирание

Image1.Canvas.Brush.Color := clWhite;

Image1.Canvas.Rectangle(100-R,100-R,100+R,100+R); Image1.Canvas.FillRect(Rect(100-R, 100-R, 100+R,100+R));

M:=0;

//Ввод значений

R:=StrToInt(Edit1.Text);

N:=StrToInt(Edit2.Text);

//Рисование квадрата и круга

Image1.Canvas.Rectangle(100-R,100-R,100+R,100+R); Image1.Canvas.Ellipse(100-R, 100-R,100+R, 100+R); //Генерация точек Randomize;

For I:=1 To N do begin

X:=Random(2*R)-R;

Y:=Random(2*R)-R;

Image1.Canvas.Pixels[Round(X)+100,

Round(Y)+100]:=clRed;

If Sqr(X)+Sqr(Y)<=Sqr(R)

Then M:=M+1

end;

//Площадь

Label1.Caption:=FloatToStr(4*Sqr(R)*M/N);

//Число PI

Label2.Caption:=FloatToStr(4*M/N);

end;

procedure TForm5.BitBtn2Click(Sender: TObject);

begin

Image1.picture:=nil;

label1.caption:='Вывод значений площади круга';

label2.caption:='Вывод значений числа Pi';

end;

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

const

D = ['0', '1', '5', #8];

begin

if not (Key in D) then Key := #0;

end;

procedure TForm5.Edit1KeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

begin

if (ssShift in Shift) and (Key = VK_INSERT) then Abort;

end;

procedure TForm5.BitBtn3Click(Sender: TObject);

begin

Form1.close;

Form2.Close;

Form3.Close;

Form4.Close;

Form5.Close;

end;

procedure TForm5.N2Click(Sender: TObject);

begin

Form10.Show;

end;

procedure TForm5.BitBtn4Click(Sender: TObject);

begin

Form1.Show;

Form5.Hide;

end;

procedure TForm5.N4Click(Sender: TObject);

begin

Form1.Show;

Form5.Hide;

end;

procedure TForm5.N5Click(Sender: TObject);

begin

Form2.Show;

end;

procedure TForm5.N6Click(Sender: TObject);

begin

Form3.Show;

end;

procedure TForm5.N7Click(Sender: TObject);

begin

Form4.Show;

end;

procedure TForm5.N8Click(Sender: TObject);

begin

Form6.Show;

end;

procedure TForm5.N3Click(Sender: TObject);

begin

Form1.close;

Form2.Close;

Form3.Close;

Form4.Close;

Form5.Close;

Form6.Close;

end;

end.

unit Unit6;

interface

uses

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

Dialogs, StdCtrls, Buttons, Menus, ExtCtrls;

type

TForm6 = class(TForm)

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

Edit1: TEdit;

Edit2: TEdit;

BitBtn3: TBitBtn;

BitBtn4: TBitBtn;

BitBtn5: TBitBtn;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

Panel1: TPanel;

Panel2: TPanel;

BitBtn6: TBitBtn;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

procedure BitBtn3Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn4Click(Sender: TObject);

procedure BitBtn5Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure BitBtn6Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure N7Click(Sender: TObject);

procedure N8Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form6: TForm6;

N: integer;

M: integer;

implementation

uses Unit1, Unit2, Unit3, Unit4, Unit5, Unit11;

{$R *.dfm}

procedure TForm6.BitBtn3Click(Sender: TObject);

var x0, y0, y, a: real;

b,k, i, c: integer;

begin

Randomize;

k:=0;

c:= strtoint(Form6.Edit2.Text);

For i:=1 to c do

begin

x0:=Random(100)+250;

//a:=round((x0-250)/10);

a:=(x0-250)/10;

y0:=250 - a*a;

y:=Random(100)+ 150;

If y<y0 then

begin

k:=k+1;

Canvas.Pixels [round(x0), round(y)]:=clNavy;

end;

end;

N:=k;

M:=c;

end;

procedure TForm6.BitBtn1Click(Sender: TObject);

var

a:integer;

b: integer;

x0, y0: real;

x, y: real;

begin

with Canvas do

begin

TextOut (250, 35, 'y'); // надпись оси координат y

TextOut (455, 245, 'x'); // надпись оси координат x // полотнище

Canvas.Pen.Width := 1;

Canvas.Pen.Color := clBlack;

// Canvas.Brush.Color := clCream;

// Rectangle(50,50,450,450);

// координатная ось

TextOut (240, 255, '0'); // надпись центра оси координат

Form6.Canvas.MoveTo(245,55);// стрелка

Form6.Canvas.LineTo(250,50); // левая по y

Form6.Canvas.MoveTo(250,50);// стрелка

Form6.Canvas.LineTo(257,56); // правая по y

Form6.Canvas.MoveTo(445,245);// стрелка

Form6.Canvas.LineTo(450,250); // левая по y

Form6.Canvas.MoveTo(450,250);// стрелка

Form6.Canvas.LineTo(445,255); // правая по y

Form6.Canvas.MoveTo(50,250);// Ось

Form6.Canvas.LineTo(450,250); // Х

Form6.Canvas.MoveTo(250,50);// Ось

Form6.Canvas.LineTo(250,450); // Y

// засечка 1 по оси y

Form6.Canvas.MoveTo(245,150);

Form6.Canvas.LineTo(255,150);

TextOut (240, 150, '1');

// засечка 1 по оси x

Form6.Canvas.MoveTo(350,245);

Form6.Canvas.LineTo(350,255);

TextOut (350, 255, '1');

// асимптота 1

Canvas.Pen.Width := 3;

Canvas.Pen.Color := clGreen;

Form6.Canvas.MoveTo(250,150);

Form6.Canvas.LineTo(350,150);

// асимптота 2

Canvas.Pen.Width := 3;

Canvas.Pen.Color := clBlue;

Form6.Canvas.MoveTo(250,250);

Form6.Canvas.LineTo(350,250);

end;

// парабола

with Canvas do

begin

x0:=250;

y0:=250;

x:=0;

Canvas.Pen.Width:=5;

while x0<=340 do

begin

y:=x*x;

Canvas.Pixels[round(x0)+round(x), round(y0)-round(y)]:=clRed;

x:=x+0.1;

x0:=x0+0.9;

end;

end;

end;

procedure TForm6.BitBtn2Click(Sender: TObject);

var S: real;

begin

S:=N/M;

Form6.Edit1.Text:=floattostr(S);

end;

procedure TForm6.BitBtn4Click(Sender: TObject);

begin

Canvas.Brush.Color := clBtnShadow;

Canvas.FillRect(Canvas.ClipRect);

Edit1.Clear;

end;

procedure TForm6.BitBtn5Click(Sender: TObject);

begin

Form1.close;

Form2.Close;

Form3.Close;

Form4.Close;

Form5.Close;

Form6.Close;

end;

procedure TForm6.N3Click(Sender: TObject);

begin

Form1.close;

Form2.Close;

Form3.Close;

Form4.Close;

Form5.Close;

Form6.Close;

end;

procedure TForm6.BitBtn6Click(Sender: TObject);

begin

Form1.Show;

Form6.Hide;

end;

procedure TForm6.N2Click(Sender: TObject);

begin

Form11.show;

end;

procedure TForm6.N4Click(Sender: TObject);

begin

Form1.Show;

Form6.Hide;

end;

procedure TForm6.N5Click(Sender: TObject);

begin

Form2.Show;

end;

procedure TForm6.N6Click(Sender: TObject);

begin

Form3.Show;

end;

procedure TForm6.N7Click(Sender: TObject);

begin

Form4.Show;

end;

procedure TForm6.N8Click(Sender: TObject);

begin

Form5.Show;

end;

end.

unit Unit7;

interface

uses

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

Dialogs, Menus, StdCtrls, Buttons;

type

TForm7 = class(TForm)

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

BitBtn3: TBitBtn;

procedure BitBtn3Click(Sender: TObject);

procedure N3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form7: TForm7;

implementation

uses Unit1, Unit2, Unit3, Unit4, Unit5, Unit6;

{$R *.dfm}

procedure TForm7.BitBtn3Click(Sender: TObject);

begin

Form1.Show;

Form7.Hide;

end;

procedure TForm7.N3Click(Sender: TObject);

begin

Form1.close;

Form2.Close;

Form3.Close;

Form4.Close;

Form5.Close;

Form6.Close;

end;

end.

unit Unit8;

interface

uses

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

Dialogs, StdCtrls, Buttons;

type

TForm8 = class(TForm)

BitBtn2: TBitBtn;

BitBtn4: TBitBtn;

BitBtn3: TBitBtn;

BitBtn1: TBitBtn;

Memo1: TMemo;

Label5: TLabel;

Label2: TLabel;

Label3: TLabel;

Label1: TLabel;

Label6: TLabel;

Label7: TLabel;

procedure BitBtn2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form8: TForm8;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm8.BitBtn2Click(Sender: TObject);

begin

Form2.Show;

Form8.Hide;

end;

end.

unit Unit9;

interface

uses

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

Dialogs, StdCtrls, Buttons;

type

TForm9 = class(TForm)

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

Label1: TLabel;

Label3: TLabel;

Memo1: TMemo;

Label6: TLabel;

Label2: TLabel;

BitBtn3: TBitBtn;

Label4: TLabel;

Memo2: TMemo;

Label5: TLabel;

procedure BitBtn3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form9: TForm9;

implementation

uses Unit3;

{$R *.dfm}

procedure TForm9.BitBtn3Click(Sender: TObject);

begin

Form3.Show;

Form9.Hide;

end;

end.

unit Unit10;

interface

uses

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

Dialogs, StdCtrls, Buttons;

type

TForm10 = class(TForm)

Memo1: TMemo;

BitBtn1: TBitBtn;

Label5: TLabel;

Label6: TLabel;

BitBtn4: TBitBtn;

Label7: TLabel;

Label2: TLabel;

BitBtn3: TBitBtn;

Label1: TLabel;

Label3: TLabel;

BitBtn2: TBitBtn;

procedure BitBtn2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form10: TForm10;

implementation

uses Unit4, Unit5;

{$R *.dfm}

procedure TForm10.BitBtn2Click(Sender: TObject);

begin

Form5.Show;

Form10.Hide;

end;

end.

unit Unit11;

interface

uses

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

Dialogs, StdCtrls, Buttons;

type

TForm11 = class(TForm)

BitBtn2: TBitBtn;

BitBtn1: TBitBtn;

BitBtn3: TBitBtn;

BitBtn4: TBitBtn;

BitBtn5: TBitBtn;

BitBtn6: TBitBtn;

Label7: TLabel;

Label2: TLabel;

Label3: TLabel;

Label1: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

procedure BitBtn2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form11: TForm11;

implementation

uses Unit6;

{$R *.dfm}

procedure TForm11.BitBtn2Click(Sender: TObject);

begin

Form6.Show;

Form11.Hide;

end;

end.

unit Unit12;

interface

uses

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

Dialogs, StdCtrls, Buttons;

type

TForm12 = class(TForm)

Memo1: TMemo;

BitBtn1: TBitBtn;

procedure BitBtn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form12: TForm12;

implementation

uses Unit1;

{$R *.dfm}

procedure TForm12.BitBtn1Click(Sender: TObject);

begin

Form1.Show;

Form12.Hide;

end;

end.

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

...

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

  • Характеристика основных методов для решения различных задач с помощью случайных последовательностей. Реализация и проверка эффективности метода Монте-Карло при его применении на различных примерах. Алгоритм метода имитации. Издержки неопределенности.

    курсовая работа [98,9 K], добавлен 04.05.2014

  • Некоторые сведения теории вероятностей. Математическое ожидание, дисперсия. Точность оценки, доверительная вероятность. Сущность метода Монте-Карло. Генераторы случайных чисел. Вычисление кратных интегралов. Описание пользовательского интерфейса.

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

  • Запросы клиента по области возможных запросов к серверу. Программа для прогнозирования поведения надежности программного обеспечения на основе метода Монте-Карло. Влияние количества программ-клиентов на поведение программной системы клиент-сервера.

    контрольная работа [705,3 K], добавлен 03.12.2010

  • Изучение дисперсных систем и создание программы, реализующей метод Монте-Карло и моделирующей распределение частиц в определенной области. Исследование методов линейных итераций и вязкой суспензии. Характеристики распределения порошков по размерам.

    контрольная работа [1,4 M], добавлен 05.12.2014

  • Стадии процесса моделирования. Функция распределения непрерывной случайной величины. Методы моделирования (обратной функции, суперпозиции, исключения). Нормальные случайные величины. Метод Монте-Карло, точки равновесия. Моделирование динамических систем.

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

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

    курсовая работа [397,6 K], добавлен 06.04.2014

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

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

  • Описание математических методов решения систем линейных уравнений. Метод Гаусса, матричный метод. Вычисление определителей второго и третьего порядка. Язык программирования Паскаль. Структура программы, описание переменных, основные конструкции языка.

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

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

    методичка [185,7 K], добавлен 18.12.2014

  • Основы метода Монте-Карло и его применение. Разработка и тестирование программного модуля для ПК BRAND, позволяющего строить двумерные и трехмерные изображения для сложных геометрических объектов для обеспечения контроля за качеством сборки конструкций.

    дипломная работа [5,2 M], добавлен 10.10.2015

  • Основные подходы к математическому моделированию макромолекул. Методы молекулярной динамики и Монте-Карло. Механическая модель молекулы. Применения компьютерного эксперимента. Механическая модель молекулы. Преимущества компьютерного моделирования.

    реферат [44,9 K], добавлен 19.03.2009

  • Проект и реализация настольного и веб-приложения, которое считает площадь фигуры методом "Монте-Карло" на базе WPF/C#, ASP/JScript, WebForm/ASMX/C#. Программные средства разработки приложения. Системные требования. Руководство программиста, пользователя.

    курсовая работа [819,9 K], добавлен 23.11.2015

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

    курсовая работа [500,4 K], добавлен 28.05.2013

  • Ключи, стрелки и контакты в разделе Miscellaneous (Смесь) пакета MicroCAP-7. Устройство выборки-хранения Sample and Hold. Многовариантный анализ и параметрическая оптимизация. Статистический анализ по методу Монте-Карло. Анимация и трехмерные графики.

    реферат [436,1 K], добавлен 23.01.2011

  • Расчет коэффициентов физического распыления материалов при бомбардировке потоками ионов. Определение искомых зависимостей методом Монте-Карло в пакете SRIM. Диаграмма Экштайна для энергии ионов ксенона 600 эВ, а также изотропизация налетающего потока.

    контрольная работа [532,4 K], добавлен 27.05.2013

  • Проектирование и реализация 3 приложений, каждое из которых считает площадь фигуры методом "Монте-Карло". Программные средства разработки приложения. Диаграммы классов Triangle, Rectangle и IceCream. Логическое проектирование серверной части приложения.

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

  • Применение алгебры высказываний в информатике. Надстройки Microsoft Excel. Применение формул, таблиц, диаграмм. Моделирование реальных систем массового обслуживания с учетом различия серверов. Надстройка "Моделирование Монте-Карло", Дерево решений".

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

  • Азартные игры и наблюдение за спортивными состязаниями. Моделирование методом Монте-Карло - мощное средство, позволяющее определять вероятность событий в азартных играх и спорте. Моделирование вероятности событий с помощью программы Microsoft Excel.

    реферат [801,3 K], добавлен 13.05.2009

  • Назначение, создание современной информационно-аналитической системы. Формирование рабочей документации в среде Microsoft Project. Расчет длительности проекта методом Монте-Карло. Моделирование типов связи. Проектирование интерфейсов пользователя.

    курсовая работа [4,9 M], добавлен 16.12.2014

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

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

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