Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаба 5(2).docx
Скачиваний:
2
Добавлен:
01.08.2019
Размер:
82.74 Кб
Скачать

Лабораторная работа №5.

Выполнил: Остальцев П.В. ТК-11. Вариант №77.

Задания:

1. Разработать программу подсчёта площади фигуры методом « Прямоугольников».

2. Разработать программу подсчёта площади фигуры методом «Трапеции».

3. Результаты вывести в виде таблицы.

Описание выполнимых действий:

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

Вычислим площадь закрашенной области А

Выбираем в качестве параметра сканирования переменную x1.

Определяем её начальное значение xA1 и конечное xa2 значения. В нашей задаче xa1=0 , xa2 мы должны вычислить, как левый корень уравнения эллипса при y=0.Ещё у нам нужна точка пересечения окружности и эллипса xb2 и её нам необходимо найти, т.к. после это точки вычесление плозади пойдёт по уравнению эллипса.

{tochki oblasti A}

ba:=Bel*Bel;

bb:=-2*X0el*Bel*Bel;

bc:=((Yel-Y0el)*(Yel-Y0el)*Ael*Ael)-(Ael*Ael*Bel*Bel)+(X0el*X0el*Bel*Bel);

xa2:=(-1*bb-sqrt(bb*bb-4*ba*bc))/(2*ba);

xa1:=0;

c

Вариант 77

a:=1;

cb:=-2*Y0ok;

cc:=Y0ok*Y0ok+(xa1-X0ok)*(xa1-X0ok)-(Rok*Rok);

ya1:=(-1*cb-sqrt(cb*cb-4*ca*cc))/(2*ca);

da:=(-4*Ael*Ael*Bel*Bel-4*Ael*Ael*Ael*Ael);

db:=(8*X0el*Bel*Bel*Ael*Ael-8*X0ok*Ael*Ael*Ael*Ael);

dc:=(-4*X0el*X0el*Bel*Bel*Ael*Ael+4*Ael*Ael*Ael*Ael*Bel*Bel+4*X0ok*X0ok*Ael*Ael*Ael*Ael-4*Rok*Rok*Ael*Ael*Ael*Ael);

xb2:=(-1*db+sqrt(db*db-4*da*dc))/(2*da);

ea:=1;

eb:=-2*Y0ok;

ec:=Y0ok*Y0ok+(xb2-X0ok)*(xb2-X0ok)-(Rok*Rok);

yb2:=(-1*eb-sqrt(eb*eb-4*ea*ec))/(2*ea);

Задаем переменной начальное значение x1=xA2.

x1:=xa2;

Прописываем ввод переменных, где пользователю предстоит задать число разбиений, N1, N2, N3

Вычисляем величину шага сканирования Dx или ширину элементарного прямоугольника. В нашем случае Dx1=(xB-xA)/N.

dx1:=(xb1-xa1)/N1;

Задаём начальное значение 0 переменной, в которой мы будем суммировать площади прямоугольников разбиения: Spr=0.

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

N1xb2:=((N1/(xa1-xa2))-(N1/(xa1-xb2)))*(xb2-xa2);

i3:=round(N1xb2);

N11:=N1+i3;

На этом подготовительные операции можно считать завершёнными. В нашем случае обозначим площадь за Spr.

SprN1 := 0;

Входим в цикл. Подставим текущее значение x в формулу окружности и вычисляем значение y. Естественно, формулу для этого требуется преобразовать. Вычисляем площадь текущего i-го прямоугольника: Ds=Dx*y. И не забываем про точку перехода из одной функции в другую.

begin

fa:=Ael*Ael;

fb:=-2*Y0el*Ael*Ael;

fc:=((x1-X0el)*(x1-X0el)*Bel*Bel)-(Ael*Ael*Bel*Bel)+(Y0el*Y0el*Ael*Ael);

y1:=(-1*db+sqrt(db*db-4*da*dc))/(2*da);

s1N1:=abs(dx1*y1);

SprN1:=SprN1+s1N1;

x1:=x1+dx1;

end;

for i2:=0 to N11 do

begin

ga:=1;

gb:=-2*Y0ok;

gc:=sqr(Y0ok)+sqr(x1-X0ok)-sqr(Rok);

