ÁREA1 - GEOCITIES.ws

Propaganda
ÁREA1
Curso : Engenharia de Computação
Disciplina : Programação Orientada a Objetos
Prof. : Fernando Cardeal
Lista de Exercícios de Programação
Bloco I – problemas simples que não utilizam vetores
1) Desenvolva um programa em JAVA para ler uma série de 10 números e informar se
cada um deles é par ou é ímpar.
2) Chico mede 1,30 metro de altura e cresce 2 centímetros por ano, enquanto Zé mede
1,10 metro de altura e cresce 3 centímetros por ano. Construa uma classe em Java
que calcule e exiba na tela quantos anos serão necessários para que Zé seja mais
alto do que Chico. A classe também deve exibir as alturas finais de Chico e de Zé
quando ocorrer a ultrapassagem.
3) Desenvolva uma classe em Java que gere o números de 1000 a 1999 e Desenvolva
aqueles que divididos por 11 dão resto igual a 5. Também deve exibir quantos
números atenderam ao critério acima.
4) Desenvolva uma classe em Java que leia 5 números inteiros e calcule a porcentagem
de cada número em relação ao total (quantos por cento cada número representa em
relação ao total). Exibir os números lidos, o total e a porcentagem de cada número.
Exemplo: supondo que fossem lidos os valores 22, 5, 20, 30 e 33, espera-se a
seguinte saída (que pode ser feita usando tabulações).
Número
%
22
20%
5
5%
20
18%
30
27%
33
30%
Total:
110
5) Desenvolva uma classe em Java que gere e exiba os 20 primeiros termos da
seqüência de Fibonacci (1, 1, 2, 3, 5, 8, ..., ou seja a partir dos dois primeiros termos,
cada termo é a soma dos dois anteriores).
6) Desenvolva uma classe em Java que calcule a média aritmética simples de vários
valores inteiros positivos, lidos externamente. O final da leitura acontecerá quando for
lido um valor negativo (que não deve ser considerado para o cálculo).
7) Desenvolva uma classe em Java que leia uma quantidade desconhecida de números
inteiros, conte e informe quantos deles estão nos seguintes intervalos: [0,25], [26,50],
[51,75] e [76,100]. A entrada de dados deve terminar quando for lido um número
negativo.
8) Desenvolva uma classe em Java que leia um conjunto de 20 informações contendo,
cada uma delas, a altura e o sexo de uma pessoa (‘M’ ou ‘m’ ou ‘F’ ou ‘f’), calcule e
mostre o seguinte:
a) a maior e a menor altura da turma;
Prof. Fernando Cardeal
1
1
ÁREA1
b) a média da altura das mulheres;
c) a média da altura da turma.
9) Desenvolva uma classe em Java que leia o código de um aluno e suas três notas.
Calcule a média ponderada do aluno, considerando que o peso para a maior nota seja
4 e para as duas restantes, 3. Mostre o código do aluno, suas três notas, a média
calculada e uma mensagem "APROVADO" se a média for maior ou igual a 5 e
"REPROVADO" se a média for menor que 5. Repita a operação até que o código lido
seja negativo.
Bloco II – problemas que utilizam vetores
1) Desenvolva uma classe em Java que leia um conjunto de 30 valores e os coloque em
2 vetores conforme sejam pares ou ímpares. Depois imprima o vetor dos números
pares e o vetor dos números ímpares.
2) Desenvolva uma classe em Java que leia e mostre um vetor com N elementos inteiros
(N deve ser informado no início do processo) e, a seguir, execute as seguintes
operações:
a) Localize e informe todos os números pares encontrados, inclusive informando em
que posições do vetor eles estão;
b) Informe a quantidade de números pares encontrados.
3) Desenvolva uma classe em Java que leia dois vetores de 10 elementos inteiros e faça
a multiplicação dos elementos de mesmo índice, colocando o resultado em um
terceiro vetor. Mostre os vetores originais e o vetor resultante.
4) Desenvolva uma classe em Java que leia um vetor de 13 elementos inteiros, que é o
Gabarito de um teste da loteria esportiva, contendo os valores 1(coluna 1), 2 (coluna
2) e 3 (coluna do meio). Leia, a seguir, para cada apostador, o número do seu cartão
e um vetor de Respostas de 13 posições. Verifique para cada apostador o número de
acertos, comparando o vetor de Gabarito com o vetor de Respostas. Escreva o
número do apostador e o número de acertos. Se o apostador tiver 13 acertos, mostrar
a mensagem "Ganhador".
5) Desenvolva uma classe em Java que leia um vetor de 20 elementos inteiros e mostreo. Em seguida, troque o primeiro elemento com o último, o segundo com o penúltimo,
o terceiro com o antepenúltimo, e assim sucessivamente. Mostre o novo vetor depois
da troca
6) Desenvolva uma classe em Java que leia um vetor de 10 elementos inteiros e mostreo ordenado em ordem crescente.
7) Desenvolva uma classe em Java que leia um vetor X(20) e o escreva. Escreva, a
seguir, cada um dos valores distintos que aparecem em X dizendo quantas vezes
cada valor aparece em X.
8) Desenvolva uma classe em Java que leia um vetor (A) de N elementos (N é informado
no início da execução). Em seguida, compacte o vetor, retirando os valores nulos e
negativos. Coloque o resultado no vetor B e exiba o resultado.
9) Uma locadora de DVDs tem guardada, em um vetor de 500 posições, a quantidade de
filmes retirados por seus clientes durante o ano de 2005. A locadora decidiu fazer uma
Prof. Fernando Cardeal
2
1
ÁREA1
promoção e, para cada 10 filmes retirados, o cliente tem direito a uma locação grátis.
Desenvolva uma classe em Java que crie um outro vetor contendo a quantidade de
locações gratuitas a que cada cliente tem direito, exibindo o resultado em seguida
(apenas com aqueles clientes que têm direito a locações grátis). A posição do vetor
corresponde ao código do cliente.
10) Uma certa loja resolveu utilizar vetores em Java para controlar o seu estoque de
mercadorias. Para isso projetou três vetores: o primeiro conterá os códigos das
mercadorias, o segundo conterá os nomes das mercadorias correspondentes aos
códigos do primeiro vetor e o terceiro vetor conterá os saldos em estoque com a
mesma correspondência. Desenvolva uma classe em Java que atenda a loja citada,
realizando as seguintes operações:
a) Crie os três vetores (codigos, produtos e saldos) com capacidade para 500
produtos;
b) Leia os dados iniciais para a montagem do estoque. A leitura deve ser feita até
encontrar um produto com código negativo. Esse deve ser desconsiderado.
c) Após a montagem do estoque, a classe deverá ler vários pedidos de mercadoria
contendo código e quantidade desejada e processar da seguinte forma:
i) Para cada código lido, deve pesquisar se o produto existe no estoque;
ii) Se não existir, emitir mensagem “Produto xxxx não cadastrado”;
iii) Caso o produto exista, a classe deve verificar se o saldo é suficiente para
atender ao pedido do cliente e, se for, deve atualizar o estoque (subtraindo a
quantidade pedida);
iv) Caso o saldo seja insuficiente, deve emitir a mensagem “Produto xxxx –
xxxxxxxxxxxxxx saldo x insuficiente”.
Após o processamento de cada pedido, a classe deve perguntar se
deseja processar novo pedido (‘S’ ou ‘N’), repetindo o processo até o
cliente digitar ‘N’ ou ‘n’.Bloco III – problemas que envolvem tratamento de
Strings
1) Desenvolva uma classe em JAVA que leia várias frases até encontrar a palavra PARE
(escrita com qualquer combinação de maiúsculas e minúsculas). Para cada frase, o
programa deve exibir:
a) A frase e o seu comprimento em caracteres;
b) A letra central de cada frase; se a frase tiver número par de caracteres, informar os dois
caracteres centrais.
2) Escreva uma classe em Java que leia uma frase, separe e exiba separadamente a
última letra de cada palavra da frase. Por exemplo, se for digitada a frase: “Esse
programa está muito fácil”, o programa exibiria como resposta: eaáol
3) Escreva uma classe em Java que leia duas Strings e localize a primeira String na
segunda, informando todas as ocorrências e as posições onde encontrou. Caso não
encontre, a classe deve exibir a mensagem “O texto ‘xxx’ não foi encontrado em
‘xxxxxxxxxx’”.
4) Escreva uma classe em Java que leia uma frase qualquer e elimine o excesso de
espaços entre as palavras (inclusive os espaços antes da primeira palavra e após a
última palavra da frase). Exemplo: supondo que seja lida a frase “ cada
macaco
Prof. Fernando Cardeal
3
1
ÁREA1
no seu galho “, a classe deve gerar a frase “cada macaco no seu galho”. Exibir a
frase antes e depois da eliminação dos espaços excessivos.
5) Escreva uma classe em JAVA que leia uma frase e inverta as palavras formando uma
nova String. Exiba na tela a frase original e a frase invertida. Exemplo:
LIDA: Esta classe é fácil de fazer
RESULTADO: fazer de fácil é classe Esta
6) Escreva uma classe em Java para normalizar nomes de pessoas, obedecendo as
seguintes regras:
a) Converter todas as letras não iniciais para minúsculas;
b) Converter as letras iniciais de cada palavra para maiúsculas.
c) Exemplo 1: se for lido o nome: “antônio maciel dos santos” o resultado deveria
ser “Antônio Maciel Dos Santos”;
d) Exemplo 2: se for lido o nome: “JoÃo SILveiRa LiMeira de souza" o resultado
deveria ser “João Silveira Limeira De Souza”.
7) Aperfeiçoe a classe anterior para que as partículas como “de” “dos” “da” etc, sejam
convertidas para minúsculas. Considerando os mesmos exemplos anteriores, os
resultados passariam a ser “Antônio Maciel dos Santos” e “João Silveira Limeira de
Souza”. Observe que o “dos” e o “de” foram convertidos totalmente para letras
minúsculas.
Aperfeiçoe a classe anterior para abreviar os nomes intermediários.
Considerando os mesmos exemplos anteriores, os resultados
passariam a ser “Antônio M. dos Santos” e “João S. L. de Souza”. Bloco
IV – problemas que envolvem tratamento de objetos
1) Crie uma classe com as seguintes características:
 Nome da classe: Produto;
 Atributos da classe:
