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
Download

Disciplina - Plácido A. Souza Neto