Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNIVERSIDADE FEDERAL DO SUL E SUDESTE DO PARÁ FACULDADE DE ENGENHARIA ELÉTRICA E COMPUTAÇÃO DISCIPLINA: PROGRAMAÇÃO II 1ª Lista de exercícios 1. Desenvolva um programa em Java que leia o nome e a idade de 3 pessoas e mostre o nome da pessoa mais velha e o nome da pessoa mais nova. Essa operação deve ser feita a partir da classe Pessoa. Crie uma outra classe de teste para testar essa classe. 2. Faça uma classe Aluno que contenha os atributos nome (String) e nota (double). Aplique encapsulamento e um construtor de classe que inicialize os atributos. No método principal, crie um Array de Alunos. O tamanho do Array deve ser indicado pelo teclado. De acordo com esse tamanho, utilize um laço clássico para ler as informações de todos os Alunos do Array. Em seguida, use um laço especializado para exibir as informações de cada Aluno. Para tanto, sobrescreva o método toString() para que realize esse processo. 3. Um palíndromo é uma sequência de caracteres que é lida da esquerda para a direita ou da direita para a esquerda. Por exemplo, cada um dos seguintes inteiros de cinco dígitos é um palíndromo: 12321, 55555, 45554 e 11611. Escreva um aplicativo que leia em um inteiro de cinco dígitos e determine se ele é ou não um palíndromo. Se o número não for de cinco dígitos, exiba uma mensagem de erro e permita que o usuário insira um novo valor. 4. Explique se o código abaixo funcionará adequadamente e justifique. 5. Use um array unidimensional para resolver o seguinte problema: Uma companhia faz o pagamento a seus vendedores baseado em comissão. Os vendedores recebem $200 por semana mais 9% do bruto das suas vendas para aquela semana. Por exemplo, um vendedor que vende o bruto de $5000 em uma semana, recebe $200 mais 9% de $5000, ou um total de $650. Escreva uma aplicação (usando um array de int) que determine quantos vendedores receberam salários em cada uma das faixas abaixo (assuma que o salário de cada vendedor seja truncado para um número inteiro. Ex: 7,8 → 7). Os valor do salário deve ser lido do teclado. Leia 30 salários. Pode ser feito direto no método main. a) $200 – $299 b) $300 – $399 c) $400 – $499 d) $500 – $599 e) $600 – $699 f) $700 – $799 g) $800 – $899 h) $900 – $999 i) $1000 e além Sumarize os resultados em um formato tabular (de tabela). 6. Escreva um programa em Java com uma classe LeEntrada. A classe deve possuir um campo mensagem (String). Deve haver um método que leia esse campo do teclado e imprime na saída a mensagem digitada pelo usuário. Lembre-se do encapsulamento. 7. Faça um programa em Java que contenha uma classe Funcionario. A classe possui os campos nome e salario. Deve possuir, também, um método ajustaSalario, que altera o salario do Funcionario de acordo com uma porcentagem. A porcentagem é passada como argumento ao método. Teste a classe. Obs: todos as variáveis de instância são private. 8. Escreva um programa que possua uma classe Turma e uma classe Aluno. A classe Aluno possui um atributo nome do tipo String e outro atributo turmaMatriculado, do tipo Turma. A classe deve possuir um construtor que inicialize ambos os campos. Teste a classe, lendo as informações do teclado. Não esqueça dos métodos set e get. 9. Crie uma classe chamada Fatura para que uma loja de suprimentos de informática a utilize para representar uma fatura de um item vendido nela. Uma Fatura deve incluir quatro partes das informações como variáveis de instância – o número (String), a descrição (String), a quantidade comprada de um item (int) e o preço por item (double). Sua classe deve ter um construtor que inicializa as quatro variáveis de instância. Forneça um método set e um get para cada variável de instância. Além disso, forneça um método chamado getTotalFatura que calcula o valor de fatura (isto é, multiplica a quantidade pelo preço por item) e depois retorna esse valor como double. Se a quantidade não for positiva, ela deve ser configurada como 0. Se o preço por item não for positivo, ele deve ser configurado como 0.0. Escreva um aplicativo de teste chamada FaturaTeste que demonstra as capacidades da classe Fatura. 10. Crie uma classe chamada Funcionario que inclua três variáveis de instância – um primeiro nome (tipo String), um sobrenome (tipo String) e um salário mensal (double). Forneça um construtor que inicializa as três variáveis de instância. Forneça os métodos de encapsulamento para cada variável de instância. Se o salário mensal não for positivo, configure seu valor como 0.0. Escreva um aplicativo de teste chamado FuncionarioTeste que demonstre as capacidades da classe Funcionario. Crie dois objetos Funcionario e exiba o salário anual de cada objeto, juntamente com seu nome completo. Então, dê a cada Funcionario um aumento de 10% e exiba novamente o salário anual de cada Funcionario, juntamente com seu nome completo. 11. Crie uma classe Data que inclua três variáveis de instância – dia (int), mes (int) e ano (int). Forneça um construtor que inicializa as três variáveis de instância supondo que os valores fornecidos estejam corretos. Ofereça métodos de encapsulamento. Apresente um método mostraData que exiba dia, mes e ano separados por barras normais (/). Escreva um aplicativo de teste chamado DataTeste que demonstre as capacidades da classe Data. 12. Crie uma classe Conta, com o atributo saldo. Aplicando encapsulamento, crie também dois métodos deposita e saca. O primeiro recebe um double como argumento, que representa uma quantia a ser colocada na conta. O segundo também recebe um double como argumento, que representa uma quantia a ser retirada da conta. Crie um construtor que tenha, como argumento, o saldo inicial da conta, no momento de sua criação. A classe deve possuir um método consulta, que imprime na tela o saldo atual da conta. Após isso, crie duas classes ContaCorrente e ContaPoupança. Ambas herdam de Conta. A conta corrente possui uma taxa de 10% em qualquer operação de depósito, enquanto que a conta poupança possui uma taxa de 15% em operações de depósito. Sobreponha os métodos de depósito para que realizem as operações de adequadas. Ambas as classes também possuem construtores, que recebem o saldo inicial das contas no momento da sua criação. Utilize a palavra reservada super para manipular os construtores. 13. Uma pequena companhia aérea comprou um computador para seu novo sistema de reservas. Foi solicitado a você que desenvolvesse o novo sistema. Você deve escrever uma aplicação para atribuir assentos em cada vôo do único avião da companhia (capacidade: 10 assentos). Sua aplicação deve exibir na tela as seguintes alternativas: Por favor, digite 1 para Classe Executiva e Por favor, digite 2 para Classe Econômica. Se o usuário digitar 1, sua aplicação deve atribuir um assento na seção da primeira classe (assentos 1 a 5). Se o usuário digitar 2, sua aplicação deve atribuir um assento na seção da classe econômica (assentos 6 a 10). Sua aplicação deve, então, exibir um cartão de embarque indicando o número de assento da pessoa e se é na primeira classe ou na econômica. Use um Array unidimensional do tipo primitivo boolean para representar o mapa do avião. Inicialize todos os elementos do Array com false para indicar que todos os assentos estão vazios. Conforme cada assento for atribuído, ajuste o elemento do Array correspondente para true, para indicar que o assento não está mais disponível. Sua aplicação não deve nunca atribuir um assento que já tenha sido atribuído. Quando a Classe Econômica estivercheia, sua aplicação deve perguntar se é aceitável que ela seja alocada na Classe Executiva (e vice-versa). Se sim, faça a devida atribuição de assento. Caso contrário, exiba a mensagem “O próximo vôo parte em 3 horas.” 14. Crie uma hierarquia de classes para uma loja que venda livros, CDs e DVDs. Deve existir uma classe Produto, de onde todas as outras classes herdarão. A classe Produto possui dois atributos: preco e nome. Em cada subclasse, sobrescreva o método toString() para que imprima: • Para Livro’s: preco, nome e autor; • Para CD’s: preco, nome e número de faixas; • Para DVD’s: preco, nome e duracao (em minutos). Evite ao máximo repetição de código utilizando a palavra super no construtor (todas as classes devem ser inicializadas através de um construtor) e no método sobrescrito (toString()). Em seguida, crie uma classe Loja, que contenha como atributo um Array de Produto’s listaProdutos. O tamanho do Array deve ser determinado através do construtor da classe. No método main(), crie um objeto Loja e inicialize, através do seu construtor, uma lista de 5 Produto’s. Para popular o Array, crie um método adiciona(), que recebe um argumento do tipo Produto, que será inserido na lista e um argumento do tipo int, indicando a posição do Array que receberá o Produto. Popule o Array com 5 Produto’s diferentes, distribuídos entre Livro, CD e DVD. Ao final, utilizando um laço especializado, imprima as informações de cada integrante (Produto) do Array, através do método toString(), implícita ou explicitamente. 15. Escreva um método estático distancia para calcular a distância entre dois pontos – (𝑥1,𝑦1) e (𝑥2, 𝑦2). O método pertence à classe Ponto. Todos os números e valores de retorno devem ser do tipo double. Incorpore esse método a um aplicativo que permita que o usuário insira as coordenadas dos pontos. Lembrete: 𝑑 . 16. A distância média da Terra à Lua é de aproximadamente 382.000 quilômetros. Usando a classe ConversaoDeUnidadesDeComprimento, escreva um programa em Java que mostre essa distância média da Terra à Lua em milhas e pés, utilizando a referida classe. Escreva métodos estáticos adicionais para a classe ConversaoDeUnidadesDeComprimento, se necessário. • 1 𝑘𝑚 = 0,621 𝑚𝑖𝑙ℎ𝑎 • 1 𝑘𝑚 = 3280,84 𝑝é𝑠 17. Escreva a classe ConversaoDeUnidadesDeArea com métodos estáticos para conversão das unidades de área segundo a lista abaixo. Cada tipo de conversão deve possuir um método específico. Teste cada método da classe. • 1 𝑚2 = 10.76 𝑝é𝑠 𝑞𝑢𝑎𝑑𝑟𝑎𝑑𝑜𝑠 • 1 𝑝é 𝑞𝑢𝑎𝑑𝑟𝑎𝑑𝑜 = 929 𝑐𝑚2 • 1 𝑚𝑖𝑙ℎ𝑎2 = 640 𝑎𝑐𝑟𝑒𝑠 • 1 𝑎𝑐𝑟𝑒 = 43.560 𝑝é𝑠 𝑞𝑢𝑎𝑑𝑟𝑎𝑑𝑜𝑠 18. Escreva a classe ConversaoDeUnidadesDeTempo com métodos estáticos para conversão aproximada das unidades de tempo, segundo a lista abaixo. • 1 𝑚𝑖𝑛 = 60 𝑠𝑒𝑔 • 1 ℎ = 60 𝑚𝑖𝑛 • 1 𝑑𝑖𝑎 = 24 ℎ • 1 𝑠𝑒𝑚𝑎𝑛𝑎 = 7 𝑑𝑖𝑎𝑠 • 1 𝑚ê𝑠 = 30 𝑑𝑖𝑎𝑠 • 1 𝑎𝑛𝑜 = 365.25 𝑑𝑖𝑎𝑠 19. Escreva uma classe que contenha métodos estáticos para calcular as médias e somas de dois, três, quatro e cinco valores, considerando que os argumentos e retorno dos métodos podem ser dos tipos int e double. Um total de 16 métodos deverão ser criados.
Compartilhar