Табулирование функций в интегрированной среде программирования Delphi

 

Введение

визуальный проектирование delphi среда

Математические вычисления являются весьма востребованными в инженерии.

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

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

Для разработки программы была выбрана среда визуального проектирования Borland Delphi 7.0. Она позволяет за короткий промежуток времени и с наименьшими затратами физических и умственных сил создавать прикладные программы различной направленности, обеспечивая при этом наличие дружественного оконного интерфейса. Указанные (а также ряд других) преимущества среды Delphi 7.0. обуславливают широкое её использование при создании программного обеспечения разнообразного назначения.

Цель данной курсовой работы - изучение механизмов работы с линейными, условными и циклическими алгоритмами.

В соответствии с заданием и целью курсовой работы задачами курсовой работы являются:

) разработка алгоритма работы программы и представление его в виде блок-схем;

) реализация разработанного алгоритма в среде Delphi;

) тестирование разработанной программы.


1. Основы языка программирования


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

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

Оператор if...then... называется условным оператором и имеет вид if expression then statement;

где выражение expression1 является логическим. Логическое выражение принимает одно из двух возможных значений - True (истина) или False (ложь). Часто в роли логического выражения выступает какое-то условие, которое может выполняться либо нет. В первом случае его значение - «истина», а во втором - «ложь». Если логическое выражение expression1 принимает значение «истина», то выполняется оператор statementl. В противном случае выполняться будет оператор, следующий за данным логическим оператором.

Операторы if...then... можно вкладывать друг в друга, так как конструкция

if expression2 then statement2;

также является оператором и может заместить оператор statementl:

if expression1 thenexpression2 then statement2;

Оператор if...then...else... является полной версией условного оператора и имеет вид

if expression then statementl else statement2;

Выполняется данный оператор следующим образом: если выражение expression принимает значение «истина», то управление передается на оператор statementl, если же нет, то на оператор statement2.

Оператор

expression thenexpression2 then

statement2

else

statement;


допускает двоякую интерпретацию. Первый вариант соответствует последовательности операторов


if expression thenexpression2 then;;

Второй вариант:expression thenexpression2 then2

end

else;


Компилятор Паскаля всегда выбирает первый из приведенных вариантов - каждому else соответствует ближайший предшествующий if. Если требуется реализация второго варианта, можно использовать операторные скобки begin...end.

Ситуаций, где имеется несколько (три и более) альтернатив, больше подходит оператор case. Этот оператор называется оператором выбора и имеет следующий вид:


case expression of

values_l: statement_l;_2: statement_2;_n: statement_n;;

end;


Рассмотрим элементы этой конструкции. Во-первых, это три зарезервированных слова: case, of и end. Между case и of находится выражение expression, принимающее значение, которое, возможно, имеется в одном из списков значений, находящихся слева от двоеточий. Данное выражение называется селектором оператора case. Каждый оператор, идущий за двоеточием, отделяется от следующего списка значений точкой с запятой. Ветвь else, отвечающая всем не перечисленным значениям выражения expression, необязательна. При выполнении данного оператора вначале вычисляется значение селектора. Затем выбирается тот список значений, которому принадлежит полученное значение, и выполняется соответствующий оператор.

В списках значений оператора case допустимыми являются типы переменных, называемые скалярными, включая целые и исключая вещественные типы. Любое заданное значение селектора может входить в список значений неоднократно, но выполняться будет лишь первая подходящая ветвь. Если значение селектора отсутствует в списках значений, ни одна из альтернатив выполняться не будет. В этом случае выполняется ветвь else оператора case или (если эта ветвь отсутствует) следующий за case оператор.

Оператор цикла является важнейшим оператором и имеется в большинстве современных языков программирования (а сама идея цикла возникла еще в XIX веке!). Цикл позволяет многократно выполнить некоторое множество действий, задаваемых операторами, составляющими его тело. В Паскале имеется несколько разновидностей оператора цикла. Начнем с оператора цикла с предусловием. Данный оператор имеет вид while expression do statement;

При выполнении этого оператора вначале вычисляется значение логического выражения expression. Если это значение истинно, выполняется оператор statement, затем значение выражения проверяется вновь и т. д., до тех пор, пока выражение не примет значение «ложь». Если выражение принимает значение «ложь» при первой же проверке, то оператор statement не выполняется вообще. Рассмотрим частный случай:


while True do statement;


Здесь оператор statement будет выполняться бесконечно.

Оператор цикла с постусловием имеет вид repeat statement until expession;

Здесь вначале выполняется оператор statement, а затем вычисляется значение логического выражения expression. Процесс повторяется, пока выражение expression принимает значение «ложь». Как только это значение станет истинным, выполнение цикла прекращается. Оператор statement может быть любым, в том числе и составным оператором:


repeat_l;2;_n; expression;


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


repeat_l;_2;_n;False;


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

Третий вариант оператора цикла - цикл со счетчиком. Можно считать, что есть две очень похожих друг на друга разновидности цикла со счетчиком. Первый из этих операторов имеет вид for j := expression1 to expression2 do statement;

Здесь переменная j, называемая управляющей переменной цикла for, является произвольным идентификатором, который объявляется как переменная любого скалярного типа (к скалярным относятся целый, символьный, булев и перечислимые типы).

При выполнении оператора for сначала вычисляется значение выражения expression1, затем вычисляется значение выражения expression2, далее управляющая переменная цикла последовательно пробегает все значения от expression1 до expression2. В том случае, когда значение expression1 оказывается больше значения expression2, тело цикла не будет выполняться вовсе. Эти значения остаются неизменными в ходе выполнения всего цикла for.

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

Вариант for...downto...do... цикла for аналогичен циклу for...to...do... за исключением того, что в нем управляющая переменная на каждом шаге выполнения не увеличивается, а уменьшается на единицу:

