Logo Passei Direto
Buscar

Prova Programacao Orientada a Objeto 2023

User badge image
rpesn

em

Ferramentas de estudo

Questões resolvidas

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
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.

Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Questões resolvidas

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
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.

Prévia do material em texto

<p>Prova</p><p>Curso: Tecnologia em Análise e Desenvolvimento de Sistemas</p><p>Disciplina: Programação Orientada à Objeto</p><p>Ano: 20231 / Semestre: 2</p><p>PROVA 01</p><p>Questão 1</p><p>De a sua definição de oque é polimorfismo para a programação orientada a objetos?</p><p>Resposta do aluno: Poliformismo, no contexto da POO, é entendido como “muitas formas”. Isto é, funções com o</p><p>mesmo nome podem executar ações diferentes, ou seja, uma mesma função fazer coisas diferentes.</p><p>Questão 2</p><p>Defina oque é um objeto, na Programação Orientada a Objetos e como eles podem ser divididos?</p><p>Resposta do aluno: Objeto – são instancias de classes que determinam qual informação cada um contém e como</p><p>ele pode manipulá-la. Cada objeto pode ter valores diferentes para seus atributos, como, por exemplo, um</p><p>cachorro pode ser mais alto que outro ou mais pesado, mas os atributos dos objetos são os mesmos como peso,</p><p>altura, cor. Eles podem ser divididos nas classes, que sao um aglomerado de objetos com a mesma estrutura de</p><p>informações (atributos) e comportamento (operações).</p><p>Questão 3</p><p>De acordo com a evolução da maneira de programar, assinale a alternativa do código que corresponda com a</p><p>época adequada:</p><p>Data: 1990.</p><p>a) Saltos, gotos.</p><p>b) If-then-else.</p><p>c) Mensagens, Métodos. (correta)</p><p>d) Código mistos.</p><p>Questão 4</p><p>Para ser acessível a um método em uma subclasse, um atributo na superclasse deve ser:</p><p>a) default;</p><p>b) protected;</p><p>c) public;</p><p>d) public ou protected. (correta)</p><p>Questão 5</p><p>Observe o a declaração da classe logo abaixo.</p><p>class Pessoa() -> Linha 01</p><p>{-> Linha 02</p><p>protected: -> Linha 03</p><p>nome :String; -> Linha 04</p><p>documento :Float; -> Linha 05</p><p>};-> Linha 06</p><p>Assinale a alternativa onde as linhas apresentam erros em sua declaração.</p><p>a) Linhas 01, 02, 03;</p><p>b) Linhas 04, 05, 06;</p><p>c) Linhas 03 e 06;</p><p>d) Linhas 01 e 06;</p><p>e) Linhas 03 e 04; (correta)</p><p>Questão 6</p><p>A manutenção é a adição de códigos que combinem com o projeto original, mas muitos programadores utilizam-</p><p>se da manutenção para a correção de erros do programa tornando, assim, o sistema vira uma colcha de</p><p>retalhos como se cada parte do programa fossem pequenos programas, tornando o código cada vez mais difícil</p><p>de ser alterado.</p><p>De acordo com o texto acima, assinale a alternativa que corresponde com o tipo de programação que se</p><p>destaca na facilidade de manutenção:</p><p>a) Programação estruturada.</p><p>b) Programação Orientada a Objetos. (correta)</p><p>c) Programação através de linhas de comando.</p><p>d) Programação com o uso de saltos.</p><p>Questão 7</p><p>A respeito do construtor default (padrão) de uma classe em C++, pode-se afirmar que:</p><p>a) toda classe em C++ tem um construtor default;</p><p>b) a classe tem de ter pelo menos um construtor definido para ter um construtor default;</p><p>c) uma classe tem um construtor default se ela não define nenhum outro construtor; (correta)</p><p>d) toda classe em C++ herda um construtor default da classe Object;</p><p>e) a linguagem C++ não tem o conceito de um construtor default;</p><p>Questão 8</p><p>No final da década de 60, a indústria de software sofreu uma grande crise, assinale a alternativa que</p><p>corresponde o motivo que causou a crise do software na década de 60.</p><p>a) Foi causada pelo baixíssimo nível de produtividade. (correta)</p><p>b) Foi causada pelo auto custo do hardware.</p><p>c) Foi causada por conta da crise financeira mundial.</p><p>d) Foi causada por falta de incentivo a criação de mão de obra.</p><p>Questão 9</p><p>Podemos definir um objeto na programação orientada a objetos sendo:</p><p>Assinale a alternativa correta.</p><p>a) Um objeto é uma coisa ou uma entidade do mundo real. (correta)</p><p>b) Objetos são procedimentos de classes, que determinam qual informação um objeto contém e como ele pode</p><p>manipulá-la.</p><p>c) É uma função capaz de reter um estado e que oferece uma série de operações ou para examinar ou para</p><p>afetar este estado.</p><p>d) Os objetos consistem de modelos (abstrações) de objetos não reais.</p><p>Questão 10</p><p>Assinale a alternativa correta em relação a acesso a membros:</p><p>a) O acesso a dados por meio de funções é possível adicionar valores de argumentos para validação de dados.</p><p>(correta)</p><p>b) Não podemos manipular os dados para que o objeto nunca contenha valores inválidos.</p><p>c) Podemos suprir as entradas de dados e proteger os atributos dos objetos.</p><p>d) Para acessar aos dados temos que controlar as declarações dos membros de dados.</p><p>PROVA 02</p><p>Questão 1</p><p>Comente sobre polimorfismo paramétrico e o que este recurso permite.</p><p>Resposta do aluno: Polimorfismo paramétrico é um recurso bastante útil para evitar redundância de código,</p><p>portanto, trata-se de um meio de reuso deste. É importante para criar famílias de classes ou funções</p><p>relacionadas. Este recurso permite, por exemplo, definir uma classe matriz (do campo da matemática) uma</p><p>única vez num “header file” e utilizar esta classe matriz para matrizes de tipo float, tipo int ou long etc.</p><p>Questão 2</p><p>Explique como é o funcionamento de construtores e destrutores de classes derivadas:</p><p>Resposta do aluno: As classes derivadas não herdam os construtores e destrutores da classe base. As classes</p><p>derivadas devem ter suas próprias funções construtoras e destrutoras.Quando um objeto é instanciado em uma</p><p>classe derivada inicia-se uma cadeia de chamadas onde o construtor da classe derivada, antes mesmo de</p><p>realizar suas próprias tarefas, chama o construtor da classe básica que pode ser direta ou explicitamente</p><p>através de um inicializador de membro de classe básica, ou pode acionar explicitamente chamando o construtor</p><p>padrão da classe básica.</p><p>Questão 3</p><p>Para a elaboração de um programa que use "templates", seguir os passos indicados abaixo normalmente lhe</p><p>poupará tempo, sobre eles, assinale a alternativa incorreta.</p><p>a) construa seu programa para operar em um só destes tipos;</p><p>b) defina os tipos que você quer parametrizar alguns termos de chamadas de funções membro e operadores de</p><p>nomes e sintaxe iguais (uniformidade). Os tipos dos argumentos vão variar;</p><p>c) termine incluindo as definições dos templates no programa, sem a necessidade de teste para os demais</p><p>tipos. (correta)</p><p>d) corrija as eventuais falhas de substituição.</p><p>Questão 4</p><p>Para Arnault (2013), a aplicação de alterações por meio de herança nos leva a um dos pontos centrais da POO.</p><p>Trata-se de um modo totalmente diferente de se modificar programas existentes, mas traz vários e importantes</p><p>benefícios.</p><p>Assinale a alternativa correta:</p><p>a) suponha que você está usando uma classe desenvolvida por terceiros, e que você não tem o código fonte.</p><p>Com o mecanismo de polimorfismo você deixa a classe existente intocada e como que assenta suas alterações</p><p>sobre ela, sem necessidade de conhecer o código fonte original;</p><p>b) a implementação original da classe está - é de se esperar - completamente testada e com bugs. Se você</p><p>modificasse o código fonte original, todo o esforço de testes teria que ser repetido. Alterações sobre código</p><p>existente podem incorrer em efeitos secundários indesejáveis, não percebidos imediatamente. Acomodando</p><p>suas alterações sobre a classe existente, você preserva o código original livre de erros, e apenas o código da</p><p>alteração precisa ser testado;</p><p>c) o processo de assentar alterações sobre código existente nos força a pensar no sentido do mais específico.</p><p>Você implementa uma classe genérica e posteriormente assenta sobre ela alterações para tratar situações</p><p>específicas. Um ganho interessante dessa abordagem é o fato de que classes genéricas podem ser reutilizadas</p><p>em vários e diferentes programas. Cada novo programa assenta alterações sobre a classe original, mas esta</p><p>permanece a mesma em todos os programas onde for utilizada;</p><p>d) se a classe base for otimizada, todas as classes construídas sobre ela recebem os benefícios dessa</p><p>otimização, sem qualquer modificação nos programas. Por exemplo, suponha que uma determinada classe List</p><p>foi otimizada e agora executa uma classificação de elementos 10 vezes mais rápido que em sua primeira</p><p>versão. Todas as classes construídas a partir da classe List vão executar classificação de elementos 10 vezes</p><p>mais rápido, sem qualquer modificação adicional em programas. (correta)</p><p>Questão 5</p><p>Quanto à sobrecarga de</p><p>operadores assinale a alternativa incorreta:</p><p>a) significa utilizar nome diferente para tarefas diferentes. (correta)</p><p>b) uma implementação de sobrecarga de operadores é definida por meio de funções chamadas de operadores.</p><p>c) permite que nós implementemos uma nova maneira de um operador funcionar.</p><p>d) é necessário respeitar a definição original do operador.</p><p>Questão 6</p><p>Para Arnault (2013), a aplicação de alterações por meio de herança nos leva a um dos pontos centrais da POO.</p><p>Trata-se de um modo totalmente diferente de se modificar programas existentes, mas traz vários e importantes</p><p>benefícios.</p><p>Assinale a alternativa correta:</p><p>a) suponha que você está usando uma classe desenvolvida por terceiros, e que você não tem o código fonte.</p><p>Com o mecanismo de herança você deixa a classe existente intocada e como que assenta suas alterações sobre</p><p>ela, tem a necessidade de conhecer o código fonte original;</p><p>b) a implementação original da classe está - é de se esperar - completamente testada e isenta de bugs. Se você</p><p>modificasse o código fonte original, todo o esforço de testes teria que ser repetido. A não alteração sobre código</p><p>existente, pode incorrer em efeitos secundários indesejáveis, não percebidos imediatamente. Acomodando suas</p><p>alterações sobre a classe existente, você preserva o código original livre de erros, e apenas o código da</p><p>alteração precisa ser testado;</p><p>c) o processo de assentar alterações sobre código existente nos força a pensar no sentido do mais genérico</p><p>para o mais específico. Você implementa uma classe genérica e posteriormente assenta sobre ela alterações</p><p>para tratar situações específicas. Um ganho interessante dessa abordagem é o fato de que classes genéricas</p><p>podem ser reutilizadas em vários e diferentes programas. Cada novo programa assenta alterações sobre a</p><p>classe original, mas esta permanece a mesma em todos os programas. (correta)</p><p>d) se a classe base for otimizada, apenas uma classe construíra sobre ela recebem os benefícios dessa</p><p>otimização, sem qualquer modificação nos programas. Por exemplo, suponha que uma determinada classe List</p><p>foi modificada e agora executa uma classificação de elementos 10 vezes mais rápido que em sua primeira</p><p>versão. Todas as classes construídas a partir da classe List vão executar classificação de elementos 10 vezes</p><p>mais rápido, sem qualquer modificação adicional em programas.</p><p>Questão 7</p><p>Para Arnault (2013), a aplicação de alterações por meio de herança nos leva a um dos pontos centrais da POO.</p><p>Trata-se de um modo totalmente diferente de se modificar programas existentes, mas traz vários e importantes</p><p>benefícios.</p><p>Assinale a alternativa correta:</p><p>a) suponha que você está usando uma classe desenvolvida por terceiros, e que você tenha o código fonte. Com</p><p>o mecanismo de herança você refaça a classe existente intocada e como que assenta suas alterações sobre ela,</p><p>sem necessidade de conhecer o código fonte original;</p><p>b) a implementação original da classe está - é de se esperar - completamente testada e isenta de bugs. Se você</p><p>modificasse o código fonte original, todo o esforço de testes teria que ser repetido. Alterações sobre código</p><p>existente podem incorrer em efeitos secundários indesejáveis, não percebidos imediatamente. Acomodando</p><p>suas alterações sobre a classe existente, você preserva o código original livre de erros, e apenas o código da</p><p>alteração precisa ser testado; (correta)</p><p>c) o processo de assentar alterações sobre código existente nos força a pensar no sentido do mais genérico</p><p>para o mais específico. Você implementa uma classe genérica e posteriormente assenta sobre ela alterações</p><p>para tratar situações genéricas. Um ganho interessante dessa abordagem é o fato de que classes genéricas</p><p>podem ser reutilizadas em vários e diferentes programas. Cada novo programa assenta alterações sobre a</p><p>classe original, mas esta permanece a mesma em todos os programas onde for utiliza</p><p>d) se a classe base for otimizada, todas as classes construídas sobre ela não recebem os benefícios dessa</p><p>otimização, sem qualquer modificação nos programas. Por exemplo, suponha que uma determinada classe List</p><p>foi otimizada e agora executa uma classificação de elementos 10 vezes mais rápido que em sua primeira</p><p>versão. Todas as classes construídas a partir da classe List vão executar classificação de elementos 10 vezes</p><p>mais rápido, sem qualquer modificação adicional em programas.</p><p>Questão 8</p><p>O conceito de classes derivadas está presente em:</p><p>a) encapsulamento;</p><p>b) herança; (correta)</p><p>c) ocultação de dados;</p><p>d) tipos abstratos de dados.</p><p>Questão 9</p><p>Sobre a função templates, marque a alternativa incorreta.</p><p>a) são funções genéricas em que os tipos de dados, parâmetros e os de retorno, os quais são definidos em</p><p>tempo de execução.</p><p>b) Quando um conjunto de funções ou classes tem a mesma funcionalidade para diferentes tipos de dados, eles</p><p>se tornam bons candidatos para serem implementados como templates.</p><p>c) ) uma função declarada template passando um parâmetro com um tipo “int” o compilador C++ reescreve</p><p>toda a função, substituindo o tipo da função para “int”.</p><p>d) se a função for chamada tendo como parâmetro um “int” cria a função para “float”, se o parâmetro for</p><p>“float” cria uma função para “int”, e assim por diante. (correta)</p><p>Questão 10</p><p>Com relação à redefinição,</p><p>I- A redefinição de uma função virtual por uma classe derivada é diferente à sobrecarga de funções. é</p><p>similar</p><p>II - Entretanto, esse termo não é aplicado para a redefinição de funções virtuais porque há diversas diferenças.</p><p>III - Talvez a mais importante é que o protótipo para uma função virtual deve combinar exatamente o protótipo</p><p>especificado para a classe base.</p><p>Marque a alternativa correta:</p><p>a) I e II</p><p>b) II e III (correta)</p><p>c) I apenas</p><p>d) II apenas</p><p>e) III apenas</p>

Mais conteúdos dessa disciplina