Реализация алгоритмов линейной структуры
Определение: Линейным алгоритмом назовем алгоритм, в котором все действия выполняются последовательно. Задание: Создайте приложение вычисления значения функции Технология выполнения задания Постановка задачи: Создать приложение вычисления значений функции z. Математическая модель представляется так: исходные данные – переменные х и у, результат - z, константы – a и b, связь между данными и результатом выражается формулой . Алгоритм решения задачи: запишем алгоритм решения поставленной задачи с помощью блок-схемы (описываем только процедуру вычисления значения функции). - начало процедуры вычисления функции
- вводим значение переменных х и у - вводим вспомогательную переменную - вычисляем значение функции z в точке(x,у)
- выводим на экран результат
- завершение работы процедуры вычисления функции
Программа:Для создания программы откроем созданный на первой лабораторной работе проект. 1) Изменим, заголовок главного окна вашего будущего приложения, которое по умолчанию имеет имя «Form1» на имя «Лабораторная работа №2». Для этого установим указатель мыши на имя «Form1» и щелкнем левой клавишей мыши. После чего в окне инспектора объектов (Object Inspector) активизируем страницу Свойства (Properties), в левой колонке этой страницы выберем свойство caption, в правой колонке (напротив свойства caption) удалим имя «Form1» и наберем с клавиатуры то имя, которое нам необходимо. 2) Теперь осталось описать процедуры обработки событий нажатия кнопок, причем при нажатии кнопки «Вычислить» на месте метки Label3 (т.е. напротив надписи «z=») должен выводиться результат вычисления функции z=ln((x-a)/b)+(cos(pi*x)-sin(pi*y))/(x2+y2), где х,y – действительные числа, введенные с клавиатуры в поля компонент Edit1 и Edit2, а при нажатии кнопки «закрыть» - окно приложения должно закрываться. Начнем с процедуры обработки события нажатия кнопки «Вычислить». Для этого можно использовать уже известный вам способ (инспектор объектов страница событий Events событие OnClick). Либо проделать более простую операцию: дважды щелкнуть левой клавишей мыши по кнопке «Вычислить» и при этом активизируется обработчик кодов, где и необходимо набрать часть программы, соответствующей вышерассмотренному алгоритму в рамках общей структуры процедуры. procedure TForm1.Button1Click(Sender: TObject); Begin …….. End; Заголовок процедуры уже создан автоматически при ее вызове, а разделы описания меток, констант, типов нам указывать нет необходимости (в связи с тем, что данная задача очень проста). Объявим используемые в формуле константы a,b в разделе объявления констант const, причем а=1, b=15. Объявим все используемые нами переменные х, у, вспомогательная переменная t и результат z в разделе описания переменных var, причем эти переменные принимают действительные значения, поэтому определим для них тип real. Следующие шаги соответствуют алгоритму решения задачи (записанному выше в виде блок-схемы) и описываются на языке Паскаль. При решении этой задачи будем использовать следующие функции: IntToStr – преобразование целого числа в строку FloatToStrf – преобразование действительного числа в строку StrToFloat – преобразование строки в действительное число StrToInt – преобразование строки в целое число Таким образом, процедура описания нажатия клавиши «вычислить» выглядит так: procedure TForm1.Button1Click(Sender: TObject); - заголовок процедуры const a=1; b=15; - a,b - константы var x,y,t,z:real; - переменные х, у, t, z действительные числа begin - начало x:=strtofloat(edit1.text); - переменной х (вводимой в поле edit1 в виде текста) присваиваем преобразование в действительное число y:=strtofloat(edit2.text); - переменной y (вводимой в поле edit2 в виде текста) присваиваем преобразование в действительное число t:=(x-a)/b; - переменной t присваиваем значение выражения (x-a)/b z:=ln(t)+(cos(pi*x)-sin(pi*y))/(sqr(x)+sqr(y)); - переменной z присваиваем значение функции label3.caption:=’z=’+floattostrf(z,fffixed,6,3); - свойству Caption присваиваем преобразованное к строке значение z end; - конец процедуры В записи floattostrf(z,fffixed,6,3) число 6 означает, что на шестом знаке результата будет сделано округление числа, число 3 указывает на количество знаков после запятой в результате. Теперь перейдем к созданию пунктов меню. 1) Чтобы добавить к разрабатываемой программе меню, надо выбрать на панели компонентов Standard компонент TMainMenu и поместить его на форме в произвольном месте. Компонент TMainMenu – невизуальный, в отличие от визуальных компонентов TEdit и TLabel, в точности соответствующих своему внешнему виду в работающей программе. Это означает, что, хотя он виден на форме как небольшой квадрат, в окне созданной программы в таком виде компонент не появится; 2) Создается меню с помощью специального редактора меню, оно вызывается двойным щелчком на объекте MainMenu1. Первоначально меню пустое; 3) В инспекторе объектов в свойстве Caption введите название первого пункта меню - &Файл с указанной горячей клавишей, а затем нажмите клавишу Enter. Редактор меню переключится обратно в проектируемое меню, где уже появится первый пункт меню в соответствии с рисунком 6; Рисунок 6 - Проектирование меню
4) Теперь надо опять нажать клавишу Enter – и система переключится к заголовку Caption для нового пункта. В него вводится очередное название подпункта меню – &Вычислить, опять нажимаем клавишу Enter – и цикл формирования меню повторяется. Аналогично добавляется подпункт закрыть; 5) По проектируемому меню перемещаются с помощью клавиш управления курсором. Когда меню подготовлено, редактор надо закрыть. При этом на форме появится меню в соответствии с рисунком 7, в точности, как в будущей программе; Рисунок 7 - Итоговый вид формы 6) Чтобы меню работало необходимо в Редакторе меню дважды щелкнуть на соответствующем пункте – Вычислить. Как и в случае кнопки, система автоматически создаст основную структуру, где необходимо будет набрать часть программы. procedure TForm1.N2Click(Sender: TObject); Begin ……… End; Внутри операторных скобок begin … end введите с клавиатуры Button1Click(Sender); Теперь опишем работу пункта меню Закрыть. Аналогично в Редакторе меню дважды щелкнуть на соответствующем пункте – Закрыть. Система автоматически создаст основную структуру, где необходимо будет набрать часть программы. procedure TForm1.N3Click(Sender: TObject); Begin ……… End; Внутри операторных скобок begin … endвведите с клавиатуры Form1.Close;. Теперь сохраним проект и проведем компиляцию программы – Ctrl+F9. Затем запустим программу и проведем работу в приложении через меню.
|