Article image

WS

Wallison Silva18/02/2023 18:06
Compartilhe

Desafio

    Ainda sobre o Desafio Triângulo, agradeço aos que tentaram me ajudar, porém ainda recebo erro na entrega do desafio, tentei usar Baricentro, Baskara e outros métodos, porém ainda estou quebrando a cabeça. Creio que o exercício deveria descrever como esse triângulo é verificado.

    Compartilhe
    Comentários (12)
    Ricardo Moreira
    Ricardo Moreira - 18/02/2023 23:05

    Digite o valor do lado A

    Digite o Valor do Lado B

    Digite o Valor do lado C


    Verifica a condição de existência do triangulo

    A +B > C então ele existe e nao importa o tipo

    Perímetro = A + B + C ja que o polígono em questão eh um triangulo


    Senão existe

    A area do trapézio e: ((A+B) x C) / 2


    import java.util.ArrayList;
    import java.util.List;
    import java.util.Scanner;
    
    public class Main {
      public static void main(String[] args) {
    
          Scanner scanner = new Scanner(System.in);
          List<Integer> vertices = new ArrayList<>();
    
          for(int i=0; i<3;i++){
              System.out.println("Digite os valores de A, B e C: ");
              vertices.add(scanner.nextInt());
          }
     
          double condicaoExistencia = vertices.get(0) + vertices.get(1);
          int c = vertices.get(2);
    
          if(condicaoExistencia > c){
              double perimetro = condicaoExistencia + c;
              System.out.println("o perimetro é: " + perimetro);
          }else{
              double areaTrapezio =((condicaoExistencia*c)/2);
              System.out.println("A área do trapézio é: " + areaTrapezio);
          }
      }
    }
    
    Douglas Barcellos
    Douglas Barcellos - 18/02/2023 19:53

    Olá, Wallison. Aí, o código, em Java. Abração.


    import java.io.IOException;
    import java.util.Scanner;
    
    
    public class Teste{
      
      public static void main(String[] args) throws IOException {
          Scanner leitor = new Scanner(System.in);
          double A = leitor.nextDouble();
          double B = leitor.nextDouble();
          double C = leitor.nextDouble();
          double maior = 0;
          double soma = 0;
          double area = 0;
          boolean triangulo;
          
          // Verifica se existe triângulo
          triangulo = true;
          
    //TODO: Implemente a condição necessária para o cálculo do triângulo:
    //Dica: Você pode utilizar o String.format() na formatação do texto.
    
    
    if (triangulo == ((Math.abs(B-C)) < A && A < (B+C)) && (Math.abs(A-C) < B && B < (A+C)) && (Math.abs(A-B) < C && C<(A+B))){
          soma = A + B + C;
          System.out.println("Perimetro = " + String.format("%.1f", soma));
    } else {
      if (A > B){
        maior = A;
        area = ((maior + B) * C) / 2;
        
      } else{
        maior = B;
        area = ((maior + A) * C) / 2;
      }
       System.out.println("Area = " + String.format("%.1f", area));
      }	
          
      }
    }
    


    WS

    Wallison Silva - 18/02/2023 19:30

    Deu certo aqui, eu vacilei no cálculo do perimetro, muito obrigado pela ajuda galera valeu!

    Gabriel Gregorio
    Gabriel Gregorio - 18/02/2023 19:20

    Se está verificando 4 métodos de triângulo, então está errado, só existe 3 tipos de triângulo.

    Com isso agora você já sabe a resposta.

    Na sua linha 16 anteriormente, você estava verificando uma forma,falta verificar mais 2 e no caso do operador lógico, pense se seria o && ou o ||

    Fabiano Scorsatto
    Fabiano Scorsatto - 18/02/2023 19:18

    Acredito que aqui tenhamos um equivoco, pois as 3 retas que você possui fazem parte de um único triangulo simples.

    Portanto apenas o seu método "ordenar" já lhe fornece a informação de se as retas formam um triangulo.

    Outro ponto a se destacar é o calculo do perímetro que esta errado.

    No enunciado o mesmo é descrito "calcule o perímetro do triângulo (soma de todos os lados) "

    WS

    Wallison Silva - 18/02/2023 19:14

    Estou utilizando 4 métodos de verificação e nada, segue o código. Já não sei mais oque tentar.

    public static void main(String[] args) throws IOException {
        
          Scanner leitor = new Scanner(System.in);
          double A = leitor.nextDouble();
          double B = leitor.nextDouble();
          double C = leitor.nextDouble();
      
          
          boolean triangulo1 = ordenar(A, B, C);
          boolean triangulo2 = (C*C)>A*A+B*B;
          boolean triangulo3 = (C+B) > A;
          boolean triangulo4 = (A%2 != 0) || (B%2 != 0) || (C%2 != 0);
          
          if(triangulo1 || triangulo4 || triangulo2 || triangulo3){
            System.out.println("Perimetro = " + String.format( "%.1f" , A*3));
          }
          else{
            System.out.println("Area = " + String.format("%.1f" , ((A+B)*C)/2));
          }
    
    Fabiano Scorsatto
    Fabiano Scorsatto - 18/02/2023 18:57

    Como descrito pelo Gabriel a logica para verificar o triangulo esta correta.


    Verifique se os passos posteriores estão de acordo ao solicitado no exercício.

    Gabriel Gregorio
    Gabriel Gregorio - 18/02/2023 18:53

    Olá Wallison, não está errado, só está incompleto

    Pense mais um pouco, os desafios de código são excelentes para abrir o seu raciocínio computacional.

    A linha 16 é uma das formas de se obter um triângulo.

    O mais importante é você mesmo construir.

    Bons estudos!

    WS

    Wallison Silva - 18/02/2023 18:48

    Aqui está o método que verifica se a soma dos 2 menores lados é maior que o maior lado.


    public static boolean ordenar(double A, double B, double C){
      
      List<Double> list = new ArrayList<>();
      list.add(A);
      list.add(B);
      list.add(C);
      
      Object res[] = list.stream().sorted().toArray();
      return (double) res[0] + (double) res[1] > (double) res[2];
          
    }
    
    Fabiano Scorsatto
    Fabiano Scorsatto - 18/02/2023 18:45

    Por gentileza poste o código, se for a logica demonstrada na foto a mesma não esta verificando isto.

    WS

    Wallison Silva - 18/02/2023 18:43

    Eu realizei essa lógica, e continua dando erro, não sei oq tá acontecendo mn.

    Fabiano Scorsatto
    Fabiano Scorsatto - 18/02/2023 18:37

    Boa tarde Wallison.


    Como dito anteriormente: "Uma forma interessante de se saber se é ou não um triangulo é verificar se o resultado da soma das duas retas menores for maior que a maior reta, o mesmo é um triangulo.".


    Tendo em vista isso você terá que desenvolver um logica para saber qual lado é o maior.

    Posteriormente comparar se o maior lado é menor que a soma dos dois lados menores.

    Se satisfazer a esta condição é um triangulo.