Моя курсовая работа

50
Министерство образования Республики Беларусь УО «Полоцкий государственный университет» Кафедра технологий программирования КУРСОВАЯ РАБОТА по курсу: «Основы алгоритмизации и программирования» на тему: «Приложение для построения и полного исследования графиков некоторых элементарных функций» Выполнил Ляхович О. К. 10 – ИТ – 2 Проверил Кухта С. В.

Upload: oleg-lyahovich

Post on 05-Aug-2015

97 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Моя курсовая работа

Министерство образования Республики БеларусьУО «Полоцкий государственный университет»

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

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

по курсу: «Основы алгоритмизации и программирования»

на тему: «Приложение для построения и полного исследования графиков некоторых элементарных функций»

Выполнил Ляхович О. К.10 – ИТ – 2

Проверил Кухта С. В.

Полоцк2011 г.

Page 2: Моя курсовая работа

2

СОДЕРЖАНИЕ

ВВЕДЕНИЕ..............................................................................................................3

ОСНОВНАЯ ЧАСТЬ...............................................................................................4

1. Решение основной задачи..................................................................................4

1.1. Анализ и постановка задачи......................................................................4

1.1.1 Описание необходимых входных данных............................................4

1.1.2. Описание необходимых выходных данных..........................................4

1.1.3. Обоснование выбора языка программирования и среды разработки.............................................................................................................5

1.2. Проектирование программы и разработка алгоритма.............................6

1.3. Реализация разработанного алгоритма.....................................................8

1.3.1. Используемые компоненты при разработке программы.....................8

1.3.2. Реализация пользовательского интерфейса программы.....................8

1.3.3. Исходный код программы....................................................................12

1.4. Тестирование программы и анализ проведенных расчетов..................13

1.4. Инструкция по эксплуатации программы..............................................14

1.5. Ограничения данной версии программы................................................14

ЗАКЛЮЧЕНИЕ.....................................................................................................15

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

ПРИЛОЖЕНИЕ 1. ЛИСТИНГ ГЛАВНОГО МОДУЛЯ.....................................17

Page 3: Моя курсовая работа

3

ВВЕДЕНИЕ

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

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

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

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

Page 4: Моя курсовая работа

4

ОСНОВНАЯ ЧАСТЬ

1. Решение основной задачи

1.1. Анализ и постановка задачи

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

1.1.1 Описание необходимых входных данных

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

1.1.2. Описание необходимых выходных данных

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

Page 5: Моя курсовая работа

5

1.1.3. Обоснование выбора языка программирования и среды разработки

В качестве языка программирования, для написания данной программы был выбран PascalABC.NET. Он позволяет использовать большинство средств, предоставляемых платформой Microsoft.NET: единая система типов, классы, интерфейсы, исключения, делегаты, перегрузка операций, обобщенные типы, методы расширения, обширные.NET-библиотеки. С другой стороны, PascalABC.NET имеет структуру языка Delphi (Object Pascal): внешние процедуры и функции, модули.

В среде PascalABC.NET в результате компиляции консольного приложения в PascalABC.NET создается всего 1 файл с расширением .exe, а вместо файла проекта используется файл главной программы с подключаемыми к нему в тексте программы модулями. Отсутствие проектов в PascalABC.NET позволяет начинающим воспринимать программу только как ее текст, а не как текст с дополнительными ухищрениями, которые могут меняться от системы к системе. Кроме того, в среде PascalABC.NET большое внимание уделено связи запущенной программы с оболочкой: консольная программа, запущенная из-под оболочки, осуществляет ввод-вывод в специальном окне, встроенном в оболочку. Можно также запустить несколько приложений одновременно: все они будут контролироваться оболочкой

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

Page 6: Моя курсовая работа

6

1.2. Проектирование программы и разработка алгоритма

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

проектированию приложения.

Чтобы максимально упростить работу с данным приложением, было решено разработать его в виде диалога с пользователем. Сначала пользователь должен выбрать функцию из списка доступных элементарных функций и перейти к следующему диалогу. В появившемся окне необходимо ввести соответствующие выбранной функции целочисленные коэффициенты. Нажав на кнопку «Далее» пользователю будет предложено выбрать действие для продолжения работы с программой: «Исследовать функцию» либо «Построить график функции».

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

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

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

Элементы из стека могут удаляться, пока он не станет пустым.

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

Обобщенная схема алгоритма решения задачи представлена на

рисунке 1

Начало

Page 7: Моя курсовая работа

7

Рисунок 1. – Обобщенная схема решения задачи

Создание диалогов программы

с пользователем

1

Разработка алгоритма

исследования выбранной функции

3

Разработка алгоритма

построения графика выбранной функции

5

Конец

Ввод целочисленных коэффициентов

для функции

2

Вывод проведенного исследования на экран

4

Вывод построенного графика на экран

6

Page 8: Моя курсовая работа

8

1.3. Реализация разработанного алгоритма

1.3.1. Используемые компоненты при разработке программы

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

ToolStrip и ToolStripMenuItem, первый предоставляет контейнер для объектов панели инструментов Windows, второй компонент добавляет вкладку «Файл» в область первого компонента.

Button – представляет элемент управления Windows "Кнопка".

Combobox – представляет элемент управления полем со списком Windows.

Label – представляет стандартную метку Windows.

Radiobutton позволяет пользователю выбрать единственный вариант из группы доступных, когда используется вместе с другими элементами управления RadioButton.

TextBox – предоставляет элемент управления "текстовое поле" Windows.

PictureBox – предоставляет элемент управления графическим окном Windows для отображения рисунка.

1.3.2. Реализация пользовательского интерфейса программы

Интерфейс программы представлен на рисунках 2-6. На главной экранной форме (рисунок 2) отображается элемент список с записями 15 элементарных функций в общем буквенном виде. Кнопка «Далее» является кнопкой продолжения работы. Во вкладке «Файл» представлена функция выхода из программы.

Page 9: Моя курсовая работа

9

Рисунок 2. – Главная форма программы

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

Page 10: Моя курсовая работа

10

Рисунок 3. – Форма-диалог №2

