Computar votos (projeto urna eletronica)

oii gente, boa tarde
Eu to com uma dificuldade em computar os votos na minha urna eletronica.
Ela funciona certinho so não conta os votos.
Alguem poderia me ajudar?

identificar<-function(identificador){
identificador<-readline(“Informe seu identificador para votar:”)
if(identificador == -1){cat(“votação encerrada”)
{break}}
if(identificador != -1)
votaçao()}

votaçao<-function(){
print(‘Lista de candidatos’)
print((sprintf(‘1 - fulano’)))
print((sprintf(‘2 - ciclano’)))
print((sprintf(‘3 - beltrano’)))
print((“Digite [1,2,3] ou [0] para branco ou [99] para votar”))
votado<-scan(what=integer() , nmax = 1)
tmp<-as.numeric(votado)

if(tmp == 1)print(“Você está votando em fulano”)
if(tmp == 2 )print(“você está votando em ciclano”)
if(tmp == 3)print(“Você está votando em beltrano”)
if(tmp == 0 )print(“você está votando em branco”)
if(tmp == 99)print (“Você está votando nulo”)

confirmação ← readline(“confirmar voto nesse candidato (S/N)?:”)
if(confirmação == “S”){{cat(“Voto confirmado”)}
return(identificar())}
if(confirmação == “N”){{cat(“Refaça sua votação”)}
return(votaçao())}}

candidatos =list(fulano=1,ciclano=2,beltrano=3,branco=0,nulo=99)
identificar()

Guilherme, o que você quer dizer com computar os votos? Em teoria a urna não termina nunca de executar, então ela não tem onde retornar a soma de votos que cada um recebeu.

Sem relação nenhuma com a sua pergunta, queria dar algumas dicas de programação em R:

  1. Você parece estar com dificuldade de saber onde colocar chaves. No geral colocamos uma chave na mesma linha do if, abrimos uma indentação e fechamos a chave em uma linha à parte. O seu {break}, por exemplo, não precisa de chaves e sim de uma nova linha.

  2. Use o else junto com os seus ifs. Note que na função votaçao(), se a pessoa não digitar “S” nem “N”, não existe retorno algum.

  3. Deixe o seu código um pouco mais arejado. Espaços antes das chaves e linhas indentadas, por exemplo, ajudam com isso.

  4. Nunca, e eu repito, nunca coloque acentos nos nomes de funções e variáveis. Pode ser que isso não tenha dado problema agora, mas com certeza um dia isso vai te pegar desprevenido.

Abaixo deixo a minha versão do seu código. Tentei não mexer na lógica, mas podemos arrumar isso também se você quiser:

identificar <- function() {
  identificador <- readline("Informe seu identificador para votar:")
  if (identificador == -1) {
    stop("votação encerrada")
  } else {
    votacao()
  }
}

votacao <- function() {
  print("Lista de candidatos")
  print("1 - fulano")
  print("2 - ciclano")
  print("3 - beltrano")
  print("Digite [1,2,3] ou [0] para branco ou [99] para votar")

  votado <- scan(what = integer(), nmax = 1)
  tmp <- as.numeric(votado)

  if (tmp == 1) print("Você está votando em fulano")
  if (tmp == 2) print("você está votando em ciclano")
  if (tmp == 3) print("Você está votando em beltrano")
  if (tmp == 0) print("você está votando em branco")
  if (tmp == 99) print("Você está votando nulo")

  confirmacao <- readline("confirmar voto nesse candidato (S/N)?:")
  if (confirmacao == "S") {
    cat("Voto confirmado")
    return(identificar())
  } else {
    cat("Refaça sua votação")
    return(votacao())
  }
}

candidatos <- list(fulano = 1, ciclano = 2, beltrano = 3, branco = 0, nulo = 99)
identificar()