y1:=(-1*cb+sqrt(sqr(cb)-4*ca*cc))/(2*ca);

s1N1:=abs(dx1*y1);

Добавляем площадь S вычисляем площадь s1n1:

SprN1:=SprN1+s1N1;

Делаем шаг в цикле. Для этого параметр x увеличиваем на Dx1.

x1:=x1+dx1;

Выполняем программу до тех пор пока x не достигнет конечного значения. Т.К. количество шажков на отрезке [xA1, xB1] нам известно из dX1 := (Xa1-Xa2) / N1, то выполним ровно это количество шагов. Данное условие записывается в условии оператора повтора.

for i1 := 0 to N1 do

сохраняем полученный результат в независимую переменную.

SprN1s:=SprN1;

Нам не обходимо так же проделать эти действия и с остальным количеством разбиений.

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

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

Вычислим площадь закрашенной области А.

Действия повторяются до самого вычисления плозади i той трапеции

Задаём начальное значение переменной yP, в которой будем хранить значение функции y=f(x), вычисленное на предыдущем шаге. Это освобождает нас от необходимости повторных вычислений на каждом шаге итерации.

yp:=y2;

Входим в цикл

Находим значение средней линии трапеции.

Yt := (Yp + Y1) / 2;

Вычисляем площадь текущей i-й трапеции:

S1:=dx1*yt;

Добавляем в переменную S вычисленную площадь Ds:

StrN1:=StrN1+s1;

Выполняем программу до тех пор пока x не достигнет конечного значения. Т.К. количество шажков на отрезке [xA2, xB2] нам известно из dX2 := (XB2-XA2) / N2, то выполним ровно это количество шагов. Данное условие записывается в условии оператора повтора.

for i2 := 0 to N2 do

Вычисление площади методом Симпсона.

Вычислим площадь закрашенной области А.

Используем ранее полученные данные такие как N1, N2, N3, dx1, xa1, xa2, xb2 и т.д.

А так же сбросим переменные и повторим некоторые действия.

x1:=xa2;

y1:=0;

s1N1:=0;

i3:=0;

i1:=0;

i2:=0;

N11:=0;

dx1:=0;

dx1:=(xa1-xa2)/N1;

Simp:=0;

SimpN1s:=0;

N1xb2:=((N1/(xa1-xa2))-(N1/(xa1-xb2)))*(xb2-xa2);

i3:=round(N1xb2);

N11:=N1+i3;

Входим в цикл

for i1:=0 to (i3) do

begin

fa:=Ael*Ael;

fb:=-2*Y0el*Ael*Ael;

fc:=((x1-X0el)*(x1-X0el)*Bel*Bel)-(Ael*Ael*Bel*Bel)+(Y0el*Y0el*Ael*Ael);

y1:=(-1*db+sqrt(db*db-4*da*dc))/(2*da);

f1a:=Ael*Ael;

f1b:=-2*Y0el*Ael*Ael;

f1c:=(((x1-1)-X0el)*((x1-1)-X0el)*Bel*Bel)-(Ael*Ael*Bel*Bel)+(Y0el*Y0el*Ael*Ael);

y11:=(-1*db+sqrt(db*db-4*da*dc))/(2*da);

f2a:=Ael*Ael;

f2b:=-2*Y0el*Ael*Ael;

f2c:=(((((x1-1)+x1)/2)-X0el)*((((x1-1)+x1)/2)-X0el)*Bel*Bel)-(Ael*Ael*Bel*Bel)+(Y0el*Y0el*Ael*Ael);

y21:=(-1*db+sqrt(db*db-4*da*dc))/(2*da);

Находим площадь i-ой координаты методом Сипсона

si1:=abs(y11+4*y21+y1);

делаем шаг

x1:=x1+dx1;

сохраняем в переменную

Simp:=Simp+si1;

Далее после точки пересечения по функции окружности

for i2:=0 to N11 do

begin

Точно так же но для круга.

Находим площаль

si1:=abs(y11+4*y21+y1);

Simp:=Simp+si1;

И завершаем метод симпсона домножаю сумму всех координат на dx1/6 (h)

SimpN1s:=(dx1/6)*simp;

