Построение графиков функций

 

Введение

программа интерфейс компьютер операционный

Тема моего курсового проекта «Построение графиков функции». Целью является разработка программного средства с возможностями графического отображения графиков функций.

Программу может использовать любой пользователь. Программа очень проста в использовании.

Для написания данной программы я выбрал визуальную среду разработки Borland Delphi Eenterprise 7, так как этот язык наиболее подходит для решения поставленной задачи.



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


.1Описание предметной области


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

графически отображать выбранные пользователем функции.

Программа должна соответствовать следующим требованиям:

-должен быть реализован простой и удобный пользовательский интерфейс;

-должен быть реализован просмотр постоянной информации;

Данная программа может использоваться всеми пользователями имеющими персональный компьютер.


1.2 Входная информация


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


1.3 Выходная информация


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


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


Таблица - Блоки

Решение - блок выбора направления выполнения алгоритма в зависимости от некоторых условий. В результате проверки условия осуществляется выбор одного из нескольких возможных путей.Решение - блок выбора направления выполнения алгоритма в зависимости от некоторых условий. В результате проверки условия осуществляется выбор одного из нескольких возможных путей.Предопределенный процесс - блок описания процесса из одной или нескольких операций, описанных в отдельном модуле (самостоятельном алгоритме).соединитель - указание связи между прерванными линиями потока, связывающими блоки.терминатор - обозначает начало или конец алгоритма.линия потока - отображает потоки данных и управления в алгоритме.Данные - блок описания операции ввода / вывода данных, для которой не определено конкретное устройство.


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

В колонке «Выбор функции графика» находятся 9 функций графиков, выбрать можно только 1 функцию (по умолчанию выбрана первая функция). При нажатии на главном меню пункта «Перейти» открываются две кнопки:

-«Выбор функции графика» - заблокирован, так как мы находимся как раз в этой форме.

«Построение графика» - дублирует кнопку «Далее».

При нажатии на главном меню пункта «Справка» открываются две кнопки:

«Помощь» - Инструкция к программе (Быстрый вызов - F1).

«О программе» - краткие сведения об авторе.

При нажатии на главном меню пункта «Выход» открывается окно «Завершить программу?». При нажатии «Да» происходит завершение программы; «Нет» - программа продолжает работу.

При нажатии кнопки «Далее» происходит переход на следующую форму.

