Работа с матрицами А(N,N) - VB
Формулировка задачи:
В матрице А(N,N) уплотнить все элементы значения которых больше нуля в направлении указанном на рисунке.
Остальные элементы сделать равными нулю.
Дайте какую нибудь наводку или покажите решение. Никак не могу разобраться в этом бейсике.
И ещё посоветуйте какие нибудь книги по визуал бейсику
Решение задачи: «Работа с матрицами А(N,N)»
textual
Листинг программы
14. В матрице А(N,N) уплотнить все элементы значения которых больше нуля в направлении указанном на рисунке.
Остальные элементы сделать равными нулю.
Private Sub Command1_Click()
Dim a() As Single, b() As Single
Dim N As Integer
Dim napr As Integer
N = Val(InputBox("вводим размерность матрицы N-?", , 5))
If N > 2 Then
Me.Cls
Me.CurrentY = 2000
ReDim a(N, N), b(N, N)
For i = 1 To N
For j = 1 To N
a(i, j) = Int(Rnd * 21) - 10
'a(i, j) = Val(InputBox("a(" & i & " ; " & j & ")"))
Print a(i, j); Tab;
Next j
Print
Next i
Print: Print
i1 = 1: j1 = N + 1: napr = -1
For i = 1 To N
For j = 1 To N
If a(i, j) > 0 Then
If (j1 = 1 And napr = -1) Or (j1 = N And napr = 1) Then
i1 = i1 + 1
j1 = j1 + napr
napr = napr * (-1)
End If
j1 = j1 + napr
b(i1, j1) = a(i, j)
End If
Next j
Next i
ReDim a(N, N)
a = b
For i = 1 To N
For j = 1 To N
Print a(i, j); Tab;
Next j
Print
Next i
Else
MsgBox "введите N>2", vbExclamation
End If
End Sub
Private Sub Form_Load()
Me.AutoRedraw = True 'можна в свойствах
'Command1.Style = 1 объязательно в свойствах (что б рисунок был на кнопке
Command1.Picture = Image1.Picture
End Sub