Следующая форма-диалог (рисунок 4) представляет пользователь выбрать дальнейшее действие: «Исследовать функцию» либо «Построить график функции». В рабочей области формы записан окончательный вид записи выбранной функции в соответствии с введенными коэффициентами на предыдущей форме. Нажатие на кнопку «Далее» в зависимости от выбранного действия приведет к созданию окна с исследованием данной функции (рисунок 5), либо к построению ее графика (рисунок 6), кнопка «Назад» осуществит переход к предыдущему шагу, кнопка «Отмена» представляет собой функцию выхода из программы. Пользователь получит предупреждение-вопрос о завершении работы программы. В окнах исследования и построения функции нажав на вкладку «Файл», пользователь может сохранить полученные данные, либо выйти из текущей формы и продолжить работу с программой.

Page 11: Моя курсовая работа

11

Рисунок 4. – Форма-диалог №3

Page 12: Моя курсовая работа

12

Рисунок 5. –

Полное

исследование графика выбранной функции

Page 13: Моя курсовая работа

13

Рисунок 6. – График выбранной функции

1.3.3. Исходный код программы

Исходный код программы разбит на модули. Имеются следующие модули.

TextFunctions. В данном модуле производится полное исследование всех доступных элементарных функций с помощью динамической структуры данных стек, условных операторов и операторов выбора «Case of».

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

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

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

1.4. Тестирование программы и анализ проведенных расчетов

Методика и результаты тестирования приведены в таблице 1

Описание тестаВыполняемые действия, цели

Реакция программы

Вывод

Запуск программы

Активирован исполняемыйфайл программы

Появилась экранная формапрограммы

Тест пройден

Проверка на корректность выбора функции

В поле со списком вводится строка ошибочной записи функции

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

Программа не переходила к следующему

Тест пройден

Page 14: Моя курсовая работа

14

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

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

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

Программа не переходила к следующему диалоговому окну.

Тест пройден

Исследование функции при очень больших коэффициентах

В целочисленные поля вводились максимальные значения

Приложение безошибочно проводило исследование заданной функции

Тест пройден

Построение графика функции при отрицательных коэффициентах

В целочисленные поля вводились минимальные значения

Приложение безошибочно выполняло построение графика

Тест пройден

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

1.4. Инструкция по эксплуатации программы

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

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

2. Корректно ввести необходимые целочисленные коэффициенты и перейти к следующему диалогу;

3. Выбрать нужное действие из 2 предложенных (рисунок4) и нажать на кнопку «Далее»;

4. При необходимости сохранить полученный результат, с помощью элемента вкладки «Файл» – «Сохранить как...»;

Page 15: Моя курсовая работа

15

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

6. Продолжить работу вернувшись на два шага назад, или завершить выполнение программы нажатием на кнопку «Отмена», с помощью комбинации клавиш Alt+F4 или нажатием левой кнопкой мыши на крестик в верхнем правом углу программы.

1.5. Ограничения данной версии программы

Гарантируется работа данной программы в операционной системе Windows не ниже 98, с предустановленными библиотеками платформы .NET. В предыдущих версиях ОС работа программы не проверялась.

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

ЗАКЛЮЧЕНИЕ

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

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

Page 16: Моя курсовая работа

16

СПИСОК ИСОЛЬЗОВАННЫХ ИСТОЧНИКОВ 1. С. Г. Крейн, В. Н. Ушакова Математический анализ элементарных

функций. М., Физматгиз, 1963. – 168 с.

2. Вирченко Н. А., Ляшко И. И., Швецов К. И. Графики функций. Справочник. Киев: Наук. думка, 1979. – 320 с.

3. Сайт проекта PаscalABC.NET – http://pascalabc.net

4. Фаронов В.В. Турбо Паскаль 7.0. Начальный курс: учебное пособие. – М.: КНОРУС, 2006. – 576 с.

Page 17: Моя курсовая работа

17

ПРИЛОЖЕНИЕ 1. ЛИСТИНГ ГЛАВНОГО МОДУЛЯ

Модуль «MainForm.pas»

Unit MainForm;

#apptype windows //тип приложения#reference 'System.Windows.Forms.dll'#reference 'System.Drawing.dll'{$resource 'Save.png'}

Interface

Uses System, System.Windows.Forms, System.Drawing, TextFunctions, GraphFunctions;

Const TextFileExt = 'graph'; //расширение текстового файла результатов TextFileFilter = 'Текстовые файлы (*.'+TextFileExt+')|*.'+TextFileExt; ImageFileExt = 'bmp'; //расширение графического файла результатов ImageFileFilter = 'Монохромный рисунок (*.'+ImageFileExt+')|*.'+ImageFileExt; Var Form_Main, Form_graph, Form_text, Form_next_1st, Form_next_2nd: Form; ToolStripMenu: ToolStrip; MiFile: ToolStripMenuItem; Button_mnext, Button_next, Button_Back_1st, Button_Back_2nd, Button_cancel: Button; RadioButton_text, RadioButton_graph: RadioButton; Textbox_basic: Textbox; Combobox_basic: Combobox; PictureBox_basic: PictureBox; Stringtemp:String;

Page 18: Моя курсовая работа

18

N, K: Integer; Field: array[1..4] of Integer; Label_n: array[1..4] of &label; Textbox_n: array[1..4] of textbox; Procedure SaveFile_1st(FileName: String); //сохранение результата в текстовый файлProcedure SaveFile_2nd(FileName: String); //сохранение результата в графический файл ///////////////обработчики событийProcedure MenuSaveClick_1st(sender:Object; args:System.EventArgs);Procedure MenuSaveClick_2nd(Sender:Object; args:System.EventArgs);Procedure FormClose_Main(sEnder: Object; args: System.EventArgs);Procedure FormClose_1st(Sender: Object; args: System.EventArgs);Procedure FormClose_2nd(Sender: Object; args: System.EventArgs);Procedure KeyPressed_a(Sender: Object; e: KeyPressEventArgs);Procedure KeyPressed_1st(Sender: Object; e: KeyPressEventArgs);Procedure ButtonNext_1st(Sender: Object; e: EventArgs); Procedure ButtonNext_2nd(Sender: Object; e: EventArgs); Procedure ButtonBack_1st(Sender: Object; e: EventArgs); Procedure ButtonBack_2nd(Sender: Object; e: EventArgs); Procedure ButtonCancel(Sender: Object; e: EventArgs);Procedure MyButtonClick_Text(Sender: Object; e: EventArgs);Procedure Form_closing(Sender: Object; e: System.ComponentModel.CancelEventArgs);Procedure Form_closing_tg(Sender: Object; e: System.ComponentModel.CancelEventArgs);Procedure MyButtonClick_Graph; ///////////////обработчики событийProcedure NomberItems(Var n:Integer); //номер выбранной функции из спискаFunction F_chx(var line:String):String; //функция обработки буквенной записи функцииProcedure Case_Function_Text(n: Integer; StrTemp: String); //процедура вывода результатов исследования графика выбранной функции на текстовое поле формы для полного исследования функцииProcedure Case_Function_Graph(n: Integer); //процедура вывода результатов построения графика выбранной функции на графическую область формы для построения графика функцииProcedure CreateFormNext_1st; //создание 2 формы-диалогаProcedure CreateFormNext_2nd; //создание 3 формы-диалогаProcedure CreateForm_Text; //создание формы полного исследования графика функцииProcedure CreateForm_Graph; //создание формы построения графика функцииProcedure MainInterface; //создание главной формы