На следующей форме, при нажатии на кнопку «Нарисовать» отображается слева ранее выбранная функция графика (по умолчанию первая). При нажатии кнопки «Выход» открывается окно «Завершить программу?». При нажатии «Да» происходит завершение программы; «Нет» - программа продолжает работу. В некоторых функциях можно ввести свои переменные, о чем свидетельствует появление полей ввода (на второй форме при выборе той или иной функции (на первой форме). При нажатии на кнопку «Функции графиков» происходит возврат на первую форму, где находится список всех рабочих функций.



2. Вычислительная система


.1 Основные характеристики выбранного персонального компьютера


Платформа разработки:

процессор: Intel(R) Core™ i3 CPU M 350 @2.27GHz 927 МГц;

оперативная память: DDR-3, 3Gb;

жесткий диск: HDD 300Gb;

монитор;

клавиатура;

мышь;

Минимальные требования:

-процессор: Intel Pentium 500Hz;

-оперативная память: DDR-1, 64Мб;

-монитор, поддерживающий расширение экрана 1024х768;

-не менее 135 Мб свободного места на жестком диске;

-клавиатура;

-мышь;

-звуковая карта;


2.2 Характеристика программных средств


Операционная система

Персональная электронно-вычислительная система должна быть обеспечена операционной системой MS Windows 2000/XP/Vista/Seven/8;

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

Версия windows 7 - операционная система семейства Windows NT, следующая за Windows Vista. В линейке Windows NT система носит номер версии 6.1 (windows 2000 - 5.0, windows xp - 5.1, windows server 2003 - 5.2, windows vista и windows server 2008 - 6.0). серверной версией является windows server 2008 r2, версией для интегрированных систем - windows embedded standard 2011 (quebec) [1], мобильной - windows embedded compact 2011 (chelan, windows ce 7.0).

Операционная система поступила в продажу 22 октября 2009 года, меньше чем через три года после выпуска предыдущей операционной системы, Windows Vista. Партнёрам и клиентам, обладающим лицензией Volume Licensing, доступ к RTM был предоставлен 24 июля 2009 года. Финальная (копия с дисков, которые потом пошли в продажу) пиратская версия была доступна всем с первых чисел августа 2009 года.

В состав windows 7 вошли как некоторые разработки, исключённые из windows vista, так и новшества в интерфейсе и встроенных программах. из состава windows 7 были исключены игры inkball, ultimate extras; приложения, имеющие аналоги в windows live (почта windows, календарь windows и пр.), технология microsoft agent, windows meeting space; из меню «пуск» исчезла возможность вернуться к классическому меню и автоматическая пристыковка браузера и клиента электронной почты.

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

В windows 7 реализована более гибкая настройка user account control (uac), которая в отличие от windows vista имеет ещё два промежуточных состояния между режимами «всегда уведомлять» и «никогда не уведомлять» - «уведомлять, только при попытках программ внести изменения в компьютер» (положение по умолчанию), «уведомлять, только при попытках программ внести изменения в компьютер (не затемнять рабочий стол)».

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

Улучшения коснулись и брандмауэра Windows - вернулась функция уведомления пользователя о блокировке программы, которая пытается получить доступ к сети.

С помощью групповой политики и функции AppLocker можно будет запретить запуск определенных приложений.

Критика основывается на следующих аргументах:

-Результаты независимых тестов показывают, что приложения на Windows 7 работают немногим быстрее, чем на Vista и медленнее, чем на старой Windows XP.

-Низкая производительность системы, показанная в ряде независимых тестов, связана с усложнением ОС и, следовательно, более интенсивным использованием вычислительного ресурса, что в свою очередь может выражаться в увеличении потребления энергии и снижении времени работы батарей нетбуков до 30% по сравнению с Windows XP.

-windows 7 имеет такие же высокие системные требования, как и vista. так, рекомендованные microsoft аппаратные требования для нормальной работы windows 7 и vista составляют 1 гб озу и 16 гб свободного дискового пространства, в то время как для windows xp они составляют 128 мб озу и 1,5 гб на диске

-Однако не стоит забывать, что Windows XP вышла почти за десятилетие до Windows 7 и 128 мб ОЗУ по тем временам были высокими требованиями.

Система программирования

Borland Delphi - средство разработки приложений под Windows. Достоинство Delphi - это быстрый компилятор, большие возможности для работы с базами данных и большой набор компонентов. Простота, скорость и эффективность Delphi объясняют её популярность. Есть и другие достоинства: простота изучения Object Pascal; программы, написанные на Delphi, не требуется снабжать дополнительными библиотеками.

Для создания программы были использованы следующие вкладки: Standard, Additional, Win32, System, Internet.



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


.1 Описание компонентов


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


Таблица 1 - Form1

КомпонентОписаниеMainMenu1Главное меню программыBitBtn1Кнопка, открывает форму построения графикXpManifestМенеджер темLabel1Служит для отображения текста на формеLabel2Служит для отображения подсказкина формеLabel3Служит для отображения текста на формеRadioGroup1Список функций графиков

Таблица 2 - Form3

КомпонентОписаниеMainMenu1Главное меню программыBitBtn1Кнопка, служит для прорисовки графика на Paintbox1BitBtn3Кнопка, служит для возвращения на форму 2BitBtn4Кнопка, служит для выхода из программыLabeledEdit1Служит для ввода первой переменной в формулуLabeledEdit2Служит для ввода первой переменной в формулуLabeledEdit3Служит для ввода первой переменной в формулуUpDown1Ассоциируется с LabeledEdit1UpDown2Ассоциируется с LabeledEdit2UpDown3Ассоциируется с LabeledEdit3Label1Служит для отображения текста на формеLabel2Служит для отображения подсказки на формеGroupBox1Контейнер компонентовLabel3Служит для отображения текста на форме

Таблица 3 - Form4

КомпонентОписаниеImage1Служит для хранения фонового изображенияLabel1Служит для отображения текста на формеLabel2Служит для отображения текста на формеLabel3Служит для отображения текста на формеLabel4Служит для отображения текста на формеMediaPlayer1Компонент для проигрывания звуковых файловXpManifestМенеджер темTimer1ТаймерWebBrowser1Окно браузера

Таблица 4 - Form5

КомпонентОписаниеImage1Служит для хранения изображенияLabel1Служит для отображения текста на формеLabel2Служит для отображения текста на формеButton1Кнопка, закрывающая форму.XPManifetМенеджер тем

3.2 Интерфейс программы


Рисунок 1 - Окно загрузки программы «Построение графиков функций»


Окно загрузки программы «Построение графиков функций» представлено следующими компонентами: Image1, Label1, Label2, Label3, Label4, MediaPlayer1, XpManifest, Timer1, WebBrowser1.


Рисунок 2 - Окно «Выбор функции графика»


Окно «Выбор функции графика» представлено следующими компонентами: MainMenu1, BitBtn1, XpManifest, Label1, Label2, Label3, RadioGroup1.


Рисунок 3 - Окно «Ввод переменных и построение графика функции»

Окно «Ввод переменных и построение графика функции» представлено следующими компонентами: MainMenu1, BitBtn1, BitBtn3, BitBtn4, LabeledEdit1, LabeledEdit2, LabeledEdit3, UpDown1, UpDown2, UpDown3, Label1, Label2, Label3, GroupBox1.


Рисунок 4 - Окно «О программе»


Окно Окно «О программе» представлено следующими компонентами: Image1, Label1, Label2, Button1, XPManifet.


3.3 Описание модулей, процедур и функций


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


Таблица 5 - Модуль Form1

ПроцедураОписаниеprocedure N4Click (Sender: TObject);Переход к Построению графика (в главном меню)procedure FormClose (Sender: TObject; var Action: TCloseAction);Закрытие формыprocedure N5Click (Sender: TObject);Выходprocedure FormActivate (Sender: TObject);1) Центрирует окно 2) Кнопка «Выбор графика функции» в гл. меню отключена 3) LabeledEdit3 и UpDown3 на форме3 изначально скрыты (для корректного выбора по умолчанию) 4) Подсказкаprocedure BitBtn1Click (Sender: TObject);1) Переход к построению графика 2) Воспроизведение звукаprocedure RadioGroup1Click (Sender: TObject);Скрывает или показывает компоненты при выборе той или иной функцииprocedure N7Click (Sender: TObject);Вызов справки «О программе»procedure FormKeyUp (Sender: TObject; var Key: Word; Shift: TShiftState);Вызов справки F1procedure N6Click (Sender: TObject);Вызов справки в гл. меню