Выводи в табличной форме виде

-----------------------------------------------

| Число разбиений | Результаты |

| |---------------------------|

| n | C | D | E |

| --------------- |---------------------------|

| n1 | C1 | D1 | E1 |

| n2 | C2 | D2 | E2 |

| n3 | C3 | D3 | E3 |

-----------------------------------------------

C - метод прямоугольников;

D - метод трапеций;

E - метод Симпсона.

Программа:

program laba5ost;

const Rok=23;Ael=25;Bel=35;Xok=-28;Yok=0;Xel=30;Yel=0;Y1ok=-29;Y1el=-39;

Var x1,y1,xa1,xb1,dx1,s1N1,SprN1,xa2,xb2,yp,yt,Str,X0ok,Y0ok,X0el,Y0el,aa,ab,ac,ba,bb,bc,ca,

cb,cc,da,db,dc,ea,eb,ec,fa,fb,fc,ga,gb,gc,ya1,yb2,N1xb2,SprN1s,SprN2s,SprN3s,StrN1,StrN1s,StrN2s,StrN3s,

Simp,si1,SimpN1s,SimpN2s,SimpN3s,f1a,f1b,f1c,f2a,f2b,f2c,y11,y21,g1a,g1b,g1c,g2a,g2b,g2c:real;

N1,N2,N3,i1,i2,i3,N11:integer;

begin

{centr okr}

Y0ok:=Y1ok+Rok;

X0ok:=(-1*(-2*Xok)+sqrt(sqr(-2*Xok)-4*(sqr(Yok-Y0ok)-sqr(Rok)+sqr(Xok))))/2;

{centr elipsa}

Y0el:=Y1el+Bel;

aa:=Bel*Bel;

ab:=-2*Xel*Bel*Bel;

ac:=Xel*Xel*Bel*Bel+(Yel-Y0el)*(Yel-Y0el)*Ael*Ael-Ael*Ael*Bel*Bel;

x0el:=(-ab-sqrt(ab*ab-4*aa*ac))/(2*aa);

{tochki oblasti A}

ba:=Bel*Bel;

bb:=-2*X0el*Bel*Bel;

bc:=((Yel-Y0el)*(Yel-Y0el)*Ael*Ael)-(Ael*Ael*Bel*Bel)+(X0el*X0el*Bel*Bel);

xa2:=(-1*bb-sqrt(bb*bb-4*ba*bc))/(2*ba);

xa1:=0;

ca:=1;

cb:=-2*Y0ok;

cc:=Y0ok*Y0ok+(xa1-X0ok)*(xa1-X0ok)-(Rok*Rok);

ya1:=(-1*cb-sqrt(cb*cb-4*ca*cc))/(2*ca);

da:=(-4*Ael*Ael*Bel*Bel-4*Ael*Ael*Ael*Ael);

db:=(8*X0el*Bel*Bel*Ael*Ael-8*X0ok*Ael*Ael*Ael*Ael);

dc:=(-4*X0el*X0el*Bel*Bel*Ael*Ael+4*Ael*Ael*Ael*Ael*Bel*Bel+4*X0ok*X0ok*Ael*Ael*Ael*Ael-4*Rok*Rok*Ael*Ael*Ael*Ael);

xb2:=(-1*db+sqrt(db*db-4*da*dc))/(2*da);

ea:=1;

eb:=-2*Y0ok;

ec:=Y0ok*Y0ok+(xb2-X0ok)*(xb2-X0ok)-(Rok*Rok);

yb2:=(-1*eb-sqrt(eb*eb-4*ea*ec))/(2*ea);

{pryamougolnik N1}

x1:=xa2;

writeln('Vvedite N1');readln(N1);

writeln('Vvedite N2');readln(N2);

writeln('vvedite N3');readln(N3);

dx1:=(xa1-xa2)/N1;

SprN1:=0;

N1xb2:=((N1/(xa1-xa2))-(N1/(xa1-xb2)))*(xb2-xa2);

i3:=round(N1xb2);

N11:=N1+i3;

for i1:=0 to i3 do

begin

fa:=Ael*Ael;

fb:=-2*Y0el*Ael*Ael;