o descricao (texto)
o preco (real);
o saldo (inteiro);
 Deve existir um método “set” e um método “get” para cada atributo;
 Deve existir um método construtor que inicia os valores dos atributos “descricao”,
“preco” e “saldo” (nesta ordem);
Para testar a classe acima, desenvolva OUTRA classe com as seguintes
características:
 Crie um vetor com 5 objetos da classe Produto, dados obtidos através dos
métodos da classe Swing;
 Leia o nome de um produto, pesquise no vetor de produtos e informe o preço e o
saldo. Se o produto não existir, emita mensagem adequada.
2) Crie uma classe chamada Motor com as seguintes características:
 Atributos da classe:
o nome (tipo texto);
o potencia (tipo real);
Prof. Fernando Cardeal
4
1
ÁREA1



o ligado (tipo booleano);
Existe um método “set” e um método “get” para os atributos “nome” e “potencia”.
Existe um método “ligar()” e um método “desligar()” que alteram respectivamente o
atributo “ligado”;
Existe um método construtor que recebe e armazena os atributos “nome” e
“potencia” e inicia o atributo “ligado” com o valor false.
Pede-se:
Desenvolva uma classe adicional para testar a classe Motor que, utilizando os
métodos da classe Swing, faça as seguintes operações:
 crie um vetor com 5 objetos da classe Motor;
 a seu critério, ligue 3 motores; (você decide!!!!);
