Introdução a OO .utfpr.edu.br



Exercícios de Java e OO

Lógica estruturada

Decisões

1) Fazer um programa em Java para:

• receber 3 valores n1, n2 e n3 do usuário

• verificar se estes valores podem ser os lados de um triângulo. Em caso afirmativo, informar se o triângulo é equilátero, isósceles ou escaleno.

2) Fazer um programa que recebe 3 valores não inteiros do usuário e mostra o maior deles, o menor deles e a média.

3) Fazer um programa que recebe duas notas parciais de um aluno (0 a 100) e informa se ele está aprovado, em exame final ou reprovado. Caso esteja em exame o programa deve pedir a nota do exame (0 a 100) e informar se o aluno está aprovado ou reprovado.

4) Solicite ao usuário para digitar um número, e mostre-o por extenso. Este número deverá variar entre 1 e 10. Se o usuário introduzir um número que não está neste intervalo, mostre: "número inválido". Faça duas versões deste programa:

• Use uma estrutura if-else para resolver este problema

• Use uma estrutura switch-case para resolver este problema

Fonte:

Repetições

5) Fazer uma classe Ex1Primos para:

• Receber um inteiro N do usuário

• Testar se este inteiro é primo ou não e informar

6) Fazer um programa para mostrar os 100 primeiros termos da série de Fibonacci.

7) Fazer um programa para mostrar todos os números perfeitos entre 1 e 100.

8) Fazer uma classe Ex2Sorteio para:

• Sortear um número de 0 a 1000 (dica: usar Math.random())

• Pedir um palpite ao usuário. Se ele errar, informar se o palpite é maior ou menor do que o número sorteado.

• Pedir novos palpites até que o usuário acerte e, depois disso, mostrar em quantas tentativas ele acertou.

9) Fazer um programa para receber dois números do tipo int do usuário e determinar se um número é permutação do outro ou não. Ex: 431 é permutação de 143, 42 é permutação de 204, 1211 é permutação de 1112, etc. O programa só deve aceitar números positivos.

10) Fazer um programa para medir os reflexos do usuário. O programa deve:

• Mostrar a palavra “Agora!” após um tempo aleatório e um número, também aleatório

• Contar o tempo até que o usuário digite o número pedido e mostrar esse tempo.

• Dicas: usar o método getTimeInMillis da classe Calendar ou o método nanoTime da classe System.

11) Dada a afirmação: “A tem o dobro da idade que B tinha quando A tinha a idade que B tem. Quando B tiver a idade de A, somarão 81 anos.”. Fazer um programa para calcular as idades de A e B no método “força bruta”.

12) Chico tem 1,50 metro e cresce 2 centímetros por ano, enquanto Zé tem 1,10 metro e cresce 3 centímetros por ano. Construa um algoritmo que calcule e imprima quantos anos serão necessários para que Zé seja maior que Chico.

13) Faça uma classe que recebe do usuário a hora de inicio e a hora de término de um jogo, ambas subdivididas em 2 valores distintos: horas e minutos. A classe deve exibir a duração do jogo em minutos, considerando que o tempo máximo de duração de um jogo é de 24 horas e que o jogo pode começar em um dia e terminar no outro.

14) Torre de Hanói: considerando 3 torres, o objetivo é transferir 3 discos que estão na torre A para a torre C, usando uma torre B como auxiliar. Somente o último disco de cima de uma pilha pode ser deslocado para outra, e um disco maior nunca pode ser colocado sobre um menor. Implementar uma classe com um método recursivo que mostra a seqüência de movimentos para resolver o problema da Torre de Hanói.

String

15) Fazer uma classe ExecString que:

• Recebe duas strings do usuário (dica: usar nextLine da classe Scanner)

• Conta e informa quantas vezes a segunda string ocorre dentro da primeira

• Informa uma estatística dos caracteres contidos nas 2 strings.

16) Faça um programa que receba um nome completo na forma de uma String e mostre a abreviatura deste nome. Não se devem abreviar as palavras com 2 ou menos letras. A abreviatura deve vir separada por pontos. Ex: Paulo Jose de Almeida Prado. Abreviatura: P. J. de A. P.

17) Fazer um programa que receba uma string do usuário e mostre o conteúdo desta string de forma invertida.

18) Fazer um programa para:

• receber uma string do usuário

• contar e mostrar quantas palavras existem na string

• contar e mostrar quantas vogais existem na string

19) Um dos sistemas de encriptação mais antigos é atribuído a Júlio César: se uma letra a ser encriptada é a letra de número N do alfabeto, substitua-a com a letra (N+K), onde K é um número inteiro constante (César utilizava K = 3). Usualmente consideramos o espaço como zero e todos os cálculos são realizados com módulo-27. Dessa forma, para K = 1 a mensagem “Ataque ao amanhecer” se torna “bubrfabpabnboifdfs”. Faça um programa que receba como entrada uma mensagem e um valor de J e retorne a mensagem criptografada pelo código de César. Fraquezas: apenas 26 chaves possíveis. É possível utilizar conhecimento da linguagem para facilitar a busca.

