Технологии программирования

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

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

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

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

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

Для приближенного вычисления определенного интеграла

разбивается отрезок интегрирования [a,b] на n равных частей точками

Значения функции y=f(x) в точках разбиения x i обозначено через yi . Непрерывная подынтегральная функция y=f(x) заменяется сплайном — кусочно-полиномиальной функцией S(x), аппроксимирующей данную функцию.

Интегрируя функцию S(x) на отрезке [a,b], получается некоторая формула численного интегрирования (квадратурная формула).

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

Если на каждой части [x i -1 ,xi ] (i=1,n) деления отрезка [a,b] функцию y=f(x) заменить функцией, принимающей постоянное значение, равное, например, значению функции y=f(x) в серединной точке i-й части

50 стр., 24567 слов

«Разработка методической поддержки базового курса информатики ...

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

то функция будет иметь ступенчатый вид:

в этом случае:

и получается квадратурную формулу прямоугольников:

Если функцию y=f(x) на каждом отрезке [x i -1 ,xi ] заменить её линейной интерполяцией по точкам (xi -1 ,yi -1 ) и (xi ,yi ), то получится непрерывная кусочно-линейная функция

Графиком этой функции является ломаная линия.

В этом случае:

в итоге получена квадратурная формула трапеций:

Можно получить квадратурную формулу Симпсона, называемую также формулой парабол, если сплайн S(x), аппроксимирующий подынтегральную функцию y=f(x), представляет собой непрерывную функцию, составленную из примыкающих парабол. На отрезке [x i -1 ,xi ] парабола проходит через точки (xi -1 ,yi -1 ), (xi -1 /2 ,yi -1 /2 ), (xi ,yi ).

Используя построение интерполяционного многочлена Лагранжа второго порядка на отрезке [xi -1 ,xi ], получим сплайн:

Для дальнейших преобразований вводится переменная t € [0,1] с помощью равенства x = x i -1 +h*t. Выражают сплайн через новую переменную:

Учитывая, что

В результате получена квадратурная формула парабол(или формула Симпсона):

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

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

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

2. Вводим нижний предел.

3. Вводим верхний предел.

4. Вводим количество отрезков для разбиения.

5. Выбираем метод для вычисления интеграла

  • По формуле Симпсона
  • По формуле прямоугольников
  • .По формуле трапеций

6. Нажимаем кнопку вычислить.

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

8. Для формулы Симпсона, сначала рассчитываются первые два узла интегрирования и шаг.(для других методов аналогично, только меняются пункты 8, 9, 10)

9. После, рассчитываются результаты интегрирования на 3ем узле и 4том. Здесь используются потоки, в зависимости от количества отрезков на каждый узел.

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

11. На экран выводится метка с результатом интегрирования.

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

3.Краткая инструкция по работе программы

программирование средний прямоугольник формула

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

Для того чтобы начать работу необходимо запустить файл PrIntegral.exe. После запуска на экране появится окно (рис. 1).

29 стр., 14392 слов

Создание проекта для тестирования знаний студентов по языку программирования ...

... разработки Delphi при программной реализации, позволило создать качественное современное программное обеспечение, обладающее высокой скоростью работы, ... Компоненты вкладки Standard: Frames. MainMenu. PopupMenu. Label. Edit. Memo. Button. CheckBox. RadioButton. ListBox. ComboBox. ... новую информацию. Анализ результатов проверки данных тестов позволит диагностировать и психофизиологическую личность ...

Рис 1. Запуск программы.

Далее необходимо ввести функцию (рис. 2).

Рис 2. Ввод функции

Далее необходимо ввести пределы интегрирования (верхний и нижний) (рис. 3,4).

Рис 3,4. Ввод верхнего и нижнего пределов интегрирования.

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

Риск 5. Ввод количества частей для разбиения

После выбирается необходимый метод для вычисления интеграла (рис. 6).

Рис 6. Выбор метода для вычисления

Далее после ввода всех данных и выбора метода необходимо нажать кнопку вычислить (рис. 7).

Рис 7. Вычисление.

После появится метка в левом нижнем экране с результатом вычислений (рис. 8).

Рис 8. Результат вычислений.

Для выхода из программы необходимо кликнуть на кнопку Выход (рис. 9).

Рис 9. Результат вычислений

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

Исходный текст программы (основной модуль)

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, UFunction, jpeg, ExtCtrls, Unit2, Unit3;