Таблица 6 - Модуль Form3

ПроцедураОписаниеprocedure FormActivate (Sender: TObject);1) Центрирует окно 2) Кнопка «Построение графика» в гл. меню отключенаprocedure N2Click (Sender: TObject);1) Возврат к Выбору типа графика функции в гл. меню 2) Строка, показывающая корректную формулу, сбрасываетсяprocedure N5Click (Sender: TObject);Выход в гл. меню менюprocedure FormClose (Sender: TObject; var Action: TCloseAction);Закрытие формыprocedure FormContextPopup (Sender: TObject; MousePos: TPoint; var Handled: Boolean);procedure BitBtn1Click (Sender: TObject);1) Постройка графика 2) Воспроизведение звукаprocedure BitBtn3Click (Sender: TObject);Возврат к Выбору функции графикаprocedure BitBtn4Click (Sender: TObject);Выходprocedure LabeledEdit1KeyPress (Sender: TObject; var Key: Char);Фильтр ввода (только числа)procedure LabeledEdit1KeyUp (Sender: TObject; var Key: Word; Shift: TShiftState);Фильтр пустого вводаprocedure LabeledEdit2KeyPress (Sender: TObject; var Key: Char);Фильтр ввода (только числа)procedure LabeledEdit2KeyUp (Sender: TObject; var Key: Word; Shift: TShiftState);Фильтр пустого вводаprocedure LabeledEdit3KeyPress (Sender: TObject; var Key: Char);Фильтр ввода (только числа)procedure LabeledEdit3KeyUp (Sender: TObject; var Key: Word; Shift: TShiftState);Фильтр пустого вводаprocedure N7Click (Sender: TObject);Вызов справки «О программе»procedure FormKeyUp (Sender: TObject; var Key: Word; Shift: TShiftState);Вызов справки F1procedure N6Click (Sender: TObject);Вызов помощи в гл. меню

Таблица 7 - Модуль Form4

ПроцедураОписаниеprocedure Timer1Timer (Sender: TObject);Скрыте формы4 и переход к форме1procedure FormActivate (Sender: TObject);1) Фоновая картинка 2) Центрирование окна 3) Значение Timer1. Tag = 8 (время, сколько висит приветствие) 4) Загрузка gif анимации через окно браузера (компонент WebBrowser1) 5) Текст на формеprocedure WebBrowser1DownloadComplete (Sender: TObject);1) Скрытие ползунков в окне браузера, отключение 3d эффектаprocedure Timer2Timer (Sender: TObject);2) Дата и время, отвечающее за форму 1,3,4,5

Таблица 8 - Модуль Form5

ПроцедураОписаниеprocedure Button1Click (Sender: TObject);Закрыте формы подтверждением (Ok)procedure FormActivate (Sender: TObject);1) Центрирует окно 2) Текст на формеprocedure FormKeyUp (Sender: TObject; var Key: Word; Shift: TShiftState);Вызов справки F1

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


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

4. Программа тестирования и методика испытаний


Цель испытаний: проверить правильность постройки, убедиться в том, что программа защищена от некорректного ввода данных. Объектом испытаний является программный продукт, реализованный в рамках данного курсового проекта.


ТестОжидаемый результатПолученный РезультатДобавление числовых данных в поля вводаЗаполнив поля, должен был построиться график линейной функцииВсе данные введены корректно, график построился правильно

