Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 AVALIAÇÃO PRESENCIAL CADERNO DE PERGUNTAS curso: Engenharia de Computação/ Engenharia de Produção bimestre: 4º bimestre ano: 2018 | 2sem CÓDIGO DA PROVA P4 • Preencha atentamente o cabeçalho de TODAS AS FOLHAS DE RESPOSTA que você utilizar. • Ao término da prova, entregue apenas a folha de resposta ao aplicador. Leve este caderno de perguntas consigo. Boa prova! disciplina: ILP001 – Programação de Computadores Questão 1 (3 pontos) Dados dois números inteiros a e b, onde b tem apenas 1 dígito, deseja-se verificar quantas vezes o dígito b aparece no número a. Por exemplo, se a = 1245498 e b = 4, a resposta deve ser 2; já se b = 5, a resposta deve ser 1; finalmente, se b = 7, a resposta deve ser 0. Para isso: a) (1,2 pontos) Construa um método chamado digitos(int a), que imprime na tela cada um dos dígitos de n separados por espaços. b) (1,8 pontos) Construa um método chamado contaDigito(int a, int b), que informa quantas vezes o dígito b aparece no número a. Se b não for um número positivo de apenas 1 dígito, esse método deve retornar 0. Questão 2 (3 pontos) Deseja-se criar um programa que distribui equipes esportivas nas chaves de um campeonato. Para isso, pede-se: a) (1,2 pontos) Crie uma classe chamada Equipe: i. Atributos: nome, do tipo String; e cabecaChave, do tipo booleano; ii. Construtor: deve permitir ajustar os atributos nome e cabecaChave para os valores passados como parâmetro. b) (1,8 pontos) Crie uma segunda classe, Campeonato: i. Atributos: grupos, uma matriz 8x4 de objetos do tipo Equipe, que representa oito grupos com quatro equipes cada. ii. Construtor: deve receber um arranjo de 32 objetos do tipo Equipe, instanciar a matriz grupos com o tamanho adequado, e então distribuir as equipes nessa matriz: colocam-se as 8 equipes que são cabeças de chave no início de cada arranjo, e intercalam-se as outras equipes nos grupos. Exemplo reduzido, para 2 grupos: se a ordem no arranjo de entrada for [A, B, C, D,E, F, G, H], onde A e G são cabeças de chave, a distribuição das equipes deve ser [A, B, D, F] [G, C, E, H]. 2 Questão 3 (2 pontos) O método “contemNomes” abaixo deve verificar se o arranjo “lista” contém todos os Strings do arranjo “buscados”, retornando true em caso positivo e false caso contrário. Assinale a alternativa que completa corretamente as lacunas nesse método para fazer exatamente isso: public static boolean contemNomes(String[] lista, String[] buscados) { for (String nomeBuscado : buscados) { boolean encontrou = false; for (String nomeLista : lista) { if (__________ Lacuna I __________) { encontrou = true; } } ___________ Lacuna II ___________ } return true; } I. Lacuna I: a) nomeLista.equals(nomeBuscado) == false b) nomeLista == null c) nomeLista == nomeBuscado d) nomeLista.equals(nomeBuscado) e) nomeLista = nomeBuscado II. Lacuna II: a) if (encontrou) encontrou = false; b) if (!encontrou) return false; c) if (nomeLista != null) return encontrou; d) return false; e) encontrou = false Questão 4 (2 pontos) Considere o seguinte trecho de código e assinale a alternativa que indique corretamente os valores das variáveis x e y ao final da execução de math4(2, 5). static void math4(int a, int b){ int x = a + 1; int y = b - 1; int aux = x + 1; x = y - 1; y = aux; } a) (1 ponto) x: 2 3 4 5 6 b) (1 ponto) y: 2 3 4 5 6 3 GABARITO curso: Engenharia de Computação/ Engenharia de Produção bimestre: 4º bimestre P4 • Para verificar a resposta das questões 1 e 2, utilize os arquivos Java disponibilizados nesta pasta.Os nomes dos métodos e classes pedidos nos enunciados correspondem aos nomes nos arquivos Java. Caso necessário, siga estas orientações para utilizar os arquivos. Questão 1 O arquivo P1Q1.java contém códigos de referência para todos os métodos que devem ser implementados pelos alunos. Tanto para o item (a) quanto para o item (b), os nomes dos métodos implementados como gabarito são os mesmos pedidos na prova. Para facilitar a correção, a classe P1Q1 também inclui um método main com diversos casos de testes para todos os itens pedidos. É importante notar, entretanto, que o gabarito contém apenas *uma* forma (razoavelmente simples) de resolver a questão. Afinal, há muitas formas de resolver o mesmo problema, e é provável que o código de vários alunos seja diferente do código dado no gabarito. Portanto, sugere-se que a correção seja feita da seguinte forma: 1. Em um primeiro momento, na verificação se o código do aluno dá as mesmas saídas que o código fornecido, para os diferentes casos de teste do gabarito; e 2. Caso haja erros na saída fornecida pelo código do aluno, deve-se considerar na lógica do programa criado por ele. Também sugere-se ignorar pequenos erros de sintaxe, como a ausência de algum ";" ou falha em fechar algum par de chaves; em outras palavras, se pequenas falhas desse tipo não gerarem um código ambiguo, recomenda-se consertar essas pequenas falhas no código antes de executá-lo, sem descontar nota dos alunos por isso. Questão 2 O arquivo P1Q2.java contém códigos de referência para todas as classes e métodos construtores que devem ser implementados pelos alunos. As mesmas considerações feitas na Questão 1 também valem para esta questão, com algumas ressalvas: • No item (a), é bem difícil que os alunos façam algo muito diferente do gabarito. A única diferença que pode haver é no nome das variáveis passadas para o construtor da classe. • No item (b) pode haver diferenças maiores, de modo que é bom testar se o código do aluno dá os mesmos resultados que o código fornecido como gabarito. Entretanto, perceba que o método main da classe P1Q2 não contém testes para todas as versões da prova, mas apenas para V1 (classes Celula e Tabuleiro) e para a V2 (classes Espectador e Ala). Sugere-se usar esses códigos como base para criação de casos de testes para as outras versões da prova. disciplina: ILP001 – Programação de Computadores 4 Questão 3 A referência para a resposta está no arquivo P1Q3. I. Alternativa D. II. Alternativa B. Questão 4 A referência para a resposta está no arquivo P1Q4. a) x = 3 b) y = 4
Compartilhar