Publication: Sincus News
Pub Details: SINCUS v4 n1 (Volume 4, Issue 1)
Date: November - December 1985
Pages: 9
The factorial function (n!) (1*2*3 …*x) accepts only positive integers. Gamma, a higher transcendental function,(Γ) bears the relationship to the factorial by Γ(x)=n!(x-1), but accepts decimal and negative arguments as well. It is much used in the solution of statistical and engineering problems. First GOTO 340, then GOTO 5.
POKE 65411,64 to create gamma character (Γ) on graphics (F).
5 PRINT "GAMMA": REM GAMMA
10 INPUT "PAUSE PERIOD?";G
20 INPUT "X?";X
30 IF X=0 THEN GO TO 320
40 IF X<0 THEN GO TO 60
50 IF X=INT X THEN GO TO 520
60 IF X=INT X THEN GO TO 320
70 LET Y=INT X
80 LET Z=X-(INT X)
90 LET W=Z+(A*(Z↑2))+(B*(Z↑3))
+(C*(Z↑4))+(D*(Z↑5))+(E*(Z↑6))+(
F*(Z↑7))+(H*(Z↑8))+(I*(Z↑9))+(J*
(Z↑10))+(K*(Z↑11))+(L*(Z↑12))
100 LET W=W+(M*(Z↑13))+(N*(Z↑14
))+(O*(Z↑15))+(P*(Z↑16))+(Q*(Z↑1
7))+(R*(Z↑18))+(S*(Z↑19))
110 LET T=1/W
120 IF Y>0. THEN GO TO 150
130 IF X<0 THEN LET Y=ABS Y: LE
T V=Y: GO TO 190
140 LET T=1/W: GO TO 230
150 FOR U=0 TO Y-1
160 LET T=T*(Z+U)
170 NEXT U
180 GO TO 230
190 FOR U=1 TO Y
200 LET T=T/(Z+(U-1))
210 NEXT U
220 IF V=0 OR V/2<>INT (V/2) TH
EN LET T=T*(-1)
230 PRINT "GAMMA ";X;"=",T
240 IF X=INT X THEN PAUSE G: CL
S : GO TO 20
250 LET T$=STR$ T
260 IF T$(1)="." THEN LET Z=4:
LET W$=" ": IF X<0 THEN LET W$="
"
270 IF T$(2)="." THEN LET Z=4:
LET W$=" ": IF X<0 THEN LET Z=Z+
1: LET W$=" "
280 IF T$(2)<>"." THEN LET Z=4:
LET W$=" ": IF X<0 THEN LET Z=
Z+1: LET W$=" "
290 IF ABS INT X>=4 THEN LET W$
=""
295 IF ABS INT x=4 THEN LET w$=
" "
300 LET Y=VAL T$(1 TO Z)
310 PRINT ,W$;(T-Y)+.0000000008
: PAUSE G: CLS : GO TO 20
320 PRINT "GAMMA ";X;"=","INFIN
ITY": PAUSE G: CLS : GO TO 20
330 STOP
340 LET A=.5772156649
350 LET B=-.6558780715
360 LET C=-.0420026350
370 LET D=.1665386113
380 LET E=-.0421977345
390 LET F=-.0096219715
400 LET H=.0072189432
410 LET I=-.0011651675
420 LET J=-.0002152416
430 LET K=.0001280502
440 LET L=-.0000201348
450 LET M=-.0000012504
460 LET N=.0000011330
470 LET O=-.0000002056
480 LET P=.0000000061
490 LET Q=.0000000050
500 LET R=-.0000000011
510 LET S=.0000000001
520 LET T=1
530 FOR U=1 TO (X-1)
540 LET T=T*U
550 NEXT U
560 GO TO 230
Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.