Вычислить площадь и объем цилиндра - что нужно сделать, чтобы использовалось последнее, корректно введенное число? - VB
Формулировка задачи:
Доброго времени суток. Нужно было написать программу для вычисления площади и объема цилиндра, вроде все элементы правильно написал. Вопрос по операторам *If..When* и "Do..Loop" - если ввожу число отрицательное или равное нулю - цикл совершается, но используется первое(введенное неверно) число. Голову сломал уже, подскажите что нужно сделать чтобы использовалось последнее, корректно введенное число?
Листинг программы
- Dim Radius As Integer, Temp As Integer
- Temp = InputBox("Ââåäèòå Г°Г*äèóñ " & Chr(13) & "êðóãГ*" & "(Гў ìåòðГ*Гµ)", BoxTitle)
- Radius = CSng(Temp)
- If Temp <= 0 Then
- MsgBox "ГЌГҐГЇГ°Г*âèëüГ*ûå Г¤Г*Г*Г*ûå. Ââåäèòå ïîâòîðГ*Г®!", vbCritical
- End If
- Do Until (Temp > 0)
- Temp = InputBox("Ââåäèòå Г°Г*äèóñ " & Chr(13) & "êðóãГ*" & "(Гў ìåòðГ*Гµ)", BoxTitle)
- If Temp <= 0 Then
- MsgBox "ГЌГҐГЇГ°Г*âèëüГ*ûå Г¤Г*Г*Г*ûå. Ââåäèòå ïîâòîðГ*Г®!", vbCritical
- End If
- Loop
- Dim Heigth As Integer, Tent As Integer
- Tent = InputBox("Ââåäèòå âûñîòó " & Chr(13) & "öèëèГ*äðГ*" & "(Гў ìåòðГ*Гµ)", BoxTitle)
- Heigth = CSng(Tent)
- If Tent <= 0 Then
- MsgBox "ГЌГҐГЇГ°Г*âèëüГ*ûå Г¤Г*Г*Г*ûå. Ââåäèòå ïîâòîðГ*Г®!", vbCritical
- End If
- Do Until (Tent > 0)
- Tent = InputBox("Ââåäèòå âûñîòó " & Chr(13) & "öèëèГ*äðГ*" & "(Гў ìåòðГ*Гµ)", BoxTitle)
- If Tent <= 0 Then
- MsgBox "ГЌГҐГЇГ°Г*âèëüГ*ûå Г¤Г*Г*Г*ûå. Ââåäèòå ïîâòîðГ*Г®!", vbCritical
- End If
- Loop
- CircleArea1 = Pi * Radius * Radius * Heigth
- CircleArea2 = CircleArea1 * 1000
- CircleArea3 = 2 * Pi * Radius * (Radius + Heigth)
- CircleArea4 = (2 * Pi * Radius * (Radius + Heigth)) * 10000
- MsgBox CircleArea1 & "(ì^3)" & Chr(13) & CircleArea2 & "(äì^3)", vbInformation + vbOKOnly, "Îáúåì(V)"
- MsgBox CircleArea3 & "(Г¬^2)" & Chr(13) & CircleArea4 & "(Г±Г¬^2)", vbInformation + vbOKOnly, "ÏëîùГ*äü ïîëГ*îé ïîâåðõГ*îñòè(S)"
- End Sub
Решение задачи: «Вычислить площадь и объем цилиндра - что нужно сделать, чтобы использовалось последнее, корректно введенное число?»
textual
Листинг программы
- Do
- Temp = InputBox("Введите радиус " & Chr(13) & "круга" & "(в метрах)", BoxTitle)
- If Temp = "" Then Exit Sub 'нажали отмена
- If Not IsNumeric(Temp) Then
- MsgBox "Неправильные данные. Введите повторно!", vbCritical
- Else
- Radius = CSng(Temp)
- If Radius <= 0 Then
- MsgBox "Радиус не может быть отрицательным." & Chr(13) & _
- "Введите повторно!", vbCritical
- Else
- Exit Do
- End If
- End If
- Loop
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д