home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64Educational / FACTORS (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  3.8 KB  |  128 lines

  1. 100 POKE53272,23:POKE53280,11:POKE53281,0
  2. 102 PRINT"[147][158][208]OLYNOMIAL [198]ACTORING AND [204]ONG [196]IVIDING"
  3. 105 PRINT"[159][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]"
  4. 106 PRINT"        [194]Y [202][197][198][198] [195][207][213][195][203][213][217][212]"
  5. 107 PRINT"[151][194]ASED ON THE FACTOR THEOREM."
  6. 108 PRINT"[196]ESIGNED FOR USE ON ALL THOSE NASTY"
  7. 109 PRINT"FACTORING QUESTIONS YOUR MATH TEACHER"
  8. 110 PRINT"GIVES YOU FOR HOMEWORK.  [206]OTE: BECAUSE"
  9. 111 PRINT"THIS PROGRAM USES THE FACTOR THEOREM,"
  10. 112 PRINT"NOT ALL POLYNOMIALS CAN BE CORRECTLY"
  11. 113 PRINT"FACTORED. ([217]OU MAY SOON DISCOVER THIS!)"
  12. 115 PRINT"[215]HAT IS THE DEGREE"
  13. 120 INPUT"OF YOUR POLYNOMIAL (2-10)";DG
  14. 130 IFDG<2ORDG>10THEN120
  15. 140 PRINT"[147][193]LL COEFFICIENTS HAVE MAX OF 999 AND MIN OF -999!!!"
  16. 150 FORZZ=DGTO0STEP-1
  17. 160 PRINT"[151][195]OEFFICIENT FOR [216][145]"ZZ"TERM";:INPUTCF(ZZ)
  18. 170 IFCF(ZZ)<-999ORCF(ZZ)>999THEN160
  19. 180 NEXT
  20. 190 PRINT"[147][158][212]HIS IS YOUR POLYNOMIAL:"
  21. 195 NM=DG:FORZZ=0TODG:VR(ZZ)=CF(ZZ):NEXT
  22. 200 GOSUB60000
  23. 210 INPUT"[201]S THIS CORRECT?";ZZ$
  24. 220 IFLEFT$(ZZ$,1)="N"THEN110
  25. 230 PRINT"[147][194]EGINNING FACTOR CHECK OF:"
  26. 235 CN=0
  27. 240 GOSUB60000
  28. 250 ONDGGOTO260,270,280,290,300,320,340,360,380,400
  29. 260 DEFFNT2(X)=CF(1)*X+CF(0):GOTO430
  30. 270 DEFFNT2(X)=CF(2)*X^2+CF(1)*X+CF(0):GOTO430
  31. 280 DEFFNT2(X)=CF(3)*X^3+CF(2)*X^2+CF(1)*X+CF(0):GOTO430
  32. 290 DEFFNT2(X)=CF(4)*X^4+CF(3)*X^3+CF(2)*X^2+CF(1)*X+CF(0):GOTO430
  33. 300 DEFFNTT(X)=CF(5)*X^5
  34. 310 DEFFNT2(X)=CF(4)*X^4+CF(3)*X^3+CF(2)*X^2+CF(1)*X+CF(0):GOTO430
  35. 320 DEFFNTT(X)=CF(6)*X^6+CF(5)*X^5
  36. 330 DEFFNT2(X)=CF(4)*X^4+CF(3)*X^3+CF(2)*X^2+CF(1)*X+CF(0):GOTO430
  37. 340 DEFFNTT(X)=CF(7)*X^7+CF(6)*X^6+CF(5)*X^5
  38. 350 DEFFNT2(X)=CF(4)*X^4+CF(3)*X^3+CF(2)*X^2+CF(1)*X+CF(0):GOTO430
  39. 360 DEFFNTT(X)=CF(8)*X^8+CF(7)*X^7+CF(6)*X^6+CF(5)*X^5
  40. 370 DEFFNT2(X)=CF(4)*X^4+CF(3)*X^3+CF(2)*X^2+CF(1)*X+CF(0):GOTO430
  41. 380 DEFFNTT(X)=CF(9)*X^9+CF(8)*X^8+CF(7)*X^7+CF(6)*X^6+CF(5)*X^5
  42. 390 DEFFNT2(X)=CF(4)*X^4+CF(3)*X^3+CF(2)*X^2+CF(1)*X+CF(0):GOTO430
  43. 400 DEFFNTT(X)=CF(10)*X^10+CF(9)*X^9+CF(8)*X^8+CF(7)*X^7+CF(6)*X^6+CF(5)*X^5
  44. 410 DEFFNT2(X)=CF(4)*X^4+CF(3)*X^3+CF(2)*X^2+CF(1)*X+CF(0):GOTO430
  45. 420 DEFFNT2(X)=CF(4)*X^4+CF(3)*X^3+CF(2)*X^2+CF(1)*X+CF(0)
  46. 430 PRINT"[208]OSSIBLE FACTORS:[152]"
  47. 440 TI$="000000"
  48. 450 FT=-ABS(CF(0)):GOSUB50000:IFCN=DGTHEN560
  49. 460 FT=ABS(CF(0)):GOSUB50000:IFCN=DGTHEN560
  50. 470 LL=-ABS(CF(0))/2:HH=ABS(CF(0))/2
  51. 480 LL=INT(LL-.5):HH=INT(HH+.5)
  52. 500 FORFT=LL TO HH
  53. 510 IFFT=0THEN550
  54. 520 IFCN=DGTHEN560
  55. 530 IFINT(CF(0)/FT)<>CF(0)/FTTHEN550
  56. 540 GOSUB50000
  57. 550 NEXT
  58. 560 PRINT"[145]       "
  59. 570 TM=TI
  60. 580 IFCN=0THENPRINT"NO FACTORS FOUND.":GOTO600
  61. 590 PRINT""CN"FACTORS FOUND."
  62. 600 PRINT"[159][195]ALCULATIONS TOOK"TM/60/60"MINS"
  63. 610 PRINT"                ("TM/60"SECONDS.)":TR=1
  64. 615 IFCN=0THEN640
  65. 616 FORZZ=1TOCN:TR=TR*FR(ZZ):NEXT
  66. 617 IFCN=DGANDTR=CF(0)THENPRINT"[195]ANNOT FACTOR FUTHER.":GOTO640
  67. 620 PRINT"[151][215]OULD YOU LIKE ME TO DIVIDE USING"
  68. 630 INPUT"ONE OF THE ABOVE FACTORS";XX$
  69. 635 IFLEFT$(XX$,1)="Y"THEN660
  70. 640 INPUT"[151][193]NOTHER POLYNOMIAL";XX$
  71. 645 IFLEFT$(XX$,1)="Y"THENRUN
  72. 650 END
  73. 660 IFCN=1THENDV=FR(1):GOTO690
  74. 670 PRINT"[158][215]HICH FACTOR (1-"CN")";:INPUTZZ
  75. 675 IFZZ<1ORZZ>CNTHEN670
  76. 680 DV=FR(ZZ)
  77. 690 PRINT"[147][154][196]IVIDING [208]OLYNOMIAL:"
  78. 700 GOSUB60000
  79. 710 PRINT"[153][194]Y:  ([216]";
  80. 720 IFABS(DV)=DVTHENPRINT"+"DV"[157])":GOTO740
  81. 730 PRINTDV"[157])"
  82. 740 PRINT"[156][209]UOTIENT:":TI$="000000"
  83. 750 FORZZ=0TODG:TE(ZZ)=CF(ZZ):NEXT
  84. 760 FORZZ=DGTO1STEP-1
  85. 770 AA=TE(ZZ)
  86. 780 VR(ZZ-1)=AA
  87. 790 TE(ZZ-1)=TE(ZZ-1)-AA*DV
  88. 800 NEXT:NM=DG-1:TM=TI:GOSUB60000
  89. 810 PRINT"[150][195]ALCULATIONS TOOK"TM/60/60"MINS"
  90. 815 PRINT"                 ("TM/60"SECONDS)"
  91. 817 IFDG<2THEN850
  92. 820 PRINT"[151][215]OULD YOU LIKE ME TO FACTOR THE"
  93. 830 INPUT"QUOTIENT";ZZ$
  94. 840 IFLEFT$(ZZ$,1)="Y"THENDG=DG-1:FORZZ=0TODG:CF(ZZ)=VR(ZZ):NEXT:CN=0:GOTO230
  95. 850 GOTO640
  96. 50000 IFDG<5THENTL=FNT2(FT):GOTO50005
  97. 50003 TL=FNTT(FT)+FNT2(FT)
  98. 50005 PRINT"[145]"FT"[157]      "
  99. 50030 IFTL<.0001ANDTL>-.0001THEN50035
  100. 50033 GOTO50050
  101. 50035 PF=FT*-1:CN=CN+1:FR(CN)=PF:PF$=STR$(PF):PF$=RIGHT$(PF$,LEN(PF$)-1)
  102. 50037 PRINT"[145]"CN"[157].   ([216]";
  103. 50038 IFABS(PF)=PFTHENPRINT"+"PF$")":GOTO50050
  104. 50040 PRINT"-"PF$")"
  105. 50050 RETURN
  106. 60000 XX=0
  107. 60010 FORZZ=NMTO0STEP-1
  108. 60020 XX=XX+1
  109. 60030 IFXX=7THENPRINT""CHR$(13)
  110. 60040 IFVR(ZZ)=0THEN60150
  111. 60050 CF$=STR$(VR(ZZ))
  112. 60060 ZZ$=STR$(ZZ)
  113. 60070 IFSGN(VR(ZZ))=-1THENPP$=CF$:GOTO60090
  114. 60080 PP$=RIGHT$(CF$,LEN(CF$)-1)
  115. 60090 EX$=RIGHT$(ZZ$,LEN(ZZ$)-1)
  116. 60100 IFSGN(VR(ZZ))=1ANDXX<>1THENPRINT"+";
  117. 60115 IFVAL(EX$)=1ANDVR(1)<>0THENPRINTPP$"[216]";:GOTO60117
  118. 60116 GOTO60120
  119. 60117 GOTO60150
  120. 60120 IFVAL(EX$)=0ANDVR(0)<>0THENPRINTPP$:GOTO60125
  121. 60123 GOTO60127
  122. 60125 GOTO60160
  123. 60127 IFVR(ZZ)=1THENPRINT"[216][145]"EX$"";:GOTO60150
  124. 60130 IFVR(ZZ)=-1THENPRINT"-[216][145]"EX$"";:GOTO60150
  125. 60140 PRINTPP$"[216][145]"EX$"";
  126. 60150 NEXT
  127. 60160 RETURN
  128.