DIRETORIA ACADÊMICA DE GESTÃO E TECNOLOGIA DA INFORMAÇÃO MARATONA DE PROGRAMAÇÃO EM JAVA Disciplina: Programação Orientada a Objetos Professor: Plácido Antônio de Souza Neto Curso: Tecnologia em Análise e Desenvolvimento de Sistemas QUESTÃO 1. Faça uma classe Java chamada Sorteio. Essa classe tem 1 método chamado sortear. O Construtor deve definir os valores limites de início e fim para sorteio, por exemplo: de 1 a 10; de 100 a 130; de 500 a 750. O método sortear deve sortear um mesmo número uma única vez e deve acabar quando terminar a sequencia de numerous sorteados QUESTÃO 2. Campo minado é um popular jogo de computador para um jogador. A área de jogo consiste num campo de quadrados retangular contendo bombas ou um número revelando a quantidade de bombas próxima. Faça uma classe que contenha um método que receba um matriz de entrada informando os locais das bombas, e uma matriz de saída informando a proximidade das bombas. matriz de entrada *... .... .*.. .... matriz de saída *100 2210 1*10 1110 QUESTÃO 3. Considere o seguinte algoritmo para gerar uma sequência de números. Comece com um inteiro n. Se n é par, dividir por 2. Se n é ímpar, multiplique por 3 e adicione 1. Repetir este processo com o novo valor de n, que encerra quando n = 1. Por exemplo, a seguinte sequência de números será gerado para n = 22: 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 Implemente um método em Java que receba um número e retorne o total de números (ciclos) gerados até chegar 1. QUESTÃO 4. Considerando a questão anterior, para uma entrada n, o ciclo de comprimento de n é o número de números gerados até e incluindo o 1. No exemplo abaixo: 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 o comprimento do ciclo de 22 é 16. Dado dois números quaisquer i e j, você deve determinar a duração do maior ciclo sobre todos os números entre i e j, incluindo ambos os números i e j. Implemente um método em Java que receba 2 números e retorne o maior número de ciclo entre eles. Ex: para i=1 e j=10, o resultado/retorno é 20, pois o maior ciclo é o do número 9: 9 28 14 7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 QUESTÃO 5. Este ano tem Copa do Mundo! O país inteiro se prepara para torcer para a equipe canarinho conquistar mais um título, tornandose hexacampeã. Na Copa do Mundo, depois de uma fase de grupos, dezesseis equipes disputam a Fase final, composta de quinze jogos eliminatórios. A figura abaixo mostra a tabela de jogos da Fase final: Na tabela de jogos, as dezesseis equipes finalistas são representadas por letras maiúsculas (de A a P), e os jogos são numerados de 1 a 15. Por exemplo, o jogo 3 é entre as equipes identificadas por E e F; o vencedor desse jogo enfrentará o vencedor do jogo 4, e o perdedor será eliminado. A equipe que vencer os quatro jogos da Fase final será a campeã (por exemplo, para a equipe K ser campeã ela deve vencer os jogos 6, 11, 14 e 15. Tarefa Dados os resultados dos quinze jogos da Fase final, escreva um programa que determine a equipe campeã. USE OS JOGOS E OS TIMES COMO SENDO OBJETOS. Entrada A entrada é composta de quinze linhas, cada uma contendo o resultado de um jogo. A primeira linha contém o resultado do jogo de número 1, a segunda linha o resultado do jogo de número 2, e assim por diante. O resultado de um jogo é representado por dois números inteiros M e N separados por um espaço em branco, indicando respectivamente o número de gols da equipe representada à esquerda e à direita na tabela de jogos (0 ≤ M ≤ 20, 0 ≤ N ≤ 20 e M ≠ N). Saída Seu programa deve imprimir uma única linha, contendo a letra identificadora da equipe campeã. Exemplo Entrada 41 10 04 31 23 12 20 02 12 43 01 32 34 14 10 Saída F QUESTÃO 6. O jogo de xadrez possui várias peças com movimentos curiosos: uma delas é a dama, que pode se mover qualquer quantidade de casas na mesma linha, na mesma coluna, ou em uma das duas diagonais, conforme exemplifica a figura abaixo: O grande mestre de xadrez Kary Gasparov inventou um novo tipo de problema de xadrez: dada a posição de uma dama em um tabuleiro de xadrez vazio (ou seja, um tabuleiro 8 × 8, com 64 casas), de quantos movimentos, no mínimo, ela precisa para chegar em outra casa do tabuleiro? Kary achou a solução para alguns desses problemas, mas teve dificuldade com outros, e por isso pediu que você escrevesse um programa que resolve esse tipo de problema. Entrada A entrada contem vários casos de teste. A primeira e única linha de cada caso de teste contém quatro inteiros X1, Y1 , X2 e Y2 (1 <= X1 , Y1 , X2 , Y2 <= 8). A dama começa na casa de coordenadas (X1 , Y1), e a casa de destino é a casa de coordenadas (X2 , Y2). No tabuleiro, as colunas são numeradas da esquerda para a direita de 1 a 8 e as linhas de cima para baixo também de 1 a 8. As coordenadas de uma casa na linha X e coluna Y são (X, Y). O final da entrada é indicado por uma linha contendo quatro zeros. Saída Para cada caso de teste da entrada seu programa deve imprimir uma unica linha na saída, contendo um número inteiro, indicando o menor número de movimentos necessários para a dama chegar em sua casa de destino. Exemplo Entrada 4462 3535 5543 0000 Saída 1 0 2 QUESTÃO 7. O cometa Halley é um dos cometas de menor período do Sistema Solar, completando uma volta em torno do Sol a cada 76 anos; na última ocasião em que ele tornou-se visível do planeta Terra, em 1986, várias agências espaciais enviaram sondas para coletar amostras de sua cauda e assim confirmar teorias sobre suas composições químicas. Tarefa Escreva um programa que, dado o ano atual, determina qual o próximo ano em que o cometa Halley será visível novamente do planeta Terra. Se o ano atual é um ano de passagem do cometa, considere que o cometa já passou nesse ano (ou seja, considere sempre o próximo ano de passagem, não considerando o ano atual). Entrada A única linha da entrada contém um único inteiro A (2010 ≤ A ≤ 104), indicando o ano atual. Saída Seu programa deve imprimir uma única linha, contendo um número inteiro, indicando o próximo ano em que o cometa Halley será visível novamente do planeta Terra. Exemplo Entrada 2010 Saída 2062 Entrada 10000 Saída 10042 Entrada 2062 Saída 2138 QUESTÃO 8 (PESQUISE). McCarthy é um teórico famoso de ciência da computação. No seu trabalho, ele definiu uma função recursiva, chamada f91, que recebe como entrada um inteiro N e retorna um inteiro positivo definido como a seguir: Se N ≤ 100, então f91 (N) = f91 (f91 (N + 11)); Se N ≥ 101, então f91 (N) = N - 10. Escreva um programa que computa a função f91 de McCarthy. Entrada O arquivo de entrada consiste de uma série de inteiros positivos, cada inteiro é no máximo 1.000.000. Há no máximo 250.000 casos de teste. Cada linha possui somente um número. O fim da entrada é alcançada quando o número 0 é encontrado. O número 0 não deve ser considerado como parte do conjunto de teste. Saída O programa deve imprimir cada resultado em uma linha, seguindo o formato fornecido no exemplo de saída. Exemplo Entrada: 500 91 0 Saída: f91(500) = 490 f91(91) = 91