В ходе отладки все недочеты были успешно устранены и программа готова к эксплуатации.



5. Руководство пользователя


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


Рисунок 1


Работа программы начинается после загрузки приветствия (Рисунок 1). Через несколько секунд открывается главное окно со списком функций (Рисунок 2).




В колонке «Выбор функции графика» находятся 9 функций графиков, выбрать можно только 1 функцию (по умолчанию выбрана первая функция). При нажатии на главном меню пункта «Выход» открывается окно «Завершить программу?». При нажатии «Да» происходит завершение программы; «Нет» - программа продолжает работу. Справочную информацию по программе можно получить при нажатии кнопки F1 или при выборе пункта «Справка» - «О программе». После выбора функции переходим на вторую форму для прорисовки графика. Для этого служит кнопка «Далее» на форме или пункт «Перейти» - «Построение графика».

На следующей форме пользователю предоставляется возможность нарисовать выбранный график, нажав на кнопку «Нарисовать» (Рисунок 3).



Рисунок 3


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

Для вызова справки «О программе» нужно выбрать пункт «Справка» - «О программе» (Рисунок 4)



Рисунок 4



Заключение


Данный программный продукт был разработан в среде программирования Borland Delphi 7 Enterprise, так как это система наиболее подходит для разработки данного приложения.

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

Разработка данного программного продукта завершена, но эта программа может быть изменена и дополнена по желанию пользователей.

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



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


1)Фленов, М.Е. Библия Delphi. М.Е. Фленов, - СПб.:2004.-884 с.

)Фаронов, В.В. Программирование баз данных в Delphi 7. Учебный курс. В.В. Фаронов, - СПб.: Питер, 2006-261 с.

)Глушаков, С.В. Программирование в среде Delphi 7.0-2-е издание, дополненное и переработанное / С.В. Глушаков, А.Л. Клевцов. - Харьков: Изд-во «Фолио», 2003. - 528с



Приложение


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

Form1

unit Unit1;


interface

, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, Buttons, ExtCtrls, Menus, XPMan, shellapi;

= class(TForm): TMainMenu;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TLabel;: TXPManifest;: TLabel;: TRadioGroup;: TBitBtn;: TMenuItem;: TMenuItem;: TLabel;N4Click (Sender: TObject);FormClose (Sender: TObject; var Action: TCloseAction);N5Click (Sender: TObject);FormActivate (Sender: TObject);BitBtn1Click (Sender: TObject);RadioGroup1Click (Sender: TObject);N7Click (Sender: TObject);FormKeyUp (Sender: TObject; var Key: Word;: TShiftState);N6Click (Sender: TObject);

{Private declarations}

{Public declarations};: TForm1;, help2:string;Unit2, Unit3, Unit4, Unit5;

{$R *.dfm}TForm1. BitBtn1Click (Sender: TObject); // Выбор функции.mediaplayer1. FileName:=ExtractFilePath (ParamStr(0))+'base/click.wav';.mediaplayer1. Open;.mediaplayer1.play;. Show;. Hide;;TForm1. RadioGroup1Click (Sender: TObject); // Блокировка далее ненужных переходовRadioGroup1. ItemIndex of

:begin N4. Enabled:=true;. LabeledEdit1. EditLabel. Caption:='Переменная k';. LabeledEdit2. EditLabel. Caption:='Переменная b';. LabeledEdit1. Show;. LabeledEdit2. Show;. LabeledEdit3.hide;. LabeledEdit1. Clear;. LabeledEdit2. Clear;. UpDown1. Show;. UpDown2. Show;. UpDown3.hide; end;

:begin N4. Enabled:=true;. LabeledEdit1.hide;. LabeledEdit2. Hide;. LabeledEdit3.hide;. UpDown1.hide;. UpDown2.hide;. UpDown3.hide; end;

:begin N4. Enabled:=true;. LabeledEdit1. EditLabel. Caption:='Переменная a';. LabeledEdit2. EditLabel. Caption:='Переменная b';. LabeledEdit3. EditLabel. Caption:='Переменная c';. LabeledEdit1. Show;. LabeledEdit2.show;. LabeledEdit3.show;. LabeledEdit1. Clear;. LabeledEdit2. Clear;. LabeledEdit3. Clear;. UpDown1. Show;. UpDown2.show;. UpDown3.show; end;

:begin N4. Enabled:=true;. LabeledEdit1. EditLabel. Caption:='Переменная a';. LabeledEdit1. Show; // провал. LabeledEdit2. Hide;. LabeledEdit3. Hide;. LabeledEdit1. Clear;. UpDown1. Show;. UpDown2.hide;. UpDown3.hide; end;