type

TForm1 = class(TForm)

Label1: TLabel;

  • Label2: TLabel;
  • Edit1: TEdit;
  • Edit2: TEdit;
  • Button1: TButton;
  • Edit4: TEdit;
  • RadioButton1: TRadioButton;
  • RadioButton2: TRadioButton;
  • RadioButton3: TRadioButton;
  • Edit5: TEdit;
  • Button4: TButton;
  • Image1: TImage;
  • GroupBox1: TGroupBox;
  • Label5: TLabel;
  • Label6: TLabel;
  • Label4: TLabel;
  • Label3: TLabel;
  • procedure Edit1KeyPress(Sender: TObject;
  • var Key: Char);
  • procedure Edit2KeyPress(Sender: TObject;
  • var Key: Char);
  • procedure Edit4KeyPress(Sender: TObject;
  • var Key: Char);
  • procedure Button1Click(Sender: TObject);
  • procedure Edit5KeyPress(Sender: TObject;
  • var Key: Char);
  • procedure Button4Click(Sender: TObject);
  • procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

simc2,simc3:extended; //переменные для суммирования результатов потока

end;

var

Form1: TForm1;

  • OldFStroka: string;
  • a, b : extended;//границы интегрирования,счетчик

nc: integer;//разбить на nc частей

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

begin

label3.Visible:=False;

  • label4.Visible:=False;
  • end;
  • procedure TForm1.Edit5KeyPress(Sender: TObject;
  • var Key: Char);

begin

if not (key in[‘0’..’9′, ‘a’..’z’, #8, #13, ‘-‘, ‘+’, ‘*’, ‘/’,

‘^’, ‘,’, ‘.’, ‘(‘, ‘)’]) then key:=#0;

10 стр., 4904 слов

Информатика» «Разработка программы для игры «Питон

... выполнять поставленные задачи и правильно функционировать.[3] Задачей данной курсовой работы стала разработка программы для игры «Питон». Разработанная программа, предназначенная для изображения движущегося “питона”, ... заполнение таблицы и формы программы. Алгоритм процедуры TForm1.FormCreate представлен на рисунке 3. procedure TForm1.FormCreate (Sender: TObject) Связать finfo с файлом i=0 Нет Файл ...

  • end;
  • procedure TForm1.Edit1KeyPress(Sender: TObject;
  • var Key: Char);

begin

