Buscar

2017331_205024_Exercícios+para+entregar+(valendo+presença)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

35323 – Linguagem de Programação II 
 
Ciência da Computação – T. 2016 – 2017/01 
Exercícios 
Prof. Gerson Groth 
Lista de Exercícios 
 
1. Fundamentos de programação Java 
1.1 (leitura) Escreva um programa para ler dois números inteiros e mostrar a soma dos 
mesmos; 
1.2 (estrutura condicional) Escreva um programa que leia dois números inteiros a e b. 
Determinar se a é divisível por b; 
1.3 (estrutura condicional) Leia dois números reais e imprima ‘>’ se o primeiro número for 
maior que o segundo, ‘<’ se o primeiro número for menor, e ‘=’ se os dois valores são 
iguais 
1.4 (repetição) Imprima todos os números ímpares entre (exclusive) dois inteiros 
especificados pelo usuário. Considere que o primeiro número pode ser maior que o 
segundo. 
1.5 (repetição) Escreva um programa que leia um número do teclado e imprima todos os 
números primos entre 2 (inclusive) e o número lido (inclusive) 
1.6 (String) Escreva um programa que leia uma frase e imprima na tela. 
Utilize a classe Scanner e o método nextLine() para ler a linha inteira 
1.7 (String) Escreva um programa que leia duas strings e imprima “iguais” se elas são iguais 
ou “diferentes”, caso contrário. 
Utilize o método equals() da String para comparar. 
1.8 (arrays) Escreva um programa que leia 5 números reais e armazene-os em um array 
(vetor). Em seguida, imprima todos os elementos do array, imprimindo a soma e média 
no final. 
1.9 (arrays) Leia 5 números reais e armazene-os em um array. Imprima a posição e o valor 
do maior elemento do array (em caso de empate, imprima o que foi lido primeiro). 
1.10 (switch) Leia dois números reais. Após, leia um número inteiro (aceitar somente 
valores entre 1 e 4, caso contrário, solicitar que informe novamente). Se o valor 
informado for 1, imprima a soma dos dois valores lidos, 2 para subtração, 3 para 
multiplicação, e 4 para divisão. 
 
 
 
 
 
 
 
35323 – Linguagem de Programação II 
 
Ciência da Computação – T. 2016 – 2017/01 
Exercícios 
Prof. Gerson Groth 
2. Introdução a Objetos 
2.1 (classe) Escreva uma classe para representar um paciente. 
O cálculo do IMC consiste de peso/altura^2 
Paciente 
nome : String 
peso : double 
altura : double 
calcularIMC() : double 
2.2 (classe) Escreva uma classe para representar um círculo. 
Area = π*raio^2 
Perimetro=2*π*raio 
Para o π, considerar utilizar Math.PI, ou o valor 3.14159 
 
Circulo 
raio : int 
calcularArea() : double 
calcularPerimetro() : double 
2.3 (classe) Utilizando a classe do exercício anterior, escreva um programa que leia três 
inteiros, imprimindo a área e o perímetro de cada um. Pode-se criar um novo método 
dentro da classe círculo que imprima esses valores na tela. 
2.4 (classe) Escreva uma classe para representar um funcionário. 
Salário=horasTrabalhadas*valorHora 
 
Funcionário 
nome: String 
horasTrabalhadas: int 
valorHora: double 
calcularSalario() : double 
2.5 (classe) Com base no exercício anterior, crie um programa que leia 2 funcionários 
(nome, horas trabalhadas e valor por hora de cada um), imprimindo o salário de cada 
funcionário. Após, imprima o nome do funcionário que recebeu o maior salário. 
 
 
 
 
35323 – Linguagem de Programação II 
 
Ciência da Computação – T. 2016 – 2017/01 
Exercícios 
Prof. Gerson Groth 
 
2.6 (construtor) Modifique a classe desenvolvida no exercício 2.2, adicionando um 
construtor que receba um valor inteiro e armazene no atributo raio. 
2.7 (construtor) Modifique a classe desenvolvida no exercício 2.4, adicionando um 
construtor que receba um nome, horas trabalhadas, e valor da hora, setando essas 
informações nos atributos. 
2.8 (construtor) Crie uma classe para representar um quadrado. 
Área=lado^2 
Perímetro=4 * lado 
Quadrado 
lado : double 
<<constructor>>Quadrado (lado : double) : void 
calcularArea() : double 
calcularPerimetro() : double 
2.9 (sobrecarga) O que há de errado com o código abaixo? 
 
2.10 (sobrecarga) Crie uma classe para formatar um número. 
A classe não terá atributos. Os métodos formatarNumero deverão retornar um 
número formatado com a quantidade de casas decimais especificadas. Para o 
primeiro método, utilizar um valor padrão de 2 casas decimais. 
Para formatar um número, utilize String.format(), conforme exemplo abaixo: 
String stringFormatada = String.format("%.2f", 12.44498); 
 
 
 
 
35323 – Linguagem de Programação II 
 
Ciência da Computação – T. 2016 – 2017/01 
Exercícios 
Prof. Gerson Groth 
FormataNumero 
 