:begin N4. Enabled:=true;. LabeledEdit1. EditLabel. Caption:='Переменная a';. LabeledEdit1. Show;. LabeledEdit2.hide;. LabeledEdit3.hide;. LabeledEdit2. Clear;. UpDown1.show;. UpDown2.hide;. UpDown3.hide; end;

:begin N4. Enabled:=true;. LabeledEdit1. Hide;. LabeledEdit2. Hide;. LabeledEdit3. Hide;. UpDown1.hide;. UpDown2.hide;. UpDown3.hide; end;

:begin N4. Enabled:=true;. LabeledEdit1. Hide;. LabeledEdit2.hide;. LabeledEdit3.hide;. UpDown1.hide;. UpDown2.hide;. UpDown3.hide; end;

:begin N4. Enabled:=true;. LabeledEdit1. Hide;. LabeledEdit2.hide;. LabeledEdit3.hide;. UpDown1.hide;. UpDown2.hide;. UpDown3.hide; end;

:begin N4. Enabled:=true;. LabeledEdit1. Hide;. LabeledEdit2.hide;. LabeledEdit3.hide;. UpDown1.hide;. UpDown2.hide;. UpDown3.hide; end;

:begin N4. Enabled:=true;. LabeledEdit1. Show;. LabeledEdit2. Hide;. LabeledEdit1. Clear;. UpDown1.show;. UpDown2.hide; end;;;

TForm1.N4Click (Sender: TObject); // Переход к Построению графика (в меню). Show;. Hide;;

TForm1. FormClose (Sender: TObject; var Action: TCloseAction); // Закрытие формы:= Application. MessageBox ('Завершить программу?', 'Выход', mb_YesNo + mb_IconAsterisk);(A = idYes) then form4.close else Abort;;TForm1.N5Click (Sender: TObject); // Выход в меню:= Application. MessageBox ('Завершить программу?', 'Выход', mb_YesNo + mb_IconAsterisk);(A = idYes) then form4.close else Abort;;TForm1. FormActivate (Sender: TObject);. Left:= (Screen. Width div 2) - (Form1. Width div 2); // Центрируем окно. Top:= (Screen. Height div 2) - (Form1. Height div 2);. Enabled:=false;. LabeledEdit3.hide;. UpDown3.hide;2.caption:='Подсказка: После выбора нужной функции'+#10#13+'нажмите кнопку «Далее», чтобы перейти к'+#10#13+'вводу переменных и построению графика'+#10#13+'функции';

