Jump to content

Recommended Posts

Posted (edited)

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!

Edited by Kingflare
Posted

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

Cumprimentos,
iron

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.