Технический форум

Технический форум (http://www.tehnari.ru/)
-   Basic (http://www.tehnari.ru/f127/)
-   -   Даны три положительных вещественных числа x, y, z (http://www.tehnari.ru/f127/t86794/)

Мвнюня 25.03.2013 21:52

Даны три положительных вещественных числа x, y, z
 
Здравствуйте,помогите пожалуйста написать программку на Visual Basice, язык новый, не знаю как в нем программировать! Даны 3 положительных вещественных числа x, y, z. Определить, существует ли прямоугольный треугольник с такими длинами сторон.

iks2 23.10.2016 15:17

Вложений: 1
Можно так...

Код:

Option Explicit
Dim x As Single, y As Single, z As Single

Private Sub cmdD_Click()
    x = Val(txtX)
    y = Val(txtY)
    z = Val(txtZ)
    If x + y > z And y + z > x And z + x > y Then
        label.Caption = "YES"
    Else
        label.Caption = "NO"
    End If
End Sub


Vladimir_S 23.10.2016 15:39

Цитата:

Сообщение от iks2 (Сообщение 2426391)
Можно так...

Нельзя. Сударь, внимательнее: в задаче спрашивается не просто "существует ли треугольник?", а "существует ли прямоугольный треугольник?". Т.е надо условием OR проверять, не совпадут ли суммы квадратов двух чисел с квадратом третьего. Причем еще и меру точности ввести: числа-то вещественные...

iks2 23.10.2016 17:28

Vladimir_S,
я извиняюсь за свою невнимательность. Вы правы, тут надо добавить условие типа
Код:

If Abs(x^2 + y^2 - z^2) < eps And Abs(y^2 + z^2 - x^2) < eps And Abs(z^2 + x^2 - y^2) < eps Then
где eps - погрешность действия с вещественными числами

Vladimir_S 23.10.2016 17:35

Цитата:

Сообщение от iks2 (Сообщение 2426453)
Vladimir_S,
я извиняюсь за свою невнимательность. Вы правы, тут надо добавить условие типа
Код:

If Abs(x^2 + y^2 - z^2) < eps And Abs(y^2 + z^2 - x^2) < eps And Abs(z^2 + x^2 - y^2) < eps Then
где eps - погрешность действия с вещественными числами

Не пойдёт. Все "And" нужно заменить на "Or". Потому что искомый треугольник образуется, если выполняется ХОТЯ БЫ ОДНО из условий, а не все три разом, что, кстати, и невозможно.

iks2 23.10.2016 18:12

Vladimir_S,
я еще раз извиняюсь...

Код:

If Abs(x^2 + y^2 - z^2) < eps Or Abs(y^2 + z^2 - x^2) < eps Or Abs(z^2 + x ^2 - y^2) < eps Then


Часовой пояс GMT +4, время: 07:53.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.