if not (key in[‘0’..’9′, #8, ‘-‘, ‘E’, ‘e’, ‘,’, ‘.’]) then key:=#0;

  • end;
  • procedure TForm1.Edit2KeyPress(Sender: TObject;
  • var Key: Char);

begin

if not (key in[‘0’..’9′, #8, ‘-‘, ‘E’, ‘e’, ‘,’, ‘.’]) then key:=#0;

  • end;
  • procedure TForm1.Edit4KeyPress(Sender: TObject;
  • var Key: Char);

begin

if not (key in[‘0’..’9′, #8]) then key:=#0;

  • end;
  • procedure Pr;

begin

FStroka:=Form1.Edit5.Text;

if length(OldFStroka) = 0 then

begin

CreateSh;

  • OldFStroka:=FStroka;

end else

if OldFStroka <> FStroka then

begin

DeleteSh;

  • CreateSh;
  • OldFStroka:=FStroka;
  • end;
  • end;
  • function Log: boolean;

begin

if Form1.Edit5.Text <> » then Log:=true else Log:=false;

  • if Form1.Edit1.Text <>
  • » then a:=strtofloat(Form1.Edit1.Text) else

Log:=false;

  • if Form1.Edit2.Text <>
  • » then b:=strtofloat(Form1.Edit2.Text) else

Log:=false;

  • if Form1.Edit4.Text <>
  • » then nc:=strtoint(Form1.Edit4.Text) else

Log:=false;

  • end;

//формула Симпсона

function IntegralSimpson: extended;

  • var c0, c1, c2, c3, c4, dx: extended;
  • i: integer;
  • Thr: Threadc2;Thr2: Threadc3;
  • k: real;

begin

c0:=(b-a)/(3*nc);

  • c1:=(F(a)+F(b))/2;
  • dx:=(b-a)/nc;
  • c2:=0;
  • i:=0;
  • c3:=0;
  • k:=-0.5;

repeat

i:=i+1;

  • Thr:=Threadc2.Create(False);
  • Thr.Priority:=tpHighest;
  • Thr.FreeOnTerminate:=True;
  • Thr.a:=a;
  • Thr.dx:=dx;
  • Thr.nc:=nc;
  • Thr.i:=i;
  • until i = nc-1;

repeat

k:=k+1;

  • Thr2:=Threadc3.Create(False);
  • Thr2.Priority:=tpHighest;
  • Thr2.FreeOnTerminate:=True;
  • Thr2.a:=a;
  • Thr2.dx:=dx;
  • Thr2.nc:=nc;
  • Thr2.k:=k;
  • until k = nc-0.5;
  • IntegralSimpson:=c0*(c1+Form1.simc2+2*Form1.simc3);
  • end;

//формула прямоугольников

function IntegralPrmg: extended;

  • var sum, dx: extended;
  • k: real;

begin

dx:=(b-a)/nc;

  • sum:=0;
  • k:=-0.5;

repeat

k:=k+1;

  • sum:=sum+F(a+dx*k);
  • until k = (2*nc-1)/2;
  • IntegralPrmg:=dx*sum;
  • end;

//формула трапеций

function IntegralTrap: extended;

  • var dx, c0, c1: extended;
  • i: integer;

begin

dx:=(b-a)/nc;

  • c0:=(F(a)+F(b))/2;
  • c1:=0;
  • i:=0;

repeat

12 стр., 5583 слов

Содержание … 2 Введение Обзор технологий и стандартов BIM ...

2 3 Содержание Реферат... 2 Введение Обзор технологий и стандартов BIM технологии IFC формат Продукты, реализующие ... частности. 5 6 1 Обзор технологий и стандартов 1.1 BIM технологии Building information modeling (BIM) это процесс, включающий в себя ... поставленной цели были выявлены следующие задачи: Ознакомиться с BIM технологиями и IFC форматом Выявить недостатки существующего стандарта IFC ...

i:=i+1;

  • c1:=c1+F(a+dx*i);
  • until i = nc-1;
  • IntegralTrap:=dx*(c0+c1);
  • end;
  • procedure TForm1.Button1Click(Sender: TObject);

begin

Pr;simc2:=0;simc3:=0;

  • label3.Caption:=»;

if Log then

if Form1.RadioButton1.Checked then Form1.Label3.Caption:=floattostr(IntegralSimpson)

else

if Form1.RadioButton2.Checked then Form1.Label3.Caption:=floattostr(IntegralPrmg) else

if Form1.RadioButton3.Checked then Form1.Label3.Caption:=floattostr(IntegralTrap);

  • label3.Visible:=True;
  • label4.Visible:=True;
  • end;
  • procedure TForm1.Button4Click(Sender: TObject);

begin

close;

  • end;
  • end.

Исходный текс потока 1(Unit2)

unit Unit2;

interface

uses

Classes;

type

Threadc2 = class(TThread)

private

{ Private declarations }

protected

procedure Execute; override;

  • procedure SIMP;

Public

dx,a,tr2,c,cc,c0,c1,c2,c3,nc,k:Extended;

  • i:integer;
  • end;

implementation

uses unit1, Forms, SysUtils, UFunction;

{ Threadc2 }

procedure Threadc2.SIMP;

begin

c2:=F(a+dx*i);

  • Form1.simc2:=Form1.simc2+c2;
  • end;
  • procedure Threadc2.Execute;

begin

SIMP;

  • end;
  • end.

Исходный текс потока 2(Unit3)

unit Unit3;

interface

uses

Classes;

type

Threadc3 = class(TThread)

private

{ Private declarations }

protected

procedure Execute; override;

  • procedure SIMP;

Public

dx,a,tr2,c,cc,c0,c1,c2,c3,nc,k:Extended;

  • i:integer;
  • end;

implementation

uses unit1, Forms, SysUtils, UFunction;

{ Threadc3 }

procedure Threadc3.SIMP;

begin

c3:=F(a+dx*i);

  • Form1.simc3:=Form1.simc3+c3;
  • end;
  • procedure Threadc3.Execute;

begin

SIMP;

  • end;
  • end.

Дополнительный модуль(UFunction):

  • unit UFunction;

interface

uses

Windows, SysUtils, Math;

Const

a: array[1..10] of string[6] = (‘arcsin’, ‘arccos’, ‘arctan’, ‘sin’, ‘cos’, ‘tan’, ‘ctg’, ‘ln’, ‘exp’, ‘abs’);

Type

PExt = ^extended;

  • ElemSh = ^Dat;

Dat = record

L, R: PExt;

  • fn: integer;
  • Rez: extended;
  • Next: ElemSh;
  • end;

Var

FStroka: string;//функция в виде строки

Mch: array of PExt;

  • n, nn: integer;
  • p: PExt;
  • FX: extended;
  • U: ElemSh;
  • BeginUz: ElemSh;
  • function F(X: extended): extended;//функция

procedure CreateSh;//создать схему

procedure DeleteSh;//удалить схему

10 стр., 4656 слов

Разработка web-приложения

... препятствовать корректной работе приложения. Но использование активных серверных страниц ASP позволило в большей степени избежать данных проблем. Цель работы: Спроектировать и разработать Web-приложение для упрощенного ... пользователя велись вручную. Для теста использовался яндекс.браузер. Интерфейс определяет все возможности пользователя, и его разработка велась параллельно с разработкой каждого из ...

implementation

function StrToLogstr(str: string): string;

  • var i, k: integer;
  • s: string;

begin

s:=str;

  • while pos(‘ ‘, s) <>
  • 0 do delete(s, pos(‘ ‘, s), 1);
  • if s[1] = ‘-‘ then insert(‘0’, s, 1);;
  • while pos(‘(-‘, s) <>
  • 0 do insert(‘0’, s, pos(‘(-‘, s)+1);

for i:=low(a) to high(a) do

while pos(a[i], s) <> 0 do

begin

insert(‘f’+inttostr(i), s, pos(a[i], s));

  • delete(s, pos(a[i], s), length(a[i]));
  • end;
  • i:=0;

repeat

i:=i+1;

if s[i] = ‘f’ then

begin

k:=i+1;

  • while s[k] <>
  • ‘(‘ do

begin

k:=k+1;

  • if k >
  • length(s) then break;
  • end;
  • i:=i+(k-i-1);

end else

if s[i] in [‘0’..’9′, ‘,’, ‘.’] then

begin

k:=i;

  • while s[k] in[‘0’..’9′, ‘,’, ‘.’] do

begin

k:=k+1;

  • if k >
  • length(s) then break;
  • end;
  • n:=n+1;
  • p:=new(PExt);
  • setlength(MCh, n+1);
  • MCh[n]:=p;
  • p^:=strtofloat(copy(s, i, k-i));
  • delete(s, i, k-i);
  • insert(‘<‘+inttostr(n)+’>’, s, i);
  • if n <
  • 10 then i:=i+2 else if n <
  • 100 then i:=i+3 else if n <
  • 1000 then i:=i+4;

end else

if (s[i] = ‘p’) or (s[i] = ‘e’) then

begin

p:=new(PExt);

  • if s[i] = ‘p’ then p^:=pi else p^:=exp(1);
  • if s[i] = ‘p’ then delete(s, i, 2) else delete(s, i, 1);
  • n:=n+1;
  • insert(‘<‘+inttostr(n)+’>’, s, i);
  • setlength(MCh, n+1);
  • MCh[n]:=p;
  • if n <
  • 10 then i:=i+2 else if n <
  • 100 then i:=i+3 else if n <
  • 1000 then i:=i+4;

end else

if s[i] = ‘x’ then

begin

delete(s, i, 1);

  • n:=n+1;
  • insert(‘<‘+inttostr(n)+’>’, s, i);
  • setlength(MCh, n+1);
  • MCh[n]:=@FX;
  • if n <
  • 10 then i:=i+2 else if n <
  • 100 then i:=i+3 else if n <
  • 1000 then i:=i+4;
  • end;
  • until i >= length(s);
  • nn:=n;
  • StrToLogstr:=s;
  • end;
  • procedure InsUz(AddrL, AddrR: PExt;
  • fnd: integer;
  • var U: ElemSh);

begin

new(U);

  • U^.L:=AddrL;
  • U^.R:=AddrR;
  • U^.fn:=fnd;
  • U^.Next:=nil;
  • end;
  • function Fbs(str: string): string;
  • var i, k, t, m, NOper: integer;
  • s: string;
  • Q: ElemSh;

begin

6 стр., 2779 слов

Разработка программы «Простой калькулятор»

... Разработка рабочего проекта 1.5 Разработка программы Для создания приложения программы “Калькулятор” используется среда визуального программирования Delphi. Проект программы содержит два окна: ... TForm1.Button4Click(Sender: TObject); begin Pole.Text:= Pole.Text+'/'; end; procedure TForm1.Button5Click(Sender: TObject); var s: string; i: word; First: boolean; begin s:=Pole.Text; rez:=0; while (s[1 ...

s:=str;

  • while (pos(‘^’, s) <>
  • 0) or (pos(‘*’, s) <>
  • 0) or (pos(‘/’, s) <>
  • 0) do

begin

Q:=U;

  • i:=4;
  • while not (s[i] in[‘^’, ‘*’, ‘/’]) do i:=i+1;
  • NOper:=0;

if s[i] = ‘*’ then NOper:=high(a)+3 else

if s[i] = ‘/’ then NOper:=high(a)+4 else

if s[i] = ‘^’ then NOper:=high(a)+5;

  • k:=i-2;
  • while s[k-1] <> ‘<‘ do k:=k-1;//(k-1) — поз.

‘<‘

m:=strtoint(copy(s, k, i-k-1));

  • t:=k;
  • k:=i+2;
  • while s[k+1] <> ‘>’ do k:=k+1;//(k+1) — поз.

‘>’

InsUz(Mch[m], Mch[strtoint(copy(s, i+2, k-i-1))], NOper, U);

  • if Q <>
  • nil then Q^.Next:=U else BeginUz:=U;
  • n:=n+1;
  • setlength(MCh, n+1);
  • MCh[n]:=@U^.Rez;
  • delete(s, t, k-t+1);
  • insert(inttostr(n), s, t);
  • end;
  • while (pos(‘+’, s) <>
  • 0) or (pos(‘-‘, s) <>
  • 0) do

begin

Q:=U;

  • i:=2;
  • while not (s[i] in[‘+’, ‘-‘]) do i:=i+1;
  • NOper:=0;

if s[i] = ‘+’ then NOper:=high(a)+1 else

if s[i] = ‘-‘ then NOper:=high(a)+2;

  • k:=i-2;
  • while s[k-1] <> ‘<‘ do k:=k-1;//(k-1) — поз.

‘<‘

m:=strtoint(copy(s, k, i-k-1));

  • t:=k;
  • k:=i+2;
  • while s[k+1] <> ‘>’ do k:=k+1;//(k+1) — поз.

‘>’

InsUz(Mch[m], Mch[strtoint(copy(s, i+2, k-i-1))], NOper, U);

  • if Q <>
  • nil then Q^.Next:=U else BeginUz:=U;
  • n:=n+1;
  • setlength(MCh, n+1);
  • MCh[n]:=@U^.Rez;
  • delete(s, t, k-t+1);
  • insert(inttostr(n), s, t);
  • end;
  • Fbs:=s;
  • end;
  • procedure Skb(str: string;
  • var U: ElemSh);
  • var i, k, g: integer;
  • s, sc: string;
  • Q: ElemSh;

begin

s:=str;

  • while pos(‘(‘, s) <>
  • 0 do

begin

i:=pos(‘)’, s);

  • k:=i-4;
  • while s[k] <>
  • ‘(‘ do k:=k-1;
  • if s[k-1] in[‘0’..’9′] then

begin

sc:=Fbs(copy(s, k+1, i-k-1));

  • Q:=U;
  • g:=k-1;
  • while s[g-1] <>
  • ‘f’ do g:=g-1;
  • InsUz(MCh[strtoint(copy(sc, 2, length(sc)-2))], nil, strtoint(copy(s, g, k-g)), U);
  • if Q <>
  • nil then Q^.Next:=U else BeginUz:=U;
  • n:=n+1;
  • setlength(MCh, n+1);
  • MCh[n]:=@U^.Rez;
  • delete(s, g-1, i-g+2);
  • insert(‘<‘+inttostr(n)+’>’, s, g-1);

end else

13 стр., 6259 слов

Технология обработки информации

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

if (k-1 = 0) or (s[k-1] in[‘+’, ‘-‘, ‘*’, ‘/’, ‘^’, ‘(‘]) then

begin

sc:=Fbs(copy(s, k+1, i-k-1));

  • delete(s, k, i-k+1);
  • insert(sc, s, k);
  • end;
  • end;
  • sc:=Fbs(s);
  • if U <>
  • nil then if BeginUz <>
  • U then U^.Next:=BeginUz;
  • end;
  • procedure CompileUz(var U: ElemSh);

begin

case U^.fn of

1: U^.Rez:=arcsin(U^.L^);

2: U^.Rez:=arccos(U^.L^);

3: U^.Rez:=arctan(U^.L^);

4: U^.Rez:=sin(U^.L^);

5: U^.Rez:=cos(U^.L^);

6: U^.Rez:=sin(U^.L^)/cos(U^.L^);

7: U^.Rez:=cos(U^.L^)/sin(U^.L^);

8: U^.Rez:=ln(U^.L^);

9: U^.Rez:=exp(U^.L^);

10: U^.Rez:=abs(U^.L^);

11: U^.Rez:=U^.L^+U^.R^;

12: U^.Rez:=U^.L^-U^.R^;

13: U^.Rez:=U^.L^*U^.R^;

14: U^.Rez:=U^.L^/U^.R^;

15: if U^.L^ = 0 then U^.Rez:=0 else U^.Rez:=exp(U^.R^*ln(U^.L^));

  • end;
  • end;
  • procedure CreateSh;

begin

Skb(strtologstr(FStroka), U);

  • n:=-1;
  • setlength(MCh, nn+1);
  • end;
  • procedure DeleteSh;
  • var Q: ElemSh;
  • i: integer;

begin

U:=BeginUz;

  • if U <>
  • nil then if U^.Next = nil then Dispose(U) else

begin

repeat

Q:=U;

  • U:=U^.Next;
  • Dispose(Q);
  • until U^.Next = BeginUz;
  • Dispose(U);
  • end;
  • U:=nil;
  • for i:=low(Mch) to nn do if Mch[i] <>
  • @FX then dispose(Mch[i]);
  • setlength(MCh, 0);
  • p:=nil;
  • end;
  • function F(X: extended): extended;

begin

FX:=X;

  • U:=BeginUz;

if U = nil then F:=Mch[0]^ else

begin

if U^.Next = nil then CompileUz(U) else

begin

repeat

CompileUz(U);

  • U:=U^.Next;
  • until U^.Next = BeginUz;
  • CompileUz(U);
  • end;
  • F:=U^.Rez;
  • end;
  • end;

Begin

n:=-1;

  • end.

Заключение

В заключение хотелось бы отметить, что методы структурного программирования позволяют более мобильно и качественно проводить работу по модернизации программного обеспечения. Так достаточно усовершенствовать отдельный модуль откомпилировать его и главный модуль, для достижения, желаемого результата. Более того, текст главной программы более читаем, и занимает меньше места. Имеющиеся наработки в отдельных модулях можно использовать в других программах, не задумываясь об их работоспособности. Четко вычерченная структура позволяет яснее представить цели и задачи стоящие перед программистом. Не нужно все время перемещаться по тексту взад и вперед. В любой промежуток времени работы над очень большой программной появляется возможность сконцентрироваться на отдельном модуле. Открывается возможность совместной работы нескольких человек над одной громоздкой программной. Удачно разработанный модуль одного программиста становиться, доступен другим.

Список литературы

[Электронный ресурс]//URL: https://inzhpro.ru/kursovaya/kursovyie-rabotyi-tehnologii-programmirovaniya/

19 стр., 9093 слов

Измеритель дальности на ультразвуковом датчике с GSM модулем

... измерителя дальности на ультразвуковом датчике c GSM модулем. Изготовлению печатной платы устройства. В заключении, приводится выводы работы, и технические характеристики канал ультразвуковой датчик микроконтроллер (от ... обеспечивает контроль качества работы и управление всей сетью. Обрабатывает аварийные сигналы, при которых требуется вмешательство персонала. Обеспечивает проверку состояния сети, ...

1. Культин Н.П. Delphi в задачах и примерах.- БХВ-Петербург, 2010. — 288 с

2. Амосов А. А., Дубинский Ю.А., Копченова Н.В. Вычислительные методы для инженеров.- М.: Высшая школа, 2008. 544 с

3. Хомосенко А.А, Гофман В.А., Мещеряков Е.В., Никифоров И.П. Delphi 7. Наиболее полное руководство.- БХВ — Петербург, 2009. — 355 с.