在偶上中学时,老师在复习迎考时经常漫无目的地给偶们布置题海战术,这种题海战术重复很多,为了节省精力,偶就花了一些时间(也不知道搞这个是不是更费精力,不过偶觉得比做题目好玩),就编写了许多BASIC程序,用来解答运算各种数学题目,其中属这个多元一次方程式的解算程序难度最大,这个程序对于当年的偶可以算是登峰造极的一个自编程序了。近日,在网上无意中发现了BASIC程序编写软件,于是勾起了偶儿时的记忆,于是重新翻起了偶以前的编程手稿,将它重新输入,放了上来,以作纪念。如果有哪位还用得着的话,兴起还能用用。(由于偶的编程都是以前吃饱了没事自学个,所以可能在技巧性上面还不是特别出色,如果有编程老鸟看到有效率较低的地方,敬请谅解了)
[原创]BASIC程序——解多元一次方程
编写时间:1995年 作者:dinzu (注意:如需引用请注明原作者)
程序清单:
10 DIM A(30,31)
20 HOME
RINT”This is the solve simple equation program.(DINZU 1995-a03)”
80 INPUT”How many unknown quantity?”,N
100 PRINT”Please input unknown quantity!”
110 FOR I=1 TO N
120 FOR J=1 TO N+1
125 PRINT I;”a”;J;”=”;
130 INPUT A(I,J)
150 NEXT J
160 PRINT
170 NEXT I
180 FOR J=1 TO N
200 IF A(J,J)<>0 THEN GOTO 270
210 FOR I=J TO N
220 IF A(I,J)<>0 THEN GOTO 260
230 NEXT I
240 PRINT”No unique solution or no solution”
250 GOTO 800
260 GOSUB 500
270 C=1/A(J,J)
280 GOSUB 600
290 FOR I=1 TO N
300 IF I=J THEN GOTO 330
310 C=-A(I,J)
320 GOSUB 700
330 NEXT I
340 NEXT J
400 FOR I=1 TO N
410 PRINT”X(”;I;”)=”;A(I,N+1)
420 NEXT I
430 GOTO 800
500 FOR K=J TO N+1
510 B=A(J,K)
520 A(J,K)=A(I,K)
530 A(I,K)=B
540 NEXT K
550 RETURN
600 FOR I=J TO N+1
610 A(J,I)=A(J,I)*C
620 NEXT I
630 RETURN
700 FOR S=J TO N+1
710 A(I,S)=A(J,S)+C*A(J,S)
720 NEXT S
730 RETURN
800 INPUT”CONTINUE(Y/N)”,A$
810 IF A$=”Y” THEN GOTO 20
820 PRINT”BYE-BYE!!!”
RINT”DINZU 1995-A03”:END
著作权dinzu(光和明)所有,如需引用请注明作者。
[此贴子已经被作者于2005-8-26 15:26:14编辑过]