home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / mbug / mbug048.arc / J5.BAS < prev    next >
BASIC Source File  |  1979-12-31  |  2KB  |  40 lines

  1. 10 GOTO 200
  2. 20 FOR J=0 TO N:K=-1:R=0:FOR I=J TO N:S=ABS(A(I,J)):IF S>R THEN K=I:R=S
  3. 30 NEXT:IF K=-1 THEN 70ELSE FOR I=J TO N:SWAP A(J,I),A(K,I):NEXT:SWAP B(J),B(K)
  4. 40 FOR I=J+1 TO N:S=A(I,J):G=ABS(S):IF G=0 THEN 65ELSE R=A(J,J):H=ABS(R)
  5. 50 F=G-(G\H)*H:G=H:H=F:IF F>0 THEN 50
  6. 60 A(I,J)=0:R=R/G:S=S/G:FOR K=J+1 TO N:A(I,K)=R*A(I,K)-S*A(J,K):NEXT:B(I)=R*B(I)-S*B(J)
  7. 65 NEXT
  8. 70 NEXT:K=0:M=N
  9. 80 IF M<0 THEN 190
  10. 90 IF E<ABS(A(M,M))THEN 160
  11. 100 X(M)=9
  12. 110 J=M+1:R=X(M)
  13. 120 IF J>=N THEN 130ELSE IF R=X(J)THEN 140ELSE J=J+1:GOTO 120
  14. 130 L(K)=M:K=K+1:M=M-1:GOSUB 80:K=K-1:M=L(K)
  15. 140 X(M)=X(M)-1:IF X(M)>E THEN 110
  16. 150 RETURN
  17. 160 D=B(M):FOR J=M+1 TO N:D=D-A(M,J)*X(J):NEXT:D=D/A(M,M):X(M)=D:IF(D<1)OR(9<D)THEN RETURN
  18. 170 IF D-INT(D+E)>E THEN RETURN ELSE J=M+1
  19. 180 IF J>=N THEN M=M-1:GOTO 80ELSE IF(D=X(J))THEN RETURN ELSE J=J+1:GOTO 180
  20. 190 PRINT" A  B  C  D  E  F  G  H  J  X":FOR J=0 TO N:PRINT X(J);:NEXT:PRINT:Q=Q+1:RETURN
  21. 200 DEFINT F-Q:I=J:K=G:H=F:P=Q:M=0:N=10-1:R=S:D=0:E=.001:DIM A(N,N),B(N),L(N),X(N)
  22. 210 FOR J=0 TO 4:READ B(J):NEXT:FOR I=0 TO 3:FOR J=0 TO 3:READ A0$:K=INSTR("ABCDEFGHJX",A0$)-1:A(J,K)=A(J,K)+1:A(I+5,K)=A(I+5,K)+1:IF I+J=3 THEN A(4,K)=A(4,K)+1
  23. 220 IF I=J THEN A(N,K)=A(N,K)+1
  24. 230 NEXT:READ B(I+5):NEXT:FOR J=0 TO 3:READ B(J):NEXT:READ B(N):FOR J=0 TO N-1:A(0,J)=A(0,J)+1:NEXT:B(0)=B(0)+45
  25. 240 GOSUB 20:IF Q=0 THEN PRINT"NO SOLUTIONS"
  26. 250 END
  27. 260 DATA 21,16,16,26,11
  28. 270 DATA B,X,G,D,24
  29. 280 DATA C,G,A,H,20
  30. 290 DATA H,A,J,E,19
  31. 300 DATA F,E,C,B,16
  32. 310 DATA 21,16,16,26,27
  33. 320 END
  34. 330 REM COPYRIGHT (C) 87JAN23 J.LOKE
  35.  C,G,A,H,20
  36. 290 DATA H,A,J,E,19
  37. 300 DATA F,E,C,B,16
  38. 310 DATA 21,16,16,26,27
  39. 320 END
  40. 330 REM C