Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Выполнение работы. Таблица 1 – Измеримые свойства программ на языке Pascal Операторы Операнды № Оператор Число вхождений № ⇐ ПредыдущаяСтр 2 из 2 Таблица 1 – Измеримые свойства программ на языке Pascal
Таблица 2 – Измеримые свойства программ на языке C
Таблица 3 – Измеримые свойства программ на языке Assembler
Таблица 4 – Расчетные характеристики программы
Выводы program erfd4;
{ evaluation of the gaussian error function }
var x,er,ec: real; done: boolean;
function erf(x: real): real; { infinite series expansion of the Gaussian error function }
const sqrtpi = 1.7724538; t2 = 0.66666667; t3 = 0.66666667; t4 = 0.07619048; t5 = 0.01693122; t6 = 3.078403E-3; t7 = 4.736005E-4; t8 = 6.314673E-5; t9 = 7.429027E-6; t10 = 7.820028E-7; t11 = 7.447646E-8; t12 = 6.476214E-9;
var x2,sum: real; i: integer;
begin x2:=x*x; sum:=t5+x2*(t6+x2*(t7+x2*(t8+x2*(t9+x2*(t10+x2*(t11+x2*t12)))))); erf:=2.0*exp(-x2)/sqrtpi*(x*(1+x2*(t2+x2*(t3+x2*(t4+x2*sum))))) end; { function erf }
function erfc(x: real): real; { complement of error function } const sqrtpi = 1.7724538;
var x2,v,sum: real;
begin x2:=x*x; v:=1.0/(2.0*x2); sum:=v/(1+8*v/(1+9*v/(1+10*v/(1+11*v/(1+12*v))))); sum:=v/(1+3*v/(1+4*v/(1+5*v/(1+6*v/(1+7*sum))))); erfc:=1.0/(exp(x2)*x*sqrtpi*(1+v/(1+2*sum))) end; { function ercf }
begin { main }
done:=false; writeln; repeat write('Arg? '); readln(x); if x<0.0 then done:=true else begin if x=0.0 then begin er:=0.0; ec:=1.0 end else begin if x<1.5 then begin er:=erf(x); ec:=1.0-er end else begin ec:=erfc(x); er:=1.0-ec end { if } end; writeln('X= ',x:8:4,', Erf= ',er:12,', Erfc= ',ec:12) end { if } until done end. #include<iostream.h> #include<math.h> #include<conio.h> #include<stdio.h> float x,er,ec; int done;
float erf(float x) { const sqrtpi = 1.7724538, t2 = 0.66666667, t3 = 0.66666667, t4 = 0.07619048, t5 = 0.01693122, t6 = 3.078403E-3, t7 = 4.736005E-4, t8 = 6.314673E-5, t9 = 7.429027E-6, t10 = 7.820028E-7, t11 = 7.447646E-8, t12 = 6.476214E-9;
float x2,sum; int i;
x2 = x*x; sum = t5+x2*(t6+x2*(t7+x2*(t8+x2*(t9+x2*(t10+x2*(t11+x2*t12)))))); return(2.0*exp(-x2)/sqrtpi*(x*(1+x2*(t2+x2*(t3+x2*(t4+x2*sum)))))); }
float erfc(float x) { const sqrtpi = 1.7724538; float x2,v,sum;
x2 = x*x; v = 1.0/(2.0*x2); sum = v/(1+8*v/(1+9*v/(1+10*v/(1+11*v/(1+12*v))))); sum = v/(1+3*v/(1+4*v/(1+5*v/(1+6*v/(1+7*sum))))); return(1.0/(exp(x2)*x*sqrtpi*(1+v/(1+2*sum)))); }
void main() { done=0; printf("\n"); do { printf("Arg? "); scanf("%f",&x); if(x < 0.0) { done = 1; } else { if (x==0.0) { er=0.0; ec=1.0; } else { if(x<1.5) { er=erf(x); ec=1.0-er; } else { ec=erfc(x); er=1.0-ec; } } printf("X= %f",x," Erf= %f",er,", Erfc= %f",ec); } } while (done == 0); } push bp mov bp,sp sub sp,32 mov word ptr [bp-2],1 mov word ptr [bp-4],0 mov word ptr [bp-6],0 mov word ptr [bp-8],0 mov word ptr [bp-10],0 mov word ptr [bp-12],0 mov word ptr [bp-14],0 mov word ptr [bp-16],0 mov word ptr [bp-18],0 mov word ptr [bp-20],0 mov word ptr [bp-22],0 mov word ptr [bp-24],0 fld dword ptr [bp+6] fmul dword ptr [bp+6] fstp dword ptr [bp-28] fld dword ptr [bp-28] fldz fmul fldz fadd fmul dword ptr [bp-28] fldz fadd fmul dword ptr [bp-28] fldz fadd fmul dword ptr [bp-28] fldz fadd fmul dword ptr [bp-28] fldz fadd fmul dword ptr [bp-28] fldz fadd fmul dword ptr [bp-28] fldz fadd fstp dword ptr [bp-32] fld dword ptr [bp-28] fchs sub sp,8 fstp qword ptr [bp-40] fwait call far ptr _exp add sp,8 fmul dword ptr DGROUP:s@ fld1 fdiv fld dword ptr [bp-28] fmul dword ptr [bp-32] fldz fadd fmul dword ptr [bp-28] fldz fadd fmul dword ptr [bp-28] fldz fadd fmul dword ptr [bp-28] fld1 fadd fmul dword ptr [bp+6] fmul jmp short @1@58 @1@58: mov sp,bp pop bp ret
push bp mov bp,sp sub sp,14 mov word ptr [bp-2],1 fld dword ptr [bp+6] fmul dword ptr [bp+6] fstp dword ptr [bp-6] fld dword ptr [bp-6] fmul dword ptr DGROUP:s@ fld1 fdivr fstp dword ptr [bp-10] fld dword ptr DGROUP:s@+4 fmul dword ptr [bp-10] fld dword ptr DGROUP:s@+8 fmul dword ptr [bp-10] fld1 fadd fdiv fld1 fadd fld dword ptr DGROUP:s@+12 fmul dword ptr [bp-10] fdivr fld1 fadd fld dword ptr DGROUP:s@+16 fmul dword ptr [bp-10] fdivr fld1 fadd fld dword ptr DGROUP:s@+20 fmul dword ptr [bp-10] fdivr fld1 fadd fdivr dword ptr [bp-10] fstp dword ptr [bp-14] fld dword ptr DGROUP:s@+24 fmul dword ptr [bp-10] fld dword ptr DGROUP:s@+28 fmul dword ptr [bp-14] fld1 fadd fdiv fld1 fadd fld dword ptr DGROUP:s@+32 fmul dword ptr [bp-10] fdivr fld1 fadd fld dword ptr DGROUP:s@+36 fmul dword ptr [bp-10] fdivr fld1 fadd fld dword ptr DGROUP:s@+40 fmul dword ptr [bp-10] fdivr fld1 fadd fdivr dword ptr [bp-10] fstp dword ptr [bp-14] fld dword ptr [bp-6] sub sp,8 fstp qword ptr [bp-22] fwait call far ptr _exp add sp,8 fmul dword ptr [bp+6] fld1 fmul fld dword ptr DGROUP:s@ fmul dword ptr [bp-14] fld1 fadd fdivr dword ptr [bp-10] fld1 fadd fmul fld1 fdivr jmp short @2@58 @2@58: mov sp,bp pop bp ret
_main proc far push bp mov bp,sp sub sp,2 mov word ptr DGROUP:_done,0 push ds mov ax,offset DGROUP:s@+44 push ax call far ptr _printf pop cx pop cx @3@58: push ds mov ax,offset DGROUP:s@+46 push ax call far ptr _printf pop cx pop cx push ds mov ax,offset DGROUP:_x push ax push ds mov ax,offset DGROUP:s@+52 push ax call far ptr _scanf add sp,8 fld dword ptr DGROUP:_x fldz fcompp fstsw word ptr [bp-2] fwait mov ax,word ptr [bp-2] sahf jbe short @3@114 mov word ptr DGROUP:_done,1 jmp @3@310 @3@114: fld dword ptr DGROUP:_x fldz fcompp fstsw word ptr [bp-2] fwait mov ax,word ptr [bp-2] sahf jne short @3@170 mov word ptr DGROUP:_er+2,0 mov word ptr DGROUP:_er,0 mov word ptr DGROUP:_ec+2,16256 mov word ptr DGROUP:_ec,0 jmp short @3@282 @3@170: fld dword ptr DGROUP:_x fcomp dword ptr DGROUP:s@+55 fstsw word ptr [bp-2] fwait mov ax,word ptr [bp-2] sahf jae short @3@226 fld dword ptr DGROUP:_x sub sp,4 fstp dword ptr [bp-6] fwait push cs call near ptr @erf$qf pop cx pop cx fstp dword ptr DGROUP:_er fld dword ptr DGROUP:_er fld1 fsubr fstp dword ptr DGROUP:_ec jmp short @3@254 @3@226: fld dword ptr DGROUP:_x sub sp,4 fstp dword ptr [bp-6] fwait push cs call near ptr @erfc$qf pop cx pop cx fstp dword ptr DGROUP:_ec fld dword ptr DGROUP:_ec fld1 fsubr fstp dword ptr DGROUP:_er @3@254: fwait @3@282: fld dword ptr DGROUP:_ec sub sp,8 fstp qword ptr [bp-10] push ds mov ax,offset DGROUP:s@+74 push ax fld dword ptr DGROUP:_er sub sp,8 fstp qword ptr [bp-22] push ds mov ax,offset DGROUP:s@+65 push ax fld dword ptr DGROUP:_x sub sp,8 fstp qword ptr [bp-34] push ds mov ax,offset DGROUP:s@+59 push ax fwait call far ptr _printf add sp,36 @3@310: cmp word ptr DGROUP:_done,0 jne @@1 jmp @3@58 @@1: mov sp,bp pop bp ret
_main endp
|