Implementation

Page 19: Моя курсовая работа

19

Procedure SaveFile_1st(FileName: String);Var F1 := new System.IO.StreamWriter(FileName, false, System.Text.Encoding.Unicode);Begin F1.Write(TextBox_basic.Text); F1.Close;End;

Procedure SaveFile_2nd(FileName: String);Begin Picturebox_basic.Image.Save(Filename,system.Drawing.Imaging.ImageFormat.Bmp);End;

Procedure FormClose_Main(Sender: Object; args: System.EventArgs);Begin Form_main.Close; End;

Procedure FormClose_1st(Sender: Object; args: System.EventArgs);Begin Form_Text.Close; End;

Procedure FormClose_2nd(Sender: Object; args: System.EventArgs);Begin Form_graph.Close; End;

Procedure MenuSaveClick_1st(Sender:Object; args:System.EventArgs);Var Sd :=new SaveFileDialog;Begin Sd.DefaultExt := TextFileExt; Sd.Filter := TextFileFilter; If Sd.ShowDialog = DialogResult.OK then SaveFile_1st(Sd.FileName);End;

Procedure MenuSaveClick_2nd(Sender:Object; args:System.EventArgs);Var Sd := new SaveFileDialog;Begin Sd.DefaultExt := ImageFileExt; Sd.Filter := ImageFileFilter; If Sd.ShowDialog = DialogResult.OK then SaveFile_2nd(sd.FileName);End;

Page 20: Моя курсовая работа

20

Procedure NomberItems(Var n:Integer);Var Temptext: String;Begin Temptext:= Combobox_basic.text; n:= 16; For i:Integer:= 1 to nx do if Temptext = fx[i] then Begin n:= i; break; EndEnd;

Procedure ButtonCancel(Sender: Object; e: EventArgs);Var result: DialogResult;Begin result:= MessageBox.Show('Вы действительно хотите выйти из программы?','GraphBilder v. 1.0', Messageboxbuttons.YesNo, MessageboxIcon.Question); if result = System.Windows.Forms.DialogResult.Yes then Form_main.Close;End;

Procedure Case_Function_text(n:Integer; StrTemp: String);Begin Case n of 1: begin FSinX(FuncsData1,StrTemp, field[1], field[2], field[3], field[4]); While FuncsData1 <> nil do Begin TextBox_Basic.AppEndText(PopPunct(funcsData1) + Environment.NewLine); TextBox_Basic.AppEndText(Environment.NewLine); End; Form_next_2nd.hide; Textbox_basic.ReadOnly:= true; Textbox_basic.BackColor:= color.White; Form_Text.ShowDialog(form_main); End; 2: Begin FCosX(FuncsData1,StrTemp, field[1], field[2], field[3], field[4]); While FuncsData1 <> nil do Begin TextBox_Basic.AppEndText(PopPunct(funcsData1) + Environment.NewLine); TextBox_Basic.AppEndText(Environment.NewLine); End;

Page 21: Моя курсовая работа

21

Form_next_2nd.hide; Textbox_basic.ReadOnly:= true; Textbox_basic.BackColor:= color.White; Form_Text.ShowDialog(form_main); End; 3: Begin FTgX(FuncsData1,StrTemp, field[1], field[2], field[3], field[4]); While FuncsData1 <> nil do Begin TextBox_Basic.AppEndText(PopPunct(funcsData1) + Environment.NewLine); TextBox_Basic.AppEndText(Environment.NewLine); End; Form_next_2nd.hide; Textbox_basic.ReadOnly:= true; Textbox_basic.BackColor:= color.White; Form_Text.ShowDialog(form_main); End; 4: Begin FCtgX(FuncsData1,StrTemp, field[1], field[2], field[3], field[4]); While FuncsData1 <> nil do Begin TextBox_Basic.AppEndText(PopPunct(funcsData1) + Environment.NewLine); TextBox_Basic.AppEndText(Environment.NewLine); End; Form_next_2nd.hide; Textbox_basic.ReadOnly:= true; Textbox_basic.BackColor:= color.White; Form_Text.ShowDialog(form_main); End; 5: Begin FArcSinX(FuncsData1,StrTemp, field[1], field[2], field[3], field[4]); While FuncsData1 <> nil do Begin TextBox_Basic.AppEndText(PopPunct(funcsData1) + Environment.NewLine); TextBox_Basic.AppEndText(Environment.NewLine); End; Form_next_2nd.hide; Textbox_basic.ReadOnly:= true; Textbox_basic.BackColor:= color.White; Form_Text.ShowDialog(form_main); End;

Page 22: Моя курсовая работа

22

