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

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

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

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

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

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

1. Постановка задачи, .1 Описание предметной области

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

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

Программа должна соответствовать

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

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

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

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

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

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

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

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

Решение — блок выбора направления выполнения алгоритма в зависимости от некоторых условий. В результате проверки условия осуществляется выбор одного из нескольких возможных путей.

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

Решение — блок выбора направления выполнения алгоритма в зависимости от некоторых условий. В результате проверки условия осуществляется выбор одного из нескольких возможных путей.

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

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

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

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

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

терминатор — обозначает начало или конец алгоритма.

линия потока — отображает потоки данных и управления в алгоритме.

 описание алгоритма 6 Данные — блок описания операции ввода / вывода данных, для которой не определено конкретное устройство.

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

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

В колонке «Выбор функции графика» находятся 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 и деактивировали программу, затемнения может и не произойти.

С помощью групповой политики и функции 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

Кнопка, служит для прорисовки графика на Paintbox1

BitBtn3

Кнопка, служит для возвращения на форму 2

BitBtn4

Кнопка, служит для выхода из программы

LabeledEdit1

Служит для ввода первой переменной в формулу

LabeledEdit2

Служит для ввода первой переменной в формулу

LabeledEdit3

Служит для ввода первой переменной в формулу

UpDown1

Ассоциируется с LabeledEdit1

UpDown2

Ассоциируется с LabeledEdit2

UpDown3

Ассоциируется с LabeledEdit3

Label1

Служит для отображения текста на форме

Label2

Служит для отображения подсказки на форме

GroupBox1

Контейнер компонентов

Label3

Служит для отображения текста на форме


Таблица 3 — Form4

Компонент

Описание

Image1

Служит для хранения фонового изображения

Label1

Служит для отображения текста на форме

Label2

Служит для отображения текста на форме

Label3

Label4

Служит для отображения текста на форме

MediaPlayer1

Компонент для проигрывания звуковых файлов

XpManifest

Менеджер тем

Timer1

Таймер

WebBrowser1

Окно браузера

Таблица 4 — Form5

КомпонентОписание

Image1

Служит для хранения изображения

Label1

Служит для отображения текста на форме

Label2

Служит для отображения текста на форме

Button1

Кнопка, закрывающая форму.

XPManifet

Менеджер тем

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

 интерфейс программы 1

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

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

 интерфейс программы 2

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

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

 интерфейс программы 3

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

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

 интерфейс программы 4

Рисунок 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);

Вызов справки F1

procedure 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);

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);

Вызов справки F1

procedure N6Click (Sender: TObject);

Вызов помощи в гл. меню

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

Процедура

Описание

procedure Timer1timer (Sender: TObject);

Скрыте формы4 и переход к форме1

procedure 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

Работа программы начинается после загрузки приветствия (Рисунок 1).

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

 руководство пользователя 2

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

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

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

 руководство пользователя 3

Рисунок 3

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

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

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

 руководство пользователя 4

Рисунок 4

Заключение

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

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

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

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

[Электронный ресурс]//URL: https://inzhpro.ru/kursovaya/grafiki-v-tehnicheskih-zadachah/

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

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


Приложение, Листинг программы

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;;;

// Множество цифр, допустимых для ввода в 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.