fc:=((x1-X0el)*(x1-X0el)*Bel*Bel)-(Ael*Ael*Bel*Bel)+(Y0el*Y0el*Ael*Ael);

y1:=(-1*db+sqrt(db*db-4*da*dc))/(2*da);

s1N1:=abs(dx1*y1);

SprN1:=SprN1+s1N1;

x1:=x1+dx1;

end;

for i2:=0 to N11 do

begin

ga:=1;

gb:=-2*Y0ok;

gc:=sqr(Y0ok)+sqr(x1-X0ok)-sqr(Rok);

y1:=(-1*cb+sqrt(sqr(cb)-4*ca*cc))/(2*ca);

s1N1:=abs(dx1*y1);

SprN1:=SprN1+s1N1;

x1:=x1+dx1;

SprN1s:=SprN1;

end;

{N2}

x1:=xa2;

y1:=0;

s1N1:=0;

i3:=0;

i1:=0;

i2:=0;

N11:=0;

dx1:=0;

dx1:=(xa1-xa2)/N2;

SprN1:=0;

N1xb2:=((N2/(xa1-xa2))-(N2/(xa1-xb2)))*(xb2-xa2);

i3:=round(N1xb2);

N11:=N2+i3;

for i1:=0 to i3 do

begin

fa:=Ael*Ael;

fb:=-2*Y0el*Ael*Ael;

fc:=((x1-X0el)*(x1-X0el)*Bel*Bel)-(Ael*Ael*Bel*Bel)+(Y0el*Y0el*Ael*Ael);

y1:=(-1*db+sqrt(db*db-4*da*dc))/(2*da);

s1N1:=abs(dx1*y1);

SprN1:=SprN1+s1N1;

x1:=x1+dx1;

end;

for i2:=0 to N11 do

begin

ga:=1;

gb:=-2*Y0ok;

gc:=sqr(Y0ok)+sqr(x1-X0ok)-sqr(Rok);

y1:=(-1*cb+sqrt(sqr(cb)-4*ca*cc))/(2*ca);

s1N1:=abs(dx1*y1);

SprN1:=SprN1+s1N1;

x1:=x1+dx1;

SprN2s:=SprN1;

end;

{N3}

x1:=xa2;

y1:=0;

s1N1:=0;

i3:=0;

i1:=0;

i2:=0;

N11:=0;

dx1:=0;

dx1:=(xa1-xa2)/N3;

SprN1:=0;

N1xb2:=((N3/(xa1-xa2))-(N3/(xa1-xb2)))*(xb2-xa2);

i3:=round(N1xb2);

N11:=N3+i3;

for i1:=0 to i3 do

begin

fa:=Ael*Ael;

fb:=-2*Y0el*Ael*Ael;

fc:=((x1-X0el)*(x1-X0el)*Bel*Bel)-(Ael*Ael*Bel*Bel)+(Y0el*Y0el*Ael*Ael);

y1:=(-1*db+sqrt(db*db-4*da*dc))/(2*da);

s1N1:=abs(dx1*y1);

SprN1:=SprN1+s1N1;

x1:=x1+dx1;

end;

for i2:=0 to N11 do

begin

ga:=1;

gb:=-2*Y0ok;

gc:=sqr(Y0ok)+sqr(x1-X0ok)-sqr(Rok);

y1:=(-1*cb+sqrt(sqr(cb)-4*ca*cc))/(2*ca);

s1N1:=abs(dx1*y1);

SprN1:=SprN1+s1N1;

x1:=x1+dx1;

SprN3s:=SprN1;

end;

{trapecii}

{N1}

x1:=xa2;

y1:=0;

s1N1:=0;

i3:=0;

i1:=0;

i2:=0;

N11:=0;

dx1:=0;

dx1:=(xa1-xa2)/N1;

Str:=0;

N1xb2:=((N1/(xa1-xa2))-(N1/(xa1-xb2)))*(xb2-xa2);

i3:=round(N1xb2);

N11:=N1+i3;

yp:=y1;

for i1:=0 to i3 do

begin

fa:=Ael*Ael;

fb:=-2*Y0el*Ael*Ael;

fc:=((x1-X0el)*(x1-X0el)*Bel*Bel)-(Ael*Ael*Bel*Bel)+(Y0el*Y0el*Ael*Ael);