percorra o vetor de objetos e informe as potências dos motores que estiverem desligados.
3) Desenvolva uma classe chamada Refrigerante com as seguintes características:
 Atributos da classe:
o nome (tipo texto);
o preco (tipo real);
o saldo (tipo inteiro);
 Existe um método “set” e um método “get” para cada um dos atributos;
 Existe um método construtor que recebe e armazena os atributos “nome” , “preco”
e “saldo” (nesta ordem) quando um objeto da classe Refrigerante é instanciado;
 Existe um método “venda” que atualiza o saldo do produto após uma venda bem
sucedida.
Pede-se: Desenvolva uma outra classe que, no seu método main, faça as seguintes
operações:
 crie 5 objetos da classe Refrigerante com os seguintes dados (que são
constantes):
Nome
Cocacola
FantaUva
FantaLaranja
Sprite
Kuat

Preç
o
1,50
0,90
0,90
0,80
1,00
Saldo
40
10
8
20
100
Utilizando os métodos da classe Refrigerante, efetue duas vendas dos
refrigerantes da sua escolha, sendo que cada cliente pagou com uma nota de
R$5,00. Informe o saldo de cada refrigerante e o troco do cliente, usando
métodos da classe Swing.
4) Desenvolva uma classe chamada Empresa com as seguintes características:
 Atributos da classe:
o nome (tipo texto);
Prof. Fernando Cardeal
5
1
ÁREA1


o capital (tipo real);
o nFuncionarios (tipo inteiro);
Existe um método “set” e um método “get” para cada atributo.
Existe um método construtor que recebe e armazena os 3 atributos da classe.
Pede-se:
Desenvolva outra classe que, utilizando os métodos da classe Swing, faça as
seguintes operações:
 crie um vetor com 5 objetos da classe Empresa;
 percorra o vetor de objetos e informe qual o nome da empresa que tem o
menor número de funcionários.
 Percorra o vetor de objetos e informe qual o nome da empresa que tem o maior
capital.
Prof. Fernando Cardeal
6
1
Download