Considere a função implementada em linguagem C: float calcular_taxa(int idade, float renda) { if (idade >= 18) if (renda > 20000) return 0.2; else return 0.1; else if (renda > 10000) return 0.15; else return 0.05;} Considere as afirmações a seguir, sobre possíveis otimizações no código sem alterar o resultado produzido pelo retorno da função. I – É possível otimizar o código utilizando somente três instruções if e apenas um else. II – É possível otimizar o código utilizando apenas um return. III – É possível otimizar o código substituindo o primeiro if(idade >= 18) por if(idade >=18 && renda >20000) e eliminando o segundo if(renda >20000). Assinale a alternativa correta:
Em relação a algoritmos de grafos, segundo Cormen (2012): I – Se o grafo contém um ciclo, nenhuma ordenação topológica é possível. II – O algoritmo de Kruskal é usado para encontrar a árvore geradora mínima em um grafo. III – O algoritmo de caminhos mínimos de Dijkstra considera que todos os pesos de arestas no grafo de entrada são não negativos. CORMEN, Thomas H. Algoritmos: teoria e prática . Rio de Janeiro: Elsevier, 2012. Assinale a alternativa CORRETA:
O polimorfismo permite escrever programas que processam objetos que compartilham a mesma superclasse, direta ou indiretamente, como se todos fossem objetos da superclasse; isso pode simplificar a programação. Sobre esse tema, analise as afirmações a seguir: I – Os métodos declarados com o modificador final podem ser sobrescritos, e as classes declaradas como modificador final não podem ser superclasses. II – O polimorfismo permite-lhe tratar as generalidades e deixar que o ambiente de tempo de execução trate as especificidades. III – Uma classe abstrata declara atributos e comportamentos comuns (ambos abstratos e concretos) das várias classes em uma hierarquia de classes. DEITEL, Harvey M. Java como programar. 8a ed. São Paulo - SP: Pearson Printice Hall, 2010. Assinale a alternativa correta:
Considere as seguintes três afirmações com base no código: I – A função list() percorre a árvore e imprime os elementos em ordem crescente. II – A função search() realiza uma busca recursiva na árvore binária e retorna um ponteiro para o nó que contém o elemento procurado, se encontrado. III – A função list() não é recursiva. Assinale a alternativa correta:
Considere as seguintes três afirmações sobre herança em orientação a objetos, com base no código. I – No código fornecido, as subclasses ProfessorAssociado e ProfessorTitular herdam automaticamente todos os métodos e atributos da classe Professor, sem a necessidade de declaração explícita. II – O código permite que uma classe Professor herde métodos e atributos de várias classes filhas, como ProfessorAssociado e ProfessorTitular, simultaneamente. III – As subclasses ProfessorAssociado e ProfessorTitular podem acessar diretamente os métodos e atributos privados da classe `Professor`, mesmo que sejam declarados como privados. Assinale a alternativa CORRETA:
Considere as seguintes três afirmações sobre orientação a objetos, com base no código. I – O método main() na classe Universidade cria uma instância da classe ProfessorTitular, mas não exibe corretamente o seu salário. II – A classe Professor não precisa conter métodos getter e setter para que seus atributos sejam acessados diretamente pelas subclasses. III – O acesso direto ao salário da classe Professor é permitido pelas subclasses, uma vez que o atributo salario possui o modificador de acesso protected. Assinale a alternativa correta:
Assinale a alternativa que representa somente diagramas de interação da Linguagem UML (Unified Modeling Language), conforme Guedes (2009): GUEDES, G. T. A. UML 2: Uma abordagem prática . Editora Novatec. 3° Ed. 657 pg. 2009.
Considere o código em Python apresentado a seguir: num = 6 def calc(num) : if num == 1: return 1 return num * calc(num - 1) Após realizar a chamada da função usando “print(calc(num))”, qual é o último valor retornado pelo programa na linguagem Python 3.11.0?
Assinale a alternativa que NÃO representa um tipo de diagrama estrutural da Linguagem UML (Unified Modeling Language), conforme Guedes (2009, pg. 338): GUEDES, G. T. A. UML 2: Uma abordagem prática . Editora Novatec. 3° Ed. 657 pg. 2009.
Analise as seguintes afirmações sobre padrões de projeto de criação: I – O padrão de projeto Abstract Factory tem a intenção de definir uma interface para criar um objeto, mas deixar as subclasses decidirem que classe instanciar. Este padrão permite adiar a instanciação para subclasses. II – O padrão de projeto Singleton tem como intenção garantir que uma classe tenha somente uma instância e fornecer um ponto global de acesso para a mesma. III – O padrão de projeto Factory Method tem a intenção de fornecer uma interface para criação de famílias de objetos relacionados ou dependentes sem especificar suas classes concretas. GAMMA, E.; HELM, R.; JOHNSON, R.; VLISSIDES, J. Padrões de Projetos – Soluções Reutilizáveis , Editora Bookman, 2000. Assinale a alternativa CORRETA, conforme Gamma et al. (2000):
Analise as seguintes afirmações sobre padrões de projeto comportamentais: I – O padrão de projeto Chain of Responsiblity tem a intenção de evitar o acoplamento do remetente de uma solicitação ao seu receptor, ao dar a mais de um objeto a oportunidade de tratar a solicitação, e encadear os objetos receptores, passando a solicitação ao longo da cadeia até que um objeto a trate. II – O padrão de projeto Strategy tem a intenção de, sem violar o encapsulamento, capturar e externalizar um estado interno de um objeto, de maneira que o objeto possa ser restaurado para esse estado mais tarde. III – O padrão de projeto Interpreter tem a intenção de fornecer um meio de acessar sequencialmente os elementos de um objeto agregado, sem expor a sua representação subjacente. GAMMA, E.; HELM, R.; JOHNSON, R.; VLISSIDES, J. Padrões de Projetos – Soluções Reutilizáveis , Editora Bookman, 2000. Assinale a alternativa correta, conforme Gamma et al. (2000):
Analise o diagrama UML ( Unified Modeling Language) a seguir: GUEDES, G. T. A. UML 2: Uma abordagem prática . Editora Novatec. 3° Ed. 657 pg. 2009. Assinale a alternativa que indica o tipo do diagrama acima, conforme Guedes (2009):
Considere o código em Java apresentado a seguir: MeuApp.java package meuapp; import java.math.BigInteger;public class MeuApp {private static final BigInteger TWO = BigInteger.valueOf(2); public static BigInteger calc(BigInteger number) { if (number.equals(BigInteger.ZERO) | | number.equals(BigInteger.ONE)) return number; else return calc(number.subtract(BigInteger.ONE)).add(calc(number.subtract(TWO))); } public static void main(String[] args) { System.out.printf(“%d%n”, calc(BigInteger.valueOF(10))); }} Após realizar a execução do código acima, qual é o valor retornado pelo programa na linguagem Java?





























