Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
1ª Lista de Exercícios de Programação 1 Professor: Roberto Souto Maior de Barros Email da monitoria: monitoria- if968@googlegroups.com CIn-UFPE-2012.2 Disponível desde: 05/02/2013 Entrega: 27/02/2013 1. Pedra, Papel, Tesoura, Lagarto e Spock O jogo pedra,papel,tesoura,lagarto e spock é uma variação do famoso jogo pedra,papel e tesoura. Faça um programa que receba do usuário dois chars, representando a opção de dois jogadores ,faça a comparação para saber quem é o vencedor e imprima o resultado na tela. As regras do jogo são as seguintes: - Tesoura corta papel - Papel cobre pedra - Pedra esmaga lagarto - Lagarto envenena spock - Spock dobra tesoura - Tesoura decapita lagarto - Lagarto come papel - Papel desqualifica spock - Spock vaporiza pedra - Pedra esmaga tesoura As letras que representam cada uma das opções são: - Pedra (R) - Papel (P) - Tesoura(T) - Lagarto (L) - Spock(S) Obs: O uso de switch é obrigatório nessa questão. 2. Palíndromos Um palíndromo é uma seqüência de caracteres que é lida da esquerda para a direita ou da direita para a esquerda e a sequência(ordem) lida é a mesma. Escreva um programa que leia várias Strings e determine se cada uma delas é ou não um palíndromo. A lista de Strings a serem testadas terminará com a string FIM como entrada. O programa deve conter uma subrotina que determinará se a String passada é ou não um palíndromo. Exemplos: Digite uma sequência: aba É palíndromo Digite uma sequência: 1234 Não é palíndromo Digite uma sequência: FIM Fim do programa! 3. Equação de Segundo Grau Uma equação do segundo grau é da forma ax² + bx + c. Escreva um programa tal que um usuário possa digitar os valores de a, b e c, e você dê as raízes da equação. Lembre-se que as raízes podem ser: ○ Duas raízes reais e diferentes; ○ Duas raízes reais e iguais; ○ Nenhuma raiz real. 4. Classe Bugada A classe abaixo está com erros de lógica. Seu trabalho será corrigi-los e deixar no código um comentário dizendo tudo que alterou e porque alterou para consertar a classe. import java.util.Scanner; public class ClasseBugada { private int tamanho; private String[] nomes; public ClasseBugada(int tamanho) { this.tamanho = tamanho; this.nomes = new String[this.tamanho]; } public int getTamanho() { return this.tamanho; } public void inserirFinal(String nome) { int i = 0; while (nomes[i] != null) { i++; } nomes[i] = nome; } public void removerComeco() { for (int i = 0; i < this.getTamanho(); i++) { this.nomes[i] = this.nomes[i + 1]; } } public String buscarElemento(int pos) { return this.nomes[pos]; } public static void main(String[] args) { Scanner console = new Scanner(System.in); ClasseBugada demo = new ClasseBugada(10); demo.removerComeco(); demo.buscarElemento(0).toString(); for (int i = 0; i <= demo.getTamanho(); i++) { System.out.println("Insira uma string:\n"); String input = console.next(); demo.inserirFinal(input); } } } 5. Conjuntos Leia dois conjuntos de números dados pelo usuário. Dê as seguintes opções de escolha de operações que serão realizadas entre os 2 conjuntos recebidos: 1 - calcular intersecção entre os conjuntos; 2 - calcular a união entre os conjuntos; 3 - calcular a diferença entre os conjuntos; 4 - Digitar novos conjuntos; 5 - Terminar o Programa. Devem ser utilizadas subrotinas para cada uma dessas operações. O usuário pode fazer operações quantas vezes quiser até escolher a opção 5. Exemplo: Digite a cardinalidade do Conjunto A: 3 Digite 3 elemento(s): 180 150 160 Digite a cardinalidade do Conjunto B: 5 Digite 5 elemento(s): 10 70 40 15 180 Escolha uma opção: 1 - calcular intersecção entre os conjuntos; 2 - calcular a união entre os conjuntos; 3 - calcular a diferença entre os conjuntos(A-B); 4 - Digitar novos conjuntos; 5 - Terminar o Programa. 1 a intersecção é: {180} Escolha uma opção: 1 - calcular intersecção entre os conjuntos; 2 - calcular a união entre os conjuntos; 3 - calcular a diferença entre os conjuntos(A-B); 4 - Digitar novos conjuntos; 5 - Terminar o Programa. 2 A união é: {180, 150, 160, 10, 70, 40, 15} Escolha uma opção: 1 - calcular intersecção entre os conjuntos; 2 - calcular a união entre os conjuntos; 3 - calcular a diferença entre os conjuntos(A-B); 4 - Digitar novos conjuntos; 5 - Terminar o Programa. 3 A diferença é: {150, 160} Escolha uma opção: 1 - calcular intersecção entre os conjuntos; 2 - calcular a união entre os conjuntos; 3 - calcular a diferença entre os conjuntos(A-B); 4 - Digitar novos conjuntos; 5 - Terminar o Programa. 4 Digite a cardinalidade do Conjunto A: 3 Digite 3 elemento(s): 180 150 160 Digite a cardinalidade do Conjunto B: 5 Digite 5 elemento(s): 10 70 40 15 180 Escolha uma opção: 1 - calcular intersecção entre os conjuntos; 2 - calcular a união entre os conjuntos; 3 - calcular a diferença entre os conjuntos(A-B); 4 - Digitar novos conjuntos; 5 - Terminar o Programa. 5 Fim do Programa! 6. Adivinhação É necessário o uso de array para essa questão. O jogo da forca é basicamente um jogo de adivinhação onde se deve descobrir uma palavra oculta, que vai sendo revelada à medida que o jogador propõe letras, se ele acertar a letra ela é revelada na palavra oculta, sempre imprima a palavra oculta (usando ‘=’ no lugar das letras não reveladas) a cada entrada do programa conforme no exemplo. O programa deve receber como entrada uma String que será a palavra, depois o usuário deve entrar com os “chutes” de letras ou com a palavra em si. Se ele acertar, as letras devem ser reveladas nas posições originais, se errar, o jogador perde uma tentativa. Cada jogador tem no máximo 6 tentativas. O programa termina quando o jogador perder ou ganhar Exemplo: Informe a palavra: testando ======== Digite uma letra ou palavra: a ====a=== Digite uma letra ou palavra: t t==ta=== Digite uma letra ou palavra: z A palavra não contém essa letra! 5 tentativas restantes t==ta=== Digite uma letra ou palavra: testando testando Parabéns, você venceu.