6: Begin FArcCosX(FuncsData1,StrTemp, field[1], field[2], field[3], field[4]); While FuncsData1 <> nil do Begin TextBox_Basic.AppEndText(PopPunct(funcsData1) + Environment.NewLine); TextBox_Basic.AppEndText(Environment.NewLine); End; Form_next_2nd.hide; Textbox_basic.ReadOnly:= true; Textbox_basic.BackColor:= color.White; Form_Text.ShowDialog(form_main); End; 7: Begin FArcTgX(FuncsData1,StrTemp, field[1], field[2], field[3], field[4]); While FuncsData1 <> nil do Begin TextBox_Basic.AppEndText(PopPunct(funcsData1) + Environment.NewLine); TextBox_Basic.AppEndText(Environment.NewLine); End; Form_next_2nd.hide; Textbox_basic.ReadOnly:= true; Textbox_basic.BackColor:= color.White; Form_Text.ShowDialog(form_main);; End; 8: Begin FArcCtgX(FuncsData1,StrTemp, field[1], field[2], field[3], field[4]); While FuncsData1 <> nil do Begin TextBox_Basic.AppEndText(PopPunct(funcsData1) + Environment.NewLine); TextBox_Basic.AppEndText(Environment.NewLine); End; Form_next_2nd.hide; Textbox_basic.ReadOnly:= true; Textbox_basic.BackColor:= color.White; Form_Text.ShowDialog(form_main); End; 9: Begin FabsX(FuncsData1,StrTemp, field[1], field[2], field[3]); While FuncsData1 <> nil do Begin

Page 23: Моя курсовая работа

23

TextBox_Basic.AppEndText(PopPunct(funcsData1) + Environment.NewLine); TextBox_Basic.AppEndText(Environment.NewLine); End; Form_next_2nd.hide; Textbox_basic.ReadOnly:= true; Textbox_basic.BackColor:= color.White; Form_Text.ShowDialog(Form_main); End; 10: Begin FkX_b(FuncsData1,StrTemp, field[1], field[2]); While FuncsData1 <> nil do Begin TextBox_Basic.AppEndText(PopPunct(funcsData1) + Environment.NewLine); TextBox_Basic.AppEndText(Environment.NewLine); End; Form_next_2nd.hide; Textbox_basic.ReadOnly:= true; Textbox_basic.BackColor:= color.White; Form_Text.ShowDialog(form_main); End; 11: Begin FAXX_BX_C(FuncsData1,StrTemp, field[1], field[2], field[3]); While FuncsData1 <> nil do Begin TextBox_Basic.AppEndText(PopPunct(funcsData1) + Environment.NewLine); TextBox_Basic.AppEndText(Environment.NewLine); End; Form_next_2nd.hide; Textbox_basic.ReadOnly:= true; Textbox_basic.BackColor:= color.White; Form_Text.ShowDialog(Form_main); End; 12: Begin FAXXX_B(FuncsData1,StrTemp, field[1], field[2], field[3]); While FuncsData1 <> nil do Begin TextBox_Basic.AppEndText(PopPunct(funcsData1) + Environment.NewLine); TextBox_Basic.AppEndText(Environment.NewLine); End; Form_next_2nd.hide; Textbox_basic.ReadOnly:= true; Textbox_basic.BackColor:= color.White;

Page 24: Моя курсовая работа

24

Form_Text.ShowDialog(Form_main); End; 13: Begin FXA(FuncsData1,StrTemp, field[1], field[3], field[2], field[4]); While FuncsData1 <> nil do Begin TextBox_Basic.AppEndText(PopPunct(funcsData1) + Environment.NewLine); TextBox_Basic.AppEndText(Environment.NewLine); End; Form_next_2nd.hide; Textbox_basic.ReadOnly:= true; Textbox_basic.BackColor:= color.White; Form_Text.ShowDialog(Form_main); End; 14: Begin FAX(FuncsData1,StrTemp, field[1], field[2], field[3], field[4]); While FuncsData1 <> nil do Begin TextBox_Basic.AppEndText(PopPunct(funcsData1) + Environment.NewLine); TextBox_Basic.AppEndText(Environment.NewLine); End; Form_next_2nd.hide; Textbox_basic.ReadOnly:= true; Textbox_basic.BackColor:= color.White; Form_Text.ShowDialog(Form_main); End; 15: Begin FLog_A_X(FuncsData1,StrTemp, field[1], field[2], field[3], field[4]); While FuncsData1 <> nil do Begin TextBox_Basic.AppEndText(PopPunct(funcsData1) + Environment.NewLine); TextBox_Basic.AppEndText(Environment.NewLine); End; Form_next_2nd.hide; Textbox_basic.ReadOnly:= true; Textbox_basic.BackColor:= color.White; Form_Text.ShowDialog(Form_main); End; End;End;

Page 25: Моя курсовая работа

25

Procedure Case_Function_Graph(n:Integer);Begin Case n of 1: Begin if field[2] <> 0 then GSinX(PictureBox_Basic, field[1], field[2], field[3], field[4]) else SolidLine(PictureBox_Basic,Field[1]*sin(field[3])+field[4]); Form_graph.Controls.Add(Picturebox_Basic); Form_graph.ShowDialog(Form_main); End; 2: Begin if field[2] <> 0 then GCosX(PictureBox_Basic, field[1], field[2], field[3], field[4]) else SolidLine(PictureBox_Basic,Field[1]*cos(field[3])+field[4]); Form_Graph.Controls.Add(PictureBox_Basic); Form_Graph.ShowDialog(Form_main); End; 3: Begin if field[2] <> 0 then GTgX(PictureBox_Basic, field[1], field[2], field[3], field[4]) else SolidLine(PictureBox_Basic,Field[1]*tan(field[3])+field[4]); Form_Graph.Controls.Add(PictureBox_Basic); Form_Graph.ShowDialog(Form_main); End; 4: Begin if field[2] <> 0 then GCtgX(PictureBox_Basic, field[1], field[2], field[3], field[4]) else SolidLine(PictureBox_Basic,Field[1]*(1/tan(field[3]))+field[4]); Form_Graph.Controls.Add(PictureBox_Basic); Form_Graph.ShowDialog(Form_main); End; 5: Begin if field[2] <> 0 then GArcSinX(PictureBox_Basic, field[1], field[2], field[3], field[4]) else SolidLine(PictureBox_Basic,Field[1]*arcsin(field[3])+field[4]); Form_Graph.Controls.Add(PictureBox_Basic); Form_Graph.ShowDialog(Form_main); End; 6:

Page 26: Моя курсовая работа

26

