Ir para conteúdo
Fórum Script Brasil
  • 0

2 erros graves no meu algorítmo


Barthô

Pergunta

Olá pessoal, estou com grande dificuldade neste exercício. É no final, na hora de imprimir as informações recebidas. Gostaria de receber a ajuda de alguém.

ENUNCIADO DO EXERCÍCIO:

Suponha que uma Casa de Jogos queira "agitar" suas rodadas de jogos. Entre os frequentadores normais do lugar eles inserem (até 12) jogadores contratados para se misturarem aos frequentadores. Então sugere-se que esses jogadores, após declarados seus nomes, tenham uma "agenda" com horários (até 24 vezes por dia), porém só poderão jogar nas horas cheias. Ex: 9h,13h,22h, etc. Os jogadores terão um tipo a ser definido no ato do cadastro (FORTE, FRACO, MÉDIO, etc.) e um lema, também a ser definido no momento do cadastro ("DESISTIR JAMAIS","DEVAGAR E SEMPRE","SÓ JOGO POR ESPORTE",etc.). Cada jogador poderá jogar quantas vezes quiser (até 24 no dia). Todos os jogadores contratados receberão valores para jogar (em notas ou moedas). Caso sejam notas só poderão apostar 1 nota por vez, mas se forem moedas poderão optar pela quantidade a ser apostada. Ao final do cadastro imprimir as informações (que serão afixadas num quadro de avisos) contendo: NOME, TIPO, LEMA, VEZES e o(s) HORÁRIOS referentes à quantidade de vezes. Conforme abaixo:

Escreva: "O jogador NOME que é do tipo TIPO, cujo lema é LEMA irá jogar VEZES ao dia nos seguintes HORÁRIO."

Com a ajuda de um amigo consegui chegar no modelo abaixo que está todo comentado:

