Logo Passei Direto
Buscar
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

Prévia do material em texto

<p>MUTIPLA ESCOLHA</p><p>P) A respeito dos conceitos de programação orientada a objetos e da</p><p>linguagem de programação C#, assinale a opção correta:</p><p>a) Na linguagem C# é possível haver polimorfismo apenas por meio de</p><p>implementação de herança entre classes.</p><p>b) Em uma hierarquia de classes na linguagem C#, uma subclasse</p><p>sobrescreve qualquer método da sua superclasse desde que a palavra</p><p>virtual esteja declarada no método da subclasse</p><p>c) Na linguagem C#, os métodos de uma classe que são declarados como</p><p>virtual necessitam que sejam implementados na subclasse.</p><p>d) Na linguagem C# os métodos abstract de classe abstract não tem</p><p>implementação definida. As subclasses dessa classe abstrata definem</p><p>implementação para tais métodos</p><p>e) Na linguagem C#, métodos abstract de classe absctract precisam ser</p><p>declarados com override nas subclasses quando tais métodos são</p><p>implementados.</p><p>P) Sobre a declaração e uso de classes, métodos e atributos especificamente</p><p>na linguagem de programação C#, é correto afirmar que:</p><p>a) Em uma mesma classe pode-se declarar dois métodos que apresentam o</p><p>mesmo nome.</p><p>b) EM um método de uma classe filha, a clausula this é utilizada para</p><p>acessar um atributo da classe mãe.</p><p>c) Uma classe filha não pode sobrepor um método ou atributo da classe mãe</p><p>se na classe mãe eles estiverem com o atributo protected.</p><p>d) Uma classe abstrata pode ser implementada por uma classe concreta</p><p>através da instrução implements.</p><p>e) Uma interface pode ter atributos que podem ser utilizados nas classes</p><p>herdeiras.</p><p>P) Analise as afirmativas a seguir:</p><p>I – Mensagem é uma chamada a um objeto para invocar um de seus métodos,</p><p>ativando um comportamento por sua classe. Também pode ser direcionada</p><p>diretamente a uma classe (atráves de uma invocação .... Estático)</p><p>II – Herança é o mecanismo pelo qual uma classe pode estender outra classe,</p><p>aproveitando seus comportamentos (métodos) e variáveis possíveis</p><p>(atributos).</p><p>III – Associação é o mecanismo pelo qual um objeto utiliza os recursos de</p><p>outros. Elas podem ter a forma “um-para-um”, quando um objeto troca</p><p>mensagens com outro, ou “um-para-muitos”, quando um objeto troca mensagens</p><p>com uma coleção de outros objetos</p><p>Sobre as afirmativas apresentadas, assinale a alternativa correta:</p><p>a) Somente as afirmativas I e II estão corretas</p><p>b) Somente as afirmativas I e III estão corretas</p><p>c) Somente as afirmativas II e III estão corretas</p><p>d) Somente a afirmativa III está correta</p><p>e) As afirmativas I, II e III estão corretas.</p><p>P) Um objeto pode ser definido como:</p><p>a) Uma instancia de uma classe</p><p>b) Uma característica de uma coisa do mundo real.</p><p>c) Uma função</p><p>d) Uma característica ou comportamento de uma classe</p><p>e) Um trecho do código utilizado apenas em tempo de desenvolvimento.</p><p>P) Relacione as palavras-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 ) Usado para gerar um exceção</p><p>( Q ) Em um método construtor, refere-se a superclasse</p><p>A relação correta é:</p><p>a) III – Q, I – P</p><p>b) I – P, III – Q</p><p>c) I – Q, II – P</p><p>d) II – P, III – Q</p><p>e) II – Q, III – P</p><p>P) A descrição abaixo refere-se a qual das técnicas apresentadas pelo</p><p>paradigma de Programação Orientada a Objetos</p><p>“É uma forma de reutilização de software na qual uma nova classe é criada,</p><p>observando membros de uma classe existente e aprimorada com capacidades</p><p>novas ou mesmo modificadas de acordo com a necessidade da classe atual”</p><p>a) Polimorfismo</p><p>b) Reutilização de classes</p><p>c) Hereditariedade</p><p>d) Herança</p><p>e) Instanciação</p><p>P) Heranças podem ser definidas como:</p><p>a) Ações de uma classe executadas em outra classe.</p><p>b) A possibilidade do uso de uma classe em outra previamente existente</p><p>reutilizando seus métodos e atributos.</p><p>c) Característica de operações de um objeto herdadas de uma classe.</p><p>d) Ações executadas por uma classe, sempre utilizadas em tempo de</p><p>execução.</p><p>e) A reutilização de todos os métodos de um objeto instanciado a partir</p><p>de uma classe encapsulada e polimórfica.</p><p>P) Entre as principais vantagens da Programação Orientada a Objetos, podemos</p><p>citar:</p><p>a) Permite aos programadores introduzir programas diretamente na memória</p><p>do computador.</p><p>b) Torna o código da linguagem binaria mais acessível</p><p>c) Torna o projeto mais barato</p><p>d) Torna o sistema mais eficiente no uso de memoria</p><p>e) Tem uma alta usabilidade.</p><p>P) Um atributo serve para:</p><p>a) Indicar as possíveis informações armazenadas por um objeto de uma</p><p>classe, representando o estado de cada objeto.</p><p>b) Definir o tipo de classe</p><p>c) Procedimentos que formam os comportamentos e serviços oferecidos por</p><p>objetos de uma classe.</p><p>d) Descrever um objeto.</p><p>e) Comportamentos de uma classe</p><p>P) Considere as afirmativas a seguir:</p><p>I – A classe Object pode ser herdeira de qualquer outra classe podendo</p><p>receber serviços das classes pais. Ela suporta todas as classes na</p><p>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</p><p>raiz da hierarquia de tipos.</p><p>III – Qualquer método da classe Object pode ser sobrescrito nas subclasses</p><p>utilizando o modificador virtual.</p><p>Podemos afirmar que:</p><p>a) Apenas a afirmativa I está correta.</p><p>b) Apenas a afirmativa II está correta.</p><p>c) Apenas a afirmativa III está correta.</p><p>d) As afirmativas I e II estão corretas.</p><p>e) As afirmativas I e III estão corretas</p><p>P) Os erros gerados durante a execução de um programa implementado na</p><p>linguagem C# devem ser controlados com uma estrutura, que pode combinar o</p><p>uso de qual dos seguintes blocos de tratamento de exceção, apresentados a</p><p>seguir:</p><p>a) No mínimo com try e finally</p><p>b) No mínimo com try e catch ou try e finally</p><p>c) Obrigatoriamente try, catch e finally</p><p>d) No mínimo com try e catch, ou try e finally ou try, cath e finally</p><p>e) No mínimo com try e catch</p><p>P) Entre as frases abaixo, coloque a letra “O” para vantagem dos Programas</p><p>Orientados a Objetos e a letra “E” para as vantagens dos Programas</p><p>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</p><p>encapsulada, tornando a manutenção e a extensão do código mais fácil e com</p><p>menos riscos de inserção de erros.</p><p>( O ) É mais fácil gerenciar o desenvolvimento deste tipo de software em</p><p>grandes equipes, partindo de uma especificação UML antes de iniciar o</p><p>desenvolvimento do software em si.</p><p>( E ) Sem a necessidade de ter uma base conceitual bem formado, bastante</p><p>saber poucos comandos e para fazer um programa simples.</p><p>a) E – E – O – O – E</p><p>b) O – O – O – O – O</p><p>c) E – E – E – O – E</p><p>d) O – E – O – O – E</p><p>e) E – O – E – E – O</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>a) 1 e 3</p><p>b) 2 e 4</p><p>c) 3 e 5</p><p>d) 1 e 2</p><p>e) 2 e 3</p><p>P) Leia a definição a seguir:</p><p>“É o princípio pelo qual duas ou mais classes derivadas de uma mesma</p><p>superclasse podem invocar métodos que tem a mesma identificação, mas</p><p>comportamentos distintos, especializados para cada classe, derivada, usando</p><p>para tanto uma referência a um objeto do tipo da superclasse”</p><p>Qual o conceito definido no trecho acima?</p><p>a) Construtor</p><p>b) Herança</p><p>c) Polimorfismo</p><p>d) Encapsulamento</p><p>e) Abstração</p><p>P) Dos conjuntos de ferramentas fornecidos pelo C# qual não é utilizado para</p><p>a programação de laços?</p><p>a) for</p><p>b) foreach</p><p>c) while</p><p>d) do while</p><p>e) switch case</p><p>P) Segundo a Microsoft quais os pilares da programação orientada a objetos?</p><p>a) Polimorfismo, herança, associação</p><p>b) Abstração, herança, encapsulamento</p><p>c) Herança, polimorfismo, encapsulamento</p><p>d) Herança,</p><p>abstração, instanciação</p><p>e) Classe, atributo e método.</p><p>P) Leia as definições de laços a seguir:</p><p>I – Possui três componentes para controle de suas interações (voltas de</p><p>laço) sendo que o primeiro comportamento refere-se à declaração da variável</p><p>de controle do laço. O segundo componente é uma expressão lógica que tem</p><p>condição de encerramento a cada interação e o terceiro componente é o</p><p>controle do laço que determinará o passo de cada interação.</p><p>II – É usado quando não sabemos o número de vezes que devemos executar um</p><p>bloco de código, mas apenas a condição que deve ser satisfeita para executar</p><p>a condição é uma expressão booleana que deverá ser verdadeira para garantir</p><p>pelo menos a primeira ou a próxima interação caso contrário o bloco não será</p><p>executado.</p><p>III – É usado para quando queremos que o bloco do código seja executado pelo</p><p>menos uma vez. A condição satisfeita se encontra no fim do bloco do código e</p><p>não no começo.</p><p>a) I-for, II-forech, III-switch</p><p>b) I-for, II-while. III-switch</p><p>c) I-foreach. II-do while. III-while</p><p>d) I-for, II-while, III-do while</p><p>e) I-for, II-do while, III-while</p><p>P) O programa a seguir apresenta um erro, mas todos do mesmo tipo:</p><p>namespace ProvaHr</p><p>{</p><p>public class ContaCorrente</p><p>{</p><p>private int 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 < saldo)</p><p>saldo -= valor;</p><p>else</p><p>Console.WriteLine("Saldo insuficiente");</p><p>}</p><p>}</p><p>public class ContaEspecial : ContaCorrente</p><p>{</p><p>public double limite;</p><p>public ContaEspecial(String cliente, double limite) : base(cliente)</p><p>{</p><p>this.limite = limite;</p><p>}</p><p>public void sacar(float valor)</p><p>{</p><p>if (valor < (saldo + limite))</p><p>saldo -= valor;</p><p>else</p><p>Console.WriteLine("Saldo insuficiente");</p><p>}</p><p>}</p><p>class Program</p><p>{</p><p>static void Main(string[] args)</p><p>{</p><p>ContaCorrente c1 = new ContaCorrente("Maria");</p><p>c1.depositar(100);</p><p>ContaEspecial c3 = new ContaEspecial("Paula", 500.00);</p><p>c3.sacar(50);</p><p>}</p><p>}</p><p>}</p><p>Considere as possíveis soluções para o erro, sem comprometer a segurança:</p><p>I – Colocar o construtor padrão nas classes ContaCorrente e ContaEspecial</p><p>II – Alterar a privacidade dos atributos número, cliente e saldo de private para proteced</p><p>II – Alterar a privacidade de todos os métodos depositar e sacar para private</p><p>a) Apenas a solução I corrige o programa</p><p>b) Apenas a solução II corrige o programa</p><p>c) Apenas a solução III corrige o programa</p><p>d) Mais de uma solução corrige o programa</p><p>e) Nenhuma das soluções corrige o programa</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>}</p><p>Qual o resultado será apresentado como saída de execução do programa</p><p>Program?</p><p>a) O programa compila e o número 4 é exibido</p><p>b) O programa compila e o número 43 é exibido</p><p>c) Um erro na linha 10 faz o programa não compilar</p><p>d) Nada é exibido pois B não tem construtor.</p><p>e) O programa compila e o número 7 é exibido</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 em relação a classe</p><p>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</p><p>v uma variável que será utilizada dentro do método</p><p>III – Ela possui um método cujo cabeçalho é public string result(int v)</p><p>sendo v uma variável que será utilizada dentro do método</p><p>Assinale a alternativa correta:</p><p>a) Somente a conclusão I está correta</p><p>b) As conclusões II e III estão corretas.</p><p>c) As três conclusões estão corretas</p><p>d) As três conclusões estão erradas.</p><p>e) As conclusões I e III estão corretas.</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>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);</p><p>Console.ReadKey();</p><p>}</p><p>Programa II</p><p>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);</p><p>Console.ReadKey();</p><p>}</p><p>Programa III</p><p>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);</p><p>Console.ReadKey();</p><p>}</p><p>Qual a afirmação é correta?</p><p>a) Apenas o programa I mostra a tela anterior.</p><p>b) Apenas o programa II mostra a tela anterior.</p><p>c) Apenas o programa III mostra a tela anterior.</p><p>d) Mais de um programa mostram a tela.</p><p>e) Nenhum dos programas apresentados mostra a tela anterior.</p><p>P) Qual a tela de saída do programa a seguir:</p><p>static void Main(string[] args)</p><p>{</p><p>string s, s1, d1, e1, m1;</p><p>s1 = “Orientação”;</p><p>s = “Objeto”;</p><p>s += (“ a “+s1);</p><p>d1 = s.Substring(0,6);</p><p>e1 = s.Substring(s.Length - 10, 10);</p><p>m1 = s.Substring(6,3);</p><p>Console.WriteLine(e1+m1+d1);</p><p>}</p><p>a) Orientação a Objeto</p><p>b) O a ObjetoaçãOrient</p><p>c) O a ObjetoaçãOrient</p><p>d) Objeto a Orientação</p><p>e) A ObjetoOrientação</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>Qual das alternativas mostra um comento valido para se criar um objeto dessa classe?</p><p>a) Pessoa p1 = new Pessoa(Maria);</p><p>b) Pessoa p1 = new Pessoa();</p><p>c) Pessoa p1 = new Pessoa(“Maria”,”bom”);</p><p>d) Pessoa p1 = new Pessoa(“), p1.nome = “Maria”;</p><p>e) Pessoa p1 = new Pessoa (“Maria”)</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>a) 2 4 8</p><p>b) 2 4 5</p><p>c) 2 5 8</p><p>d) 3 4 8</p><p>e) 3 5 9</p><p>P) Observando o programa a seguir:</p><p>namespace ConsoleAplication1</p><p>{</p><p>public class Data {</p><p>public int dia, mes, ano;</p><p>public Data(int d,</p><p>int m, int a)</p><p>{</p><p>dia = d; mes = m; ano = a;</p><p>}</p><p>public virtual void get()</p><p>{</p><p>Console.WriteLine(dia + "/" + mes + "/" + ano);</p><p>}</p><p>public override string ToString()</p><p>{</p><p>return dia + "/" + mes + "/" + ano;</p><p>[....]</p><p>}</p><p>public class Funcionario : Pessoa {</p><p>public Data admissao;</p><p>public float salario;</p><p>public Funcionario(string nome, int id, Data nasc, Data admiss, float sal) : base(nome, id,</p><p>nasc) {</p><p>admissao = admiss;</p><p>salario = sal;</p><p>}</p><p>}</p><p>public class Gerente : Funcionario {</p><p>public string deparamento;</p><p>public Data inicioGerencia;</p><p>public Gerente(string depto, Data inic, float sal, Data adm, string nome, int id): base(nome, id,</p><p>nasc, adm, sal) {</p><p>departamento = depto;</p><p>inicioGerente - inic;</p><p>}</p><p>}</p><p>public class Cliente : Pessoa {</p><p>public double limCredito;</p><p>public Cliente(string nome, int id, Data nasc, double lim): base(nome, id, nasc) {</p><p>limCredito = lim;</p><p>}</p><p>}</p><p>public class Banco {</p><p>public static float valorEmprestimo(Pessoa p) {</p><p>float valor;</p><p>if(p is Gerente) {</p><p>valor = ((Gerente)p).salario * 10;</p><p>}</p><p>else if(p is Funcionario) {</p><p>valor = ((Funcionario)p).salario * 5;</p><p>}</p><p>Else {</p><p>valor = 0;</p><p>}</p><p>}</p><p>Qual dos métodos a seguir implementa o POLIMORFISMO?</p><p>a) Data.get();</p><p>b) Banco.ReajSalF</p><p>c) Banco.ReajLimcr</p><p>d) Funcionario:Pessoa</p><p>e) Banco.valorEmprestimo</p><p>P) No programa abaixo qual o código que deve ser colocado no quadro 1 para</p><p>que a saída corresponda à tela.</p><p>“TELA COM PALAVRA CONTA”</p><p>static void Main(string[] args)</p><p>{</p><p>List<char> palavra = new List<char>();</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>foreach (char c in palavra) {</p><p>Console.Write(c);</p><p>}</p><p>Console.ReadLine();</p><p>}</p><p>a) palavra.Remove(‘t);</p><p>palavra.remove(o);</p><p>b) palavra.RemoveAt(6);</p><p>palavra.Remove(‘t’);</p><p>palavra.Remove(‘a’);</p><p>palavra.Add(‘a’);</p><p>c) palavra.RemoveAt(6);</p><p>palavra.RemoveAt(7);</p><p>d) palavra.Remove(‘o’);</p><p>palavra.REmoveAt(6);</p><p>e) palavra.RemoveAt(6);</p><p>palavra.Remove(‘o’);</p><p>DISERTATIVAS</p><p>P). Ao longo da história da computação, foram utilizados basicamente três</p><p>paradigmas de desenvolvimento de sistemas. O primeiro foi um paradigma sem</p><p>nome, o qual, mais tarde, ficou conhecido como Paradigma Não Estruturado,</p><p>justamente pelo fato de ter sido substituído pelo Paradigma Estruturado.</p><p>Atualmente o principal paradigma de desenvolvimento de sistemas é o</p><p>Paradigma Orientado a Objetos.</p><p>Explique quais são os dois componentes de um paradigma de desenvolvimento de</p><p>sistemas.</p><p>Atributos e métodos;</p><p>os atributos descrevem as características da classe</p><p>e os métodos, as ações que a classe executa.</p><p>P). Segundo diversos autores, o principal recurso introduzido pelo</p><p>Paradigma Orientado a Objetos é a herança e uma de suas consequências, o</p><p>polimorfismo. Explique o que é herança e como ela permite que se utilize</p><p>polimorfismo entre objetos.</p><p>A herança permite criar novas classes a partir de classes já existentes, aproveitando-se</p><p>das características existentes na classe a ser estendida, junto com o polimorfismo, nos</p><p>permite selecionar funcionalidades que um programa irá utilizar de forma dinâmica,</p><p>durante sua execução.</p><p>P). Uma vez que são definidas as classes e que são utilizadas dentro odo</p><p>programa em forma de objetos, estes podem assumir duas formas de existência</p><p>dentro do programa: objetos transientes ou objetos persistentes. Qual a</p><p>diferença entre objetos transientes e objetos persistentes?</p><p>Transientes trabalham em meios voláteis, em memória, uma vez finalizada a execução do</p><p>programa todos os dados referentes ao objeto são perdidos.</p><p>Persistentes trabalham em meios não voláteis, discos ou banco de dados, permitindo que</p><p>mesmo após finalizada a execução do programa os dados possam ser recuperados em</p><p>uma próxima execução.</p><p>P). A principal inovação introduzida pelo Paradigma Estruturado em relação</p><p>ao Paradigma Não Estruturado foi o abndono do uso de desvios incondicionais.</p><p>Asssim uma linguagem estruturada só utiliza desvios condicionais como</p><p>“if”, “for”, “while” e “do-while”. O próximo paradigma, o Paradigma</p><p>Orientado a Objetos inova ao introduzir o conceito de objeto (entre diversos</p><p>outros conceitos). Explique o que é um objeto e explique suas partes</p><p>componentes</p><p>Objeto é uma instancia de uma classe, capaz de armazenar estados, reagir a mensagens</p><p>e se relacionar a outros objetos</p><p>P). Considerando a afirmação a seguir:</p><p>“As filas são estruturas baseadas no princípio FIFO (first in, first out),</p><p>em que os elementos que foram inseridos no início são os primeiros a serem</p><p>removidos”</p><p>Baseando-se neste princípio, crie uma lista enumerada de inteiros chamada “Lista” e</p><p>enfileire os números 1,2,3,4 e depois, retire da fila dois elementos. Enfileire o número 5 e</p><p>mostre na tela a fila completa.</p><p>class Program</p><p>{</p><p>public static void Main(string[] args)</p><p>{</p><p>List<int> Lista = new List<int>();</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) 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 deve ser escrito no retângula vermelho para que a saída gerada pelo programa</p><p>seja a seguinte?</p><p>a = 10; a >= 5; a--</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</p><p>cujo resultado é:</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</p><p>Objeto Double", var);</p><p>}</p><p>}</p><p>}</p><p>P) O programa a seguir não apresenta encapsulamento:</p><p>Public class Telefone {</p><p>public String modelo;</p><p>}</p><p>Public class Prova01 {</p><p>public static void Main(String[] args) {</p><p>Telefone telefone;</p><p>telefone = new Telefone();</p><p>telefone modelo = “FPS01”;</p><p>Console.WriteLine(“Modelo...........”+telefone modelo);</p><p>}</p><p>}</p><p>Faça o encapsulamento usando os métodos getNome() e setNome() da classe Telefone, e</p><p>modifique a classe Prova01.</p><p>private class Telefone</p><p>{</p><p>private string modelo;</p><p>public string getModelo()</p><p>{</p><p>return this.modelo;</p><p>}</p><p>public void setModelo(string modelo)</p><p>{</p><p>this.modelo = modelo;</p><p>}</p><p>}</p><p>public class Prova01</p><p>{</p><p>public static void Main(string[] args)</p><p>{</p><p>Telefone telefone;</p><p>telefone = new Telefone();</p><p>telefone.setModelo("FPS01");</p><p>Console.WriteLine("Modelo:{0}", telefone.getModelo());</p><p>}</p><p>}</p><p>}</p><p>P) Monte na classe Prova um construtor sem parâmetros atribuindo os valores “LTP” para</p><p>disciplinas e 8 questões, e um construtor que faça a inicialização conforme a instancia p2.</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>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) Considere a classe Produto abaixo:</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>Considere também a classe ProdutoPerecivel abaixo:</p><p>class ProdutoPerecivel : Produto</p><p>{</p><p>protected string validade;</p><p>public ProdutoPerecivel(string nome, double preco, string validade) : base(nome, preco)</p><p>{</p><p>this.validade = validade;</p><p>}</p><p>public override void imprimeProduto()</p><p>{</p><p>Console.WriteLine("{0} custa R${1} e é valido até {2}", nome, preco, validade);</p><p>}</p><p>}</p><p>Escreva qual será a saída gerada pela execução do programa abaixo, que utiliza as classes</p><p>Produto e ProdutoPerecivel.</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 ProdutoPerecivel("Cebolina", 2.5, "20/5/2016");</p><p>produto1.imprimeProduto();</p><p>produto2.imprimeProduto();</p><p>}</p><p>}</p><p>Tomatinho custa R$3</p><p>Cebolinha custa R$2,5 e é valido até 20/5/2016</p>

Mais conteúdos dessa disciplina