Baixe o app para aproveitar ainda mais
Prévia do material em texto
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS Instituto de Ciências Exatas e Informática — Sistemas de Informação Prof: Saulo Augusto de Paula Pinto – saulo@pucminas.br Disciplina: Programação Orientada por Objetos 1o Semestre de 2016 Lista de Exercícios 2 Data de entrega das questões 3 a 8 = data do primeiro teste: 15/03/20156 Data da postagem das soluções das questões 1 e 2: 16/03/2016 até às 23:59 (horário do SGA). Instruções As soluções de 1) e 2) devem devem ser postadas no SGA até a data acima em um só arquivo, da seguinte forma: crie um programa que execute (ou exiba a resposta) de cada um dos dois itens desta lista. Use dois procedimentos para isso, cada um chamado do procedimento Main da classe Program, separados por mensagens para pressionar uma tecla para executar o próximo “exercício”. Use Console.ReadKey() para “ler” a tecla pressionada. As soluções de 3) a 8) devem ser entregues redigidas à mão e seguir as regras de ATP: “Obs. 1: As respostas devem ser devolvidas escritas à mão, com letra legível e com seu nome em destaque na primeira página. Use apenas um grampo no canto superior esquerdo de seu trabalho. Não use clips, prendedores, capas, plásticos, envelopes ou qualquer outra coisa do tipo, pois você pode ser penalizado na pontuação em 30% do valor total da lista. Obs. 2: Não é proibida a troca de ideias entre alunos. Entretanto, cada aluno deve tentar encontrar as soluções individualmente. Caso encontre dificuldades deve discutir com os colegas. Caso a dúvida persista deve procurar os monitores e o professor.” Considerando a classe Combustível, vista em sala de aula, faça o que é pedido: Altere-a para que seja uma implementação de um tipo abstrato de dados (TAD). Inclua pelo menos uma construtora pública. Inclua métodos de acesso para alterar o preço por litro. Este método só deve alterar o valor do preço por litro se o argumento for maior que zero. Crie alguns objetos e clone-os, alterando alguns preços de litros de combustível. Faça o código seguinte funcionar completando-o adequadamente. Leia os comentários, pois podem pedir algum detalhe que falta implementar... class ConjuntoDeInteiros { private int[] conjunto; // construtora(s) entram aqui: /** Função de acesso que retorna o elemento na posição pedida SE a posição for válida. Você deve testar isso! */ public int GetElemento(int posição) { return conjunto[posiçao] } // Valem comentários da função anterior, em relação à posição do elemento public void SetElemento(int elemento, int posição) { this.conjunto[posição] = elemento; } public static ConjuntoDeInteiros União(ConjuntoDeInteiros c1, ConjuntoDeInteiros c2){ // algoritmo iniciado em sala e feito na lista 1 } } // classe No Main: // Você deve declarar o que for necessário, criar objetos, etc // Deve-se ler os elementos dos conjuntos a e b da entrada-padrão // Se quiser, você pode escrever uma função construtora que receba um vetor de // inteiros com os elementos. Isso é mais uma opção para os clientes da classe! int tamanhoA, // número de elementos do conjunto A tamanhoB; // número de elementos do conjunto B a = new ConjuntoDeInteiros(tamanhoA); b = new ConjuntoDeInteiros(tamanhoB); c = ConjuntoDeInteiros.União(a, b); // Deve-se imprimir os elementos dos conjuntos na saída-padrão Qual a ideia dos métodos bottom-up para programação? Quais as duas características principais de um TAD? Dê um exemplo de uma classe que seja cliente da classe ConjuntoDeInteiros. Ou, equivalentemente, um exemplo de uma classe que torne ConjuntoDeInteiros sua servidora. Quais as regras para funções construtoras default em C#? Para que serve uma classe, em POO? Como uma função construtora é caracterizada?
Compartilhar