Страница: 1 |
Страница: 1 |
Вопрос: VBA - определить стороны прямоугольного треугольни
Добавлено: 06.07.11 16:19
Автор вопроса: Spetznaz | ICQ: 5552600
задано 2 катета - найти гипотенузу
задан катет и гипотенуза - найти второй катет
гипотенуза не может быть меньше катета
предусмотреть:
гашение меток в поле ввода-выводы для несуществующего варианта;
переверка факта ввода числа, а не текста или 0.
Формат вывода результат - 2 знака после запятой.
запретить ввод значений в поле вывода результата.
клавише ЕНТЕР присв. функц. "выполнить", ЕСК=отменить
Польз. форме присвоить имя "ТЕСТПРОГ".
решение выглядит примерно так:
Private Sub CommandButton1_Click()
Dim A As Single ' 1 katet
Dim B As Single ' 2 katet
Dim C As Single ' gipotenuza
A = TextBox1.Text
B = TextBox2.Text
C = TextBox3.Text
Function СторонаТреугольника (Optional A, Optional В, Optional С)
If Not (IsMissing(A)) And Not (IsMissing(В)) Then
СторонаТреугольника = Sqr(А^2 + В^2)
End If
If Not (IsMissing(A)) And Not (IsMissing(C)) Then
СторонаTреугольника = Sqr(С^2 – A^2)
End If
If Not (IsMissing(B)) And Not (IsMissing(C)) Then
Сторонатреугольника = Sqr (C^2 – B^2)
End If
EndFunction
TextBox4.Text = Сторонатреугольника
End Sub
помогите исправить ошибки,
этот код работает неправильно.
Ответы
Всего ответов: 2
Номер ответа: 1
Автор ответа:
Дмит
Вопросов: 11
Ответов: 160
Web-сайт:
Профиль | | #1
Добавлено: 07.07.11 15:36
Ну для начала:
Номер ответа: 2
Автор ответа:
Поша
Вопросов: 1
Ответов: 3
Профиль | | #2
Добавлено: 09.07.11 22:24
Первая ошибка - IsMissing работает только с типом данных Variant.
Вторая ошибка не инструментальная, а лгическая - не хватает обработки пользовательского поведения.
А если он введет и A, и B, и C?
Или не введет ничего?
Или A = 10, а В = 0?
Или B = 10, а С = фу14 (обтыкался человек)?
И т.д.
Я бы начал со второй.