DIM N%(3) : N%() = -42, 0, -12, 1 DIM D%(3) : D%() = -3, 1, 0, 0 DIM q%(3), r%(3) PROC_poly_long_div(N%(), D%(), q%(), r%()) PRINT "Quotient = "; FNcoeff(q%(2)) "x^2" FNcoeff(q%(1)) "x" FNcoeff(q%(0)) PRINT "Remainder = " ; r%(0) END DEF PROC_poly_long_div(N%(), D%(), q%(), r%()) LOCAL d%(), i%, s% DIM d%(DIM(N%(),1)) s% = FNdegree(N%()) - FNdegree(D%()) IF s% >= 0 THEN q%() = 0 WHILE s% >= 0 FOR i% = 0 TO DIM(d%(),1) - s% d%(i%+s%) = D%(i%) NEXT q%(s%) = N%(FNdegree(N%())) DIV d%(FNdegree(d%())) d%() = d%() * q%(s%) N%() -= d%() s% = FNdegree(N%()) - FNdegree(D%()) ENDWHILE r%() = N%() ELSE q%() = 0 r%() = N%() ENDIF ENDPROC DEF FNdegree(a%()) LOCAL i% i% = DIM(a%(),1) WHILE a%(i%)=0 i% -= 1 IF i%<0 EXIT WHILE ENDWHILE = i% DEF FNcoeff(n%) IF n%=0 THEN = "" IF n%<0 THEN = " - " + STR$(-n%) IF n%=1 THEN = " + " = " + " + STR$(n%)