var
jogador: vetor [1..12] de literal //nome do jogador
tipo: vetor [1..12] de literal //FORTE, FRACO ou MÉDIO
lema: vetor [1..12] de literal//VENCER, JOGAR, BRINCAR
vezes: vetor [1..12] de inteiro //quantidade de vezes ao dia
moedas: vetor [1..12] de inteiro//valores recebidos pelo jogador
notas: vetor [1..12] de inteiro//valores recebidos pelo jogador
hora: vetor [1..24] de inteiro //armazena a posição do jogador na posição da hora
horario: inteiro //usada no cadastro de horas
i: inteiro //variável para cadastrar os jogadores
k: inteiro //variável para usar nos comandos para
quant,aux,aux1,aux2: inteiro
coordenador,resposta:literal
dia,dia1: real
inicio
// Seção de Comandos
escreval ("------------------------------------------------------------------")
escreval ("CADASTRAR ATÉ 12 JOGADORES, ONDE CADA UM PODERÁ JOGAR ATÉ 24 VEZES")
escreval ("VEZES, SENDO UMA VEZ POR HORA, NO MÁXIMO.")
escreval ("------------------------------------------------------------------")
escreval ("--------------------------------------------------------------------")
escreval ("TODOS OS JOGADORES RECEBERÃO VALORES PARA JOGAR. EM NOTAS OU MOEDAS.")
escreval ("*DEVERÁ DECLARAR SE SÃO NOTAS OU MOEDAS. SÓ PODERÁ APOSTAR UMA NOTA*")
escreval ("*POR VEZ. MAS, PODERÁ ESCOLHER A QUANTIDADE DE MOEDAS PARA APOSTAR.*")
escreval ("--------------------------------------------------------------------")
escreva ("Deseja iniciar um cadastramento de jogadores?: ")
leia (resposta)
se resposta <> "sim" então
escreval ("Não recebemos o seu SIM e estamos encerrando o programa. Obrigado!")
interrompa//Ok, interrupção funcionando!
senao
escreval ("--------------------")
escreval ("INICIANDO O CADASTRO")
escreval ("--------------------")
escreva ("Coordenador(a), por favor, digite seu nome: ")
leia (coordenador)
escreval ("----------------------------------")
escreval ("Seja bem-vindo(a) ",coordenador,".")
escreval ("----------------------------------")
escreval ("Você poderá cadastrar até 12 jogadores.")
escreva ("Quantos jogadores pretende cadastrar?: ")
leia (quant)
escreval ("---------------------------------------------------")
escreval ("Ok, entendi. Serão cadastrados ",quant," jogadores.")
escreval ("---------------------------------------------------")
para i de 1 ate quant faca
escreval ("Digite os dados do ",i,"º jogador: ")
escreval ("-----------------------------------")
escreva ("NOME: ")
leia (jogador[i])
escreva ("TIPO: ")
leia (tipo[i])
escreva ("LEMA: ")
leia (lema[i])
escreva ("QUANTAS VEZES ",jogador[i]," JOGARÁ?: ")
leia (vezes[i])
escreval ("Ok, entendi. O jogador ",jogador[i]," jogará",vezes[i]," vezes.")
escreval ("----------------------")
escreval ("INFORMAÇÕES ADICIONAIS")
escreval ("----------------------")
escreva ("O jogador ",jogador[i]," está recebendo notas? ")
leia(resposta)
se resposta = "sim" então
escreva ("QUANTAS NOTAS?: ")
leia (notas[i])
aux<-notas[i]
escreval ("----------------------------------------")
escreval ("Ok, o jogador ",jogador[i]," está recebendo ",aux," notas.")
dia1<-aux/vezes[i]//dia1 recebe cálculo final referente a notas
escreval ("Com base nas vezes, as notas do jogador ",jogador[i]," vão durar:",dia1," dias(s).")
senao
escreval ("---------------------------------------")
escreval ("Ok, entendi. Não são notas, são moedas.")
escreval ("---------------------------------------")
escreva ("QUANTAS MOEDAS?: ")
leia (moedas[i])
aux1<-moedas[i]//aux1 para qtdade total de moedas
escreval ("------------------------------------------")
escreval ("Ok, o jogador ",jogador[i]," está recebendo ",aux1," moedas.")
escreval ("------------------------------------------")
escreva ("Qual a quantidade de moedas a ser(em) apostada(s) em cada jogada?: ")
leia(aux2)//aux2 para qtdade de moedas em cada jogada
dia<-aux1/(aux2*vezes[i])//dia recebe cálculo final referente a moedas
escreval ("Com base nas vezes, as moedas do jogador ",jogador[i]," vão durar:",dia," dias(s).")
fimse
escreval ("---------------------")
escreval ("CADASTRO DOS HORÁRIOS")
escreval ("---------------------")
escreval ("Digite os ",vezes[i]," horário(s) em que o jogador ",jogador[i]," jogará :")
para k de 1 ate vezes[i] faca
escreva("O ",k, "º horario é: ")
leia (horario)//ler a hora desejada
hora[horario] <- i //armazena a posição do jogador na "posição" da hora
escreval ("Recebi ",horario," hora(s) para o jogador ",jogador[i]," que está na",i,"ª posição.")
escreval ("Esta posição e este horário pertencem ao jogador, ",jogador[i],".")
escreval ("----------------------------------------------------------")
//Poderá haver vários jogadores jogando no mesmo horário. Portanto, o mais correto é que "cada jogador" tenha a sua disposição 24 horas
fimpara
fimpara
fimse
escreval ("-------------------------------------")
escreval ("*IMPRESSÃO DAS INFORMAÇÕES RECEBIDAS*")
escreval ("-------------------------------------")
escreval ("OBS:  Quando zerado, é porque não há o que ser impresso.")
escreval ("Você chegou ao fim das informações. Deseja imprimi-las ?")
escreval ("--------------------------------------------------------")
leia (resposta)
se resposta <> "sim" então
escreval ("------------------------------------------------------------------")
escreval ("Não recebemos o seu SIM e estamos encerrando o programa. Obrigado!")
escreval ("------------------------------------------------------------------")
interrompa//Ok, interrupção funcionando!
senao
para i de 1 ate quant faca
para k de 1 ate vezes[i] faca
escreval ("------------------------------------------------------------------------------")
escreval ("O jogador ",jogador[i]," cujo lema é ",lema[i],". É do tipo ",tipo[i],". Ele jogará às ",k," horas.")
//PROBLEMAS NA IMPRESSÃO FINAL SOMENTE NA POSIÇÃO "HORAS". O RESTANTE ESTÁ CORRETO.
//quando escrevemos "horário" ele imprime apenas a ultima informação recebida pela variável horário
//quando escrevemos "hora[i]" ele imprime a posição do jogador, pois é isso que está cadastrado no vetor horas
//quando escrevemos "hora[horario]" ele imprime a posição do último jogador cadastrado
//quando escrevemos "k" ele imprime os índices solicitados na digitação dos horários de cada jogador
//Daria para imprimir o índice da hora (posição do vetor horas) em vez da posição do jogador?
fimpara
fimpara
fimse
escreval ("------------------------------------------------")
escreval ("CHEGAMOS AO FINAL DO CADASTRO ",coordenador," OBRIGADO.")
escreval ("------------------------------------------------")
fimalgoritmo

Meu Email

Obrigado e abraços.

Editado por Barthô
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...