Begin if field[2] <> 0 then GArcCosX(PictureBox_Basic, field[1], field[2], field[3], field[4]) else SolidLine(PictureBox_Basic,Field[1]*arccos(field[3])+field[4]); Form_Graph.Controls.Add(PictureBox_Basic); Form_Graph.ShowDialog(Form_main); End; 7: Begin if field[2] <> 0 then GArcTgX(PictureBox_Basic, field[1], field[2], field[3], field[4]) else SolidLine(PictureBox_Basic,Field[1]*arctan(field[3])+field[4]); Form_Graph.Controls.Add(PictureBox_Basic); Form_Graph.ShowDialog(Form_main); End; 8: Begin if field[2] <> 0 then GArcCtgX(PictureBox_Basic, field[1], field[2], field[3], field[4]) else SolidLine(PictureBox_Basic,field[1]*(-arctan(field[3])+pi/2)+field[4]); Form_Graph.Controls.Add(PictureBox_Basic); Form_Graph.ShowDialog(Form_main); End; 9: Begin GAbsX(PictureBox_Basic, field[1], field[2], field[3]); Form_Graph.Controls.Add(PictureBox_Basic); Form_Graph.ShowDialog(Form_main); End; 10: Begin GKX_B(PictureBox_Basic, field[1], field[2]); Form_Graph.Controls.Add(PictureBox_Basic); Form_Graph.ShowDialog(Form_main); End; 11: Begin GAXX_BX_C(PictureBox_Basic, field[1], field[2], field[3]); Form_Graph.Controls.Add(PictureBox_Basic); Form_Graph.ShowDialog(Form_main); End; 12: Begin GAXXX_B(PictureBox_Basic, field[1], field[2], field[3]); Form_Graph.Controls.Add(PictureBox_Basic);

Page 27: Моя курсовая работа

27

Form_Graph.ShowDialog(Form_main); End; 13: Begin GXA(PictureBox_Basic, field[1], field[2], field[3], field[4]); Form_Graph.Controls.Add(PictureBox_Basic); Form_Graph.ShowDialog(Form_main); End; 14: Begin GAX(PictureBox_Basic, field[1], field[2], field[3], field[4]); Form_Graph.Controls.Add(PictureBox_Basic); Form_Graph.ShowDialog(Form_main); End; 15: Begin GLog_A_X(PictureBox_Basic, field[1], field[2], field[3], field[4]); Form_Graph.Controls.Add(PictureBox_Basic); Form_Graph.ShowDialog(Form_main); End; End; End;

procedure KeyPressed_1st(Sender: Object; e: KeyPressEventArgs);Begin if (not Char.IsDigit(e.KeyChar)) and (e.KeyChar<>'-') and (e.KeyChar<> chr(8)) then e.Handled := TrueEnd;

procedure KeyPressed_a(Sender: Object; e: KeyPressEventArgs);Begin if not Char.IsDigit(e.KeyChar) and (e.KeyChar<> chr(8)) then e.Handled := True End;

Procedure ButtonNext_1st(Sender: Object; e: EventArgs); Begin NomberItems(n); if n = 16 then MessageBox.Show('Ошибка ввода', 'Ошибка ввода',MessageBoxButtons.OK, MessageBoxIcon.Exclamation) else Begin Form_main.visible:= false; CreateFormNext_1st; End;

Page 28: Моя курсовая работа

28

End;

Procedure ButtonNext_2nd(Sender: Object; e: EventArgs); Var ps:boolean; tempstr:String;Begin NomberItems(n); ps:= true; For i:Integer:= 1 to k do if Trim(Textbox_n[i].Text) = '' then Field[i] := 0 else if Textbox_n[i].Text[1] = '-' then Begin tempstr:= textbox_n[i].Text; delete(tempstr,1,1); field[i]:= Integer.Parse(tempstr); field[i]:= -1*field[i] End else try Field[i] := Integer.Parse(Textbox_n[i].Text); except on System.FormatException do begin MessageBox.Show('Ошибка ввода', 'Ошибка ввода',MessageBoxButtons.OK, MessageBoxIcon.Exclamation); ps:=false; end; end; if (n = 15) and ((field[2]<=1) or (field[2]>10000)) and (ps = true) then Begin messagebox.Show('Значение показателя a должно быть в пределах от 2 до 10000','Ошибка ввода',MessageBoxButtons.OK, MessageBoxIcon.Exclamation); ps:= false; End; if (n = 13) and ((field[2]< -10000) or (field[2] > 10000)) and (ps = true) then Begin messagebox.Show('Значение показателя a должно быть в пределах от -10000 до 10000','Ошибка ввода',MessageBoxButtons.OK, MessageBoxIcon.Exclamation); ps:= false; End; if (n = 14) and ((field[2]< -10000) or (field[2] > 10000)) and (ps = true) then Begin messagebox.Show('Значение степени a должно быть в пределах от -10000 до 10000','Ошибка ввода',MessageBoxButtons.OK, MessageBoxIcon.Exclamation); ps:= false; End; if (n = 14) and (field[2] = 0) and (ps = true) then Begin

Page 29: Моя курсовая работа

29

messagebox.Show('Значение степени a не должно быть равно 0','Ошибка ввода',MessageBoxButtons.OK, MessageBoxIcon.Exclamation); ps:= false; End; if ((field[1]<-10000) or (field[1]>10000)) and (ps = true) then Begin messagebox.Show('Значение коэффициента A должно быть в пределах от -10000 до 10000','Ошибка ввода',MessageBoxButtons.OK, MessageBoxIcon.Exclamation); ps:= false; End; if field[1] = 0 then Begin messagebox.Show('Значение коэффициента A не должно быть равно 0','Ошибка ввода',MessageBoxButtons.OK, MessageBoxIcon.Exclamation); ps:= false; End; if ((field[2]<-10000) or (field[2]>10000)) and (n<>13) and (n<>15) and (ps = true) then Begin messagebox.Show('Значение коэффициента ' +label_n[2].Text[1]+' должно быть в пределах от -10000 до 10000','Ошибка ввода',MessageBoxButtons.OK, MessageBoxIcon.Exclamation); ps:= false; End; if ((field[3]<-10000) or (field[3]>10000)) and (ps = true) then Begin messagebox.Show('Значение коэффициента ' +label_n[3].Text[1]+' должно быть в пределах от -10000 до 10000','Ошибка ввода',MessageBoxButtons.OK, MessageBoxIcon.Exclamation); ps:= false; End; if ((field[4]<-10000) or (field[4]>10000)) and (ps = true) then Begin messagebox.Show('Значение коэффициента ' +label_n[4].Text[1]+' должно быть в пределах от -10000 до 10000','Ошибка ввода',MessageBoxButtons.OK, MessageBoxIcon.Exclamation); ps:= false; End; if ps = true then Begin Form_next_1st.Visible:= false; CreateFormNext_2nd; End;End;

