Студопедия — Программирование вычислений определенных интегралов
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Программирование вычислений определенных интегралов






Программирование численного интегрирования по формуле (6.4) проиллюстрируем на конкретных примерах. При этом описания типов переменных и операторы, реализующие необходимые вычисления, будем вводить посредствам клавиатуры в полученную заготовку процедуры-обработчика события OnClick.

 

Задание 1. Составить программу вычисления определенного интеграла

по формуле (6.4), приняв n =80.

Для улучшения ‘читабельности’ программы, имена переменным будем давать по обозначениям математических величин формулы (6.4). Тип переменных естественным образом определяется этой формулой. Поэтому между заголовком процедуры и операторной скобкой begin введем секцию var, в которой опишем типы переменных:

Var

i,n:integer;

a,b,s,h,x:real;

В тело процедуры запишем операторы, реализующие:

1. Ввод исходных данных:

a:=StrToFloat(Edit1.Text);

b:=StrToFloat(Edit2.Text);

n:=StrToInt(Edit3.Text);

В операторах: StrToFloat(Edit1.Text) является стандартной функцией, преобразующей строковый тип поля Edit1 в вещественный тип; StrToInt(Edit3.Text) – стандартная функция, преобразующая строковый тип поля Edit3 в целый тип. Преобразованные значения присваиваются операторами 2-м вещественным переменным a, b и переменной целого типа n. Заметим, что в работающей программе вначале заполняются поля Edit1, Edit2, Edit3 текстами 0,0; 1,0; 80 соответственно, а затем производится ЩЛК на кнопке ‘Вычислить’.

2. Вычисление значений математических величин по формуле (6.4).

Для вычисления шага интегрирования h =(b – a)/n и полусуммы (y0+yn)/2 (см. формулу (6.4)) запишем операторы:

 

h:=(b-a)/n;

s:=(a*a*sqrt(1-a*a)+b*b*sqrt(1-b*b))/2.0;

Вычисление значения аргумента x 1 определим записав оператор:

x:=a+h;

Вычисление частных сумм и окончательно полной суммы ординат (y0+yn)/2+y1+y2+…+yn-1 для соответствующих значений аргумента x 1, x 2,…, x n-1 зададим в цикле:

for i:=1 to n-1 do

Begin

s:=s+x*x*sqrt(1-x*x);

x:=x+h;

end;

Следует понимать, что многократное выполнение оператора x:=x+h; приводит к тому, что переменная x последовательно будет принимать значения x 1, x 2,…, x n-1.

Умножив полученную сумму на h:

s:=h*s;,

отобразим полученный результат в поле Edit4:

Edit4.Text:=FloatToStr(s);

В этом операторе, для преобразования вещественного значения переменной s в строковый тип, применяется стандартная функция FloatToStr(s).

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

 

unit Unit1; // Заголовок модуля

interface // Начало интерфейсного раздела

Uses

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

Forms, Dialogs, StdCtrls;

Type

TForm1 = class(TForm) // Начало описания класса

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Button1: TButton;

procedure Button1Click(Sender: TObject);

Private

{ Private declarations }

Public

{ Public declarations }

end; // Конец описания класса

Var

Form1: TForm1;

implementation // Начало раздела реализации

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject); // Заголовок процедуры

Var

i,n:integer;

a,b,s,h,x:real;

Begin

a:=StrToFloat(Edit1.Text);

b:=StrToFloat(Edit2.Text);

n:=StrToInt(Edit3.Text);

h:=(b-a)/n;

s:=(a*a*sqrt(1-a*a)+b*b*sqrt(1-b*b))/2.0;

x:=a+h;

for i:=1 to n-1 do

Begin

s:=s+x*x*sqrt(1-x*x);

x:=x+h;

End;

s:=h*s;

Edit4.Text:=FloatToStr(s);

end; // Конец описания процедуры

end. // Конец модуля

 

Задание 2. Составить программу вычисления определенного интеграла

по формуле (4), приняв n=350.

При выполнении этого задания оформление окна программы, изменение свойств компонентов и получение заготовки процедуры-обработчика события OnClick проведем согласно описанному в п.п. 2.2, 2.3. Программирование вычисления этого интеграла по формуле (6.4) сведем к вводу с клавиатуры в полученную заготовку описаний типов переменных и операторов по аналогии с выполнением задания 1. При этом в тексте процедуры необходимо изменить только два оператора:

- оператор, реализующий вычисление полусуммы (y0+yn)/2:

s:=(1.0/(sqrt(a+9) - sqrt(a))+1.0/(sqrt(b+9)-sqrt(b)))/2.0;

- оператор, реализующий в цикле вычисление частных сумм и полной суммы ординат:

s:=s+1.0/(sqrt(x+9)-sqrt(x));

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

procedure TForm1.Button1Click(Sender: TObject); // Заголовок процедуры

Var

i,n:integer;

a,b,s,h,x:real;

Begin

a:=StrToFloat(Edit1.Text);

b:=StrToFloat(Edit2.Text);

n:=StrToInt(Edit3.Text);

h:=(b-a)/n;

s:=(1.0/(sqrt(a+9) - sqrt(a))+1.0/(sqrt(b+9)-sqrt(b)))/2.0;

x:=a+h;

for i:=1 to n-1 do

Begin

s:= s+1.0/(sqrt(x+9)-sqrt(x));

x:=x+h;

End;







Дата добавления: 2015-10-02; просмотров: 321. Нарушение авторских прав; Мы поможем в написании вашей работы!



Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

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

Условия приобретения статуса индивидуального предпринимателя. В соответствии с п. 1 ст. 23 ГК РФ гражданин вправе заниматься предпринимательской деятельностью без образования юридического лица с момента государственной регистрации в качестве индивидуального предпринимателя. Каковы же условия такой регистрации и...

Седалищно-прямокишечная ямка Седалищно-прямокишечная (анальная) ямка, fossa ischiorectalis (ischioanalis) – это парное углубление в области промежности, находящееся по бокам от конечного отдела прямой кишки и седалищных бугров, заполненное жировой клетчаткой, сосудами, нервами и...

Основные структурные физиотерапевтические подразделения Физиотерапевтическое подразделение является одним из структурных подразделений лечебно-профилактического учреждения, которое предназначено для оказания физиотерапевтической помощи...

Типовые ситуационные задачи. Задача 1. Больной К., 38 лет, шахтер по профессии, во время планового медицинского осмотра предъявил жалобы на появление одышки при значительной физической   Задача 1. Больной К., 38 лет, шахтер по профессии, во время планового медицинского осмотра предъявил жалобы на появление одышки при значительной физической нагрузке. Из медицинской книжки установлено, что он страдает врожденным пороком сердца....

Типовые ситуационные задачи. Задача 1.У больного А., 20 лет, с детства отмечается повышенное АД, уровень которого в настоящее время составляет 180-200/110-120 мм рт Задача 1.У больного А., 20 лет, с детства отмечается повышенное АД, уровень которого в настоящее время составляет 180-200/110-120 мм рт. ст. Влияние психоэмоциональных факторов отсутствует. Колебаний АД практически нет. Головной боли нет. Нормализовать...

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

Studopedia.info - Студопедия - 2014-2024 год . (0.008 сек.) русская версия | украинская версия