end;TForm1.N7Click (Sender: TObject);. Show;;TForm1. FormKeyUp (Sender: TObject; var Key: Word; // Вызов справки по F1: TShiftState);Key = vk_F1 then(Application. Handle, 'open', PChar ('base/help.chm'), nil, nil, SW_SHOW);;TForm1.N6Click (Sender: TObject);// Вызов справки(Application. Handle, 'open', PChar ('base/help.chm'), nil, nil, SW_SHOW);;.Unit3;


, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, ExtCtrls, StdCtrls, Buttons, Math, Menus, ComCtrls, shellapi;

= class(TForm): TGroupBox;: TPaintBox;: TMainMenu;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TLabel;: TLabel;: TUpDown;: TUpDown;: TBitBtn;: TBitBtn;: TBitBtn;: TLabeledEdit;: TLabeledEdit;: TMenuItem;: TMenuItem;: TLabeledEdit;: TUpDown;: TLabel;FormActivate (Sender: TObject);N2Click (Sender: TObject);N5Click (Sender: TObject);FormClose (Sender: TObject; var Action: TCloseAction);FormContextPopup (Sender: TObject; MousePos: TPoint;Handled: Boolean);BitBtn1Click (Sender: TObject);BitBtn3Click (Sender: TObject);BitBtn4Click (Sender: TObject);LabeledEdit1KeyPress (Sender: TObject; var Key: Char);LabeledEdit1KeyUp (Sender: TObject; var Key: Word;: TShiftState);LabeledEdit2KeyPress (Sender: TObject; var Key: Char);LabeledEdit2KeyUp (Sender: TObject; var Key: Word;: TShiftState);N7Click (Sender: TObject);FormKeyUp (Sender: TObject; var Key: Word;: TShiftState);N6Click (Sender: TObject);LabeledEdit3KeyPress (Sender: TObject; var Key: Char);LabeledEdit3KeyUp (Sender: TObject; var Key: Word;: TShiftState);

{Private declarations}

{Public declarations};: TForm3;, y: real; // расчет х и у

x0, y0, tx, ty, i: Integer; // начало координат по х и у

m: Integer; // масштаб:string;Unit1, Unit2, Unit4, Unit5;

{$R *.dfm}TForm3. BitBtn1Click (Sender: TObject);.mediaplayer1. FileName:=ExtractFilePath (ParamStr(0))+'base/click.wav';.mediaplayer1. Open;.mediaplayer1.play;(Length (LabeledEdit1.text)=0) or (LabeledEdit1. Text='-') then LabeledEdit1. Text:='0'; // Если поле пустое, пишем туда 0(Length (LabeledEdit2.text)=0) or (LabeledEdit2. Text='-') then LabeledEdit2. Text:='0';form1. RadioGroup1. ItemIndex of

:begin if (strtofloat (LabeledEdit1.text)<1) or (strtofloat (LabeledEdit1.text)>7) then begin showmessage ('Числа от 1 до 7'); abort; end; end;;. Canvas. Brush. Color:=clWhite; // Цвет фона белый. Canvas. FillRect(ClientRect); // Очистка рабочей области PaintBox10:= paintbox1. Width div 2; // узнаем центр формы по х

y0:= paintbox1. Height div 2; // узнаем центр формы по у

paintbox1. Canvas. Pen. Color:=clsilver; // Рисуем клетки:=0;:=0;i:=1 to 25 do begin. Canvas. MoveTo (tx, ty+10); // ..Вертикально. Canvas. LineTo (tx+260, ty+10);:=ty+10;;:=0;:=0;i:=1 to 25 do begin // ..Горизонтально. Canvas. MoveTo (tx+10, ty);. Canvas. LineTo (tx+10, ty+260);:=tx+10;;. Canvas. Pen. Color:=clblack; // …завершение

// чертим х ось

paintbox1. Canvas. MoveTo (0, y0);. Canvas. LineTo (paintbox1. Width, y0);

// чертим у ось

paintbox1. Canvas. MoveTo (x0, 0);. Canvas. LineTo (x0, paintbox1. Height);

// стрелка у. Canvas. Brush. Color:= clblack;. Canvas. Polygon([Point (x0,0), Point (x0+3, 20), Point (x0-3, 20)]);. Canvas. Brush. Color:= clwhite;. Canvas. TextOut (x0-30,10,'y');

// стрелка x. Canvas. Brush. Color:= clblack;. Canvas. Polygon([Point (260, y0), Point (240, y0-3), Point (240, y0+3)]);. Canvas. Brush. Color:= clwhite;. Canvas. TextOut (240, y0+20,'x');:= 10; // задаем масштаб, иначе будет очень мелкий график

x:= -20; // зададим диапазон от куда до куда будем считать наш график

// собственно прорисовывем

while x <= 20 do

begin

case form1. RadioGroup1. ItemIndex of

:begin y:=strtofloat (LabeledEdit1. Text)*x+strtofloat (LabeledEdit2. Text); info:='y=kx+b'; end;

:begin y:=power (x, 2); info:='y=x^2'; end;

:begin y:=strtofloat (LabeledEdit1. Text)*sqr(x)+strtofloat (LabeledEdit2. Text)*x+strtofloat (LabeledEdit3. Text); info:='y=a (x^2)+bx+c'; end;

:begin y:=strtofloat (labelededit1.text)/x; info:='y=a/x'; end;

:begin y:=power (strtofloat(LabeledEdit1. Text), x); info:='y=a^x'; end;

:begin y:=sin(x); info:='y=sin(x)'; end;

:begin y:=cos(x); info:='y=cos(x)'; end;

:begin y:=sin(x)/cos(x); info:='y=tg(x)'; end;

:begin y:=cos(x)/sin(x); info:='y=ctg(x)'; end;;.canvas. TextOut (190, x0-100, info);. Caption:='Подсказка:'+#10#13+'Ваша функция'+#10#13+info;. Canvas. Pixels [x0+Round (x*m), y0-Round (y*m)]:= clGreen;:= x + 0.01;;;TForm3. FormActivate (Sender: TObject);. Left:= (Screen. Width div 2) - (Form3. Width div 2);. Top:= (Screen. Height div 2) - (Form3. Height div 2);. Enabled:=false;;TForm3.N2Click (Sender: TObject); // Возврат к Выбору функции графика. Show;. Hide;. Caption:='';;TForm3. BitBtn3Click (Sender: TObject); // Возврат к Выбору функции графика (Кнопка)

begin.mediaplayer1. FileName:=ExtractFilePath (ParamStr(0))+'base/click.wav';.mediaplayer1. Open;.mediaplayer1.play;. Show;. Hide;. Caption:='';;TForm3.N5Click (Sender: TObject); // Выход в гл. меню меню:= Application. MessageBox ('Завершить программу?', 'Выход', mb_YesNo + mb_IconAsterisk);(A = idYes) then form4.close else Abort;. Refresh;;TForm3. LabeledEdit1KeyPress (Sender: TObject; var Key: Char); // Фильтр ввода

// Множество цифр, допустимых для ввода в edit:

const Digit: set of Char=['1'..'9', '0',#8];

// Множество символов, воспринимаемых как символ-разделитель:

Separator: set of Char=['/', '.', ', ', 'ю', 'Ю', 'б', 'Б'];.mediaplayer1. FileName:=ExtractFilePath (ParamStr(0))+'base/keyboard.wav';.mediaplayer1. Open;.mediaplayer1.play; Length (LabeledEdit1.text)>2 then key:=#0; // Ограничивает максимальное число (до 999)

with (Sender as TLabeledEdit) do(Key in Separator)Key:=DecimalSeparator //Delphi-константа типа Char, равная символу-разделителю Windows(not (Key in Digit))Key:=#0;((Key=DecimalSeparator) and (pos(DecimalSeparator, Text)<>0))Key:=#0;;;TForm3. LabeledEdit2KeyPress (Sender: TObject; var Key: Char); // Запрет ввода лишнего B

// Множество цифр, допустимых для ввода в edit:

const Digit: set of Char=['1'..'9', '0',#8];

// Множество символов, воспринимаемых как символ-разделитель:

Separator: set of Char=['/', '.', ', ', 'ю', 'Ю', 'б', 'Б'];.mediaplayer1. FileName:=ExtractFilePath (ParamStr(0))+'base/keyboard.wav';.mediaplayer1. Open;.mediaplayer1.play; Length (LabeledEdit2.text)>2 then key:=#0; // Ограничивает максимальное число (до 999)

with (Sender as TLabeledEdit) do(Key in Separator)Key:=DecimalSeparator //Delphi-константа типа Char, равная символу-разделителю Windows(not (Key in Digit))Key:=#0;((Key=DecimalSeparator) and (pos(DecimalSeparator, Text)<>0))Key:=#0;;;

TForm3. FormClose (Sender: TObject; var Action: TCloseAction); // Закрытие формы:= Application. MessageBox ('Завершить программу?', 'Выход', mb_YesNo + mb_IconAsterisk);(A = idYes) then form4.close else Abort;. Refresh;;TForm3. LabeledEdit1KeyUp (Sender: TObject; var Key: Word;: TShiftState);n: Integer;: String;(LabeledEdit1. Text='-') then Abort;(Sender as TLabeledEdit) dopos (DecimalSeparator, Text)=1 then:='0'+Text;:=Length(Text);;(pos (DecimalSeparator, Text)<>Length(Text)) thenText [Length(Text)]<>'0' thenFloatToStr (StrToFloat(Text))<>'0' then:=FloatToStr (StrToFloat(Text));Key=8 then:=SelStart;:=Text;(S, n, 1);:=S;;:=Length(Text);;;TForm3. LabeledEdit2KeyUp (Sender: TObject; var Key: Word;: TShiftState);n: Integer;: String;(LabeledEdit2. Text='-') then Abort;(Sender as TLabeledEdit) dopos (DecimalSeparator, Text)=1 then:='0'+Text;:=Length(Text);;(pos (DecimalSeparator, Text)<>Length(Text)) thenText [Length(Text)]<>'0' thenFloatToStr (StrToFloat(Text))<>'0' then:=FloatToStr (StrToFloat(Text));Key=8 then:=SelStart;:=Text;(S, n, 1);:=S;;:=Length(Text);;;TForm3. BitBtn4Click (Sender: TObject); // Выход по кнопке:= Application. MessageBox ('Завершить программу?', 'Выход', mb_YesNo + mb_IconAsterisk);(A = idYes) then begin form3. Hide; form4. Close; end;(a = idNo) then Abort;. Refresh;;TForm3. FormContextPopup (Sender: TObject; MousePos: TPoint;Handled: Boolean);:=true;;TForm3.N7Click (Sender: TObject); // О программе. Show;;TForm3. FormKeyUp (Sender: TObject; var Key: Word; // Хелп по F1: TShiftState);Key = vk_F1 then(Application. Handle, 'open', PChar ('base/help.chm'), nil, nil, SW_SHOW);;TForm3.N6Click (Sender: TObject); // Хелп(Application. Handle, 'open', PChar ('base/help.chm'), nil, nil, SW_SHOW);;TForm3. LabeledEdit3KeyPress (Sender: TObject; var Key: Char);

// Множество цифр, допустимых для ввода в edit:

const Digit: set of Char=['1'..'9', '0',#8];

// Множество символов, воспринимаемых как символ-разделитель:

Separator: set of Char=['/', '.', ', ', 'ю', 'Ю', 'б', 'Б'];.mediaplayer1. FileName:=ExtractFilePath (ParamStr(0))+'base/keyboard.wav';.mediaplayer1. Open;.mediaplayer1.play; Length (LabeledEdit3.text)>2 then key:=#0; // Ограничивает максимальное число (до 999)

with (Sender as TLabeledEdit) do(Key in Separator)Key:=DecimalSeparator //Delphi-константа типа Char, равная символу-разделителю Windows(not (Key in Digit))Key:=#0;((Key=DecimalSeparator) and (pos(DecimalSeparator, Text)<>0))Key:=#0;;;TForm3. LabeledEdit3KeyUp (Sender: TObject; var Key: Word;: TShiftState);n: Integer;: String;(LabeledEdit3. Text='-') then Abort;(Sender as TLabeledEdit) dopos (DecimalSeparator, Text)=1 then:='0'+Text;:=Length(Text);;(pos (DecimalSeparator, Text)<>Length(Text)) thenText [Length(Text)]<>'0' thenFloatToStr (StrToFloat(Text))<>'0' then:=FloatToStr (StrToFloat(Text));Key=8 then:=SelStart;:=Text;(S, n, 1);:=S;;:=Length(Text);;;.Unit4;


, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, ExtCtrls, StdCtrls, OleCtrls, SHDocVw, MSHTML, MPlayer,, XPMan;

= class(TForm): TTimer;: TMediaPlayer;: TImage;: TLabel;: TLabel;: TXPManifest;: TWebBrowser;: TLabel;: TTimer;: TLabel;Timer1Timer (Sender: TObject);FormActivate (Sender: TObject);WebBrowser1DownloadComplete (Sender: TObject);Timer2Timer (Sender: TObject);

{Private declarations}

{Public declarations};: TForm4;:integer;Unit1, Unit2, Unit3, Unit5;

{$R *.dfm}TForm4. WebBrowser1DownloadComplete (Sender: TObject); // Убрать из анимации лишнееа: IHTMLDocument2;: IHTMLElement;:= IHTMLDocument2 (TWebBrowser(Sender).Document);Doc = nil then Exit;:= Doc.body;Element = nil then Exit;.style.borderStyle:= 'none';. OleObject.document.body.style.overflowX:= 'hidden';. OleObject.document.body.style.overflowY:= 'hidden';;TForm4. Timer1Timer (Sender: TObject);. Tag:=timer1. Tag-1;timer1. Tag of

:begin timer1. Enabled:=false; form4. Hide;. Show; end;;;TForm4. FormActivate (Sender: TObject);. Picture. LoadFromFile (ExtractFilePath(ParamStr(0))+'base/1.jpg');. Left:= (Screen. Width div 2) - (Form4. Width div 2);. Top:= (Screen. Height div 2) - (Form4. Height div 2);. Tag:=8;. Caption:='Построение графиков функций';. Navigate (ExtractFilePath(ParamStr(0))+'base/1.html');;TForm4. Timer2Timer (Sender: TObject);. Caption:=FormatDateTime ('dd.mm.yyyy tt', now);. Label3. Caption:=FormatDateTime ('dd.mm.yyyy tt', now);. Label3. Caption:=FormatDateTime ('dd.mm.yyyy tt', now);. Label2. Caption:=FormatDateTime ('dd.mm.yyyy tt', now);;.Unit5;


, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, ExtCtrls, shellapi, XPMan;

= class(TForm): TImage;: TLabel;: TButton;: TXPManifest;: TLabel;Button1Click (Sender: TObject);FormActivate (Sender: TObject);FormKeyUp (Sender: TObject; var Key: Word;: TShiftState);

{Private declarations}

{Public declarations};: TForm5;Unit1, Unit2, Unit3, Unit4;

{$R *.dfm}TForm5. Button1Click (Sender: TObject);.close;;TForm5. FormActivate (Sender: TObject);. Picture. LoadFromFile (ExtractFilePath(ParamStr(0))+'base/1.bmp');. Left:= (Screen. Width div 2) - (Form5. Width div 2); // Центрирует окно

Form5. Top:= (Screen. Height div 2) - (Form5. Height div 2);

label1. Caption:='Построение графиков функций'+#10#13+

'Версия 1.0'+#10#13+#10#13+

'Copyright 2012 '+#10#13+

'Код программы разработал Дремлюк Н'+#10#13+#10#13+

'Описание: программа разработана'+#10#13+

'для построения графиков функции.'+#10#13+

'Пользователю предоставляется '+#10#13+

'возможность выбора нужной функции'+#10#13+

'и ввода переменных в поля ввода.';

end;TForm5. FormKeyUp (Sender: TObject; var Key: Word;: TShiftState);Key = vk_F1 then(Application. Handle, 'open', PChar ('base/help.chm'), nil, nil, SW_SHOW);;

end.


Введение программа интерфейс компьютер операционный Тема моего курсового проекта «Построение графиков функции». Целью является разработка програ

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