Page 30: Моя курсовая работа

30

Procedure ButtonBack_1st(Sender: Object; e: EventArgs); BeginForm_main.Visible:= true;Form_next_1st.visible:= false;;End;

Procedure ButtonBack_2nd(Sender: Object; e: EventArgs); BeginForm_next_1st.Visible:= true;Form_next_2nd.visible:= false;End;

Procedure MyButtonClick_Text(Sender: Object; e: EventArgs);Begin if radiobutton_text.Checked = true then Begin NomberItems(n); CreateForm_text; Case_Function_text(n,Stringtemp); End else if radiobutton_graph.Checked = true then MyButtonClick_Graph;End;

Procedure Form_closing(Sender: Object; e: System.ComponentModel.CancelEventArgs);Var result: DialogResult;Begin result:= MessageBox.Show('Вы действительно хотите выйти из программы?','GraphBilder v. 1.0', Messageboxbuttons.YesNo, MessageboxIcon.Question); if result = System.Windows.Forms.DialogResult.Yes then Form_main.Close else if result = System.Windows.Forms.DialogResult.No then e.Cancel:= true;End;

procedure MyButtonClick_Graph;Begin CreateForm_graph; Case_Function_Graph(n); End;

Procedure CreateFormNext_1st;Var Tempstr:String; lgth: Integer; move,j: Integer; label_4, label_5: &label;

Page 31: Моя курсовая работа

31

Begin Form_next_1st:= new Form; Form_next_1st := new Form; Form_next_1st.Text := 'GraphBilder v. 1.0'; Form_next_1st.Font:= new Font('Times New Roman',11); Form_next_1st.Width:= 450; Form_next_1st.Height:= 210; Form_next_1st.FormBorderStyle:= FormBorderStyle.FixedDialog; Form_next_1st.MaximizeBox:= false; Var ScreenWidth := Screen.PrimaryScreen.Bounds.Width; Var ScreenHeight := Screen.PrimaryScreen.Bounds.Height; Form_next_1st.left:= (ScreenWidth - Form_next_1st.Width) div 2; Form_next_1st.top:= (ScreenHeight - Form_next_1st.Height) div 2; label_4 := new &Label; label_4.AutoSize := True; label_4.Font:= new Font('Times New Roman',12, fontstyle.Bold); label_4.Text := 'Шаг Второй: '; label_4.Top:= 30; label_4.Left:= 20; Form_next_1st.Controls.Add(label_4); label_5 := new &Label; label_5.AutoSize := True; label_5.Text := 'Введите коэффиенты для функции '+chrunicode(402)+'(x) = '+combobox_basic.Text; label_5.Top:= 54; label_5.Left:= 22; Form_next_1st.Controls.Add(label_5); tempstr:= combobox_basic.Text; lgth:= length(tempstr); move:= 22; j:= 1; For i:Integer:= 1 to lgth do Begin if (tempstr[i] = '*') then Begin Label_n[j]:= new &label; textbox_n[j]:= new TextBox; Label_n[j].Text:= tempstr[i-1]+':'; Label_n[j].Left:= move; textbox_n[j].Left:= move+30; Label_n[j].Top:= 90; textbox_n[j].Top:= 90; Label_n[j].Width:= 20; textbox_n[j].Width:= 40; textbox_n[j].KeyPress += KeyPressed_1st; inc(move,90); Form_next_1st.Controls.Add(label_n[j]); Form_next_1st.Controls.Add(textbox_n[j]); inc(j); End else

Page 32: Моя курсовая работа

32

if (tempstr[i] = '+') and ((i+1 = lgth) or (lgth >= 11) or (i+4 = lgth) or (i+5 = lgth) and (tempstr[i+2]<>'*')) then Begin Label_n[j]:= new &label; textbox_n[j]:= new TextBox; Label_n[j].Text:= tempstr[i+1]+':'; textbox_n[j].Left:= move+30; Label_n[j].Left:= move; Label_n[j].Top:= 90; textbox_n[j].Top:= 90; Label_n[j].Width:= 20; textbox_n[j].Width:= 40; inc(move,90); textbox_n[j].KeyPress += KeyPressed_1st; Form_next_1st.Controls.Add(label_n[j]); Form_next_1st.Controls.Add(textbox_n[j]); inc(j); End else if (tempstr[i] = 'a') or (tempstr[i] = chrunicode(8336)) or (tempstr[i] = chrunicode(7491)) then Begin Label_n[j]:= new &label; textbox_n[j]:= new TextBox; Label_n[j].Text:= 'a:'; textbox_n[j].Left:= move+30; Label_n[j].Left:= move; Label_n[j].Top:= 90; textbox_n[j].Top:= 90; Label_n[j].Width:= 20; textbox_n[j].Width:= 40; if n<>13 then textbox_n[j].KeyPress += KeyPressed_a else textbox_n[j].KeyPress += KeyPressed_1st; inc(move,90); Form_next_1st.Controls.Add(label_n[j]); Form_next_1st.Controls.Add(textbox_n[j]); inc(j); End End; Button_next:= new Button; Button_next.AutoSize := True; Button_next.Height:= 30; Button_next.Text:= 'Далее >'; Button_next.Left:= 190; Button_next.Top:= 130; Button_next.Click += ButtonNext_2nd; Form_next_1st.Controls.Add(Button_next); Button_back_1st:= new Button; Button_back_1st.AutoSize := True; Button_back_1st.Height:= 30; Button_back_1st.Text:= '< Назад'; Button_back_1st.Left:= 100; Button_back_1st.Top:= 130;

Page 33: Моя курсовая работа

33

Button_back_1st.Click += Buttonback_1st; Form_next_1st.Controls.Add(Button_back_1st); Button_cancel:= new Button; Button_cancel.AutoSize := True; Button_cancel.Height:= 30; Button_cancel.Text:= 'Отмена'; Button_cancel.Left:= 280; Button_cancel.Top:= 130; Button_cancel.Click += ButtonCancel; Form_next_1st.Controls.Add(Button_cancel); Form_next_1st.Show; Form_next_1st.Closing += Form_closing; k:= j-1;End;

