Algoritmo para contagem de votos

Olá pessoal, boa noite.
Venho mais uma vez pedir a ajuda de vocês em me guiar nos erros para que aprenda melhor.
Recebi uma atividade simples na faculdade em portugol que é criar um sistema de votação, somar os votos e depois mostrar qual a quantidade de votos que cada candidato recebeu, a quantidade de votos nulos, total de votos em branco e mostrar o candidato vencedor. Porém estou com dificuldade já no inicio porque o algoritmo está pedindo pra digitar 2 números em vez de apenas 1.

image

Alguém poderia me ajudar nessa parte no que posso fazer para solucionar? Já tentei encontrar o erro e não consigo encontrar.

Segue apenas uma parte do algoritmo:

var
Voto: Vetor [1..4] de inteiro
Cod: Vetor [1..4] de inteiro
c1, c2, cont, sair, vn, vb: inteiro
resultado: caractere

inicio
Escreval ("Digite o número do candidato!")
Escreval ("===============================")
Escreval ("10 - Candidato 1")
Cod[1] <- 10
Escreval ("20 - Candidato 2")
Cod[2] <- 20
Escreval ("1 - BRANCO")
Cod[3] <- 1
Escreval ("2 - NULO")
Cod[4] <- 2
Escreval ("===============================")
Escreval ("Digite '0' para finalizar a eleição.")
Escreval (" ")
Cont <- 1
Repita
Leia (Voto[cont])
    Se (Voto[cont] = cod[1]) entao
       c1 <- (c1 + 1)
    Fimse
            Se (Voto[cont] = cod[2]) entao
               c2 <- (c2 + 1)
            Fimse
                 Se (Voto[cont] = cod[3]) entao
                    vb <- (vb + 1)
                 Fimse
                      Se (Voto[cont] = cod[4]) entao
                         vn <- (vn + 1)
                      Fimse
Escreval ("Próximo a votar")

Sei que é um assunto fácil, mas estou iniciando agora e busco só melhorar e tirar cada vez mais dúvidas.

Grato desde já!

Não seria para guiar nos acertos? Nos erros, pelo que percebi, você está indo bem.

Primeiro, apresente as opções:

inicio
Escreval ("Digite o número do candidato!")
Escreval ("===============================")
Escreval ("10 - Candidato 1")
Escreval ("20 - Candidato 2")
Escreval ("1 - BRANCO")
Escreval ("2 - NULO")
Escreval ("===============================")
Escreval ("Digite '0' para finalizar a eleição.")

Aí você lê o voto:

Escreval("Qual seu voto?")
leia(voto)

Aí você valida e vê o que foi:
Eu vou exemplificar com se, mas você pode otimizar isso.

se (2 = voto) entao

fimse
se (10 = voto) então

fimse

Dentro de cada se, você processa e conta os votos no candidato específico, brancos ou nulos.

se (2 = voto) entao
    nulo <- nulo + 1
fimse

E assim por diante.

Em Portugol…

Programa: Votação

