Buscar

Avaliação Programação Orientada a Objetos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 6 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 6 páginas

Prévia do material em texto

GABARITO
Protocolo: 885108
Página 1 - 19/06/2024 às 23:45
Prova
Data de aplicação: 08/06/2024
Curso: Tecnologia em Análise e Desenvolvimento de Sistemas
Disciplina: Programação Orientada à Objeto
Ano: 20241 / Semestre: 2
RGM: 343.6079 / Aluno: RAFAELA TEIXEIRA DOS SANTOS
PROVA 01
Questão 1
Defina oque são atributos, na Programação Orientada a Objetos?
Resposta do aluno: Atributos é o que descreve valores, são as características que distinguem os objetos.
Questão 2
O que é uma instância de um Objeto? Qual a diferença de atributos e métodos? Porque usar herança de
classes?
Resposta do aluno: Uma instância de um objeto é uma ocorrência concreta de uma classe. Quando uma classe
é definida, ela serve como um modelo ou blueprint. A instância é um objeto real criado a partir dessa classe,
ocupando espaço na memória e podendo ser manipulada por meio de seus atributos e métodos. Atributos são
as variáveis que pertencem a uma classe ou instância de uma classe. Eles representam as propriedades ou
características do objeto. Por exemplo, em uma classe Pessoa, atributos podem ser nome, idade, altura, etc, já
métodos são funções ou procedimentos que pertencem a uma classe ou instância de uma classe. Eles definem
o comportamento dos objetos e podem manipular os atributos da classe. Por exemplo, em uma classe Pessoa,
métodos podem ser andar(), falar(), comer(), etc. Herança de classes é um dos principais conceitos de
programação orientada a objetos (POO). Permite criar uma nova classe que é baseada em uma classe existente.
A nova classe (subclasse ou classe derivada) herda atributos e métodos da classe existente (superclasse ou
classe base), podendo também adicionar novos atributos e métodos ou modificar os existentes.
Questão 3
Para ser acessível a um método em uma subclasse, um atributo na superclasse deve ser:
a) default;
b) protected;
c) public;
d) public ou protected. (correta)
Questão 4
Examine a seguinte seção de código:
var
 area: integer;
 Casa: TCasa;
 
Quantos objetos foram criados? 
 
a) dois – um de cada tipo.
b) dois – um para cada variável.
c) nenhum – existe uma referência para um objeto, mas nenhum objeto ainda. (correta)
GABARITO
Protocolo: 885108
Página 2 - 19/06/2024 às 23:45
d) um – existe uma referência para um objeto, logo deve existir um objeto.
Questão 5
A ocultação da informação é um principio fundamental em programação orientada a objetos e significa que não
se pode acessar determinados dados do interior de uma classe por funções externas à classe de uma classe por
funções externas à classe. O principal mecanismo para ocultar dados é coloca-los em uma classe e torna-los:
 
Assinale a alternativa correta que corresponde ao final do texto acima.
a) Protect e Private;
b) Public e Private;
c) Protect e Public;
d) Protect;
e) Private; (correta)
Questão 6
Complete o texto marcando a alternativa correta.
 
Uma classe representa um conjunto de ________, e estes _______, por sua vez, possuem características e
comportamentos comuns entre eles. Na________, são definidos os_________, eventos e atributos dos objetos
pertencentes a ela.
a) eventos, atributos, classe, métodos.
b) classe, objetos, classe, métodos.
c) objetos, objetos, classe, métodos. (correta)
d) objetos, objetos, atribuição, métodos.
Questão 7
Podemos perceber, segundo os alguns pensadores, uma grande limitação quando precisamos declarar grupos
de elementos de diferentes tipos de dados isso quando ainda a POO não era disseminada. Por exemplo, caso for
preciso declarar uma lista de notas, um array será muito útil, pois utilizaremos somente o tipo real, mas se
precisarmos declarar uma lista de clientes que contenham membros de diferentes tipos como nome, idade,
endereço, número etc. Neste caso, os arrays não são adequados, então, qual a solução pode se utilizada.
a) Structure. (correta)
b) Classes.
c) Bases.
d) Objetos.
Questão 8
Podemos afirmas oque é verdadeiro a respeito dos construtores:
Assinale a alternativa correta:
 