formatarNumero(numero: double): String 
formatarNumero(numero: double, casas: int): String 
 
2.11 Jogo da adivinhação. O jogo sorteia um número, e 2 jogadores tentam 
adivinhar o número escolhido. 
Para esse exercício, será necessário uma classe para representar um jogador. O método 
adivinhar() deve devolver um número aleatório entre 0 e 9. Para isso, utilize o método 
random() da classe Math. Ex, a linha abaixo irá retornar um número entre 0 e 499. 
int numero = (int) (Math.random() * 500) 
Jogador 
id : int 
acertou: boolean 
adivinhar() : int 
Além da classe para os jogadores, precisamos de uma classe para o jogo em si. O jogo inicia 
através do método iniciarJogo() . Ao iniciar o jogo, o objeto da classe Jogo deve sortear um 
número, e continuar o jogo até que ao menos um dos jogadores tenha acertado. 
Jogo 
jogadores[] : Jogador 
<<construtor>> Jogo(numeroJogadores: int) 
iniciarJogo(): void 
2.12 Estacionamento (baseado no problema Estacionamento - UOJ 1246) 
Um estacionamento utiliza um terreno em que os veículos precisam ser guardados em 
fila única, um atrás do outro. A tarifa tem o valor fixo de R$10,00 por veículo estacionado, 
cobrado na entrada, independente do porte e tempo de permanência. 
Quando um veículo chega ao estacionamento, o atendente primeiro determina se há 
vaga para esse veículo. Para isso, ele percorre a pé o estacionamento, do início até o fim, 
procurando um espaço que esteja vazio e tenha comprimento maior ou igual ao 
comprimento do veículo. Para economizar seu tempo, ele sempre escolhe o primeiro espaço 
que encontrar. 
Encontrada a vaga, o atendente pega o veículo e o estaciona. Se não houver vagas, o 
veículo não entra no estacionamento, e a tarifa não é cobrada. Aleatoriamente, um veículo 
sai do estacionamento, liberando espaço para novos veículos. 
O comprimento do veículo consiste em x vagas cada. Um estacionamento possui y vagas 
no total. Cada veículo possui uma placa, que será única. 
Pode utilizar a classe TesteEstacionamento.java (disponível juntamente com os exercícios) 
para testar. 
 
 
 
 
 
35323 – Linguagem de Programação II 
 
Ciência da Computação – T. 2016 – 2017/01 
Exercícios 
Prof. Gerson Groth 
3. Encapsulamento 
3.1 Crie uma classe chamada Pessoa contendo os seguintes atributos: nome, cpf e idade. 
Respeite a regra do encapsulamento. Forneça métodos de acesso e modificadores 
(getters/setters). Escreva um programa de teste onde deverão ser instanciados dois 
objetos da classe e testado os métodos implementados. 
 
3.2 Crie uma classe chamada Aluno contendo os seguintes atributos: nome, n1 e n2. 
Respeite a regra do encapsulamento. Essa classe tem um método chamado média que 
calcula a média aritmética das notas desse aluno. Escreva um programa de teste 
(Principal) onde deverão ser instanciados dois objetos da classe Aluno com valores: 
Aluno(“Ana”,10,9) e Aluno(“Beto”, 9,10) 
 
3.3 Crie uma classe chamada Calculo que deverá ter apenas um atributo inteiro chamado 
saldo que deverá ser encapsulado e inicializado com o valor 0. Essa classe conterá três 
métodos públicos chamados credito, debito e getSaldo. O método credito soma o valor 
recebido como parâmetro ao atributo saldo, o método debito subtrai o valor recebido 
como parâmetro do atributo saldo. Já o método getSaldo retorna o conteúdo do 
atributo saldo. Crie uma classe de teste que cria uma instancia de Calculo. Em seguida 
é feita uma operação de crédito no objeto e depois outra operação de debito.Depois 
o programa mostrará o saldo final do objeto 
 
3.4 Criar uma classe ContaCorrente que possua os seguintes atributos: nome, senha e 
saldo. Possui ainda os métodos cadastrarSenha que recebe uma senha como 
parâmetro e altera o atributo senha e o método alterarSenha que recebe como 
parâmetro a senha antiga e a nova senha. Ele alterará o atributo senha apenas se a 
senha antiga for a correta. Os métodos debitar e creditar também deverão ser 
implementados, eles receberão como parâmetro o valor a ser debitado ou creditado 
e a senha. Eles só deverão efetuar a operação caso a senha for correta. Observar o 
encapsulamento e escreva um programa de teste para a classe 
 
 
 
 
 
 
 
 
 
35323 – Linguagem de Programação II 
 
Ciência da Computação – T. 2016 – 2017/01 
Exercícios 
Prof. Gerson Groth 
4. Herança 
4.1 Escreva duas classes, A e B, com construtores padrão (sem argumentos) que 
imprimem mensagens “classe A” e “classe B” respectivamente. Escreva outra classe 
chamada C que herda de A e possui um atributo do tipo B que é instanciado no 
momento da declaração. Não crie um construtor para C. Escreva um programa e no 
método main crie um objeto da classe C. Depois da execução desse programa o que 
será impresso. Explique os resultados. 
 