y1:=(-1*db+sqrt(db*db-4*da*dc))/(2*da);

yt:=(yp+y1)/2;

s1N1:=abs(dx1*yt);

yp:=y1;

Str:=Str+s1N1;

x1:=x1+dx1;

end;

for i2:=0 to N11 do

begin

ga:=1;

gb:=-2*Y0ok;

gc:=sqr(Y0ok)+sqr(x1-X0ok)-sqr(Rok);

y1:=(-1*cb+sqrt(sqr(cb)-4*ca*cc))/(2*ca);

yt:=(yp+y1)/2;

s1N1:=abs(dx1*yt);

Str:=Str+s1N1;

yp:=y1;

x1:=x1+dx1;

StrN1s:=Str;

end;

{N2}

x1:=xa2;

y1:=0;

s1N1:=0;

i3:=0;

i1:=0;

i2:=0;

N11:=0;

dx1:=0;

dx1:=(xa1-xa2)/N2;

Str:=0;

N1xb2:=((N2/(xa1-xa2))-(N2/(xa1-xb2)))*(xb2-xa2);

i3:=round(N1xb2);

N11:=N2+i3;

yp:=y1;

for i1:=0 to i3 do

begin

fa:=Ael*Ael;

fb:=-2*Y0el*Ael*Ael;

fc:=((x1-X0el)*(x1-X0el)*Bel*Bel)-(Ael*Ael*Bel*Bel)+(Y0el*Y0el*Ael*Ael);

y1:=(-1*db+sqrt(db*db-4*da*dc))/(2*da);

yt:=(yp+y1)/2;

s1N1:=abs(dx1*yt);

yp:=y1;

Str:=Str+s1N1;

x1:=x1+dx1;

end;

for i2:=0 to N11 do

begin

ga:=1;

gb:=-2*Y0ok;

gc:=sqr(Y0ok)+sqr(x1-X0ok)-sqr(Rok);

y1:=(-1*cb+sqrt(sqr(cb)-4*ca*cc))/(2*ca);

yt:=(yp+y1)/2;

s1N1:=abs(dx1*yt);

Str:=Str+s1N1;

yp:=y1;

x1:=x1+dx1;

StrN2s:=Str;

end;

{N3}

x1:=xa2;

y1:=0;

s1N1:=0;

i3:=0;

i1:=0;

i2:=0;

N11:=0;

dx1:=0;

dx1:=(xa1-xa2)/N3;

Str:=0;

N1xb2:=((N3/(xa1-xa2))-(N3/(xa1-xb2)))*(xb2-xa2);

i3:=round(N1xb2);

N11:=N3+i3;

yp:=y1;

for i1:=0 to i3 do

begin

fa:=Ael*Ael;

fb:=-2*Y0el*Ael*Ael;

fc:=((x1-X0el)*(x1-X0el)*Bel*Bel)-(Ael*Ael*Bel*Bel)+(Y0el*Y0el*Ael*Ael);

y1:=(-1*db+sqrt(db*db-4*da*dc))/(2*da);

yt:=(yp+y1)/2;

s1N1:=abs(dx1*yt);

yp:=y1;

Str:=Str+s1N1;

x1:=x1+dx1;

end;

for i2:=0 to N11 do

begin

ga:=1;

gb:=-2*Y0ok;

gc:=sqr(Y0ok)+sqr(x1-X0ok)-sqr(Rok);

y1:=(-1*cb+sqrt(sqr(cb)-4*ca*cc))/(2*ca);

yt:=(yp+y1)/2;

s1N1:=abs(dx1*yt);

Str:=Str+s1N1;

yp:=y1;

x1:=x1+dx1;

StrN3s:=Str;

end;

{simpson}

{N1}

x1:=xa2;

y1:=0;

s1N1:=0;

i3:=0;

i1:=0;

i2:=0;

N11:=0;

dx1:=0;

dx1:=(xa1-xa2)/N1;

Simp:=0;

SimpN1s:=0;

N1xb2:=((N1/(xa1-xa2))-(N1/(xa1-xb2)))*(xb2-xa2);

i3:=round(N1xb2);

