Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void adicaoSubtracaoRadicais() {// RESOLVER: COEFICIENTE1 SÓ ESTÁ CALCULANDO POSITIVO, ARRUMAR NEGATIVO TAMBÉM
- if ((Objects.equals(indice1, indice2)) && (Objects.equals(radicando1, radicando2))) { // primeiro caso
- if (coeficiente2 > 0) {//if pra conferir se é soma
- answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep( NumberUtil.convertDoubleToString(coeficiente1)+
- "\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1)+ "} + "
- + NumberUtil.convertDoubleToString(coeficiente2) + "\\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{"
- + NumberUtil.convertDoubleToString(radicando2)+ "}",
- "1º caso: Todos os radicais são semelhantes. Basta somar os coeficientes quando o índice e radicando forem iguais"));
- double soma = coeficiente1 + coeficiente2;
- answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep("(" + NumberUtil.convertDoubleToString(coeficiente1)+ "+"
- + NumberUtil.convertDoubleToString(coeficiente2)+ ")\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{"
- + NumberUtil.convertDoubleToString(radicando1)+ "}",
- "Basta somar os coeficientes quando o índice e radicando forem iguais"));
- answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep( NumberUtil.convertDoubleToString(soma)+ "\\sqrt["
- + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1)+ "}",
- "Resultado"));
- } else { //quando não for soma
- answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep( NumberUtil.convertDoubleToString(coeficiente1)
- + "\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1)+ "} "
- + NumberUtil.convertDoubleToString(coeficiente2)+ "\\sqrt[" + NumberUtil.convertDoubleToString(indice2)
- + "]{" + NumberUtil.convertDoubleToString(radicando2) + "}",
- "Basta subtrair os coeficientes quando o índice e radicando forem iguais"));
- answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep("(" + NumberUtil.convertDoubleToString(coeficiente1)+ ""
- + NumberUtil.convertDoubleToString(coeficiente2) + ")\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{"
- + NumberUtil.convertDoubleToString(radicando1) + "}",
- "Basta subtrair os coeficientes quando o índice e radicando forem iguais"));
- double subtracao = coeficiente1 + coeficiente2;
- answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep( NumberUtil.convertDoubleToString(subtracao)+ "\\sqrt["
- + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1) + "}",
- "Resultado"));
- }
- } else {
- if (coeficiente2 > 0) {
- answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep( NumberUtil.convertDoubleToString(coeficiente1) + "\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1) + "} + \\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{" + NumberUtil.convertDoubleToString(radicando2) + "}",
- "2º caso: Todos os radicais podem ser transformados em radicais semelhantes xuxu"));
- RootAlgorithm ra1 = new RootAlgorithm(indice1, radicando1, null);
- ArrayList<Integer> res1 = ra1.rootDecomposition();
- RootAlgorithm ra2 = new RootAlgorithm(indice2, radicando2, null);
- ArrayList<Integer> res2 = ra2.rootDecomposition();
- System.out.println("1: " + res1);//TIRAR
- System.out.println("2: " + res2);//TIRAR
- // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep("\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + ra1 + "} + \\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{" + sequence2 + "}",
- // "Decompor as duas raízes em números primos"));
- //primeira raiz
- String sequence1 = "";
- for (Integer exatas : ra1.potenciasExatas) {
- if (sequence1.length() == 0) {
- sequence1 += "" + exatas + "^" + NumberUtil.convertDoubleToString(indice1);
- } else {
- sequence1 += " \\times " + exatas + "^" + NumberUtil.convertDoubleToString(indice1);
- }
- }
- for (Integer resto : ra1.restoRadicando) {
- if (sequence1.length() == 0) {
- sequence1 += "" + resto;
- } else {
- sequence1 += " \\times " + resto;
- }
- }
- //segunda raiz
- String sequence2 = "";
- for (Integer exatas : ra2.potenciasExatas) {
- if (sequence2.length() == 0) {
- sequence2 += "" + exatas + "^" + NumberUtil.convertDoubleToString(indice2);
- } else {
- sequence2 += " \\times " + exatas + "^" + NumberUtil.convertDoubleToString(indice2);
- }
- }
- for (Integer resto : ra2.restoRadicando) {
- if (sequence2.length() == 0) {
- sequence2 += "" + resto;
- } else {
- sequence2 += " \\times " + resto;
- }
- }
- answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep(ra1.rootDecomposition().get(0) + "\\sqrt[" + ra1.rootDecomposition().get(1) + "]{" + ra1.rootDecomposition().get(2) + "} + " + ra2.rootDecomposition().get(0) + " \\sqrt[" + ra2.rootDecomposition().get(1) + "]{" + ra2.rootDecomposition().get(2) + "}",
- "Tirar as potências exatas para fora da raiz e multiplicar elas. O resto continua dentro da raiz e também precisa ser multiplicado"));
- } else {
- // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep( NumberUtil.convertDoubleToString(coeficiente1) + "\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1) + "} \\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{" + NumberUtil.convertDoubleToString(radicando2) + "}",
- // "2º caso: Todos os radicais podem ser transformados em radicais semelhantes"));
- }
- //
- // else if (coeficiente2 == null || coeficiente2 > 0) { //soma do segundo caso
- // if (coeficiente1 != null && (coeficiente1 > 1 || coeficiente1 < 1)) {
- // //coeficiente da primeira raiz existe
- //
- // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep( NumberUtil.convertDoubleToString(coeficiente1) + "\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1) + "} + \\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{" + NumberUtil.convertDoubleToString(radicando2) + "}",
- // "2º caso: Todos os radicais podem ser transformados em radicais semelhantes"));
- //
- // coeficiente1 = Math.pow(coeficiente1, indice1);
- // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep( NumberUtil.convertDoubleToString(coeficiente1) + "\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1) + "} + \\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{" + NumberUtil.convertDoubleToString(radicando2) + "}",
- // "Quando o coeficiente for maior que 1 elevar ele ao indíce"));
- //
- // radicando1 *= coeficiente1;
- // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep("\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1) + "} + \\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{" + NumberUtil.convertDoubleToString(radicando2) + "}",
- // "Depois multiplicar ele com o radicando"));
- // }
- //
- // if (coeficiente2 != null && (coeficiente2 > 1 || coeficiente2 < 1)) {
- // //coeficiente da segunda raiz existe
- //
- // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep("\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1) + "} + " + NumberUtil.convertDoubleToString(coeficiente2) + "\\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{" + NumberUtil.convertDoubleToString(radicando2) + "}",
- // "2º caso: Todos os radicais podem ser transformados em radicais semelhantes"));
- //
- // coeficiente2 = Math.pow(coeficiente2, indice2);
- // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep("\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1) + "} + " + NumberUtil.convertDoubleToString(coeficiente2) + "\\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{" + NumberUtil.convertDoubleToString(radicando2) + "}",
- // "Quando o coeficiente for maior que 1 elevar ele ao indíce"));
- //
- // radicando2 *= coeficiente2;
- //
- // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep("\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1) + "} + \\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{" + NumberUtil.convertDoubleToString(radicando2) + "}",
- // "Depois multiplicar ele com o radicando"));
- // }
- // RootAlgorithm ra1 = new RootAlgorithm(indice1, radicando1, null);
- // ArrayList<Integer> res1 = ra1.rootDecomposition();
- // RootAlgorithm ra2 = new RootAlgorithm(indice2, radicando2, null);
- // ArrayList<Integer> res2 = ra2.rootDecomposition();
- //
- // if (res1.get(2).equals(res2.get(2))) { // if pra conferir se da pra transformar em semelhantes
- // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep("\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1) + "} + \\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{" + NumberUtil.convertDoubleToString(radicando2) + "}",
- // "2º caso: Todos os radicais podem ser transformados em radicais semelhantes"));
- //
- // //primeira raiz
- // String sequence1 = "";
- // for (Integer exatas : ra1.potenciasExatas) {
- // if (sequence1.length() == 0) {
- // sequence1 += "" + exatas + "^" + NumberUtil.convertDoubleToString(indice1);
- // } else {
- // sequence1 += " \\times " + exatas + "^" + NumberUtil.convertDoubleToString(indice1);
- // }
- // }
- //
- // for (Integer resto : ra1.restoRadicando) {
- // if (sequence1.length() == 0) {
- // sequence1 += "" + resto;
- // } else {
- // sequence1 += " \\times " + resto;
- // }
- // }
- //
- // System.out.println("Sequencia 1: " + sequence1); // TIRAR
- //
- // //segunda raiz
- // String sequence2 = "";
- // for (Integer exatas : ra2.potenciasExatas) {
- // if (sequence2.length() == 0) {
- // sequence2 += "" + exatas + "^" + NumberUtil.convertDoubleToString(indice2);
- // } else {
- // sequence2 += " \\times " + exatas + "^" + NumberUtil.convertDoubleToString(indice2);
- // }
- // }
- //
- // for (Integer resto : ra2.restoRadicando) {
- // if (sequence2.length() == 0) {
- // sequence2 += "" + resto;
- // } else {
- // sequence2 += " \\times " + resto;
- // }
- // }
- //
- // System.out.println("Sequencia 2: " + sequence2);//TIRAR
- //
- // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep("\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + sequence1 + "} + \\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{" + sequence2 + "}",
- // "Decompor as duas raízes em números primos"));
- //
- // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep(ra1.rootDecomposition().get(0) + "\\sqrt[" + ra1.rootDecomposition().get(1) + "]{" + ra1.rootDecomposition().get(2) + "} + " + ra2.rootDecomposition().get(0) + " \\sqrt[" + ra2.rootDecomposition().get(1) + "]{" + ra2.rootDecomposition().get(2) + "}",
- // "Tirar as potências exatas para fora da raiz e multiplicar elas. O resto continua dentro da raiz e também precisa ser multiplicado"));
- //
- // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep("(" + ra1.rootDecomposition().get(0) + " + " + ra2.rootDecomposition().get(0) + ")\\sqrt[" + ra1.rootDecomposition().get(1) + "]{" + ra1.rootDecomposition().get(2) + "}",
- // "Somar os coeficientes"));
- //
- // System.out.println("(" + res1.get(0) + " + " + res2.get(0) + ")\\sqrt[" + res1.get(1) + "]{" + res1.get(2) + "}"); //TIRAR
- //
- // double somaCoeficientes = res1.get(0) + res2.get(0);
- //
- // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep(somaCoeficientes + "\\sqrt[" + ra1.rootDecomposition().get(1) + "]{" + ra1.rootDecomposition().get(2) + "}",
- // "Resultado"));
- //
- // System.out.println("Resultado: " + somaCoeficientes + "\\sqrt[" + res1.get(1) + "]{" + res1.get(2) + "}");
- // }
- // } else if (coeficiente2 != null && coeficiente2 < 0) { //subtração do segundo caso
- // if (coeficiente1 != null && coeficiente1 > 1) {
- // //coeficiente da primeira raiz existe
- //
- // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep(coeficiente1 + "\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1) + "} - \\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{" + NumberUtil.convertDoubleToString(radicando2) + "}",
- // "2º caso: Todos os radicais podem ser transformados em radicais semelhantes"));
- //
- // coeficiente1 = Math.pow(coeficiente1, indice1);
- // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep(coeficiente1 + "\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1) + "} - \\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{" + NumberUtil.convertDoubleToString(radicando2) + "}",
- // "Quando o coeficiente for maior que 1 elevar ele ao indíce"));
- //
- // radicando1 *= coeficiente1;
- // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep("\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1) + "} - \\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{" + NumberUtil.convertDoubleToString(radicando2) + "}",
- // "Depois multiplicar ele com o radicando"));
- // }
- //
- // if (coeficiente2 != null && coeficiente2 > 1) {
- // //coeficiente da segunda raiz existe
- //
- // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep("\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1) + "} - " + NumberUtil.convertDoubleToString(coeficiente2) + "\\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{" + NumberUtil.convertDoubleToString(radicando2) + "}",
- // "2º caso: Todos os radicais podem ser transformados em radicais semelhantes"));
- //
- // coeficiente2 = Math.pow(coeficiente2, indice2);
- // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep("\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1) + "} - " + NumberUtil.convertDoubleToString(coeficiente2) + "\\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{" + NumberUtil.convertDoubleToString(radicando2) + "}",
- // "Quando o coeficiente for maior que 1 elevar ele ao indíce"));
- //
- // radicando2 *= coeficiente2;
- //
- // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep("\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1) + "} - \\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{" + NumberUtil.convertDoubleToString(radicando2) + "}",
- // "Depois multiplicar ele com o radicando"));
- // }
- //
- // RootAlgorithm ra1 = new RootAlgorithm(indice1, radicando1, null);
- // ArrayList<Integer> res1 = ra1.rootDecomposition();
- // RootAlgorithm ra2 = new RootAlgorithm(indice2, radicando2, null);
- // ArrayList<Integer> res2 = ra2.rootDecomposition();
- //
- // if (res1.get(2).equals(res2.get(2))) { // if pra conferir se da pra transformar em semelhantes
- // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep("\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1) + "} - \\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{" + NumberUtil.convertDoubleToString(radicando2) + "}",
- // "2º caso: Todos os radicais podem ser transformados em radicais semelhantes"));
- //
- // //primeira raiz
- // String sequence1 = "";
- // for (Integer exatas : ra1.potenciasExatas) {
- // if (sequence1.length() == 0) {
- // sequence1 += "" + exatas + "^" + NumberUtil.convertDoubleToString(indice1);
- // } else {
- // sequence1 += " \\times " + exatas + "^" + NumberUtil.convertDoubleToString(indice1);
- // }
- // }
- //
- // for (Integer resto : ra1.restoRadicando) {
- // if (sequence1.length() == 0) {
- // sequence1 += "" + resto;
- // } else {
- // sequence1 += " \\times " + resto;
- // }
- // }
- //
- // System.out.println("Sequencia 1: " + sequence1); // TIRAR
- //
- // //segunda raiz
- // String sequence2 = "";
- // for (Integer exatas : ra2.potenciasExatas) {
- // if (sequence2.length() == 0) {
- // sequence2 += "" + exatas + "^" + NumberUtil.convertDoubleToString(indice2);
- // } else {
- // sequence2 += " \\times " + exatas + "^" + NumberUtil.convertDoubleToString(indice2);
- // }
- // }
- //
- // for (Integer resto : ra2.restoRadicando) {
- // if (sequence2.length() == 0) {
- // sequence2 += "" + resto;
- // } else {
- // sequence2 += " \\times " + resto;
- // }
- // }
- //
- // System.out.println("Sequencia 2: " + sequence2);//TIRAR
- //
- // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep("\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + sequence1 + "} - \\sqrt[" + indice2 + "]{" + sequence2 + "}",
- // "Decompor as duas raízes em números primos"));
- //
- // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep(ra1.rootDecomposition().get(0) + "\\sqrt[" + ra1.rootDecomposition().get(1) + "]{" + ra1.rootDecomposition().get(2) + "} - " + ra2.rootDecomposition().get(0) + " \\sqrt[" + ra2.rootDecomposition().get(1) + "]{" + ra2.rootDecomposition().get(2) + "}",
- // "Tirar as potências exatas para fora da raiz e multiplicar elas. O resto continua dentro da raiz e também precisa ser multiplicado"));
- //
- // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep("(" + ra1.rootDecomposition().get(0) + " - " + ra2.rootDecomposition().get(0) + ")\\sqrt[" + ra1.rootDecomposition().get(1) + "]{" + ra1.rootDecomposition().get(2) + "}",
- // "Somar os coeficientes"));
- //
- // System.out.println("(" + res1.get(0) + " - " + res2.get(0) + ")\\sqrt[" + res1.get(1) + "]{" + res1.get(2) + "}"); //TIRAR
- //
- // double somaCoeficientes = res1.get(0) + res2.get(0);
- //
- // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep(somaCoeficientes + "\\sqrt[" + ra1.rootDecomposition().get(1) + "]{" + ra1.rootDecomposition().get(2) + "}",
- // "Resultado"));
- //
- // System.out.println("Resultado: " + somaCoeficientes + "\\sqrt[" + res1.get(1) + "]{" + res1.get(2) + "}");
- // }
- }
- // } else { // quando nao der pra transformar em semelhantes
- // answer.getStepByStep().add(LaTeXUtil.convertExpressionToStep("\\sqrt[" + NumberUtil.convertDoubleToString(indice1) + "]{" + NumberUtil.convertDoubleToString(radicando1) + "} + \\sqrt[" + NumberUtil.convertDoubleToString(indice2) + "]{" + NumberUtil.convertDoubleToString(radicando2) + "}",
- // "3º caso: Os radicais são diferentes e não podem ser simplificados. Essa operação não entra no primeiro caso e nem no segundo caso."
- // + " Portanto, essa operação não é possível sem a extração das raízes"));
- // }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement