Javafree
Página Inicial do Fórum > Java Básico

Problema na execução do código - Simulação de uma eleição



Criar novo tópico   Responder tópico


  1. MarcosUfal
    Posts:3


    Comment Arrow

    Publicado em: 09/08/2016 09:32:51

    Pessoal o meu código abaixo não executa as linhas 70 e 71. Está o enunciado do problema, vocês poderiam me ajudar aonde estou errando. As linhas que não executam estão em comentário nas
    últimas linhas abaixo.

    /*PROBLEMA: Num certo processo eleitoral existem apenas três candidatos, “Josefino”, “Armando” e “Malaquias”, e seus códigos são os seguintes:
    * “Josefino” tem código ‘1’, “Armando” tem código ‘2’, e “Malaquias” tem código ‘3’. Os dados utilizados para o escrutínio obedecem ao seguinte:
    Digitando-se ‘1’, ‘2’ ou ‘3’, é computado voto para o respectivo candidato e mostrado o nome dele na tela;
    Digitando-se ‘0’, é computado voto em branco, mostrando a mensagem “voto em branco”;
    Digitando-se qualquer outro código, exceto ‘999’, é computado voto nulo e exibida a mensagem “voto nulo”.

    Elabore um programa para ler uma quantidade indeterminada de votos (sabendo-se que a votação é encerrada digitando-se código ‘999’), calcular e escrever:

    -O total de votantes;
    -A quantidade de votos recebidos por cada candidato;
    -A quantidade de votos nulos;
    -A quantidade de votos em branco;
    -Os percentuais correspondentes a cada candidato considerando-se apenas votos válidos (fora nulos e brancos);
    Ao final, o programa deve informar quais candidatos vão para o segundo turno, ou quem venceu a eleição em primeiro turno, se for o caso. Obs.: Sabe-se que o candidato estará eleito em primeiro turno se obtiver metade dos votos válidos mais um voto.

    */

    package programas;

    import javax.swing.JOptionPane;

    public class Prova1 {

    public static void main(String[] args) {

    int votos, totalVotos = 0, josefino = 0, pedao = 0, edgar = 0, branco = 0,
    continua = 0, nulo = 0, votosValidos = 0;
    float josefinoPercentual = 0, pedaoPercentual = 0, edgarPercentual = 0;
    String mensagem = "";

    while (continua != 999) {

    votos = Integer.parseInt(JOptionPane.showInputDialog("-------CANDIDATOS-------"+
    "\n\nJOSEFINO..............: Nº = 123"+
    "\nPEDÃO....................: Nº = 567"+
    "\nEDGAR....................: Nº = 478"+
    "\nVoto BRANCO.......: Nº = 0"+
    "\n\nDigite o número do seu CANDIDATO:");
    if (votos == 123) {
    mensagem = "Voto computado para JOSEFINO";
    josefino = josefino + 1;

    }
    else if (votos == 567) {
    mensagem = "Voto computado para PEDÃO";
    pedao = pedao + 1;
    }
    else if (votos == 47 {
    mensagem = "Voto computado para EDGAR";
    edgar = edgar + 1;
    }

    else if (votos == 0) {
    mensagem = "Voto em BRANCO";
    branco = branco + 1;
    }
    else {
    mensagem = "Voto NULO";
    nulo = nulo + 1;

    }
    JOptionPane.showMessageDialog(null, mensagem, "RESULTADO",JOptionPane.INFORMATION_MESSAGE);
    continua = Integer.parseInt(JOptionPane.showInputDialog("VOTAR NOVAMENTE? <999 = Sair / 1 = Continuar>");

    //variáveis dentro do laço para serem visualizdas.
    totalVotos = (josefino + pedao + edgar + branco + nulo);
    votosValidos = (totalVotos - nulo - branco);

    josefinoPercentual = (josefino / votosValidos)*100;
    pedaoPercentual = (pedao / votosValidos)*100; //Gosaria de saber porque essas duas linhas não estão sendo executadas. Linha 70
    edgarPercentual = (edgar / votosValidos)*100; //Onde estou errando? Linha 71

    if (continua == 999) { //Se o texto dentro do laço for apenas uma linha não precisa de chaves.

    JOptionPane.showMessageDialog(null, "Total de Vontantes............: = "+totalVotos +
    "\n\nVotos para JOSEFINO.......: = "+josefino +
    "\nVotos para PEDÃO.............: = "+pedao +
    "\nVotos para EDGAR.............: = "+edgar +
    "\nVotos em BRANCO............: = "+branco +
    "\nVotos NULO.........................: = "+nulo +
    "\n\n--PERCENTUAL DE VOTOS VÁLIDOS--"+
    "\n\nJOSEFINO.............................: = "+ josefinoPercentual + "%"+
    "\nPEDÃO...................................: = "+ pedaoPercentual + "%"+
    "\nEDGAR...................................: = "+ edgarPercentual + "%",
    "RESULTADO", JOptionPane.INFORMATION_MESSAGE);
    }
    }


    }

    }
    _________________

    MarcosUfal



  1. staroski
    Posts:4599


    Comment Arrow

    Publicado em: 09/08/2016 10:03:51

    As linhas


    São executadas sim!

    Por que você acha que não são executadas?
    _________________

    Ricardo Artur Staroski, OCP-JP
    Blumenau - SC
    http://www.staroski.com.br

    Acesse http://www.guj.com.br/

  1. Comment Arrow

    Publicado em: 09/08/2016 13:11:50

    Eai blz?

    As linhas estão executando, porém não é o valor que você deseja rsrs

    1° Pelo enunciado os codigos dos candidatos estão errados.

    2° Esse tipo de coisa acontece qndo multiplicamos Int com Float... Sugiro trocar as variáveis tudo para DOUBLE.

    Abç
    _________________

    Att.

    OgustavoReis



  1. staroski
    Posts:4599


    Comment Arrow

    Publicado em: 09/08/2016 18:15:49

    Dica:
    Em Java, qualquer número dividido por um número inteiro, sempre resulta em um número inteiro.
    _________________

    Ricardo Artur Staroski, OCP-JP
    Blumenau - SC
    http://www.staroski.com.br

    Acesse http://www.guj.com.br/



  1. MarcosUfal
    Posts:3


    Comment Arrow

    Publicado em: 17/08/2016 10:01:49

    [quote="ogustavoreis"]Eai blz?

    As linhas estão executando, porém não é o valor que você deseja rsrs

    1° Pelo enunciado os codigos dos candidatos estão errados.

    2° Esse tipo de coisa acontece qndo multiplicamos Int com Float... Sugiro trocar as variáveis tudo para DOUBLE.

    Abç


    _________________

    MarcosUfal



  1. Relacionados