06.06.2014, 09:43 | #11 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Код:
unit Func; interface function RadGr(X:Extended):Extended; function GrRad(X:Extended):Extended; function Tan(X:Extended):Extended; function ArcSin(X:Extended):Extended; function ArcCos(X:Extended):Extended; function Ch(X:Extended):Extended; function Sh(X:Extended):Extended; function Th(X:Extended):Extended; function ArCh(X:Extended):Extended; function ArSh(X:Extended):Extended; function ArTh(X:Extended):Extended; function Lg(X:Extended):Extended; function X2Yp(X, Y:Extended):Extended; function X2np(X:Extended; n:WORD):Extended; function Int2Str(L:LongInt): string; procedure Escape; procedure Alg(X1,X2,X3,Y1,Y2,Y3,XA:Extended;VAR YA:Extended); function Nfact(n:LongInt):Extended; function NfactDBL(n:LongInt):Extended; implementation uses Crt; function RadGr(X:Extended):Extended; BEGIN RadGr:=(X/Pi)*180; END; function GrRad(X:Extended):Extended; BEGIN GrRad:=(X/180)*Pi; END; function Tan(X:Extended):Extended; BEGIN Tan:=Sin(X)/Cos(X); END; function ArcSin(X:Extended):Extended; BEGIN IF ROUND(X*10000000)=10000000 THEN ArcSin:=Pi/2 ELSE IF ROUND(X*10000000)=-10000000 THEN ArcSin:=-Pi/2 ELSE ArcSin:=ArcTan(X/SQRT(1-X*X)); END; function ArcCos(X:Extended):Extended; BEGIN IF ROUND(X*10000000)=10000000 THEN ArcCos:=0 ELSE IF ROUND(X*10000000)=-10000000 THEN ArcCos:=Pi ELSE ArcCos:=(Pi/2)-ArcTan(X/SQRT(1-X*X)); END; function Ch(X:Extended):Extended; BEGIN Ch:=(Exp(X)+Exp(-X))/2; END; function Sh(X:Extended):Extended; BEGIN Sh:=(Exp(X)-Exp(-X))/2; END; function Th(X:Extended):Extended; BEGIN Th:=(Exp(X)-Exp(-X))/(Exp(X)+Exp(-X)); END; function ArCh(X:Extended):Extended; BEGIN ArCh:=Ln(X+SQRT(X*X-1)); END; function ArSh(X:Extended):Extended; BEGIN ArSh:=Ln(X+SQRT(X*X+1)); END; function ArTh(X:Extended):Extended; BEGIN ArTh:=(1/2)*Ln((X+1)/(1-X)); END; function Lg(X:Extended):Extended; BEGIN Lg:=Ln(X)/Ln(10); END; function X2Yp(X, Y:Extended):Extended; BEGIN X2Yp:=Exp(Y*Ln(X)); END; function X2np(X:Extended; n:WORD):Extended; Var i:WORD; Y:Extended; BEGIN IF n=0 THEN X2np:=1 ELSE IF n=1 THEN X2np:=X ELSE BEGIN Y:=X; FOR i:=2 TO n DO Y:=Y*X; X2np:=Y; END; END; function Int2Str(L : LongInt) : string; var S : string; begin Str(L, S); Int2Str := S; end; { Int2Str } procedure Escape; VAR Chr : char; BEGIN IF KeyPressed THEN BEGIN Chr :=ReadKey; if Chr = #0 then chr := readkey; if Chr = #27 then Halt(0); END; END; { Escape } procedure Alg(X1,X2,X3,Y1,Y2,Y3,XA:Extended;VAR YA:Extended); VAR det, AA, BA, CA:Extended; begin det:=(X1-X2)*(X2-X3)*(X1-X3); AA:=(Y1*(X2-X3)+Y2*(X3-X1)+Y3*(X1-X2))/det; BA:=(Y1*(X3*X3-X2*X2)+Y2*(X1*X1-X3*X3)+Y3*(X2*X2-X1*X1))/det; CA:=(Y1*X2*X3*(X2-X3)+Y2*X1*X3*(X3-X1)+Y3*X1*X2*(X1-X2))/det; YA:=AA*XA*XA+BA*XA+CA; end; { Alg } function Nfact(n:LongInt):Extended; VAR i:LongInt; fact:Extended; BEGIN IF n=0 THEN fact:=1 ELSE BEGIN fact:=1; FOR i:=1 TO n DO fact:=fact*i; END; Nfact:=fact; END; function NfactDBL(n:LongInt):Extended; VAR i:LongInt; fact:Extended; BEGIN fact:=1; i:=n; REPEAT fact:=fact*i; DEC(i, 2); UNTIL i<=1; NfactDBL:=fact; END; END. |
06.06.2014, 09:43 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Эти темы могут вам помочь Помогите найти ДПТ Freepascal, метод Цезаря с лозунгом, работа с файлами приложение Подскажите литературу Помогите найти песню |
06.06.2014, 10:06 | #12 (permalink) |
Member
Регистрация: 05.03.2014
Сообщений: 200
Сказал(а) спасибо: 2
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 834
|
тогда по сути это получается не библиотека как таковая (dll), а всего лишь модуль (unit).
я конечно поверю Владимиру, ввиду его опыта. просто мое понятие библиотека не важется с модулями. |
06.06.2014, 10:32 | #13 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Ну не знаю, может быть Вы и правы. По мне так это вопрос лингвистически-терминологический, не более того. Я считаю, что "библиотека" - это некое автономное хранилище информации, к каковой (информации) можно при необходимости получить доступ. Но если "безграмотный" преподаватель имеет в виду создание средствами Free Pascal именно системных библиотек, то - умолкаю и прошу прощения за выступление не по делу. Просто не в курсе таких возможностей. За ненадобностью.
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|