1 #ifndef lab4_h 2 #define lab4_h 3 4 #include "definicoes.h" 5 #include 6 7 /* 8 * Abre o arquivo cujo nome eh recebido por parametro ("arquivo") para leitura. 9 * Retorna um ponteiro para o arquivo aberto. 10 */ 11 FILE *abre_arquivo(const char *arquivo); 12 13 /* 14 * Fecha o arquivo recebido por parametro. 15 * Retorna 0 caso consiga fechar o arquivo, qualquer outro valor caso contrario. 16 */ 17 int fecha_arquivo(FILE *arq); 18 19 /* 20 * Le os times que estao dentro do "arquivo" e retorna um vetor contendo os times com seus jogadores. 21 * Retorna dentro de "numero_de_times" a quantidade de times existentes dentro do arquivo lido. 22 */ 23 times_t *le_times(const char *arquivo, unsigned int *numero_de_times); 24 25 /* 26 * Encontra o jogador com a maior relacao entre cartao vermelho e numero de jogos (proporcao entre cartoes vermelhos e numero de jogos). 27 * O ponteiro "times" contem o vetor contendo todos os times e a variavel inteira "num_times" contem o numero total de times do vetor. 28 * O jogador com essa maior relacao deve ser retornado dentro do ponteiro "jogador" e o time desse jogador deve ser retornado dentro do ponteiro "time". 29 */ 30 void encontra_jogador_cartao_vermelho_e_jogos(times_t *times, unsigned int num_times, jogador_t **jogador, times_t **time); 31 32 /* 33 * Encontra o jogador artilheiro, aquele que fez mais gols. 34 * O ponteiro "times" contem o vetor com todos os times e a variavel inteira "num_times" contem o numero total de times do vetor. 35 * O jogador artilheiro deve ser retornado dentro do ponteiro "jogador" e o time do artilheiro deve ser retornado dentro do ponteiro "time". 36 */ 37 void encontra_jogador_artilheiro(times_t *times, unsigned int num_times, jogador_t **jogador, times_t **time); 38 39 /* 40 * Encontra o jogador mais eficiente, aquele que fez mais gols em menos jogos. 41 * O ponteiro "times" contem o vetor contendo todos os times e a variavel inteira "num_times" contem o numero total de times do vetor. 42 * O jogador mais eficiente deve ser retornado dentro do ponteiro "jogador" e o time desse jogador deve ser retornado dentro do ponteiro "time". 43 */ 44 void encontra_jogador_mais_eficiente(times_t *times, unsigned int num_times, jogador_t **jogador, times_t **time); 45 46 /* 47 * Encontra o time que possui mais titulos, sendo uma proporcao entre o numero de titulos (soma de todos os titulos) e o ano de fundacao (considere apenas o ano). 48 * O ponteiro "times" contem o vetor contendo todos os times e a variavel inteira "num_times" contem o numero total de times do vetor. 49 * O time com mais titulos deve ser retornado dentro do ponteiro "time". 50 */ 51 void encontra_time_com_mais_titulos(times_t *times, unsigned int num_times, times_t **time); 52 53 /* 54 * Encontra o goleiro que defendeu mais penaltis em funcao do numero de jogos. 55 * O ponteiro "times" contem o vetor contendo todos os times e a variavel inteira "num_times" contem o numero total de times do vetor. 56 * O goleiro que defendeu mais times deve ser retornado dentro do ponteiro "jogador" e o time desse goleiro deve ser retornado dentro do ponteiro "time". 57 */ 58 void encontra_goleiro_que_defendeu_mais_penaltis(times_t *times, unsigned int num_times, jogador_t **jogador, times_t **time); 59 60 /* 61 * Encontra o jogador mais agressio, considerando peso 5 para cartao vermelho, 1 para amarelo e 0.2 para faltas cometidas. 62 * O ponteiro "times" contem o vetor contendo todos os timese a variavel inteira "num_times" contem o numero total de times do vetor. 63 * O jogador mais agressivo deve ser retornado dentro do ponteiro "jogador" e o time desse jogador deve ser retornado dentro do ponteiro "time". 64 */ 65 void encontra_jogador_mais_agressivo(times_t *times, unsigned int num_times, jogador_t **jogador, times_t **time); 66 67 #endif