Buscar

EngComp e Prod 2018 1 ProgrComp ILP001 P4 GABARITO

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

Continue navegando