МАТРИЦЫ В Qbasic, из SUB-ами, почти сделал

Ответить
zvaruchserhi
Сообщения:2
Зарегистрирован:08 фев 2013, 00:29

08 фев 2013, 00:48

Для матрицы A выполнить следующие преобразования:
а) перестановку двух столбцов
б) добавление элементов r-й строки к соответствующим значениям л-й строки, умноженных на одно и то же число S, r=2, k=4, s=9

А=2 5 5 6 6 -4/1 6 2 3 5 -5/1 4 3 7 2 -3/2 5 5 6 7 3/6 0 3 1 4 0

ВОТ ЧТО У МЕНЯ ПОЛУЧИЛОСЬ

Код: Выделить всё

DECLARE SUB B(A())
DECLARE SUB C(A())
CLS
DIM A(6,6)
DATA 2,5,5,6,6,-4,1,6,2,3,5,-5,1,6,2,3,5,-5,1,4,3,7,2,-3,2,5,5,6,7,3,6,0,3,1,4,0,5,7,-2,4,-3,5
FOR I=1 TO 6
FOR J=1 TO 6
READ A(I,J)
NEXT J 
NEXT I
CALL B(A())
CALL C(A())
FOR I=1 TO 6
FOR J=1 TO 6
PRINT USING "##"; A(I,J);
NEXT J
PRINT
NEXT I
 
SUB B(A())
R=2
K=4
FOR I=1 TO 6
FOR J=1 TO 6
PRINT A(I,J)
NEXT J
PRINT 
NEXT I
B(I,J)= A(R,J)+A(K,J)
PRINT  "B="; B(I,J)
END SUB
 
SUB C(A())
R=2
K=4
S=9
FOR I=1 TO 6
C(I,J)= A(I,R)*S+A(I,K)*S
NEXT I
PRINT "C="; C(I,J)
END SUB
zvaruchserhi
Сообщения:2
Зарегистрирован:08 фев 2013, 00:29

26 июн 2013, 22:40

спасибо что мне НИКТО не помог, я сам ее доделал
DECLARE SUB p (a())
DECLARE SUB o (a())
OPTION BASE 1
CLS
DIM a(6, 6)
a(1, 1) = 2
a(1, 2) = 5
a(1, 3) = 5
a(1, 4) = 6
a(1, 5) = 6
a(1, 6) = -4
a(2, 1) = 1
a(2, 2) = 6
a(2, 3) = 2
a(2, 4) = 3
a(2, 5) = 5
a(2, 6) = -5
a(3, 1) = 1
a(3, 2) = 4
a(3, 3) = 3
a(3, 4) = 7
a(3, 5) = 2
a(3, 6) = -3
a(4, 1) = 2
a(4, 2) = 5
a(4, 3) = 5
a(4, 4) = 6
a(4, 5) = 7
a(4, 6) = 3
a(5, 1) = 6
a(5, 2) = 0
a(5, 3) = 3
a(5, 4) = 1
a(5, 5) = 4
a(5, 6) = 0
a(6, 1) = 5
a(6, 2) = 7
a(6, 3) = -2
a(6, 4) = 4
a(6, 5) = -3
a(6, 6) = 5



FOR i = 1 TO 6
FOR j = 1 TO 6
PRINT USING "###"; a(i, j);
NEXT j
PRINT
NEXT i
PRINT
PRINT
CALL p(a())
CALL o(a())

SUB o (a())
r = 2
k = 4
s = 9
PRINT
PRINT

FOR i = 2 TO 2
FOR j = 1 TO 6
w = a(r, j)
e = a(k, j)

a(r, j) = (w + e) * s
NEXT j
PRINT
NEXT i
FOR i = 1 TO 6
FOR j = 1 TO 6

PRINT USING "####"; a(i, j);
NEXT j
PRINT
NEXT i
END SUB

SUB p (a())

FOR i = 1 TO 6
FOR j = 1 TO 6

q = a(i, 1)
a(i, 1) = a(i, 3)
a(i, 3) = q

PRINT USING "###"; a(i, j);
NEXT j
PRINT
NEXT i
END SUB
Ответить