Logo Passei Direto
Buscar

Conceitos de Programação Orientada a Objetos

Ferramentas de estudo

Questões resolvidas

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

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

Prévia do material em texto

<p>Programação Orientada a Objetos I</p><p>MULTIPLA ESCOLHA</p><p>P) Dado o código abaixo com as seguintes classes: A, B e Program:</p><p>class A</p><p>{</p><p>Public override String ToString()</p><p>{</p><p>return “4”;</p><p>}</p><p>}</p><p>class B:A</p><p>{</p><p>Public override String ToString()</p><p>{</p><p>return base.ToString() + “3”;</p><p>}</p><p>}</p><p>class Program</p><p>{</p><p>static void Main(string[] args)</p><p>{</p><p>Console.WriteLine(new B());</p><p>}</p><p>Qual o resultado será apresentado como saída de execução do programa Program?</p><p>Resposta: B) O programa compila e o número 43 é exibido.</p><p>P) Considere o seguinte programa:</p><p>static void Main(string[] args)</p><p>{</p><p>char [] c = new char[] {‘a’,’b’,’c’};</p><p>Console.WriteLine(“{1}{0}{2}”, c[1],c[0],c[2]);</p><p>}</p><p>Qual a sua saída?</p><p>Resposta: A) a b c</p><p>P) Leia o texto extraído do site tecnoblog.net:</p><p>Em orientação a objeto, este processo no qual não temos mais acesso a um elemento interno, no caso a bateria, se</p><p>chama:</p><p>Resposta: D) Encapsulamento</p><p>P) Dada a seguinte tela de saída:</p><p>Considerando as três propostas de programa a seguir:</p><p>Programa I</p><p>a) static void Main(string[] args)</p><p>{</p><p>int a=345, b=543, c=435;</p><p>Console.WriteLine(“seq\n{1}\n{0}\n{2}”, b,a,c); Console.ReadKey();</p><p>}</p><p>Programa II</p><p>b) static void Main(string[] args)</p><p>{</p><p>int a=345, b=543, c=435;</p><p>Console.WriteLine(“seq\n{0}\n{1}\n{2}”, a,b,c); Console.ReadKey();</p><p>}</p><p>Programa III</p><p>c) static void Main(string[] args)</p><p>{</p><p>int a=345, b=435, c=543;</p><p>Console.WriteLine(“seq\n{0}\n{2}\n{1}”, a,b,c); Console.ReadKey();</p><p>}</p><p>Qual a afirmação é correta?</p><p>Resposta: D) Mais de um dos programas mostram a tela.</p><p>P) Um atributo serve para:</p><p>Resposta: A) Indicar as possíveis informações armazenadas por um objeto de uma classe, representando o estado</p><p>de cada objeto.</p><p>P) Considere o seguinte programa:</p><p>static void Main(string[] args)</p><p>{</p><p>List numero= new List();</p><p>for (int i=1; i</p><p>numero;</p><p>private String cliente;</p><p>private float saldo;</p><p>private static int ultimoNumero = 1000;</p><p>public ContaCorrente(String cliente)</p><p>{</p><p>this.numero = ++ultimoNumero;</p><p>this.cliente = cliente;</p><p>}</p><p>public void depositar(float valor)</p><p>{</p><p>saldo += valor;</p><p>}</p><p>public void sacar(float valor)</p><p>{</p><p>If (valor palavra = new List();</p><p>palavra.Add(‘c’);</p><p>palavra.Add(‘o’);</p><p>palavra.Add(‘n’);</p><p>palavra.Add(‘t’);</p><p>palavra.Add(‘a’);</p><p>palavra.Add(‘t’);</p><p>palavra.Add(‘o’);</p><p>Quadro 1</p><p>foreach (char c in palavra)</p><p>Console Write(c);</p><p>Console.ReadLine();</p><p>}</p><p>Resposta: B) palavra.RemoveAt(6);</p><p>palavra.Remove(‘t);</p><p>palavra.Remove (‘a);</p><p>palavra.Add (‘a’);</p><p>P) Sobre a declaração e uso de classes, métodos e atributos especificamente na linguagem de programação</p><p>C#, é correto afirmar que:</p><p>Resposta: A) Em uma mesma classe pode-se declarar dois métodos que apresentam o mesmo nome.</p><p>P) Analise as seguintes afirmações:</p><p>I – O uso de uma estrutura de repetição FOREACH é recomendado quando sabemos o número de repetições que</p><p>serão executadas.</p><p>II – Uma estrutura de repetição WHILE sempre terá os comandos pertencentes ao seu bloco principal executado pelo</p><p>menos uma vez.</p><p>III – Uma estrutura de repetição DO...WHILE sempre terá os comandos pertencentes ao seu bloco principal</p><p>executado pelo menos uma vez.</p><p>Assinale a alternativa correta:</p><p>Resposta: C) Apenas a afirmação III é verdadeira.</p><p>P) Leia a definição a seguir:</p><p>“Consiste na separação de aspectos internos e externos de um objeto. Este mecanismo é utilizado amplamente, para</p><p>impedir o acesso direto ao estado de um objeto (seus atributos), disponibilizando externamente apenas os métodos</p><p>que alteram estes estados”.</p><p>Qual é o conceito definido no trecho acima?</p><p>Resposta: B) Encapsulamento</p><p>P) Ao executar o programa abaixo:</p><p>Qual a sequência das linhas executadas no processo, considerando-se como as linhas da classe as mesmas</p><p>no objeto?</p><p>Resposta: D) 26,12,13,15,16,17,18,19,27</p><p>P) Segundo o livro-texto ...importante pesquisador que contribuiu para o desenvolvimento da POO foi Alan Curtis</p><p>Kay, na Xerox, nos EUA. Em seus experimentos, Alan Kay estudava maneiras de interpretar os problemas do mundo</p><p>real de uma maneira que o ser humano conseguisse abstrair os conceitos fundamentais de tal problema e inferi-los</p><p>no mundo computacional. Dessa forma, Alan Kay percebeu que um substantivo isolado na mente de uma pessoa</p><p>gera uma forma concreta, mas um verbo isolado na mente de uma pessoa não. Logo, um verbo faz parte de um</p><p>substantivo. A partir dessas observações, Alan Kay definiu os princípios da POO.</p><p>Qual das alternativas abaixo NÃO é um princípio da Programação Orientada a Objeto?</p><p>Resposta: C) Cada objeto é independente, portanto, inagrupável em tipos (classes);</p><p>P) Observando o programa a seguir:</p><p>namespace ConsoleAppplication1</p><p>{</p><p>public class Data</p><p>{</p><p>public int dia, mes, ano;</p><p>public Data(int d, int m, int a)</p><p>{ dia = d; mes = m; ano = a;}</p><p>public virtual void get()</p><p>{</p><p>Console.Write(dia + "/" + mes + "/" + ano);</p><p>}</p><p>public override string ToString()</p><p>{</p><p>return dia + "/" + mes + "/" + NO;</p><p>}</p><p>}</p><p>public abstract class Pessoa</p><p>{</p><p>public string nome;</p><p>public int identidade;</p><p>public Data nascimento;</p><p>public Pessoa(string n, int id, Data d)</p><p>{</p><p>nome = n;</p><p>identidade = id;</p><p>nascimento = d;</p><p>}</p><p>}</p><p>public class Funcionario : Pessoa</p><p>{</p><p>puclib Data admissao;</p><p>public float salario;</p><p>public Funcionario(string nome, int id, Data nasc, Data admiss, float sal): base (nome, id, nasc)</p><p>{</p><p>admissao = admiss;</p><p>salario = sal;</p><p>}</p><p>}</p><p>public class Gerente : Funcionario</p><p>{...}</p><p>{...}</p><p>class Program</p><p>{</p><p>public static void Main(string[] args)</p><p>{</p><p>Data dn = new Data(10, 12, 1980);</p><p>Data da = new Data(5, 8, 2012);</p><p>Funcionario f2 = new Funcionario ("Jose", 999, dn, da, 4000);</p><p>Gerente g1 = new Gerente("Contabilidade", da, 5000, da, dn, "Marcos", 99999);</p><p>Cliente c1 = new Cliente("Maria", 1111, dn, 3500);</p><p>Console.WriteLine();</p><p>Console.WriteLine();</p><p>Console.WriteLine();</p><p>}</p><p>}</p><p>}</p><p>Qual dos métodos a seguir implementa o POLIMORFISMO?</p><p>Resposta: E) Banco.valorEmprestimo</p><p>P) Considere o programa a seguir:</p><p>namespace Prova</p><p>{</p><p>abstract class Classe1</p><p>{</p><p>public virtual int soma(int a)</p><p>{</p><p>return a+1;</p><p>}</p><p>}</p><p>class Classe2: Classe1</p><p>{</p><p>public override int soma(int a)</p><p>{</p><p>return a+2;</p><p>}</p><p>}</p><p>class Classe3 : Classe1</p><p>{</p><p>public int soma(int a)</p><p>{</p><p>return base.soma(a+3);</p><p>}</p><p>}</p><p>class Classe4 : Classe3</p><p>{</p><p>public int soma(int a)</p><p>{</p><p>return base.soma(a+4);</p><p>}</p><p>}</p><p>class Program</p><p>{</p><p>static void Main(string[] args)</p><p>{</p><p>Classe2 c2 = new Classe2();</p><p>Classe3 c3 = new Classe3();</p><p>Classe4 c4 = new Classe4();</p><p>Console.WriteLine("{0} {1} {2}", c2.soma(0), c3.soma(0), c4.soma(0));</p><p>}</p><p>}</p><p>}</p><p>Qual é o resultado apresentado na tela?</p><p>Resposta: A) 2 4 8</p><p>P) Analise a figura e os códigos C# abaixo:</p><p>Considere os seguintes programas:</p><p>Podemos afirmar que:</p><p>Resposta: A) Três dos códigos desenharão a figura</p><p>P) Considerando o seguinte trecho de programa:</p><p>class program</p><p>{</p><p>static void Main(string[] args)</p><p>{</p><p>string n1= “Joao Carlos”;</p><p>int x;</p><p>Aluno b11 = new Aluno();</p><p>Aluno b12 = new Aluno(n1);</p><p>x = b11.result(n1);</p><p>n1 = b12.result(x);</p><p>Se o programa não apresenta erros, pode-se concluir com relação a classe Aluno:</p><p>I – Ela não necessita de sobrecarga do método construtor.</p><p>II – Ela possui um método cujo cabeçalho é public int result(string v) sendo v uma variável que será utilizada dentro</p><p>do método.</p><p>III – Ela possui um método cujo cabeçalho é public string result(int v) sendo v uma variável que será utilizada dentro</p><p>do método.</p><p>Assinale a alternativa correta:</p><p>Resposta: B) As conclusões II e III estão corretas.</p><p>P) Considere a seguinte situação:</p><p>Numa clínica veterinária é feita a castração de gatos. No programa, uma vez criada a instância do animal, o nome</p><p>NÃO pode mais ser alterado, o seu RGA (Registro Geral do Animal) e a Castração poderão ser alterados</p><p>externamente.</p><p>Portanto, o requisito deste programa é: as informações SOMENTE poderão ser acessadas externamente pelo</p><p>método imprime.</p><p>Para isso, foram apresentadas 3 propostas:</p><p>I.</p><p>public class Gato</p><p>{</p><p>private string nome;</p><p>public string rga;</p><p>public bool castrado;</p><p>public Gato(string n, string r, bool c)</p><p>{</p><p>this.nome = n;</p><p>this.rga = r;</p><p>this.castrado = c;</p><p>}</p><p>public void imprime()</p><p>{</p><p>Console.WriteLine(this.nome + “\n” + this.rga + “\n” + ((this castrado) ? “sim” : “não”));</p><p>}</p><p>}</p><p>class Program</p><p>{</p><p>static void Main(string[] args)</p><p>{</p><p>Gato g1 =</p><p>new Gato(“Frajola”, “sp555”, false);</p><p>g1.castrado = true;</p><p>g1.imrpime();</p><p>}</p><p>}</p><p>II.</p><p>public class Gato</p><p>{</p><p>private string nome;</p><p>{...}</p><p>III.</p><p>{...}</p><p>{</p><p>return this.castrado;</p><p>}</p><p>public void imprime()</p><p>{</p><p>Console.WriteLine(this.nome + “\n” + this.rga + “\n” + ((this castrado) ? “sim” : “não”));</p><p>}</p><p>}</p><p>class Program</p><p>{</p><p>static void Main(string[] args)</p><p>{</p><p>Gato g1 = new Gato(“Frajola”, “sp555”, false);</p><p>g1.setCastrado(true);</p><p>g1.imprime();</p><p>}</p><p>}</p><p>Assinale a alternativa correta.</p><p>Resposta: B) Apenas a proposta de programa II atende ao requisito.</p><p>P) Relacione a palavra-chave da linguagem C# à sua respectiva descrição:</p><p>Palavra-chave:</p><p>I. this</p><p>II. base</p><p>III. throw</p><p>Descrição:</p><p>(P) Usada para gerar uma exceção</p><p>(Q) Em um método ou construtor, refere-se à superclasse.</p><p>A relação correta é:</p><p>Resposta: E) II – Q, III – P.</p><p>P) Considere o seguinte programa:</p><p>class Fruta</p><p>{</p><p>public String nome;</p><p>}</p><p>class Program</p><p>{</p><p>static void Main(string[] args)</p><p>{</p><p>Fruta f1 = new Fruta();</p><p>f1.nome = “Banana”;</p><p>Fruta f2 = new Fruta();</p><p>f1 = f2;</p><p>f2.nome = “Laranja”;</p><p>Fruta f3 = new Fruta();</p><p>f2 = f3;</p><p>f3.nome = “Manga”;</p><p>Console.WriteLine(“{0} {1} {2}”, f1.nome, f2.nome, f3.nome);</p><p>}</p><p>}</p><p>Qual a saída?</p><p>Resposta: D) Laranja Manga Manga</p><p>P) A respeito dos conceitos de programação orientada a objetos e da linguagem de programação C#, assinale</p><p>a opção correta:</p><p>Resposta: D) Na linguagem C#, métodos abstract de classes abstract não têm implementação definida. As</p><p>subclasses dessa classe abstrata definem implementação para tais métodos.</p><p>P) Heranças podem ser definidas como:</p><p>Resposta: B) A possibilidade do uso de uma classe em outra previamente existente reutilizando seus métodos e</p><p>atributos.</p><p>P) Abaixo temos um programa utilizando o Object:</p><p>namespace UnipEADprv</p><p>{</p><p>class A</p><p>{</p><p>public A(){ }</p><p>public String ToString()</p><p>{</p><p>return “X”;</p><p>}</p><p>public A Dois()</p><p>{</p><p>return (A)this.MemberwiseClone();</p><p>}</p><p>}</p><p>class Program</p><p>{</p><p>static void Main(string[] args)</p><p>{</p><p>A objA = new A();</p><p>A objB = objA;</p><p>A objC = objA.Dois();</p><p>if (Object.ReferenceEquals(objC, objA))</p><p>Console.WriteLine(“Y” + objA + “Z”);</p><p>else</p><p>if (Object.Equals(objB, objA))</p><p>Console.WriteLine(objA + “Y” + “Z”);</p><p>else</p><p>Console.WriteLine(objA + “Z” + “Y”);</p><p>}</p><p>}</p><p>}</p><p>Qual a sua saída?</p><p>Resposta: E) UnipEADprv.AYZ</p><p>P) Considere as afirmativas a seguir:</p><p>I – A classe Object pode ser herdeira de qualquer outra classe podendo receber serviços das classes pais. Ela</p><p>suporta todas as classes na hierarquia de classes recebendo serviços de baixo nível como herança.</p><p>II – A classe Object é classe base fundamental de todas as classes, ela é a raiz da hierarquia de tipos.</p><p>III – Qualquer método da classe Object pode ser sobrescrito nas subclasses utilizando o modificador virtual.</p><p>Podemos afirmar que:</p><p>Resposta: B) Apenas a afirmativa II está correta.</p><p>P) Entre as frases abaixo, coloque a letra “O” para vantagem dos Programas Orientados a Objetos e a letra</p><p>“E” para as vantagens dos Programas Estruturados:</p><p>(E) Em termos de velocidade de processamento tem um desempenho superior.</p><p>(E) O aprendizado do paradigma bem mais fácil no início.</p><p>(O) Uma distribuição de código um pouco mais lógica, funcional e melhor encapsulada, tornando a manutenção e a</p><p>extensão do código mais fácil e com menos riscos de inserção de erros.</p><p>(O) É mais fácil gerenciar o desenvolvimento deste tipo de software em grandes equipes, partindo de uma</p><p>especificação UML antes de iniciar o desenvolvimento do software em si.</p><p>(E) Sem a necessidade de ter uma base conceitual bem formado, bastante saber poucos comandos e para fazer um</p><p>programa simples.</p><p>Resposta: A) E – E – O – O – E.</p><p>P) Leia o texto extraído do site tecnoblog.net:</p><p>O fim dos smartphones com bateria removível</p><p>Por Felipe Ventura</p><p>Anos atrás</p><p>Especial</p><p>Eu não compro um smartphone com bateria removível há anos. Meu último foi o Galaxy S2 Lite, substituído por um</p><p>Nexus 4 em 2013. É um recurso cada vez mais raro de se encontrar, especialmente em se tratando de aparelhos top</p><p>de linha.</p><p>Como nota o The Next Web, o lançamento do LG V30 marca o fim dos smartphones high-end com bateria removível,</p><p>em se tratando de grandes fabricantes. E para algumas pessoas, isso é um problema.</p><p>LG V30</p><p>A Samsung começou a abandonar baterias removíveis à medida que migrou de materiais em seus smartphones,</p><p>deixando o plástico de lado para adotar metal e vidro. Vimos isso inicialmente no Galaxy Alpha, em 2014; e depois</p><p>nos flagships Galaxy S6 e Note 5, em 2015.</p><p>O Moto X nunca teve baterias removíveis. Elas são a exceção na linha Moto G (só o G5 e G4 Play têm isso), e ficam</p><p>reservadas para os modelos mais baratos, como o Moto C/C Plus e Moto E4.</p><p>A Sony adota baterias não-removíveis em seus flagships há muitos anos, desde os primeiros Xperia Z e Z1. A Asus</p><p>também faz o mesmo em quase toda a sua linha, com poucas exceções (como o Zenfone 2 Laser, Zenfone Selfie e</p><p>Zenfone Go).</p><p>Conforme o texto acima, cada vez mais o acesso à bateria dos smartphones está sendo limitado.</p><p>Em orientação a objeto, este processo no qual não temos mais acesso a um elemento interno, no caso a</p><p>bateria, se chama:</p><p>Resposta: D) Encapsulamento</p><p>P) Leia a definição:</p><p>“Acontece quando ocorre mais de um método de uma mesma classe com o mesmo nome, desde que suas listas de</p><p>parâmetros sejam diferentes”.</p><p>Qual alternativa relaciona-se com a definição apresentada?</p><p>Resposta: B) Sobrecarga.</p><p>P) Heranças podem ser definidas como:</p><p>class C1 : C2</p><p>{</p><p>public C1()</p><p>{</p><p>Console.WriteLine("1");</p><p>}</p><p>}</p><p>class C2</p><p>{</p><p>public C2()</p><p>{</p><p>Console.WriteLine("2");</p><p>}</p><p>}</p><p>class C3 : C1</p><p>{</p><p>public C3()</p><p>{</p><p>Console.WriteLine("3");</p><p>}</p><p>}</p><p>class Program</p><p>{</p><p>static void Main(string[] args)</p><p>{</p><p>C3 c3 = new C3();</p><p>}</p><p>}</p><p>Resposta: B) 2</p><p>1</p><p>3</p><p>P) A descrição abaixo refere-se a qual das técnicas apresentadas pelo paradigma da Programação Orientada</p><p>a Objetos?</p><p>“É uma forma de reutilização de software na qual uma nova classe é criada, observando membros de uma classe</p><p>existente e aprimorada com capacidades novas ou mesmo modificadas de acordo com a necessidade da... atual”.</p><p>Resposta: D) Herança</p><p>P) Leia a definição a seguir:</p><p>“É o princípio pelo qual duas ou mais classes derivadas de uma mesma superclasse podem invocar métodos que tem</p><p>a mesma identificação, mas comportamentos distintos, especializados para cada classe, derivada, usando para tanto</p><p>uma referência a um objeto do tipo da superclasse”.</p><p>Qual o conceito definido no trecho acima?</p><p>Resposta: C) Polimorfismo</p><p>P) Observe o código a seguir:</p><p>public class Pessoa</p><p>{</p><p>private String nome;</p><p>private String humor;</p><p>public Pessoa(String nome)</p><p>{</p><p>this.nome = nome;</p><p>this.humor = "bom";</p><p>}</p><p>public void saudar()</p><p>{</p><p>Console.WriteLine("Meu nome é " + nome + ".");</p><p>Console.WriteLine("Hoje estou de " + humor + " humor.");</p><p>}</p><p>}</p><p>Quais das alternativas mostra um comando válido para se criar um objeto dessa classe?</p><p>Resposta: E) Pessoa p1 = new Pessoa(“Maria”);</p><p>P) Os erros gerados durante a execução de um programa implementado na linguagem C# devem ser</p><p>controlados com uma estrutura, que pode combinar o uso de qual dos seguintes blocos de tratamento de</p><p>exceção apresentado a seguir?</p><p>Resposta: E) No mínimo com try e catch.</p><p>P) Um objeto pode ser definido como:</p><p>Resposta: A) Uma instância de uma classe.</p><p>P) O entendimento exato do que se trata a orientação é necessário, por exemplo, saber quais são os</p><p>requerimentos de uma linguagem para ser considerada dentro desse paradigma. Para isso, a linguagem</p><p>precisa atender a tópicos bastante importante,</p><p>os chamados pilares da Programação Orientada a Objeto. O</p><p>livro-texto cita três considerados fundamentais pela Microsoft. Um deles é a característica de segurança, que</p><p>impede o acesso externo ao funcionamento do objeto, por exemplo, quando clicamos no botão ligar da</p><p>televisão, não sabemos o que acontece internamente. Outro tópico é o relacionamento hierárquico de ações</p><p>e características, por exemplo, temos o aluno e o monitor em uma disciplina, ou o aluno e o representante de</p><p>sala. O monitor é um aluno com atribuições extras. O representante de sala é um aluno com mais</p><p>responsabilidades. A terceira característica é a possibilidade de uma mesma mensagem ser enviada para</p><p>objetos de natureza diferente, mas todos e... capazes de dar uma resposta. Para ilustrar esta característica</p><p>temos o botão direito do mouse. Conforme o local onde ele é clicado, ele responde de uma forma diferente.</p><p>Dessa forma, os três pilares da Programação Orientada a Objeto citados neste texto são:</p><p>Resposta: D) Polimorfismo, Encapsulamento, Herança.</p><p>P) O programa abaixo contém erros de sintaxe:</p><p>static void Main(string[] args)</p><p>{</p><p>/*Este programa fonte contém vários</p><p>* erros</p><p>* quantos são?</p><p>//</p><p>int a = Console.ReadLine();</p><p>Console.writeLine(a);</p><p>}</p><p>Resposta: B) 2</p><p>P) Dadas as declarações abaixo:</p><p>1) int[] a = new int [5];</p><p>2) float b = new float[3];</p><p>3) char[] c = new char[] {‘a’,’b’,’c’,’d’,’e’};</p><p>4) double d = double [];</p><p>5) String e[4];</p><p>Quais criarão um vetor?</p><p>Resposta: A) 1 e 3</p><p>P) Considere o seguinte cenário:</p><p>A lanchonete King Donald utiliza mistura em pó padrão para fazer o seu sorvete. A formula do pó padrão é alterada</p><p>para serem distribuídos em dois granulados base, o sabor baunilha ou o sabor chocolate. Na lanchonete a maquina</p><p>expressa que faz o sorvete a partir dos pós base produzindo três sabores, baunilha, chocolate e o misto.</p><p>A partir deste sorvete base são produzidos outros mais elaborados, como o shake (adição de leite, e batido), o</p><p>colegial (tamanho maior e cobertura), o sundae (tamanho maior, cobertura e frutas) e o mix (batido com diversos</p><p>tipos de chocolate).</p><p>A relação entre o sorvete base e os outros produtos em Orientação a Objeto é:</p><p>Resposta: E) Herança</p><p>P) Considere o programa abaixo:</p><p>class TesteErro</p><p>{</p><p>public void testar(int valor)</p><p>{</p><p>if (valor > 0)</p><p>{</p><p>DivideByZeroException er1 = new DivideByZeroException();</p><p>throw er1;</p><p>}</p><p>if (valor == 0)</p><p>{</p><p>IndexOutOfRangeException er2 = new IndexOutOfRangeException();</p><p>throw er2;</p><p>}</p><p>if (valor Lista = new List();</p><p>Lista.Add(1);</p><p>Lista.Add(2);</p><p>Lista.Add(3);</p><p>Lista.Add(4);</p><p>Lista.RemoveRange(0, 2);</p><p>Lista.Add(5);</p><p>foreach (int i in Lista)</p><p>{</p><p>Console.WriteLine(i);</p><p>}</p><p>}</p><p>P) Leia a descrição abaixo:</p><p>“A empresa Bluecar vende faz a transformação da picape Escuna. A partir da picape original adapta a sua caçamba</p><p>convertendo em ambulância, transporte de pônei, e carro funerário. Desta forma a picape que vem da fábrica com</p><p>uma motorização variável, transforma em ambulância com suporte ortopédico ou não, transporte de pôneis abertos</p><p>ou fechados, e carros fúnebres com cores variados.”</p><p>Utilizando estas informações monte o diagrama simples de classes.</p><p>Resposta: ?</p><p>P) Segundo diversos autores, o principal recurso introduzido pelo Paradigma Orientado a Objetos é a</p><p>herança e uma de suas consequências, o polimorfismo.</p><p>Explique o que é herança e como ela permite que se utilize polimorfismo entre objetos.</p><p>Resposta: A herança permite criar novas classes a partir de classes já existentes, aproveitando-se das características</p><p>existentes na classe a ser estendida, junto com o polimorfismo, nos permite selecionar funcionalidades que um</p><p>programa irá utilizar de forma dinâmica, durante sua execução.</p><p>P) Faça um programa que leia, num vetor v de números inteiros, dez números digitados pelo usuário e os</p><p>mostre na tela na sequência inversa a que foi data a entrada.</p><p>Resposta:</p><p>class Program</p><p>{</p><p>static void Main(string[ ] args)</p><p>{</p><p>Console.WriteLine("Digite 10 números: ");</p><p>int[ ] v = new int[10];</p><p>for (int i = 0; i Pilha = new List();</p><p>Pilha.Add(1);</p><p>Pilha.Add(2);</p><p>Pilha.Add(3);</p><p>Pilha.Add(4);</p><p>Pilha.RemoveRange(Pilha.Count -1, 1);</p><p>Pilha.RemoveRange(Pilha.Count -1, 1);</p><p>Pilha.Add(5);</p><p>foreach (int i in Pilha)</p><p>{</p><p>Console.WriteLine(i);</p><p>}</p><p>}</p><p>P) Considere o diagrama de classe abaixo:</p><p>Monte o código básico conforme o diagrama acima:</p><p>Resposta: Sugestão de resposta:</p><p>public class Pessoa</p><p>{</p><p>string Nome;</p><p>DateOnly Nascimento;</p><p>int CPF;</p><p>}</p><p>public class Aluno : Pessoa</p><p>{</p><p>string RA;</p><p>DateOnly Ingresso;</p><p>}</p><p>public class Funcionario : Pessoa</p><p>{</p><p>string Funcional;</p><p>float Salario;</p><p>}</p><p>public class Editora</p><p>{</p><p>string Nome;</p><p>}</p><p>public class Autor : Pessoa</p><p>{</p><p>Editora Editora;</p><p>}</p><p>public class Emprestimo</p><p>{</p><p>Aluno Aluno;</p><p>Funcionario Funcionario;</p><p>}</p><p>public class Livro</p><p>{</p><p>string Titulo;</p><p>Editora Editora;</p><p>Autor Autor;</p><p>string Isbn;</p><p>Boolean Status;</p><p>int Exemplar;</p><p>}</p><p>public class ItemEmprestimo</p><p>{</p><p>int NumItem;</p><p>Livro Livro;</p><p>DateOnly Saida;</p><p>DateOnly Devolucao;</p><p>}</p><p>P) Considere o seguinte programa:</p><p>class program</p><p>{</p><p>public static void Main(string[] args)</p><p>{</p><p>int a;</p><p>for (______________)</p><p>{</p><p>Console.WriteLine(a);</p><p>}</p><p>}</p><p>}</p><p>Qual é o código que deve ser escrito no retângulo vermelho para que a saída gerada pelo programa seja a</p><p>seguinte?</p><p>Resposta: a = 10; a >= 5; a—</p><p>P) Leia a descrição a seguir:</p><p>“Os bancos, para atender aos seus clientes, possuem</p><p>duas frente de trabalho. Os caixas eletrônicos espalhados pela</p><p>cidade, que são diretamente ligados ao banco, e as agencias tradicionais, que entre outras coisas, possuem os seus</p><p>postos bancários dentro das empresas, fazem o atendimento VIP dos clientes que têm conta premium e possuem um</p><p>anexo para o atendimento à pessoa jurídica”.</p><p>Utilizando estas informações monte o diagrama simples de classes.</p><p>Resposta: Sugestão de resposta incerta:</p><p>P) Reescreva corrigindo o programa abaixo:</p><p>static void Main(string[] args)</p><p>{</p><p>int[] v = new int[10];</p><p>float i;</p><p>for (i = 0; i = 0; i--)</p><p>{</p><p>Console.WriteLine(v[i]);</p><p>}</p><p>}</p><p>Resposta:</p><p>static void Main(string[] args)</p><p>{</p><p>int[] v = new int[10];</p><p>int i;</p><p>for (i = 0; i = 0; i--)</p><p>{</p><p>Console.WriteLine(v[i]);</p><p>}</p><p>}</p><p>P) Qual é a saída gerada pelo seguinte programa?</p><p>class Program</p><p>{</p><p>static void Main(string[] args)</p><p>{</p><p>string texto1 = "quatro";</p><p>string texto2 = "dois";</p><p>try</p><p>{</p><p>int numero1 = Convert.ToInt32(texto1);</p><p>int numero2 = Convert.ToInt32(texto2);</p><p>Console.WriteLine("O resultado é {0}", numero1 / numero2);</p><p>}</p><p>catch (DivideByZeroException)</p><p>{</p><p>Console.WriteLine("Erro tipo 1");</p><p>}</p><p>catch (FormatException)</p><p>{</p><p>Console.WriteLine("Erro tipo 2");</p><p>}</p><p>}</p><p>}</p><p>Resposta: A saída gerada é: Erro tipo 2</p><p>P) Dado o programa a seguir:</p><p>class Prova</p><p>{</p><p>private string disciplina;</p><p>private int questoes;</p><p>}</p><p>class Program</p><p>{</p><p>public static void Main(string[] args)</p><p>{</p><p>Prova p1 = new Prova();</p><p>Prova p2 = new Prova (“P001”,10);</p><p>}</p><p>}</p><p>Monte na classe Prova um construtor sem parâmetros atribuindo os valores “LTP” para disciplinas e 8</p><p>questões, e um construtor que faça a inicialização conforme a instancia p2.</p><p>Resposta:</p><p>class Prova</p><p>{</p><p>private string disciplina;</p><p>private int questoes;</p><p>public Prova()</p><p>{</p><p>this.disciplina = "LTP";</p><p>this.questoes = 8;</p><p>}</p><p>public Prova(string disciplina, int questoes)</p><p>{</p><p>this.disciplina = disciplina;</p><p>this.questoes = questoes;</p><p>}</p><p>}</p><p>P) Quando o programa a seguir é executado, resulta em um erro quando digitamos “ABC”.</p><p>class Program</p><p>{</p><p>static void Main(string[] args)</p><p>{</p><p>string var = Console.ReadLine();</p><p>double i = Convert.ToDouble(var);</p><p>Console.WriteLine("A variavel i vale {0}", i);</p><p>}</p><p>}</p><p>Reescreva o programa implementando o tratamento de erro para o caso FormatException cujo o resultado é:</p><p>Resposta:</p><p>class Program</p><p>{</p><p>static void Main(string[] args)</p><p>{</p><p>string var = Console.ReadLine();</p><p>try</p><p>{</p><p>double i = Convert.ToDouble(var);</p><p>Console.WriteLine("A variavel i vale {0}", i);</p><p>}</p><p>catch (System.FormatException err)</p><p>{</p><p>Console.WriteLine("Não é possível atribuir a string {0} a um Objeto Double", var);</p><p>}</p><p>}</p><p>}</p><p>P) Faça um programa que leia na variável “nome”, o nome de uma pessoa, na variável “idade”, a sua idade e</p><p>na variável “peso”, o seu peso considerando uma casa depois da virgula. Em seguida o programa deve</p><p>mostrar na tela as três informações conforme a saída a seguir, sendo que a saída das informações foi escria</p><p>em apenas uma linha utilizando-se técnica de formatação composta.</p><p>Resposta:</p><p>class Program</p><p>{</p><p>static void Main(string[] args)</p><p>{</p><p>string nome = Console.ReadLine();</p><p>int idade = int.Parse(Console.ReadLine());</p><p>float peso = float.Parse(Console.ReadLine());</p><p>Console.WriteLine("Nome:{0} idade:{1} peso:{2}", nome, idade, Math.Round(peso, 1));</p><p>}</p><p>}</p><p>P) Ao longo da história da computação, foram utilizados basicamente três paradigmas de desenvolvimento</p><p>de sistemas. O primeiro foi um paradigma sem nome, o qual, mais tarde, ficou conhecido como Paradigma</p><p>Não Estruturado, justamente pelo fato de ter sido substituído pelo Paradigma Estruturado. Atualmente, o</p><p>principal paradigma de desenvolvimento de sistemas é o Paradigma Orientado a Objetos.</p><p>Explique quais são os dois componentes de um paradigma de desenvolvimento de sistema.</p><p>Resposta: São eles: Atributos e Métodos. Os atributos descrevem as características da classe e os métodos, as</p><p>ações que a classe executa.</p><p>P) Desenhe a classe em UML, utilizando a descrição a seguir.</p><p>“Um computador pode ser montado com diversas configurações, sendo que é importante saber qual processador, o</p><p>tamanho da sua memória RAM e o espaço em disco, pois afetam diretamente no seu desempenho Basicamente,</p><p>para se começar a usar o computador basta ligá-lo e, se for necessário, fazer a sua configuração”.</p><p>Resposta: Sugestão de resposta incerta:</p><p>P) A principal inovação introduzida pelo Paradigma Estruturado em relação ao Paradigma Não Estruturado foi</p><p>o abandono do uso de desvios incondicionais. Assim, uma linguagem estruturada só utiliza desvios</p><p>condicionais como “if”, “for”, “while” e “do-while”. O próximo paradigma, o Paradigma Orientado a Objetos</p><p>inova ao introduzir o conceito de objeto (entre diversos outros conceitos). .</p><p>Explique o que é um objeto e explique suas partes componentes</p><p>Resposta: Objeto é uma instancia de uma classe, capaz de armazenar estados, reagir a mensagens e se relacionar a</p><p>outros objetos.</p><p>P) Preencha corretamente os espaços do programa abaixo para que resulte na tela abaixo:</p><p>public class Pessoa</p><p>{</p><p>public Pessoa(String nome, int CPF)</p><p>{</p><p>this.Nome = nome;</p><p>this.CPF = CPF;</p><p>}</p><p>protected String Nome;</p><p>protected int CPF;</p><p>}</p><p>public class Aluno : Pessoa</p><p>{</p><p>public String RA;</p><p>public Aluno(): 01</p><p>{</p><p>this.RA = "AB1234XZ";</p><p>}</p><p>public override string ToString()</p><p>{</p><p>return "NOME:" + 02 + "\nCPF:" + 03 + "\nRA:" + 04</p><p>}</p><p>}</p><p>class Program</p><p>{</p><p>static void Main(string[] args)</p><p>{</p><p>Aluno a = new Aluno();</p><p>Console.WriteLine(a);</p><p>}</p><p>}</p><p>Resposta: 01 = base("Mario", 111111)</p><p>02 = this.Nome</p><p>03 = this.CPF</p><p>04 = this.RA;</p><p>P) Considere o seguinte programa:</p><p>class Program</p><p>{</p><p>public static void Main(string[] args)</p><p>{</p><p>int a;</p><p>for(a = 0; a</p><p>1</p><p>P) Ao se escrever um programa em uma linguagem de alto nível tradicional como o C, o Pascal ou Cobol,</p><p>utiliza-se um editor de arquivos texto para escrever o código. Esse código, então é traduzido para linguagem</p><p>de maquina por um processo automático chamado compilação. Este código compilado, então, pode ser</p><p>executado diretamente pelo sistema para o qual ele foi compilado.</p><p>Explique como é o processo de elaboração de um programa usando a linguagem C# da Microsoft.</p><p>Resposta: O C# é uma linguagem de programação orientada a objetos e orientada a componentes. O c# fornece</p><p>construções de linguagem para dar suporte direto a esses conceitos, você define os tipos e seu comportamento,</p><p>criando classes com atributos e métodos, a classe sendo instanciada gera um objeto, que define os rumos do</p><p>programa em questão. A linguagem fornece a interface de execução do compilador, gerando assim um programa ao</p><p>ser executado.</p><p>P) Considere o programa abaixo:</p><p>class Livro</p><p>{</p><p>public Livro() : this(new Autor(), new Editora(), "") {}</p><p>public Livro(Autor a, Editora e, string t)</p><p>{</p><p>this.autor = a;</p><p>this.editora = e;</p><p>this.titulo = t;</p><p>}</p><p>public Autor autor;</p><p>public Editora editora;</p><p>public string titulo;</p><p>}</p><p>class Autor</p><p>{</p><p>public string nome;</p><p>}</p><p>class Editora</p><p>{</p><p>public string nome;</p><p>}</p><p>class Program</p><p>{</p><p>static void Main(string[] args)</p><p>{</p><p>Livro I = new Livro();</p><p>I.titulo = "Um cedo em Buenos Aires";</p><p>I.autor.nome = "H.B";</p><p>I.editora.nome = "Kotter";</p><p>Console.WriteLine(I.titulo+I.autor.nome+I.editora.nome);</p><p>}</p><p>}</p><p>Reescreva o programa fazendo o encapsulamento pelo método dos getters e setters. Apenas os métodos</p><p>necessários para o funcionamento do programa.</p><p>Resposta: ?</p><p>P) Uma vez que são definidas as classes e que são utilizadas dentro odo programa em forma de objetos,</p><p>estes podem assumir duas formas de existência dentro do programa: objetos transientes ou objetos</p><p>persistentes. Qual a diferença entre objetos transientes e objetos persistentes?</p><p>Resposta: Transientes trabalham em meios voláteis, em memória, uma vez finalizada a execução do programa todos</p><p>os dados referentes ao objeto são perdidos. Persistentes trabalham em meios não voláteis, discos ou banco de</p><p>dados, permitindo que mesmo após finalizada a execução do programa os dados possam ser recuperados em uma</p><p>próxima execução.</p><p>P) Considere a seguinte classe Produto:</p><p>class Produto</p><p>{</p><p>protected string nome;</p><p>protected double preco;</p><p>public Produto(string nome, double preco)</p><p>{</p><p>this.nome = nome;</p><p>this.preco = preco;</p><p>}</p><p>public virtual void imprimeProduto()</p><p>{</p><p>Console.WriteLine("{0} custa R${1}", nome, preco);</p><p>}</p><p>}</p><p>Escreva um programa (apenas o método Main) que instancie dois objetos da classe Produto e imprima seu</p><p>conteúdo gerando a seguinte saída:</p><p>Resposta:</p><p>class Program</p><p>{</p><p>static void Main(string[] args)</p><p>{</p><p>Produto produto1 = new Produto("Tomatinho", 3.0);</p><p>Produto produto2 = new Produto("Cebolina", 2.5);</p><p>produto1.imprimeProduto();</p><p>produto2.imprimeProduto();</p><p>}</p><p>}</p>

Mais conteúdos dessa disciplina