Quinta passagem pelo Ciclo Básico :

O problema das arestas positivas, mas que não formam triângulos


É possível que tres arestas, mesmo que tenham medidas positivas, não formem um triângulo, por não conseguirem formar uma linha poligonal fechada. A regra para formar um triângulo válido é conhecida como "lei das desigualdades triangulares", e diz que: "qualquer lado deve ser menor do que a soma dos outros dois";

  • Criar um teste: .
    • O conjunto de arestas 2 2 e 100 viola a lei das desigualdades triangulares

  • Escrever o teste usando a linguagem

    • Para implementar nosso teste, usaremos novamente a noção de Projeto por Contrato.
                          private static void testeDeDesigualdadesTriangulares() {
                               try {
                                    new Triangulo(2,2,100);
                                    assert (false):"Impossível chegar aqui. Deve desviar no comando anterior";
                               } catch (AssertionError e){
                                    mensagemDeErro = e.getMessage();
                               } 
                               assert mensagemDeErro.equals("qualquer lado deve ser menor do que a soma dos outros dois");       
                          }

  • Implementar o código de produção, que permita executar o teste com sucesso

                    class Triangulo{ 
                        public Triangulo(int a, int b, int c){ 
                           assert
                              a < (b + c) && b < (a + c) && c < (a + b):"arestas devem respeitar as Desigualdades Triangulares";
                              ...
                        }
                     } 
 

(código completo)

  • fatorar o código de produção
    • sem necessidade aparente


fim do quinto passo

Ciclo Básico QuintoPasso SextoPasso?

Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r1 | More topic actions
 
Powered by TWiki
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback