Решение систем линейных уравнений методом гаусса с выбором главного элемента- QBasic(Бейсик)

10 PRINT 'РЕШЕНИЕ СИСТЕМ ЛИНЕЙНЫХ УРАВНЕНИЙ МЕТОДОМ’
20 PRINT ‘ГАУССА С ВЫБОРОМ ГЛАВНОГО ЭЛЕМЕНТА’
30 INPUT ‘ЗАДАЙТЕ ЧИСЛО УРАВНЕНИЙ N = ‘N
40 DIM A(N,N),B(N),C(N,N),G(N),X(N)
50 FOR I = 1 TO N: FOR J=1 TO N
60 PRINT !2.0! ‘ВВЕДИТЕ A’I’,’J’ = ‘ : INPUT A(I,J) : NEXT J
70 PRINT ‘ВВЕДИТЕ   B'1' = ':INPUT B(I) : NEXT I 
80 GOSUB 100
85 FOR I=1 TO N
90 PRINT !2.0! ‘X’I’ = ‘!F1.9!X(I): NEXT I: STOP
100 LETN1 = N-1:FOR K =1 TO N1
110 IF ABS(A(K,K))>0 GOTO 200
120 LETK1 = K+1:FOR M=K1 TON
130 IF ABS(A(M,K))>0 GOTO 150
140 GOTO 165
150 FOR L=1 TO N:LETV=A(K,L):LETA(K,L)=A(M,L)
160 LETA(M,L)=V:NEXT L
165 NEXT M
170 LETV = B(K):LETB(K)=B(M) : LETB(M)=V
200 LETG(K) = B(K)/A(K,K):LETK1=K+1
210 FOR I = K1: TO N:LETB(I)=B(I)-A(I,K)*G(K)
220  FOR J1=K TO N:LET J = N-J1+K:LETC(K,J)=A(K,J)/A(K,K)
225 LETA(I,J) = A(I,J)-A(I,K)*C(K,J)
230 NEXT J1:NEXT I:NEXT K
240 LETM = N:LETX(M) = B(M)/A(M,M)
250 LETM = M-1:LETS=0:FOR L=M TO N1
260 LETS = S+C(M,L+1)*X(L+1):NEXT L
270 LETX(M) = G(M)-S:IF M>1 GOTO 250
280 RETURN:END

Тестирование выполнено в программе QB64 ( Скачать )

Leave a Comment