10 REM **********  ΠΡΟΓΡΑΜΜΑ  Π303  **********

20 REM *                                     *

30 REM *         Γραμμικά  Συστήματα         *

40 REM *     Μέθοδος απαλοιφής του Gauss     *

50 REM *          Mε ολική οδήγηση           *

60 REM *                                     *

70 REM ***************************************

80 CLS

90 DIM A(25,25),X(25),IPIVOT(25)

100 EPS=.0000001

110 INPUT "Δώσε τον αριθμό των εξισώσεων";N

120 NC=N+1

130 PRINT

140 FOR I=1 TO N

150 FOR J=1 TO N

160 READ A(I,J)

170 NEXT J

180 READ A(I,NC)

190 NEXT I

200 FOR I=1 TO N

210 IPIVOT(I)=I

220 NEXT I

230 GOSUB 340

240 PRINT " Αποτελέσματα"

250 PRINT

260 FOR M=1 TO N

270 PRINT "X(";IPIVOT(M);")=";X(IPIVOT(M))

280 PRINT

290 NEXT M

300 END

310 PRINT "Η ορίζουσα του Α είναι μηδέν "

320 END

330 REM Απαλοιφή Gauss με ολική  οδήγηση

340 FOR JR=1 TO N-1

350 W=0

360 LC=0

370 FOR I=JR TO N

380 FOR J=JR TO N

390 IF ABS(A(I,J))>W THEN GOTO 410

400 GOTO 440

410 IROW=I

420 JCOL=J

430 W=ABS(A(I,J))

440 NEXT J

450 NEXT I

460 IF JCOL=JR AND IROW=JR THEN GOTO 650

470 IF IROW=JR  THEN GOTO 550

480 REM Αλλαγή γραμμών

490 IF JCOL=JR THEN LC=1

500 FOR J=1 TO NC

510 W=A(JR,J)

520 A(JR,J)=A(IROW,J)

530 A(IROW,J)=W

540 NEXT J

550 REM Αλλαγή στηλών

560 IF LC=1 THEN GOTO 650

570 IT=IPIVOT(JCOL)

580 IPIVOT(JCOL)=IPIVOT(JR)

590 IPIVOT(JR)=IT

600 FOR I=1 TO N

610 W=A(I,JR)

620 A(I,JR)=A(I,JCOL)

630 A(I,JCOL)=W

640 NEXT I

650 REM Απαλοιφή

660 FOR I=JR TO N-1

670 IF ABS(A(JR,JR))<EPS THEN GOTO 310

680 P=A(I+1,JR)/A(JR,JR)

690 FOR J=JR+1 TO NC

700 A(I+1,J)=A(I+1,J)-P*A(JR,J)

710 NEXT J

720 NEXT I

730 NEXT JR

740 REM Πίσω αντικατάσταση

750 FOR M=N TO 1 STEP -1

760 IF M=N THEN GOTO 800

770 FOR L=N TO M+1 STEP -1

780 A(M,NC)=A(M,NC)-A(M,L)*X(IPIVOT(L))

790 NEXT L

800 IF ABS(A(M,M))<EPS THEN GOTO 310

810 X(IPIVOT(M))=A(M,NC)/A(M,M)

820 NEXT M

830 RETURN

840 DATA 1,-3,2,-5,6

850 DATA -3,2,-1,2,-3

860 DATA 2,-1,4,-2,11

870 DATA -5,2,-2,6,-15