Ir para o conteúdo
Kingflare

Ler dados de um arquivo com multiplos valore

Mensagens Recomendadas

Kingflare

Olá, pessoal!

Tudo bem? Então, o meu professor passou o seguinte problema:

Considere que sua empresa seja contratada pela Superliga de Vôlei Nacional para resolver o problema da divulgação dos resultados das competições que ela mantém.

Sua empresa deve desenvolver um algoritmo que, dados um arquivo de entrada (LIDO SOMENTE UMA VEZ PELO SEU PROGRAMA), com todos os jogos de algum turno da Superliga, e o número de times que devem ser classificados para a próxima fase (N), retorne os N times da próxima fase em um arquivo de saída bem especificado. Sabe-se, analisando as regulamentações da CBV que, em caso de:

 VITÓRIA ou por 3x0, ou por 3x1 – o vencedor ganha três pontos;

 DERROTA ou por 0x3, ou por 1x3 – o perdedor não ganha nenhum ponto;

 VITÓRIA por 3x2 – o vencedor ganha dois pontos; e

 DERROTA por 2x3 – o perdedor ganha um ponto.

Se times estiverem empatados em pontuação, o critério de desempate é o número de vitórias. Se eles também estiverem empatados em número de vitórias, o critério de desempate será o saldo de pontos em sets, isto é, a diferença entre os todos os pontos feitos por uma quipe e todos os pontos que os outros times fizeram nela. O seu programa deve retornar, no arquivo de saída “out­” acrescido do nome de arquivo de entrada, os N times da próxima fase.

Por exemplo, dados os resultados de um turno deste ano (Liga 2015-2016), cujo o nome é result­fase2­2016.txt:

VOLEI NESTLE vs REXONA­-ADES/3­-2/25­-22/14­-25/26-­24/19­-25/15-­10

DENTIL­-PRAIA CLUBE vs CAMPONESA-MINAS/3­-2/22-­25/25­-15/21­-25/25-­22/15-­12

REXONA­ADES vs VOLEI NESTLE/3-­1/21-­25/25­-22/25­-23/25­-16

CAMPONESA-­MINAS vs DENTIL-­PRAIA CLUBE/3-­1/21-­25/25­-17 25-­22/ 25-­22

REXONA­ADES vs VOLEI NESTLE/3-­0/25­-20/25­-23/25-­16

DENTIL-­PRAIA CLUBE vs CAMPONESA-­MINAS/3­-0/25-­21/25­-18/25-­22

O resultado deverá ser:

REXONA­-ADES

DENTIL ­PRAIA CLUBE

Eu pensei em fazer o seguinte: eu leio a linha do arquivo, separo a parte das equipes e dos pontos e tento colocar isso dentro de uma matriz, por exemplo:

Time 1 vs Time 2 /3­-2/25­-22/14­-25/26-­24/19­-25/15-­10

Separo a parte das equipes: Time 1 e time 2 e coloco dentro da matriz fazendo mais ou menos a seguinte estrutura:

Equipe| Vitorias| Derrotas | Total de pontos

Time1 | | |

Time2 | | |

E assim sucessivamente...

Mas as minhas dúvidas são as seguintes, como que vou referenciar A string Time 1 a quantidade de vitórias/derrotas que ela teve durante as partidas?

Por exemplo: no primeiro caso, VOLEI NESTLE vs REXONA­-ADES/3­-2/25­-22/14­-25/26-­24/19­-25/15-­10 a equipe vencedora foi "Volei Nestle"e iremos dizer que ela seja o "time 1", aí conto uma vitória para ela, mas no terceiro jogo, essa mesma equipe, perdeu... e aí eu penso, como voltar na matriz para contabilizar a derrota dessa equipe?

Aí vi que - talvez - usar matriz para esse problema não seja o ideial, portanto quais estruturas de dados me aconselham a estudar?

Eu queria algo que eu pudesse criar uma espécie de array associativo, assim como faz no php para que eu pudesse associar um indice a uma chave, criando mais ou menos o seguinte:

Time1=> array(NumVitorias,NumDerrotas,Total)

Time2=> array(NumVitorias,NumDerrotas,Total)

.

.

.

E o mesmo para os demais times. Vocês acham que isso é uma boa ideia? Qual seria uma estrutura no qual eu poderia implementar esse problema? Eu andei lendo sobre hashmap, mas não entendi muito bem...mas qual o conselho de vocês?

Desculpem se não fui muito objetivo, ou claro, qualquer coisa tento explicar novamente!

Desde já, agradeço!

Editado por Kingflare

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
iron

Eu começava por pensar que cada equipa seria um objcto. Em que teria o nº de vitórias, derrotas...

Criava um obj para a classificação em que teria um hash com os pontos e o obj da equipa correspondente.

Já é um inicio

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.