Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для nomad____1

Пользователь


Сообщения: 79
Благодарности: 1

Профиль | Отправить PM | Цитировать


валидность треугольника УЧТЕНО И ДОРОБОТАНО
Цитата lxa85[I:
]В данном случае в процедуру установки параметров можно прописать процедуру установки флага "валидности" треугольника.
Тогда в процедуре вычисления площади будет проверяться условие планарности треугольника по флагу.[/i] »
Сделал. Не знаю так ли как Вы написали.
Код: Выделить весь код
//      Проверка планарности треугольника       
            if ((aSide + bSide) > cSide && (aSide + cSide) > bSide && (bSide + cSide) > aSide) {
//                Вычисление площади

точность УЧТЕНО
Цитата lxa85:
Точность - вежливость королей. По таким мелочам судят о специалисте. »
Программу буду улучшать по мере изучения

учтено. программу буду улучшать по мере изучения
Цитата lxa85:
Ваш пример с одной стороны достаточно каноничен и в нем нет сложности, с другой оторван от реальности и практики. »

Цитата lxa85:
Те же прямоугольные треугольники здесь не учитываются. Ответ будет дан с определенной погрешностью (кстати вопрос "на засыпку" как специалисту: какая погрешность метода при вычислении площади прямоугольного треугольника?).
Отсутствие условий планиметрии приведет к ошибке - вычислению корня из отрицательного числа (NaN).
»
Вы сами дали ответ на свой вопрос) точность! в прямоугольном треугольнике площадь равна (а*b)/2 ... очень высокая точность!) А вот вычисление квадратного корня с числа например 2 или 3....)

Тут уже вопрос как заставить ее работать... У меня выводит 0. Так как не может вычислить целый квадратный корень.

Цитата lxa85:
P.S. Не стоит без особой надобности выделять текст жирным шрифтом. »
Это чисто для себя. Так сказать "вопрос-ответ". Выделение своих сообщений (вопросов). Для более простейшей навигации.

Вот код после доработки:
главный класс
package square;
Код: Выделить весь код
public class Square {

    public static void main(String[] args) {
        Triangle triangle = new Triangle(2, 5, 6);
        triangle.squareOut();
    }
}

Класс с методами и конструктором
package square;
Код: Выделить весь код
public class Triangle {

    private int aSide;
    private int bSide;
    private int cSide;
    private double square;
    private double perimeter;
    private int vuvod;

    public Triangle(int aSide, int bSide, int cSide) {
        this.aSide = aSide;
        this.bSide = bSide;
        this.cSide = cSide;
    }

    private void print(String str) {
        System.out.println(str);
    }

//    
//      Проверка "на дурака" введенных значение и вычисление площади
//        
    public void square() {
//       Проверка нет ли стороны с отрицательным значением или равным нулю 
        if (aSide <= 0 || bSide <= 0 || cSide <= 0) {
            vuvod = 1;
        } else {
//      Проверка планарности треугольника       
            if ((aSide + bSide) > cSide && (aSide + cSide) > bSide && (bSide + cSide) > aSide) {
//                Вычисление площади
                perimeter = (aSide + bSide + cSide) / 2;
                square = Math.sqrt(perimeter * (perimeter - aSide) * (perimeter - bSide) * (perimeter - cSide));
                vuvod = 2;
            } else {
//      Когда данные числа не могут соответствовать длине сторон треугольника     
                vuvod = 3;
            }
        }
        if (square == 0) {
            vuvod = 0;
        }
    }

// 
// Вывод значения на экран   
//    
    public void squareOut() {
        this.square();
        switch (vuvod) {
            case 1:
                print("Длинна не может быть отрицательным числом");
                break;
            case 2:
                print("Площадь треугольника равна " + square);
                break;
            case 3:
                print("У треугольника не может быть сторон с такими значениями");
                break;
            default:
                print("\tхм... что то не так с программой... Советую заглянуть в метод  square... \n\t Скорее всего программа не может добыть квадратный корень. ");
        }
    }
}


P.S.
Сегодня ночью думаю скину код где будет проверка треугольника на прямоугольность и вычисление площади по отдельной формуле. Думаю использовать сравнение трех сторон. Две самые "мелкие" должны быть катетами. Дальше с помощю теоремы Пифагора проверить будет ли получена гипотенуза равна "нашей" введеной. пока мой извращенный мозг более простого не придумал)))

P.P.S.
Надеюсь етот смайл пробет стенку головой)

Последний раз редактировалось nomad____1, 26-04-2015 в 16:05.


Отправлено: 15:48, 26-04-2015 | #7