4.2 Escreva uma classe chamada Pessoa com os atributos: nome (tipo String), sexo (tipo 
char), idade (tipo int). Escreva agora outra classe chamada Amigo, que é uma pessoa 
(estende da classe Pessoa) de quem sabemos o dia de seu aniversário, atributo 
diaDoAniversario (tipo String). Use encapsulamento e forneça construtor padrão e 
construtor usando todos os atributos para as duas classes. 
 
4.3 Implemente uma classe para representar um professor. Devem ser atributos da classe 
o nome, e a matrícula do professor. Codifique métodos para ajustar e obter os valores 
dos atributos assim como um método construtor para inicializar o estado de novos 
objetos da classe Professor. Especialize essa classe criando duas subclasses: 
ProfessorEfetivo e ProfessorHorista. A subclasse ProfessorEfetivo deve conter dois 
atributos adicionais: jornadaDeTrabalho (validar os valores 20 hs, 40 hs ou Dedicação 
Exclusiva) e salário. Codifique um método para validar a jornada de trabalho informada 
e também escreva um método construtor que receba o Nome, Matrícula, e Jornada e 
inicialize o estado do objeto. A classe ProfessorHorista deve ter também dois atributos: 
horasTrabalhadas e salarioHora. Implemente um construtor para a classe 
ProfessorHorista e codifique um método para calcular seu salário (horas trabalhadas 
multiplicadas pelo salário hora). Nos métodos construtores das subclasses procure 
reutilizar o código da superclasse. 
 
 
 
 
 
35323 – Linguagem de Programação II 
 
Ciência da Computação – T. 2016 – 2017/01 
Exercícios 
Prof. Gerson Groth 
4.4 Implemente o seguinte diagrama de classes 
 
Considere: 
• Na classe Animal o método falar() deve retornar uma string vazia, o método imprime() 
deve escrever o nome do animal e sua classe; 
• Na classe Pássaro o método falar() deve retornar a string "piu, piu" e o método voar() 
deve repetir a string "voando" n vezes, de acordo com o parâmetro do método. O 
método construtor da classe Pássaro deve ajustar o atributo classe da classe Animal 
para "Ave"; 
• Na classe BemTeVi o método falar() deve retornar a string "bem-te-vi"; 
• Na classe Papagaio o método falar() deve retornar a string armazenada em seu 
vocabulário; 
• Na classe Mamífero o método correr() deve repetir a string "correndo" tantas vezes 
quantas armazenadas no parâmetro velocidade. O método construtor da classe 
Mamífero deve ajustar o atributo classe da classe Animal para "Mamífero"; 
• Na classe Cachorro o método falar() deve retornar a string "AU, AU" ou "au, au" 
dependendo o valor do atributo tipoLatido; 
• Na classe Vaca, o método falar() deve retornar a string "Muuuu" e o método ordenhar() 
deve retornar a string "ordenhando" se o atributo permiteOrdenha contiver o valor 
verdadeiro; 
 
 
 
 
 
35323 – Linguagem de Programação II 
 
Ciência da Computação – T. 2016 – 2017/01 
Exercícios 
Prof. Gerson Groth 
5. Revisando entendimento dos conceitos 
5.1 Considere a seguinte classe 
 
Qual é o resultado da seguinte execução? 
 
A. B. C. D. 
igual 
igual 
igual 
diferente 
diferente 
igual 
diferente 
diferente 
 
 
 
35323 – Linguagem de Programação II 
 
Ciência da Computação – T. 2016 – 2017/01 
Exercícios 
Prof. Gerson Groth 
5.2 O que será impresso após a execução do método main? 
 
 
A. B. C. D. 
0 
0 
440 
200 
480 
200 
60 
200 
 
5.3 O que será impresso após a execução do método main? 
 
 
A. B. C. D. 
null 0 Erro ao executar a 
linha 8 
 
 
 
 
 
 
 
 
35323 – Linguagem de Programação II 
 
Ciência da Computação – T. 2016 – 2017/01 
Exercícios 
Prof. Gerson Groth 
5.4 O que será impresso na tela? 
 
 
A. B. C. D. 
São Paulo 
São Paulo 
Rio de Janeiro 
Rio de Janeiro 
São Paulo 
Rio de Janeiro 
São Paulo 
São PauloRio de Janeiro 
 
5.5 Considere o seguinte código. O que será impresso? 
 
 
A. B. C. D. 
30 
10 
10 
10 
20 
20 
30 
30 
 
 
 
 
 
 
35323 – Linguagem de Programação II 
 
Ciência da Computação – T. 2016 – 2017/01 
Exercícios 
Prof. Gerson Groth 
5.6 Considere as seguintes classes. Marque a opção a alternativa que contém a(s) 
opção(ões) que preenchem o espaço sublinhado sem erro de compilação. 
 
 
I. Object 
II. Estudante 
III. Senior 
IV. Junior 
V. String 
A. Somente III é verdadeira 
B. Todas são verdadeiras 
C. Somente II e III são verdadeiras 
D. Somente I, II e III são verdadeiras 
E. Somente III e V são verdadeiras

Continue navegando