Другие языки программирования и технологии

КТО знает програмирование по QBASIC Описание темы: ПОМОГИТЕ НАЙТИ ОШИБКИ В ПРОГРАММЕ

ЗАДАЧА:
Для матрицы 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|
A=|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
> ВОТ ЧТО У МЕНЯ ПОЛУЧИЛОСЬ
А получилось не то, что требовалось.
Нет перестановки столбцов. Кстати, в задании не указаны номера этих столбцов. Пусть будут r и k.
Задание б) сделано не правильно.
В подпрограммах откуда-то появляются массивы B и C с именами, совпадающими с именами подпрограмм. л-я строка - видимо k-я.
Ну, на необъявленные переменные в qBasic можно закрыть глаза.

DECLARE SUB OutArray (A())
DECLARE SUB B (A(), r, k)
DECLARE SUB C (A(), r, k, s)
CLS
DIM A(6, 6)
DATA 2,5,5,6,6,-4,1,6,2,3,5,-5,1,4,3,7,2,-3
DATA 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
r = 2
k = 4
s = 9
CALL OutArray(A())
CALL B(A(), r, k)
CALL OutArray(A())
CALL C(A(), r, k, s)
CALL OutArray(A())
END

SUB B (A(), r, k)
FOR I = 1 TO 6
 temp = A(I, r)
 A(I, r) = A(I, k)
 A(I, k) = temp
NEXT
END SUB

SUB C (A(), r, k, s)
FOR j = 1 TO 6
 A(k, j) = A(k, j) * s + A(r, j)
NEXT
END SUB

SUB OutArray (A())
 PRINT "Массив: "
 FOR I = 1 TO 6
  FOR j = 1 TO 6
   PRINT USING "###"; A(I, j);
  NEXT
  PRINT
 NEXT
 PRINT
END SUB
Роман Зорин
Роман Зорин
51 590
Лучший ответ