Function F_chx(Var line:String):String;Var Tempstr:String; m:Integer;Begin m:= pos('A',line); Delete(line,m,2); Case field[1] of -10000..-2: Begin tempstr:= inttostr(field[1]); Insert(tempstr,Line,m); End; 2..10000: Begin tempstr:= inttostr(field[1]); Insert(tempstr,Line,m); End; -1: Begin Insert('-',Line,m); End; End; For i:Integer:= 2 to k do Begin if PosEx('t',line,m)<>0 then Begin case n of 1..3,5..7: m:= posEx('t',line,m); 4: m:= posEx('(t',line,m)+1; 8: m:= posEx('(t',line,m)+1; End; Delete(line,m,2); Case field[2] of -10000..-2, 2..10000: Begin tempstr:= inttostr(field[2]); Insert(tempstr,Line,m); End; -1: Begin

Page 34: Моя курсовая работа

34

tempstr:= '-'; Insert(tempstr,Line,m) End; 0: Begin Delete(line,m,2); dec(m,2); End; 1: Begin tempstr:= ''; Insert(tempstr,Line,m); End; End; End else if PosEx('a',line,m)<>0 then Begin m:= posEx('a',line,m); Delete(line,m,1); tempstr:= inttostr(field[2]); Insert(tempstr,Line,m); End else if PosEx('B',line,m)<>0 then Begin m:= posEx('B',line,m); Case n of 9, 10: Begin tempstr:= inttostr(field[2]); Case field[2] of -10000..-1: Begin Delete(line,m-1,2); Insert(tempstr,Line,m-1) End; 1..10000: Begin Delete(line,m,1); Insert(tempstr,Line,m) End; 0: Begin Delete(line,m-1,2); dec(m); End; End; End; 11:Begin Case field[2] of -10000..-2: Begin

Page 35: Моя курсовая работа

35

tempstr:= inttostr(field[2]); Delete(line,m-1,3); Insert(tempstr,Line,m-1) End; 2..10000: Begin tempstr:= inttostr(field[2]); Delete(line,m,2); Insert(tempstr,Line,m) End; -1: Begin tempstr:= '-'; Delete(line,m-1,3); Insert(tempstr,Line,m-1) End; 0: Begin Delete(line,m-1,4); End; 1: Begin Delete(line,m,2); dec(m); End; End; End; 12, 13: Begin tempstr:= inttostr(field[2]); Case field[2] of -10000..-1: Begin Delete(line,m-1,2); Insert(tempstr,Line,m-1) End; 1..10000: Begin Delete(line,m,1); Insert(tempstr,Line,m) End; 0: Begin Delete(line,m-1,2); dec(m); End; End; End; 1..8, 14, 15: Begin tempstr:= inttostr(field[3]); Case field[3] of -10000..-1:

Page 36: Моя курсовая работа

36

Begin Delete(line,m-1,2); Insert(tempstr,Line,m-1) End; 1..10000: Begin Delete(line,m,1); Insert(tempstr,Line,m) End; 0: Begin if field[2]<>0 then Delete(line,m-1,2) else Begin delete(line,m,1); insert('0',line,m); End; dec(m); End; End; End; End; End else if (PosEx('C',line,m)<>0) and (line[abs(PosEx('C',line,m)-1)] <> 'o') then Begin m:= posEx('C',line,m); Case n of 1..8, 13..15: Begin tempstr:= inttostr(field[4]); Case field[4] of -10000..-1: Begin Delete(line,m-1,2); Insert(tempstr,Line,m-1) End; 1..10000: Begin Delete(line,m,1); Insert(tempstr,Line,m) End; 0: Begin Delete(line,m-1,2); dec(m); End; End; End; 9, 11, 12: Begin tempstr:= inttostr(field[3]); Case field[3] of

Page 37: Моя курсовая работа

37

-10000..-1: Begin Delete(line,m-1,2); Insert(tempstr,Line,m-1) End; 1..10000: Begin Delete(line,m,1); Insert(tempstr,Line,m) End; 0: Begin Delete(line,m-1,2); dec(m); End; End; End; End; End End; F_chx:= line;End;

Procedure CreateFormNext_2nd;Var label_5: &label; strtemp: String;Begin strtemp:= combobox_basic.text; Form_next_2nd:= new Form; Form_next_2nd:= new Form; Form_next_2nd.Text := 'GraphBilder v. 1.0'; Form_next_2nd.Font:= new Font('Times New Roman',11); Form_next_2nd.Width:= 450; Form_next_2nd.Height:= 280; Form_next_2nd.FormBorderStyle:= FormBorderStyle.FixedDialog; Form_next_2nd.MaximizeBox:= false; Var ScreenWidth := Screen.PrimaryScreen.Bounds.Width; Var ScreenHeight := Screen.PrimaryScreen.Bounds.Height; Form_next_2nd.left:= (ScreenWidth - Form_next_2nd.Width) div 2; Form_next_2nd.top:= (ScreenHeight - Form_next_2nd.Height) div 2; label_5 := new &Label; label_5.AutoSize := True; Stringtemp:= f_chx(strtemp); label_5.Text := ' Функция '+chrunicode(402)+'(x) = '+ Stringtemp; label_5.Top:= 40; label_5.Left:= 79; Radiobutton_text:= new RadioButton; Radiobutton_text.Text:= 'Исследовать функцию'; Radiobutton_text.Width:= 190;

Page 38: Моя курсовая работа

38

Radiobutton_text.Left:= 100; Radiobutton_text.Top:= 110; Form_next_2nd.Controls.Add(radiobutton_text); Radiobutton_graph:= new RadioButton; Radiobutton_graph.Text:= 'Построить график функции'; Radiobutton_graph.Width:= 220; Radiobutton_graph.Left:= 100; Radiobutton_graph.Top:= 140; Form_next_2nd.Controls.Add(radiobutton_graph); Button_next:= new Button; Button_next.AutoSize := True; Button_next.Height:= 30; Button_next.Text:= 'Далее >'; Button_next.Left:= 190; Button_next.Top:= 200; Button_next.Click += MyButtonClick_text; Form_next_2nd.Controls.Add(Button_next); Button_back_2nd:= new Button; Button_back_2nd.AutoSize := True; Button_back_2nd.Height:= 30; Button_back_2nd.Text:= '< Назад'; Button_back_2nd.Left:= 100; Button_back_2nd.Top:= 200; Button_back_2nd.Click += ButtonBack_2nd; Form_next_2nd.Controls.Add(Button_back_2nd); Button_cancel:= new Button; Button_cancel.AutoSize := True; Button_cancel.Height:= 30; Button_cancel.Text:= 'Отмена'; Button_cancel.Left:= 280; Button_cancel.Top:= 200; Button_cancel.Click += ButtonCancel; Form_next_2nd.Controls.Add(Button_cancel); Form_next_2nd.Controls.Add(label_5); Form_next_2nd.Closing += Form_closing; Form_next_2nd.Show;End;

