1
resposta

Calculo de uma Série com repetição

Boa noite a todos. O resultado aqui sempre dá zero. Isso é o correto?

Link da imagem: https://www.clubedohardware.com.br/uploads/monthly_2021_03/image.png.ca1e3673c588c4fcd84fb108b2cf73f8.png

package exerciciosFaculdade;

import java.util.Scanner;

public class exercicio5 {

//    Calcule o valor da série S. Escreva um programa em Java que leia dois valores reais, x e y, 
//    positivos e menores que 1. 
//    O programa deve calcular e imprimir o valor da série S, como descrita na imagem em anexo.

    public static void main(String[] args) {
        float x, y, a, b;
        double s = 0;
        float z;
        int c = 1, d = 1, i = 0;
        Scanner tc = new Scanner(System.in);

        a = (float) 2.0;
        b = (float) 3.0;

        do {
            System.out.println("\n\tDigite um valor real, positivo e menor que 1");
            x = tc.nextFloat();

            if (x < 0 || x >= 1.0) {
                System.out.println("Número inválido. Aceito somente números positivos e menores do que 1");
            } else {
                c = 0;
            }
        } while (c != 0);

        do {
            System.out.println("\n\tDigite um valor real, positivo e menor que 1");
            y = tc.nextFloat();

            if (y < 0 || y >= 1.0) {
                System.out.println("Número inválido. Aceito somente números positivos e menores do que 1");
            } else {
                d = 0;
            }
        } while (d != 0);

        z = x * y;

        do {

            if (i == 0 && i % 2 != 0) {

                s = (float) (z - ((Math.pow(x, a) * Math.pow(y, b)) / Math.pow(x + y, a * b)));
                i++;
                a = (float) (a + 1.0);
                b = (float) (b + 2.0);
                System.out.printf("\n%d\n",s);

            }
            if (s >= 0.001 && i % 2 != 0) {
                s = (float) s + ((Math.pow(x, a)) * Math.pow(y, b)) / Math.pow(x + y, a * b);

                a = (float) (a + 1.0);
                b = (float) (b + 2.0);
                i++;
                System.out.printf("\n%d\n",s);

            }

            if (s >= 0.001 && i % 2 == 0) {
                s = (float) s - ((Math.pow(x, a)) * Math.pow(y, b)) / Math.pow(x + y, a * b);

                a = (float) (a + 1.0);
                b = (float) (b + 2.0);
                i++;
                System.out.printf("\n%d\n",s);

            }

        } while (s >= 0.001);
        System.out.println(s);
    }
}
1 resposta

Oie Gustavo, tudo bem contigo?

Perdão pela demora!

Fiz diversos testes aqui com seu código e realmente o resultado foi sempre 0.

Tentei acessar a imagem mas infelizmente não tive acesso, por isso, não sei dizer se o seu código preenche os requisitos pedidos pelo exercício.

De qualquer forma, todos os testes que fiz deram 0 como resultado.

Espero ter ajudado!

Se precisar de ajuda estarei por aqui :)