N11:=N1+i3;

for i1:=0 to (i3) do

begin

fa:=Ael*Ael;

fb:=-2*Y0el*Ael*Ael;

fc:=((x1-X0el)*(x1-X0el)*Bel*Bel)-(Ael*Ael*Bel*Bel)+(Y0el*Y0el*Ael*Ael);

y1:=(-1*db+sqrt(db*db-4*da*dc))/(2*da);

f1a:=Ael*Ael;

f1b:=-2*Y0el*Ael*Ael;

f1c:=(((x1-1)-X0el)*((x1-1)-X0el)*Bel*Bel)-(Ael*Ael*Bel*Bel)+(Y0el*Y0el*Ael*Ael);

y11:=(-1*db+sqrt(db*db-4*da*dc))/(2*da);

f2a:=Ael*Ael;

f2b:=-2*Y0el*Ael*Ael;

f2c:=(((((x1-1)+x1)/2)-X0el)*((((x1-1)+x1)/2)-X0el)*Bel*Bel)-(Ael*Ael*Bel*Bel)+(Y0el*Y0el*Ael*Ael);

y21:=(-1*db+sqrt(db*db-4*da*dc))/(2*da);

si1:=abs(y11+4*y21+y1);

x1:=x1+dx1;

Simp:=Simp+si1;

end;

for i2:=0 to N11 do

begin

ga:=1;

gb:=-2*Y0ok;

gc:=sqr(Y0ok)+sqr(x1-X0ok)-sqr(Rok);

y1:=(-1*cb+sqrt(sqr(cb)-4*ca*cc))/(2*ca);

g1a:=1;

g1b:=-2*Y0ok;

g1c:=sqr(Y0ok)+sqr(x1-X0ok)-sqr(Rok);

y11:=(-1*cb+sqrt(sqr(cb)-4*ca*cc))/(2*ca);

g2a:=1;

g2b:=-2*Y0ok;

g2c:=sqr(Y0ok)+sqr(x1-X0ok)-sqr(Rok);

y21:=(-1*cb+sqrt(sqr(cb)-4*ca*cc))/(2*ca);

x1:=x1+dx1;

si1:=abs(y11+4*y21+y1);

Simp:=Simp+si1;

SimpN1s:=(dx1/6)*simp;

end;

{N2}

x1:=xa2;

y1:=0;

s1N1:=0;

i3:=0;

i1:=0;

i2:=0;

N11:=0;

dx1:=0;

dx1:=(xa1-xa2)/N2;

Simp:=0;

SimpN2s:=0;

N1xb2:=((N2/(xa1-xa2))-(N2/(xa1-xb2)))*(xb2-xa2);

i3:=round(N1xb2);

N11:=N2+i3;

for i1:=0 to (i3) do

begin

fa:=Ael*Ael;

fb:=-2*Y0el*Ael*Ael;

fc:=((x1-X0el)*(x1-X0el)*Bel*Bel)-(Ael*Ael*Bel*Bel)+(Y0el*Y0el*Ael*Ael);

y1:=(-1*db+sqrt(db*db-4*da*dc))/(2*da);

f1a:=Ael*Ael;

f1b:=-2*Y0el*Ael*Ael;

f1c:=(((x1-1)-X0el)*((x1-1)-X0el)*Bel*Bel)-(Ael*Ael*Bel*Bel)+(Y0el*Y0el*Ael*Ael);

y11:=(-1*db+sqrt(db*db-4*da*dc))/(2*da);

f2a:=Ael*Ael;

f2b:=-2*Y0el*Ael*Ael;

f2c:=(((((x1-1)+x1)/2)-X0el)*((((x1-1)+x1)/2)-X0el)*Bel*Bel)-(Ael*Ael*Bel*Bel)+(Y0el*Y0el*Ael*Ael);

y21:=(-1*db+sqrt(db*db-4*da*dc))/(2*da);

si1:=abs(y11+4*y21+y1);

x1:=x1+dx1;

Simp:=Simp+si1;

end;

for i2:=0 to N11 do

begin

ga:=1;

gb:=-2*Y0ok;

gc:=sqr(Y0ok)+sqr(x1-X0ok)-sqr(Rok);

y1:=(-1*cb+sqrt(sqr(cb)-4*ca*cc))/(2*ca);

g1a:=1;

g1b:=-2*Y0ok;

g1c:=sqr(Y0ok)+sqr(x1-X0ok)-sqr(Rok);

y11:=(-1*cb+sqrt(sqr(cb)-4*ca*cc))/(2*ca);

g2a:=1;

g2b:=-2*Y0ok;

g2c:=sqr(Y0ok)+sqr(x1-X0ok)-sqr(Rok);

y21:=(-1*cb+sqrt(sqr(cb)-4*ca*cc))/(2*ca);

x1:=x1+dx1;

si1:=abs(y11+4*y21+y1);

Simp:=Simp+si1;

SimpN2s:=(dx1/6)*simp;

end;

{N3}

x1:=xa2;

y1:=0;

s1N1:=0;

i3:=0;

i1:=0;

i2:=0;

N11:=0;

dx1:=0;

dx1:=(xa1-xa2)/N3;

Simp:=0;

SimpN3s:=0;

N1xb2:=((N3/(xa1-xa2))-(N3/(xa1-xb2)))*(xb2-xa2);

i3:=round(N1xb2);

N11:=N3+i3;

for i1:=0 to (i3) do

begin

fa:=Ael*Ael;

fb:=-2*Y0el*Ael*Ael;

fc:=((x1-X0el)*(x1-X0el)*Bel*Bel)-(Ael*Ael*Bel*Bel)+(Y0el*Y0el*Ael*Ael);

y1:=(-1*db+sqrt(db*db-4*da*dc))/(2*da);

f1a:=Ael*Ael;

f1b:=-2*Y0el*Ael*Ael;

f1c:=(((x1-1)-X0el)*((x1-1)-X0el)*Bel*Bel)-(Ael*Ael*Bel*Bel)+(Y0el*Y0el*Ael*Ael);

y11:=(-1*db+sqrt(db*db-4*da*dc))/(2*da);

f2a:=Ael*Ael;

f2b:=-2*Y0el*Ael*Ael;

f2c:=(((((x1-1)+x1)/2)-X0el)*((((x1-1)+x1)/2)-X0el)*Bel*Bel)-(Ael*Ael*Bel*Bel)+(Y0el*Y0el*Ael*Ael);

y21:=(-1*db+sqrt(db*db-4*da*dc))/(2*da);

si1:=abs(y11+4*y21+y1);

x1:=x1+dx1;

Simp:=Simp+si1;

end;

for i2:=0 to N11 do

begin

ga:=1;

gb:=-2*Y0ok;

gc:=sqr(Y0ok)+sqr(x1-X0ok)-sqr(Rok);

y1:=(-1*cb+sqrt(sqr(cb)-4*ca*cc))/(2*ca);

g1a:=1;

g1b:=-2*Y0ok;

g1c:=sqr(Y0ok)+sqr(x1-X0ok)-sqr(Rok);

y11:=(-1*cb+sqrt(sqr(cb)-4*ca*cc))/(2*ca);

g2a:=1;

g2b:=-2*Y0ok;

g2c:=sqr(Y0ok)+sqr(x1-X0ok)-sqr(Rok);

y21:=(-1*cb+sqrt(sqr(cb)-4*ca*cc))/(2*ca);

x1:=x1+dx1;

si1:=abs(y11+4*y21+y1);

Simp:=Simp+si1;

SimpN3s:=(dx1/6)*simp;

end;

writeln('------------------------------------------------------------------');

writeln('| chislo razbienii | rezultati |');

writeln('| |-----------------------------------------');

writeln('| N | pramoug | trapecia | simpson |');

writeln('------------------------------------------------------------------');

writeln('| ',N1,' | ',SprN1s:10:5,' | ',StrN1s:10:5,' | ',SimpN1s:10:5,' |');

writeln('| ',N2,' | ',SprN2s:10:5,' | ',StrN2s:10:5,' | ',SimpN2s:10:5,' |');

writeln('| ',N3,' | ',SprN2s:10:5,' | ',StrN3s:10:5,' | ',SimpN3s:10:5,' |');

writeln('------------------------------------------------------------------');

end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]