for j := expression1 downto expression2 do statement;

Иногда бывает удобно проводить проверку на возможный выход из цикла где-нибудь в его середине, а не в начале или конце. Такой выход из цикла обеспечивается процедурой Break модуля System, которая прерывает выполнение самого внутреннего вложенного цикла, будь то for, while или repeat. Указанный модуль подключается к программе автоматически, если в этом есть необходимость. Пример:


while true do;expression then Break;

statement2;

end;


Следует также упомянуть процедуру Continue, которая прерывает выполнение тела самого внутреннего цикла for, while или repeat и передает управление на его заголовок, так что начинается выполнение очередной итерации цикла.


2. Разработка программы


Составим алгоритмы и блок-схемы решения задач.

Задание №1.

1.Ввод значения .

.Вычисление значения функции .

.Вывод значения функции.

.Конец.

Задание №2.

1.Ввод значения .

.Если значение - вычисляем значение функции по формуле . Переходим к п. 4.

.Если значение - вычисляем значение функции по формуле . Переходим к п. 4.

.Выводим значение функции

.Конец.

Задание №3.

1.Ввод значений границ интервала и , и шага .

.Вычисляем количество точек на интервале по формуле


.


3.Начало цикла .

.Если - переходим к п. 9.

.Вычисляем значение аргумента по формуле .

.Вычисляем значение функции по формуле


.


7.Выводим значение аргумента и функции.

8.Переходим к следующей точке. . Переходим к п. 4.

.Конец.

Составим блок-схему алгоритмов (рисунок 1).


Рис.

Рисунок 1. Блок-схема алгоритма


Текст процедуры представлен ниже.


procedure TMainForm.btnCalcClick(Sender: TObject);x, z, a, b, h: double;: string;, n: integer;pc.ActivePageIndex of

::= StrToFloat(le1X.Text);:= Sqr(Sin(x))/Cos(x*x) - Sqr(Sin(x))/Cos(x * x);Z.Text := FloatToStr(z);;

::= StrToFloat(le2X.Text);x <= 3 then z := x + 1z := 1 / (x * x + 1);F.Text := FloatToStr(z);;

::= StrToFloat(le3A.Text);:= StrToFloat(le3B.Text);:= StrToFloat(le3H.Text);:= Round(1 + (b - a) / h);.RowCount := n + 1;i := 1 to n do:= a + (i - 1) * h;(x = -1) or (Cos(x * x) = -1) then:= 'Не определено':= FloatToStr(Sqr(Sin(x)) * Cos(x) / (x + 1) +

(x + 3) / (1 + Cos(x

* x)));.Cells[0, i] := FloatToStr(x);.Cells[1, i] := f;;

end;;;


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

Тестирование программы

Проведем тестирование трех задач (рис. 2-3).


Рисунок 2. Тестирование первой задачи


Рисунок 3. Тестирование второй задачи

Рисунок 4. Тестирование третьей задачи


Выводы


В данной курсовой работе решались три задачи.

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

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

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

В работе изложены основные теоретические сведения, необходимые для выполнения работы, разработаны и представлены в виде блок-схем алгоритмы работы программ.

Разработанные алгоритмы реализованы в приложении, созданном в среде Delphi.

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

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


Литература


.Архангельский А.Я., «Приемы программирования в Delphi на основе VCL», 2009 г., Бином, 944 с.

.Культин Н.Б., «Основы программирования в Delphi 7», 2009 г., BHV, 640 с., ил.

.Культин Н.Б., «Delphi в задачах и примерах», 2008 г., BHV, 280 с., ил.

.Бескоровайный Илья, «Азбука Delphi: программирование с нуля», 2008 г., Сибирское университетское издательство, 112с., ил.

.Гофман В.Э., Хомоненко А.Д., «Самоучитель Delphi», 2008 г., BHV, 576 с., ил.

.Сухарев М., «Delphi», 2008 г., Наука и техника, 1040 с.,ил.

.Гофман В.Э., Мещеряков Е., Никифоров В.В., Хомоненко А.Д. Delphi 7, 2008 г., BHV, 1216 с.,ил.



Приложение


Код программы

;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, ExtCtrls, pngimage;= class(TForm): TGroupBox;: TButton;: TLabel;: TEdit;: TEdit;: TLabel;: TImage;: TBevel;: TLabel;: TLabel;: TGroupBox;: TEdit;: TLabel;: TLabel;: TEdit;: TLabel;: TButton;: TImage;: TGroupBox;: TLabel;

х1: TLabel;

х2: TLabel;

Результат: TLabel;: TEdit;: TEdit;: TMemo;: TImage;: TBevel;: TLabel;: TButton;Click(Sender: TObject);Click(Sender: TObject);Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm1;

{$R *.dfm}TForm1.Button1Click(Sender: TObject);: real;: integer;:= StrToInt(edit1.Text);:=((sin(x)*sin(x))/cos(x*x))+((sin(x)*sin(x))/cos(x*x));.Text:=FloatToStr(z);;TForm1.Button2Click(Sender: TObject);: integer;: real;:= StrToInt(Edit3.Text);<=3 then f:=x+1;<=-3 then f:=1/(x*x)+1;.Text:=FloatToStr(f);;TForm1.Button3Click(Sender: TObject);, i, x1,x2: integer;: real;:= StrToInt(edit5.Text);:= StrToInt(edit6.Text);.clear;

memo1.Lines.Add('результат табулирования функции');

forx := x1 to x2 do:=(sin(x)*sin(x)*(cos(x))/x+1)+x+3/1+cos(x*x);.Lines.Add(FloatToStr(f));;;.


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

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

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

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

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

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