Estou com dúvida de como fazer esses programas, tentei mas deu errado

6 respostas
D
  1. Escreva um programa que receba do usuário um valor e então calcule e exiba a soma de todos
    os números ímpares entre 0 e aquele valor.

  2. Escreva um programa que exiba um menu ao usuário contendo quatro opções:

  1. Fatorial
  2. Soma dos antecessores
  3. Sair
    Em seguida, após receber uma das opções acima, o programa calcula o que for pedido,
    recebendo os números necessários do usuário para executar o cálculo. O programa deve exibir
    novamente o menu após o resultado até que a opção 3 seja escolhida.

6 Respostas

A

Ex. fatorial: 5!
I) 5 * 4 * 3 * 2 * 1.
II) (5 - 0) * (5-1) * (5-2) * (5 - 3) * (5-4), fim da instrução.
III) valor = valor * (valor - 1), com laço de repetição

Ex. Soma anteriores:

valor = 5
    se (valor % 2 == 0){//se o valor for par reduz para impar
        valor = valor - 1;
    }
    x = valor
    enquando x - 2 > 0{//ao reduzir de dois em dois o valor continua com o estado ímpar
        x = x - 2
        valor += x
}

Estas são dicas de solução, dentre outras disponíveis.

M

Posta ai o que fez e podemos lhe ajudar indicando o caminho, mas ngm aqui irá fazer sua lição de casa!

C

Pessoal entra na área e acha que pegar o canudo é o que conta…
Tenta fazer @donkbr e vai nos dizendo suas dificuldades…
Não adianta pedir o exercício inteiro pronto.

D

Desculpe amigão, não entrei aqui pra pegar nada de resposta fácil não, eu estava sem tempo de responder aqui no site.
Porem consegui fazer as questões.
Segue abaixo o que fiz. ‘-’ Não julguem sem antes saber. vlw

ackage aula.pkg5;

import java.util.Scanner;

public class Aula5 {

public static void main(String[] args) {

Scanner teclado = new Scanner(<a href="http://System.in">System.in</a>);

System.out.println(Digite um valor);

int x;

int valor  = teclado.nextInt();

int total = 0;

for ( x = 1; x <= valor; x++){

if ((x % 2 != 0));

total = total + x;

}

System.out.println("A soma dos ímpares é: "+ total);

}

}

package javaapplication62;

import java.util.Scanner;
public class JavaApplication62 {

public static void main(String[] args) {
int a,num;
int i;    
Scanner leitor = new Scanner(System.in);
do{
    do{
    int fat = 1,cont = 1,total = 0;
    
            System.out.println("\tMenu de operações");
            System.out.println("Fatorial ~> [1]");
            System.out.println("Soma dos antecessores ~> [2]");
            System.out.println("Sair ~> [3]");
            a = leitor.nextInt();
            System.out.println("\n\n");
             switch (a){
                            case 1:
                                do {
                                    System.out.println("Digite o valor que deseja verficar o \'fatorial\': ");
                                    num = leitor.nextInt();
                                    for(i = 1; i <= num; i++){
                                        fat = fat*i;
                                        cont++;}
                                    System.out.println("O fatorial de !"+num+" é: "+fat);
                                }while (cont<2);
                                do{
                                System.out.println("Voltar ~> [1]");
                                a = leitor.nextInt();
                                if(a!=1){
                                    System.out.println("Opção Inválida.\n\n");}
                                }while(a!=1);
                                break;
                            case 2:
                                System.out.println("Digite um valor que deseja realizar a operação:");
                                num = leitor.nextInt();
                                cont = num;
                                while(cont>0){
                                    total = total+cont;
                                    cont--;
                                }
                                System.out.println("A soma dos antecessores de "+num+" é: "+total);
                                do{
                                System.out.println("Voltar ~> [1]");
                                a = leitor.nextInt();
                                if(a!=1){
                                    System.out.println("Opção Inválida.\n\n");}
                                }while(a!=1);
                                
                            case 3:
                                if(a<1||a>3){
                                System.out.println("Opção Inválida.\n\n");}
                                break;
                                

                                }
        }while(a==1);
    }while (a!=3);
    System.out.println("Finalizado.");
    }
}
}

}

A

Tente utilizar métodos com retorno, as vezes sem retorno(void), pois o código fica mais fácil de ser lido em partes, provendo um reaproveitamento da codificação.

Ex.:

public class Main {

    public static void main(String[] args) {
        int fator = 7, soma = -fator;
        System.out.println(fator + "! (fatorial) = " +fatorial(fator) + "\nSoma dos impares = " + somaDosImpares(soma));
        //reaproveitando
        System.out.println("\nREAPROVEITADO: "+0 + "! (fatorial) = " +fatorial(0) + "\nSoma dos impares = " + somaDosImpares(0));
    }

    private static long fatorial(int numero) {
        if (numero < 0) {
            throw new IllegalArgumentException("Numero não natural -> "+numero);
        }
        long produto = 1;
        for (int fator = 2; fator < numero; fator++) {
            produto *= fator;
        }
        return produto;
    }

    private static int somaDosImpares(int numero) {
        boolean menos = numero < 0;        
        if (numero % 2 == 0 && numero != 0) {
            numero = menos ? ++numero : --numero;
        }
        int soma = (numero = Math.abs(numero));

        while ((numero = numero - 2) > 0) {
            soma += numero;           
        }
        return menos ? -soma : soma;
    }
D

Obrigado amigo, vou tentar fazer assim. :slight_smile:

Criado 7 de agosto de 2017
Ultima resposta 8 de ago. de 2017
Respostas 6
Participantes 4