Procedure Form_closing_tg(Sender: Object; e: System.ComponentModel.CancelEventArgs);BeginForm_next_2nd.visible:= true;End;

Procedure CreateForm_text;Begin Form_Text := new Form; Form_Text.Text := 'Исследование графика функции ' + Stringtemp; Form_Text.Size:= new System.Drawing.Size(605,650); Form_Text.FormBorderStyle:= FormBorderStyle.FixedDialog; Form_Text.MaximizeBox:= false; Form_Text.MinimizeBox:= false;

Page 39: Моя курсовая работа

39

TextBox_Basic := new TextBox; TextBox_Basic.Multiline := True; TextBox_Basic.Height := 590; TextBox_Basic.Width := 600; TextBox_Basic.Top:= 30; TextBox_Basic.AcceptsReturn:= true; TextBox_Basic.AcceptsTab:= true; TextBox_Basic.ScrollBars:= scrollbars.both; TextBox_Basic.Font := new System.Drawing.Font('Times new roman',12); Form_Text.Controls.Add(TextBox_Basic); ToolStripMenu := new ToolStrip; ToolStripMenu.GripStyle := System.Windows.Forms.ToolStripGripStyle.Hidden; miFile := new ToolStripMenuItem('Файл'); miFile.DropDownItems.Add(new ToolStripMenuItem('Сохранить как...',new System.Drawing.Bitmap(GetResourceStream('Save.png')),MenuSaveClick_1st)); miFile.DropDownItems.Add(new ToolStripMenuItem('Выход',nil,FormClose_1st)); ToolStripMenu.Items.Add(miFile); Form_Text.Controls.Add(ToolStripMenu); Form_text.Closing += Form_closing_tg;End;

Procedure CreateForm_graph;Begin Form_Graph := new Form; Form_Graph.Text := 'График функции ' + Stringtemp; Form_Graph.Size:= new System.Drawing.Size(680,680); Form_Graph.FormBorderStyle:= FormBorderStyle.FixedDialog; Form_Graph.MaximizeBox:= false; Form_Graph.MinimizeBox:= false; Var ScreenWidth := Screen.PrimaryScreen.Bounds.Width; Var ScreenHeight := Screen.PrimaryScreen.Bounds.Height; Form_Graph.left:= (ScreenWidth - Form_Graph.Width) div 2; Form_Graph.top:= (ScreenHeight - Form_Graph.Height) div 2; ToolStripMenu := new ToolStrip; ToolStripMenu.GripStyle := System.Windows.Forms.ToolStripGripStyle.Hidden; miFile := new ToolStripMenuItem('Файл'); miFile.DropDownItems.Add(new ToolStripMenuItem('Сохранить как...',new System.Drawing.Bitmap(GetResourceStream('Save.png')),MenuSaveClick_2nd)); miFile.DropDownItems.Add(new ToolStripMenuItem('Выход',nil,FormClose_2nd)); ToolStripMenu.Items.Add(miFile); Form_Graph.Controls.Add(ToolStripMenu); Form_graph.Closing += Form_closing_tg;End;

Page 40: Моя курсовая работа

40

Procedure MainInterface;Varlabel_2, Label_3, Label_1: &Label;Begin Funs_inititial; Form_main := new Form; Form_main.Text := 'GraphBilder v. 1.0'; Form_main.Font:= new Font('Times New Roman',11); Form_main.Width:= 400; Form_main.Height:= 180; Form_main.FormBorderStyle:= FormBorderStyle.FixedDialog; Form_main.MaximizeBox:= false; Form_main.Left:= 400; Form_main.Top:= 300; Var ScreenWidth := Screen.PrimaryScreen.Bounds.Width; Var ScreenHeight := Screen.PrimaryScreen.Bounds.Height; Form_main.left:= (ScreenWidth - Form_main.Width) div 2; Form_main.top:= (ScreenHeight - Form_main.Height) div 2; label_1 := new &Label; label_1.AutoSize := True; label_1.Font:= new Font('Times New Roman',12, fontstyle.Bold); label_1.Text := 'Шаг первый: '; label_1.Top:= 40; label_1.Left:= 20; Form_main.Controls.Add(label_1); label_2 := new &Label; label_2.AutoSize := True; label_2.Text := 'Выберите функцию из списка '; label_2.Top:= 60; label_2.Left:= 22; Form_main.Controls.Add(label_2); label_3 := new &Label; label_3.AutoSize := True; label_3.Text := chrunicode(402)+'(x) = '; label_3.Top:= 90; label_3.Left:= 22; Form_main.Controls.Add(label_3); combobox_basic:= new combobox; combobox_basic.Height := 70; combobox_basic.Width := 186; combobox_basic.Left:= 70; combobox_basic.Top:= 85; combobox_basic.Font := new System.Drawing.Font('Times New Roman',14); For i:Integer:= 1 to nx do combobox_basic.Items.add(fx[i]); combobox_basic.BackColor:= color.White; Form_main.Controls.Add(combobox_basic); Button_mnext:= new Button; Button_mnext.AutoSize := True; Button_mnext.Height:= 30; Button_mnext.Text:= 'Далее >'; Button_mnext.Left:= 270;

Page 41: Моя курсовая работа

41

Button_mnext.Top:= 84; Button_mnext.Click += ButtonNext_1st; Form_main.Controls.Add(Button_mnext); toolStripmenu := new ToolStrip; toolStripmenu .GripStyle := System.Windows.Forms.ToolStripGripStyle.Hidden; miFile := new ToolStripMenuItem('Файл'); miFile.DropDownItems.Add(new ToolStripMenuItem('Выход',Nil,FormClose_main)); toolStripmenu .Items.Add(miFile); Form_main.Controls.Add(toolStripmenu ); Application.Run(Form_main); End;

Initialization

Finalization

End.