O construtor de um objeto é um método executado quando o objeto está sendo criado.
São normalmente é utilizado para, inicializar dados, predeterminados do objeto.
Tecnicamente falando, com um construtor nós podemos determinar valores aos atributos de um objeto.
Construtores podem ser comparados a trabalhadores que preenchem com dados os campos vazios com valores
padrão.
No contexto, uma estrutura é uma coleção de um ou mais tipos de elementos denominados, membros e cada
um pode ser um tipo de dado diferente.
 
 
São verdadeiros os itens:
GABARITO
Protocolo: 885108
Página 3 - 19/06/2024 às 23:45
 
 
a) V,V,V,V,F (correta)
b) V,V,F,F,F
c) F,V,V,V,F
d) V,F,V,V,F
Questão 9
A manutenção é a adição de códigos que combinem com o projeto original, mas muitos programadores utilizam-
se da manutenção para a correção de erros do programa tornando, assim, o sistema vira uma colcha de
retalhos como se cada parte do programa fossem pequenos programas, tornando o código cada vez mais difícil
de ser alterado.
 
De acordo com o texto acima, assinale a alternativa que corresponde com o tipo de programação que se
destaca na facilidade de manutenção:
a) Programação estruturada.
b) Programação Orientada a Objetos. (correta)
c) Programação através de linhas de comando.
d) Programação com o uso de saltos.
Questão 10
A função construtor é geralmente utilizada para inicializar os atributos, existem algumas regras para que seja
declarado um construtor. Assinale a alternativa correta que corresponde a essas regras.
a) Tem que ter o mesmo nome da classe, pode ter zero ou mais parâmetros, não devolve nenhum valor.
(correta)
b) Não é necessário ter o mesmo nome da classe, pode ter zero ou mais parâmetros, não devolve nenhum
valor.
c) Tem que ter o mesmo nome da classe, é necessário ter ao menos um parâmetro, não devolve nenhum valor.
d) Tem que ter o mesmo nome da classe, pode ter zero ou mais parâmetros, é necessário devolver um valor.
e) Não é necessário ter o mesmo nome da classe, é necessário ter ao menos um parâmetro, é necessário
devolver um valor.
PROVA 02
Questão 1
Declare uma classe e uma classe derivada da mesma:
Resposta do aluno: class Animal { public void som() { std::cout <<""o animal faz um som."" << std::endl; } };
class Cachorro : public Animal { public: void som(){ std::cout << ""O cachorro late."" << std::endl; } };
Questão 2
Comente sobre a função virtual.
Resposta do aluno: Permite que você declare suas futuras intenções em relação à classe em definição, para
criar uma função virtual, você declarará a palavra-chave virtual antes do nome da função.O tipo de retorno e a
lista parâmetros da função precisam ser idênticos para cada função virtual.
Questão 3
Analise o código abaixo:
 
#include <iostream>
GABARITO
Protocolo: 885108
Página 4 - 19/06/2024 às 23:45
#include <string>
using namespace std;
class produto{
 int numero;
 public:
 string nome;
 int get_numero(){return numero;}
 void set_numero(int n){numero = n;}
 produto(string text, int count);
 produto operator++(void);
 produto operator++(int);
};
produto::produto(string text, int count){
 nome = text;
 numero = count;
}
produto produto::operator++(void)
{
 numero++;
 return *this;
}
produto produto::operator++(int)
{
 numero++;
 return *this;
}
 
int main()
{
 produto laranja("Laranja",200);
 laranja++;
 cout <<"Numero de "<< laranja.nome << ": " << laranja.get_numero()<<endl;
 return 0;
}
 
 
Assinale a alternativa que corresponde ao que está sendo realizado no código acima:
a) Construtores e Destrutores;
b) Templates e Carga de operadores;
c) Templates;
d) Construtores;
e) Carga de operadores. (correta)
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 desenvolvidapor 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;
GABARITO
Protocolo: 885108
Página 5 - 19/06/2024 às 23:45
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.
Questão 5
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
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 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 04 e 05; (correta)
Questão 7
Quanto aos exercícios de autoavaliação para sedimentação da aprendizagem, um banco trabalha com três tipos
de contas, sobre elas assinale a alternativa correta.
a) A operação de depósito é diferente nos três tipos de conta.
b) O extrato é igual para as três contas.
GABARITO
Protocolo: 885108
Página 6 - 19/06/2024 às 23:45
c) As operações possíveis são: depósito, retirada e impressão de extrato. (correta)
d) Em todos os casos não é necessário guardar o número da conta, o nome do correntista e o saldo.
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
Com relação à redefinição,
I- A redefinição de uma função virtual por uma classe derivada é diferente à sobrecarga de funções. é
similar
II - Entretanto, esse termo não é aplicado para a redefinição de funções virtuais porque há diversas diferenças.
III - Talvez a mais importante é que o protótipo para uma função virtual deve combinar exatamente o protótipo
especificado para a classe base.
 
Marque a alternativa correta:
a) I e II
b) II e III (correta)
c) I apenas
d) II apenas
e) III apenas
Questão 10
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.

Mais conteúdos dessa disciplina

  • Relacionados
  • Inteligência Artificial
ed

Olá, eu sou o Ed!

A Inteligência Artificial do
Passei Direto

O Ed já respondeu sobre esse material