Início
	Inteiro: branco <- 0; {em branco}
	Inteiro: nulo <-0; {nulo}
	Inteiro: eleitores <- 1000; {total de eleitores}
	Inteiro: indicador <- 1;
	Inteiro: contador <- 0;
	Inteiro: indice;
	Inteiro: votos_computados[0..5];
	Inteiro: votos[0.. ELEITORES];
	Caractere: candidatos[0..5][0..25];
	
	{Inicialização}
	votos_computados[0] <- 0;
	votos_computados[1] <- 0;
	votos_computados[2] <- 0;
	votos_computados[3] <- 0;
	votos_computados[4] <- 0;
	
	candidatos[0] <- "Fulano da Silva";
	candidatos[1] <- "Beltrano de Souza";
	candidatos[2] <- "Guria Pneu de Carriola";
	candidatos[3] <- "Piá de Prédio";
	candidatos[4] <- "Zé Povinho";
	
	
	Escrever('Eleições 2019\n\n');
	Escrever('17 - ', candidatos[0]);
	Escrever('23 - ', candidatos[1]);
	Escrever('35 - ', candidatos[2]);
	Escrever('42 - ', candidatos[3]);
	Escrever('51 - ', candidatos[4]);
	Escrever('99 - Branco'');
	
	Repita
		Escrever('Eleitor: ', indicador);
		Ler(votos[contador]);
		
		Se votos[contador] = -1
		Então
			eleitores = 0;
		Senão
			indicador <- indicador + 1;
			contador <- contador  + 1;
		FimSenão
		FimSe
		
	Até contador < eleitores;
	

	Para indice <- 0 Até indice < contador Faça
		Se votos[indice] = 17
		Então
			votos_computados[0] <- votos_computados[0] + 1;
		Senão
			Se votos[indice] = 23
			Então
				votos_computados[1] <- votos_computados[1] + 1;
		FimSenão
		Senão
			Se votos[indice] = 35
			Então
				votos_computados[2] <- votos_computados[2] + 1;
		FimSenão
		Senão
			Se votos[indice] = 42
			Então
				votos_computados[2] <- votos_computados[2] + 1;
		FimSenão
		Senão
			Se votos[indice] = 51
			Então
				votos_computados[2] <- votos_computados[2] + 1;
		FimSenão
		Senão
			Se votos[indice] = 99
			Então
				branco <- branco + 1;
		FimSenão
		Senão
			nulo <- nulo + 1;
		FimSenão
		FimSe
	FimPara
	
	Escrever('Apuração\n\n');
	Escrever('Total de votos: ', contador);
	
	Se contador - (nulo + branco) <= 0
	Então
		Escreva('Eleição indefinida');
	Senão
		Escreva('Total de votos válidos: ', contador - (nulo + branco));
	
	Escrever('Total de Votos Válidos: ', contador - (nulo +  branco));
	Escrever(candidatos[0], ' : ', votos_computados[0]);
	Escrever(candidatos[1], ' : ', votos_computados[1]);
	Escrever(candidatos[2], ' : ', votos_computados[2]);
	Escrever(candidatos[3], ' : ', votos_computados[3]);
	Escrever(candidatos[4], ' : ', votos_computados[4]);
	Escrever('Brancos: ', branco);
	Escrever('Nulos: ', nulo);
Fim

Em C…

#include<stdio.h>
#include<stdlib.h>

int main(){
    int eleitores = 1000;
    int indicador = 1, contador = 0, indice, branco = 0, nulo = 0;
    int votos[eleitores], votos_computados[5] = {0, 0, 0, 0, 0};
    char candidatos[5][25] = {
        "Fulano da Silva",
        "Beltrano de Souza",
        "Guria Pneu de Carriola",
        "Piá de Prédio",
        "Zé Povinho"
    };

    printf("Eleições 2019\n\n");
    printf(
            "17 - %s\n"
            "23 - %s\n"
            "35 - %s\n"
            "42 - %s\n"
            "51 - %s\n"
            "99 - Branco\n\n",
            candidatos[0],
            candidatos[1],
            candidatos[2],
            candidatos[3],
            candidatos[4]
    );

    do{
        printf("Eleitor %dº: ", indicador++);
        scanf("%d", &votos[contador]);

        if(votos[contador] == -1)
            eleitores = 0;
        else
            contador++;
    }while(contador < eleitores);

    for(indice = 0; indice < contador; indice++){
        if(votos[indice] == 17)
            votos_computados[0] += 1;

        else if(votos[indice] == 23)
            votos_computados[1] += 1;

        else if(votos[indice] == 35)
            votos_computados[2] += 1;

        else if(votos[indice] == 42)
            votos_computados[3] += 1;

        else if(votos[indice] == 51)
            votos_computados[4] += 1;

        else if(votos[indice] == 99)
            branco += 1;

        else
            nulo += 1;
    }

    printf("Apuração...\n");
    printf("%-25s............... %d\n", "Total de votos", contador);

    if(contador - (branco + nulo) < 0)
        printf("Votação inválida!\n");
    else
        printf("%-25s............... %d\n", "Total de votos válidos", contador - (branco + nulo));

    printf("%-25s............... %d\n", candidatos[0], votos_computados[0]);
    printf("%-25s............... %d\n", candidatos[1], votos_computados[1]);
    printf("%-25s............... %d\n", candidatos[2], votos_computados[2]);
    printf("%-25s............... %d\n", candidatos[3], votos_computados[3]);
    printf("%-25s............... %d\n", candidatos[4], votos_computados[4]);
    printf("%-25s............... %d\n", "Brancos", branco);
    printf("%-25s............... %d\n", "Nulos", nulo);

    system("pause");
    return 0;
}

Rodando…

image

1 curtida