Ответы
Ответ дал:
2
Sub Zadanie()
On Error GoTo Handler
Dim A(9) As Integer
For k = 0 To 9
A(k) = InputBox("Chislo nomer " + CStr(k + 1))
Next k
Dim b As Integer 'proizv
b = 1
Dim m As Boolean 'est li otrits chisla
m = False
For i = 0 To 9
If A(i) < 0 Then
b = b * A(i)
m = True
End If
Next i
If m = False Then MsgBox "Otrits. chisel ne bylo" Else MsgBox (b)
End
Handler:
MsgBox "Oshibka!"
End Sub
On Error GoTo Handler
Dim A(9) As Integer
For k = 0 To 9
A(k) = InputBox("Chislo nomer " + CStr(k + 1))
Next k
Dim b As Integer 'proizv
b = 1
Dim m As Boolean 'est li otrits chisla
m = False
For i = 0 To 9
If A(i) < 0 Then
b = b * A(i)
m = True
End If
Next i
If m = False Then MsgBox "Otrits. chisel ne bylo" Else MsgBox (b)
End
Handler:
MsgBox "Oshibka!"
End Sub
petrroganov:
так будет работать
а ?
если ещё m=true убрать
Sub Zadanie()
Dim A(9) As Integer, b As Integer
For k = 0 To 9
A(k) = InputBox("Chislo nomer " + CStr(k + 1))
Next k
b = 1
For i = 0 To 9
If A(i) < 0 Then
b = b * A(i)
End If
Next i
MsgBox "OtBet!"&b
End Sub
Dim A(9) As Integer, b As Integer
For k = 0 To 9
A(k) = InputBox("Chislo nomer " + CStr(k + 1))
Next k
b = 1
For i = 0 To 9
If A(i) < 0 Then
b = b * A(i)
End If
Next i
MsgBox "OtBet!"&b
End Sub
+ CStr(k + 1)) и что это делает
Я знаю, что будет работать так, как я написал, другое не знаю. m здесь - индикатор, есть ли хотя бы одно отриц. число, если его убрать, то при отсутствии отриц. чисел он выдаст единицу, что есть ошибка.
Функция CStr() делает из числа строку, без этого вы получите несовпадение типов.
А если убрать On Error... и Handler, то получится несовпадение типов, если вдруг вместо числа будет введен текст
хорошо спасибо)
В школьных задачах проверки правильности ввода исходных данных не делается за исключением случая, когда это оговорено условиями задания.
Вас заинтересует
2 года назад
2 года назад
2 года назад
2 года назад