Prévia do material em texto
GABARITO DISCIPLINA COM110 - Algoritmos e Programação de Computadores I APLICAÇÃO 01/10/2020 CÓDIGO DA PROVA P001/P002 QUESTÕES OBJETIVAS Questão 1.1 Em Python, o resultado da expressão: 4 // 3 ** 3 <= 5 % 3 será: a) Verdadeiro b) Falso c) 0 d) 2 RESOLUÇÃO A resposta correta é: Verdadeiro Justificativa Primeiramente, as expressões do lado esquerdo e direito do operador relacional são resolvidas. Do lado esquerdo, o operador ** tem precedência sobre o //, então é realizado o cálculo 4 // 27, que dá 0. Assim, temos: 0 <= 2. Em seguida, resolve-se a expressão relacional, que dá verdadeiro. Questão 1.2 Dada uma lista definida como: lista = [[1], [[2, 3], 4], 5, [], [6, 7], [[8]], [9, 10]] Assinale a alternativa que corresponde ao comando que irá retornar o número 1: a) lista[0] b) lista[0][0] c) lista[0][1] d) lista[1][1] RESOLUÇÃO A resposta correta é: lista[0][0] Justificativa O elemento 1 está na posição 0 da lista principal, mas é formado por outra lista de 1 único elemento - por isso é necessário o segundo indexador. Questão 1.3 Considere o seguinte trecho de código em Python: soma = 0 for i in range(1, 10): if i % 2 == 0: soma += i else: soma -= i print(soma) O programa irá imprimir: a) -5 b) 20 c) -25 d) 0 RESOLUÇÃO A resposta correta é: -5 Justificativa O programa realiza a soma de todos os elementos pares de 1 a 9, e subtrai pela soma de todos elementos ímpares de 1 a 9. Questão 1.4 Considere o seguinte trecho de código em Python: def func(x, y): x, y = y, x x = 2 y = 3 func(x, y) print(x, y) O programa irá imprimir: a) 2 3 b) 3 2 c) 2 2 d) 3 3 RESOLUÇÃO A resposta correta é: 2 3 Justificativa A passagem de parâmetros em Python é sempre por valor, indicando que qualquer alteração nos parâmetros dentro da função não afeta os argumentos. QUESTÕES DISSERTATIVAS Questão 2 A média harmônica amortizada é definida como: 𝐻 = 𝑁 ∑ 1 𝑛𝑖 + 𝑋 𝑁 𝑖=1 − 𝑋 onde N é o número de notas a serem usadas na média, ni é a i-ésima nota, e X é o fator de amortização. Implemente uma função em Python que calcule a média de 3 notas de um aluno digitadas no teclado, com fator de amortização igual a 4. Em seguida, informe se o aluno passou (média >= 5) ou não (média < 5). RESOLUÇÃO A resolução para essa questão pode ser: def calcula_media(n1, n2, n3): media = (3 / ((1/(n1+4)) + (1/(n2+4)) + (1/(n3+4)))) - 4 return media n1 = input('Digite a nota 1: ') n2 = input('Digite a nota 2: ') n3 = input('Digite a nota 3: ') n1 = eval(n1) n2 = eval(n2) n3 = eval(n3) media = calcula_media(n1, n2, n3) if media >= 5: print('Você passou, sua média é ', media) else: print('Você não passou, sua média é ', media) Rubricas | critérios de correção Considerar: 10% - lê as notas do teclado 10% - usa a função eval ou outro mecanismo de tratamento de string para transformar a entrada em número 50% - calcula a média corretamente. 30% - usa a estrutura if para informar se o aluno passou ou não. Descontar: 10% - aluno chama a função incorretamente. 20% - aluno não define a função explicitamente. Questão 3 Implemente uma função em Python que receba uma string como parâmetro e imprima as vogais dessa string. Exemplo: string ‘univesp’ → deve imprimir os caracteres ‘u’, ‘i’ e ‘e’. RESOLUÇÃO def vogais(str): for i in range(len(str)): if str[i] in 'aeiouAEIOU': print(str[i]) vogais('univesp') Rubricas | critérios de correção 30% - sintaxe 70% - função implementada corretamente Descontar: 10% - aluno chama a função incorretamente. 20% - aluno não define a função explicitamente. 20% - aluno só considera vogais minúsculas ou maiúsculas.