Baixe o app para aproveitar ainda mais
Prévia do material em texto
Pontifícia Universidade Católica do Rio de Janeiro Disciplina: Programação I (INF1005) Simulado P3 – 21/11/2013 Nome do aluno: _____________________________________________________________________ Turma: 33J Num. Computador: ___________ Matrícula: _______________ Instruções para a realização da avaliação prática 1. A prova terá duração de 105 minutos (1 horas e 45 minutos). 2. É responsabilidade do aluno salvar periodicamente o seu trabalho!!!!. 3. O nome do seu projeto e do seu programa-fonte devem ser iguais ao código da sua turma mais o número da sua matrícula e mais o seu primeiro nome. Exemplo: 33J-1012983-maria. 4. No início do seu programa-fonte, coloque, como comentários, o seu nome completo, sua matrícula e o nome do seu professor. 5. Todos os arquivos mencionados no texto abaixo estão armazenados e/ou devem ser criados no diretório especificado pelo professor no início da prova. 6. Não é permitido destacar as folhas que compõem a prova (2 folhas). 7. Antes de perguntar, leia atentamente o que está sendo pedido. 8. Quando terminar a prova, não desligue o computador, permaneça sentado e chame um professor ou um fiscal. 9. A nota da prova será entregue na data divulgada pelo seu professor. 10. O arquivo de saída não deverá ser entregue. QUESTÃO ÚNICA A eleição para presidente da Ilha de Brasilândia terminou ontem à noite, sem incidentes. Tanto os eleitores que moram na ilha quanto os que moram no exterior já votaram em um dos 6 candidatos à presidência. As informações sobre a eleição estão distribuídas em 2 arquivos: • CANDIDATOS.TXT: arquivo texto contendo os códigos e os nomes dos candidatos à presidência, contendo uma informação por linha: código candidato (inteiro) e nome do candidato (máximo de 20 caracteres válidos). Considere que o arquivo contém exatamente 6 linhas (uma linha para cada candidato). • VOTOS.TXT: arquivo texto com os votos dos eleitores, sendo uma linha para cada eleitor, contendo: código candidato (inteiro), local da residência do eleitor (0 – é morador da ilha; 1 – mora no exterior). É necessário validar apenas o código do candidato lido (se código for inválido, o voto não é computado para ninguém), suponha que as demais informações estão corretas. Note que a princípio não se sabe a quantidade de votos existentes no arquivo. Considere que as informações em ambos os arquivos são separadas pelo caracter ‘|’ (barra vertical). Faça um programa que imprima um relatório (na tela) baseado nas informações dos arquivos fornecidos e com a saída esperada (vide seção RESULTADO ESPERADO). Para facilitar, assuma que não haverá empate no resultado. O seu programa deverá utilizar as seguintes funções feitas por você (não necessariamente nesta ordem): a) Função busca: recebe um vetor de inteiros, a quantidade de elementos no vetor, e o elemento procurado (inteiro), retornando a posição do elemento buscado no vetor. Retorna -1 caso não encontrado. b) Função le_dados_candidatos: recebe um vetor de strings e um vetor de inteiros como parâmetros; e preenche os vetores com os dados lidos do arquivo CANDIDATOS.TXT. c) Função le_votos: recebe o vetor de código de candidatos (já carregado pela função do item B) e a matriz de votação, preenchendo-a de acordo com os dados no arquivo VOTOS.TXT. d) Função gera_relatorio: recebe como parâmetros todas as informações necessárias para gerar o relatório, conforme exibido na seção RESULTADO ESPERADO. A saída dos dados é feita na tela. e) Função descobre_eleito: recebe a matriz com as quantidades de votos como parâmetro e retorna o número da linha da matriz referente ao candidato eleito (maior quantidade de votos). Nota RESULTADO ESPERADO (saída na tela) Obs: Este é apenas um exemplo de resultado! Não é obrigatório manter os espaçamentos na tela. Nome Total Votos Locais Total Votos Exterior Total de Votos Monica 15 5 20 Cebolinha 23 2 25 Magali 13 4 17 Cascao 3 0 3 Chico Bento 9 1 10 Rosinha 16 3 19 *** Presidente Eleito: Cebolinha com 25 votos ***
Compartilhar