Array

20) Pode-se calcular a área de um polígono a partir das coordenadas de seus vértices utilizando a seguinte fórmula:

Area = soma (X(n)*Y(n+1) – X(n)*Y(n-1)) / 2

sendo que:

p/ n = 1, n-1 = N (número de vértices)

p/ n = N, n+1 = 1

Escrever um programa em Java que:

• receba o número de vértices N do usuário

• receba N pares de coordenadas (X,Y) dos vertíces do polígono em arrays adequados

• calcule e mostre a área segundo a fórmula acima

21) Foi feita uma estatística nas 200 principais cidades brasileiras para coletar dados sobre acidentes de trânsito. Foram obtidos os seguintes dados:  

• código da cidade

• estado (RS, SC, PR, SP, RJ, ...)

• número de veículos de passeio (em 2007)

• número de acidentes de trânsito com vítimas (em 2007)

Escrever um programa em Java para obter os dados e mostrar:

• qual o maior e o menor índice percentual de acidentes de trânsito e a que cidades pertencem

• qual a média de veículos nas cidades brasileiras

• qual a média de acidentes com vítimas entre as cidades do Rio Grande do Sul.

22) Fazer uma classe Ex3Array com as seguintes características:

• Atributos: array de inteiros e duas variáveis para controlar o número atual e máximo de elementos inseridos no array

• Métodos:

o Construtor que recebe o tamanho do array como parâmetro e inicializa o objeto (cria array, etc.)

o public boolean adicionar(int n) – adiciona elemento ao final do array, retornando true se bem sucedido e false caso contrário

o public int calculaMedia() – retorna a média aritmética dos números armazenados no array

Fazer a classe Ex3ArrayControle que:

• Pergunta, via console, qual o tamanho N do array que o usuário quer instanciar

• Instancia um objeto da classe Ex1Array, passando N como argumento

• Pergunta N números ao usuário e armazena no objeto instanciado

• Chama o método para calcular a média aritmética e mostra o resultado

23) Adaptar o exercício anterior para utilizar um objeto da classe ArrayList ao invés de um array comum.

24) Fazer um programa para receber um número do usuário e decompô-lo em fatores primos. Os fatores primos devem ser armazenados em um array com o tamanho exato (dica: primeiro determinar quantos são os fatores primos, depois criar o array para armazená-los).

25) A distância entre várias cidades é dada pela tabela abaixo (em km):

| |1 |2 |3 |4 |5 |

|1 |00 |15 |30 |05 |12 |

|2 |15 |00 |10 |17 |28 |

|3 |30 |10 |00 |03 |11 |

|4 |05 |17 |03 |00 |80 |

|5 |12 |28 |11 |80 |00 |

Implemente um programa que:

• leia a tabela acima em um array bidimensional. O programa não deve perguntar distâncias já informadas (por exemplo, se o usuário já forneceu a distância entre 1 e 3 não é necessário informar a distância entre 3 e 1, que é a mesma) e também não deve perguntar a distância de uma cidade para ela mesma, que é 0.

• leia um percurso fornecido pelo usuário em um array unidimensional.

Calcule e mostre a distância percorrida. Por exemplo: dado o percurso 1, 2, 3, 2, 5, 1, 4, para a tabela mostrada como exemplo teremos: 15 + 10 + 10 + 28 + 12 + 5 = 80 km.

26) Fazer uma classe Java para:

• receber um número N do usuário

• receber N números inteiros em um array unidimensional

• classificar em ordem crescente utilizando o método da bolha (bubble-sort)

• mostrar o array classificado

27) Fazer uma classe Java para:

• receber 3 notas parciais do aluno em um array e a nota do exame em uma variável separada (-1 se o aluno não fez exame).

• chamar o método calculaSituacao(), com as seguintes características:

i. Parâmetros: array de notas parciais e nota do exame

ii. Retorno: 0 se o aluno está reprovado direto, 1 se o aluno está reprovado em exame, 2 se o aluno está aprovado em exame e 3 se ele está aprovado direto.

28) Fazer um programa para calcular a matriz transposta de uma matriz quadrada, fornecida pelo usuário. O programa deve pedir o valor N da dimensão horizontal e vertical e em seguida os NxN valores da matriz.

Fonte:

29) Escreva um programa para:

• pedir 10 números ao usuário e armazenar esses valores em um array

• pedir um outro número ao usuário e calcular e mostrar quantos números do array são inferiores a esse número.

Fonte:

Exceções

30) Dado o trecho de código abaixo:

int[] array = new int[] { 2, 4, 6, 8, 10, 12 };

for (int i = 0; i ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download