Prévia do material em texto
GABARITO Protocolo: 548629 Página 1 - 23/06/2019 às 08:11 Substitutiva Data de aplicação: 14/06/2019 Curso: Tecnologia em Análise e Desenvolvimento de Sistemas Disciplina: Programação Orientada à Objeto Ano: 20191 / Semestre: 2 RGM: 343.4903 / Aluno: ERISLENE LINHARES DOS SANTOS SALDANHA PROVA 01 Questão 1 Houve um tempo em que a programação era bem mais complexa que hoje, época em que os programas eram construídos, usava-se instruções de baixo nível e desvio como “ADD AX,5” e “JMP Error”. Essas técnicas de programação não demoraram muito para serem modificadas. Imediatamente os programadores receberam de braços abertos a revolução que começou nos anos 60 e criou um novo conceito de programação: Qual é esse novo conceito de programação que o texto anterior se refere? Resposta do aluno: Programação Extruturada Questão 2 Defina oque é um objeto, na Programação Orientada a Objetos e como eles podem ser divididos? Resposta do aluno: Parecer do professor: Sem resposta. Questão 3 A respeito do construtor default (padrão) de uma classe em C++, pode-se afirmar que: a) toda classe em C++ tem um construtor default; b) a classe tem de ter pelo menos um construtor definido para ter um construtor default; c) uma classe tem um construtor default se ela não define nenhum outro construtor; (correta) d) toda classe em C++ herda um construtor default da classe Object; e) a linguagem C++ não tem o conceito de um construtor default; Questão 4 Qual é a diferença entre private e protected? a) membros privados não podem ser acessados pelas subclasses, mas os membros protected podem. (correta) b) membros private e membros protected na superclasse podem ambos ser acessados pelas subclasses. c) membros protected de uma classe podem ser acessados por instâncias de objetos desta classe. d) membros protected não podem ser acessados pelas subclasses, mas os membros privados podem. Questão 5 Qual das seguintes afirmações é verdadeira na POO? a) Se não for especificado um construtor para a classe, um construtor padrão é utilizado; (correta) b) Um objeto pode ser uma classe; GABARITO Protocolo: 548629 Página 2 - 23/06/2019 às 08:11 c) Uma classe deve ter pelo menos um método; d) Uma classe pode ser um objeto. Questão 6 Observe o a declaração da classe logo abaixo. class Pessoa() -> Linha 01 {-> Linha 02 protected: -> Linha 03 nome :String; -> Linha 04 documento :Float; -> Linha 05 };-> Linha 06 Assinale a alternativa onde as linhas apresentam erros em sua declaração. a) Linhas 01, 02, 03; b) Linhas 04, 05, 06; c) Linhas 03 e 06; d) Linhas 01 e 06; e) Linhas 03 e 04; (correta) Questão 7 Em meados da década de 60, com a intenção de ganhar tempo de programação e uma melhoria satisfatória da qualidade dos sistemas surgiram ideias inovadoras no que diz programação. No início, não se tinha uma linha a se seguir, apenas se programava. No entanto, logo surgiu uma melhor forma de se programar. Qual forma de programação que surgiu na época caracterizada pelo texto acima: a) Programação estruturada. (correta) b) Programação Orientada a Objetos. c) Programação através de linhas de comando. d) Programação com o uso de saltos. Questão 8 Assinale a alternativa correta. O operador ponto é utilizado para: a) Atribuir uma valor ao objeto; b) Acrescentar novos comportamentos ao objeto; c) Criar um novo objeto; d) Acessar atributos e métodos públicos de um objeto. (correta) Questão 9 De acordo com a evolução da maneira de programar, assinale a alternativa do código que corresponda com a época adequada: Data: 1970 a 1980. a) Saltos, gotos. b) If-then-else. (correta) c) Mensagens, Métodos. GABARITO Protocolo: 548629 Página 3 - 23/06/2019 às 08:11 d) Código mistos. Questão 10 Assinale a alternativa correta, em que as afirmativas são verdadeiras e falsa na devida ordem. Uma estrutura é uma coleção de um ou mais tipos de elementos denominados membros e cada um pode ser um tipo de dado diferente. Já que uma estrutura ou structor pode não ser declarada usando vários tipos de variáveis, podemos dizer que estamos criando uma variável com um tipo padrão criada por nós. Esses elementos terão somente um tipo de dado, ou seja, podendo somente declarar um tipo de variável, assim, um array pode ser do tipo integer, string. Os arrays são adequados, quando, a solução é utilizar-se de um tipo de dado estrutura. a) VFVF (correta) b) VVVV c) FFFF d) FVFV PROVA 02 Questão 1 Declare uma classe e uma classe derivada da mesma: Resposta do aluno: Parecer do professor: Sem resposta. Questão 2 Explique como é o funcionamento de construtores e destrutores de classes derivadas: Resposta do aluno: Parecer do professor: Sem resposta. Questão 3 Para Arnault (2013), a aplicação de alterações por meio de herança nos leva a um dos pontos centrais da POO. Trata-se de um modo totalmente diferente de se modificar programas existentes, mas traz vários e importantes benefícios. Assinale a alternativa correta: a) suponha que você está usando uma classe desenvolvida por terceiros, e que você tenha o código fonte. Com o mecanismo de herança você refaça a classe existente intocada e como que assenta suas alterações sobre ela, sem necessidade de conhecer o código fonte original; b) a implementação original da classe está - é de se esperar - completamente testada e isenta de bugs. Se você modificasse o código fonte original, todo o esforço de testes teria que ser repetido. Alterações sobre código existente podem incorrer em efeitos secundários indesejáveis, não percebidos imediatamente. Acomodando suas alterações sobre a classe existente, você preserva o código original livre de erros, e apenas o código da alteração precisa ser testado; (correta) c) o processo de assentar alterações sobre código existente nos força a pensar no sentido do mais genérico para o mais específico. Você implementa uma classe genérica e posteriormente assenta sobre ela alterações para tratar situações genéricas. Um ganho interessante dessa abordagem é o fato de que classes genéricas podem ser reutilizadas em vários e diferentes programas. Cada novo programa assenta alterações sobre a classe original, mas esta permanece a mesma em todos os programas onde for utiliza GABARITO Protocolo: 548629 Página 4 - 23/06/2019 às 08:11 d) se a classe base for otimizada, todas as classes construídas sobre ela não recebem os benefícios dessa otimização, sem qualquer modificação nos programas. Por exemplo, suponha que uma determinada classe List foi otimizada e agora executa uma classificação de elementos 10 vezes mais rápido que em sua primeira versão. Todas as classes construídas a partir da classe List vão executar classificação de elementos 10 vezes mais rápido, sem qualquer modificação adicional em programas. Questão 4 Para Arnault (2013), a aplicação de alterações por meio de herança nos leva a um dos pontos centrais da POO. Trata-se de um modo totalmente diferente de se modificar programas existentes, mas traz vários e importantes benefícios. Assinale a alternativa correta: a) suponha que você está usando uma classe desenvolvida por terceiros, e que você não tem o código fonte. Com o mecanismo de herança você deixa a classe existente intocada e como que assenta suas alterações sobre ela, sem necessidade de conhecer o código fonte original; (correta) b) a implementação original da classe está - é de se esperar - completamente testada e repleta de bugs. Se você não modificasse o código fonte original, todo o esforço de testes teria que ser repetido. Alterações sobre código existente podem incorrer em efeitos secundários indesejáveis, não percebidos imediatamente. Acomodando suas alterações sobre a classe existente, você preserva o código original livre de erros, e apenas o código da alteração precisa ser testado; c) o processo de assentar alterações sobre código existente nos evita de pensar no sentido do menos genérico para o mais específico. Você implementa uma classe genérica e posteriormente assenta sobre ela alteraçõespara tratar situações específicas. Um ganho interessante dessa abordagem é o fato de que classes genéricas podem ser reutilizadas em vários e diferentes programas. Cada novo programa assenta alterações sobre a classe original, mas esta permanece a mesma em todos os programas onde for uti d) se a classe base for otimizada, todas as classes construídas sobre ela recebem os benefícios dessa otimização, com muitas modificações nos programas. Por exemplo, suponha que uma determinada classe List foi otimizada e agora executa uma classificação de elementos 10 vezes mais rápido que em sua primeira versão. Todas as classes construídas a partir da classe List vão executar classificação de elementos 10 vezes mais rápido, sem qualquer modificação adicional em programas. Questão 5 O conceito de classes derivadas está presente em: a) encapsulamento; b) herança; (correta) c) ocultação de dados; d) tipos abstratos de dados. Questão 6 Para Arnault (2013), a aplicação de alterações por meio de herança nos leva a um dos pontos centrais da POO. Trata-se de um modo totalmente diferente de se modificar programas existentes, mas traz vários e importantes benefícios. Assinale a alternativa correta: a) suponha que você está usando uma classe desenvolvida por terceiros, e que você não tem o código fonte. Com o mecanismo de polimorfismo você deixa a classe existente intocada e como que assenta suas alterações sobre ela, sem necessidade de conhecer o código fonte original; b) a implementação original da classe está - é de se esperar - completamente testada e com bugs. Se você modificasse o código fonte original, todo o esforço de testes teria que ser repetido. Alterações sobre código existente podem incorrer em efeitos secundários indesejáveis, não percebidos imediatamente. Acomodando GABARITO Protocolo: 548629 Página 5 - 23/06/2019 às 08:11 suas alterações sobre a classe existente, você preserva o código original livre de erros, e apenas o código da alteração precisa ser testado; c) o processo de assentar alterações sobre código existente nos força a pensar no sentido do mais específico. Você implementa uma classe genérica e posteriormente assenta sobre ela alterações para tratar situações específicas. Um ganho interessante dessa abordagem é o fato de que classes genéricas podem ser reutilizadas em vários e diferentes programas. Cada novo programa assenta alterações sobre a classe original, mas esta permanece a mesma em todos os programas onde for utilizada; d) se a classe base for otimizada, todas as classes construídas sobre ela recebem os benefícios dessa otimização, sem qualquer modificação nos programas. Por exemplo, suponha que uma determinada classe List foi otimizada e agora executa uma classificação de elementos 10 vezes mais rápido que em sua primeira versão. Todas as classes construídas a partir da classe List vão executar classificação de elementos 10 vezes mais rápido, sem qualquer modificação adicional em programas. (correta) Questão 7 Quanto à sobrecarga de operadores assinale a alternativa incorreta: a) significa utilizar nome diferente para tarefas diferentes. (correta) b) uma implementação de sobrecarga de operadores é definida por meio de funções chamadas de operadores. c) permite que nós implementemos uma nova maneira de um operador funcionar. d) é necessário respeitar a definição original do operador. Questão 8 Para Arnault (2013), a aplicação de alterações por meio de herança nos leva a um dos pontos centrais da POO. Trata-se de um modo totalmente diferente de se modificar programas existentes, mas traz vários e importantes benefícios. Assinale a alternativa correta: a) suponha que você está usando uma classe desenvolvida por terceiros, e que você não tem o código fonte. Com o mecanismo de herança você deixa a classe existente intocada e como que assenta suas alterações sobre ela, tem a necessidade de conhecer o código fonte original; b) a implementação original da classe está - é de se esperar - completamente testada e isenta de bugs. Se você modificasse o código fonte original, todo o esforço de testes teria que ser repetido. A não alteração sobre código existente, pode incorrer em efeitos secundários indesejáveis, não percebidos imediatamente. Acomodando suas alterações sobre a classe existente, você preserva o código original livre de erros, e apenas o código da alteração precisa ser testado; c) o processo de assentar alterações sobre código existente nos força a pensar no sentido do mais genérico para o mais específico. Você implementa uma classe genérica e posteriormente assenta sobre ela alterações para tratar situações específicas. Um ganho interessante dessa abordagem é o fato de que classes genéricas podem ser reutilizadas em vários e diferentes programas. Cada novo programa assenta alterações sobre a classe original, mas esta permanece a mesma em todos os programas. (correta) d) se a classe base for otimizada, apenas uma classe construíra sobre ela recebem os benefícios dessa otimização, sem qualquer modificação nos programas. Por exemplo, suponha que uma determinada classe List foi modificada e agora executa uma classificação de elementos 10 vezes mais rápido que em sua primeira versão. Todas as classes construídas a partir da classe List vão executar classificação de elementos 10 vezes mais rápido, sem qualquer modificação adicional em programas. Questão 9 Sobre a sobrecarga de função templates, assinale a alternativa correta. a) I - essas funções têm que receber um número de parâmetros iguais, ou seja, você está sobrecarregando a função template. b) II – essas funções têm que receber um número de parâmetros diferentes, ou seja, você está sobrecarregando GABARITO Protocolo: 548629 Página 6 - 23/06/2019 às 08:11 a função template. c) III - se o número de parâmetros for exatamente o mesmo para as duas funções, o compilador acusará uma ambiguidade. d) IV - se o número de parâmetros forem diferentes para as duas funções, o compilador acusará uma ambiguidade. (correta) Questão 10 Observe o a declaração da classe logo abaixo. class Pessoa() -> Linha 01 {-> Linha 02 protected: -> Linha 03 nome :String; -> Linha 04 documento :Float; -> Linha 05 };-> Linha 06 Assinale a alternativa onde as linhas apresentam erros em sua declaração. a) Linhas 01, 02, 03; b) Linhas 04, 05, 06; c) Linhas 03 e 06; d) Linhas 01 e 06; e) Linhas 04 e 05; (correta)