Техника

Немогу разобраться с задачей в VBA Програмировании

3.Дана целочисленная квадратная матрица. Определить:сумму элементов в тех столбцах, которые не содержат отрицательных элементов. Вот код который я написал Sub Programko() Dim A() As Integer, i As Integer, j As Integer, sum As Integer Let n = CSng(InputBox("введи n", "ввод данных", 0)) sum = 0 For i = 1 To n For j = 1 To n A(i, j) = InputBox("ввод" & i & j & "elem") Лист1.Cells(i).Value = A(i, j) Next j Next i If A(i, j) < 0 Then If A(i, j) > 0 Then sum = A(i, j) + sum End If Range("a2") = sum End Sub Но где-то в конце ошибка =(
Sub Programko()
Dim i As Integer
Dim j As Integer
Dim sum As Integer
Dim n As Integer
Let n = CSng(InputBox("введите размер матрицы", "n=", 0))
ReDim A(n, n) As Integer
sum = 0
For i = 1 To n
For j = 1 To n
A(i, j) = InputBox("введите элемент " & i & " строки, " & j & " столбца ")
Лист1.Cells(i, j).Value = A(i, j)
If A(i, j) > 0 Then sum = A(i, j) + sum
Next j
Next i
MsgBox ("Сумма положительных чисел в матрице " & n & " x " & n & " будет " & sum)
End Sub
Abduxalil Tursunov
Abduxalil Tursunov
389
Лучший ответ
а разве не так
Лист1.Cells(i).Value = A(i, j)
If A(i, j) < 0 Then
If A(i, j) > 0 Then sum = A(i, j) + sum
Next j
Next i
далее
If A(i, j) < 0 Then
If A(i, j) > 0 If A(i, j) < 0 Then
If A(i, j) > 0 Then sum = A(i, j) + sum чушь полная, ибо в переводе на обычный это выглядит так:
если число меньше нуля, тогда проверить, не больше ли оно нуля

далее. требуется определить, есть ли отриц. числа, если есть - сумму не считать, перейти на след. столбец
if a(i,j)>0 Then sum = A(i, j) + sum else (не помню оператор, короче выход из цикла j - не то break не то enddo или exit for) endif
короче, переход на след. столбец напр, j=n-1 тогда после next j j=n. да, пожалуй так лучше. начинается новый цикл по след. столбцу:
if a(i,j)>0
Then
sum(i) = A(i, j) + sum(i)
else j=n-1
sum(i)=0
endif
sum=sum +sum(i)
next j
как вариант, чтобы не забивать память массивом сумм, в нвчале цикла по j sum0 =sum вместо sum(i)=0 написать sum=sum0
sum=0
for i...
sum0=sum
fot j...
зы. сорри, если несколько все в куче - засыпаю...
Семён Рехтин
Семён Рехтин
11 989