Lista 1

Recomendações Importantes

  • A lista deve ser entregue até às 23:59:59 do dia 17/10.
    • Deixe seus programas entendíveis. Imprima mensagens para auxiliar o usuário a utilizar o seu programa.
    • Seja criativo. As mensagens do seu programa não necessitam estar iguais aos exemplos, a menos que seja especificado.
    • A lista é individual, portanto não compartilhe seus códigos com outros alunos ou os coloque em locais públicos (Pastebin, Github).
    • Não copie. Se for detectado cópia da internet ou de um colega, as LISTAS envolvidas serão completamente zeradas.
    • Alguns exemplos aqui definidos podem apresentar comentários. Note que são apenas ilustrativos.
    • A correção da Questão Desafio é booleana. Ou seja: você receberá o ponto extra do desafio caso a resposta esteja 100% correta. Qualquer erro, mesmo que seja em apenas um caso, invalidará a questão.
    • Não é permitido o uso da API de Java ou bibliotecas externas, exceto quando permitido explicitamente na questão, na lista, ou autorizado por um monitor através da lista de email (Google Groups) da disciplina. Questões submetidas que violarem essa regra serão consideradas como não entregues.
    • São permitidas nessa lista, para todas as questões:
    • String
    • Scanner

Questão 1 - CInbook+

Como brilhante empreendedor, você formula a ideia de uma nova rede social para os computeiros do CIn se adaptarem à socialização, o CInbook+.

Pensando que seus futuros usuários terão senhas como "123456" e "senha2", fáceis de serem crackeadas, você decide construir um gerador de senha para eles terem acesso à algo mais seguro. Construa um gerador de senhas que crie senhas aleatórias de um certo tamanho. Para gerar uma senha, o usuário deverá digitar o comando "gen x" onde x é o número de caracteres desejados. Também deverá ser reconhecido o comando "ngen x", que retorna uma senha composta apenas por números. O programa deverá continuar aceitando comandos até receber a instrução "end". Avise ao usuário caso ele não coloque o comando de forma correta. Nessa questão será permitido o uso da classe Random.

Exemplo:

Bem-vindo ao gerador de senhas do CInbook+! 
Digite um comando: 
gen 15 
Senha gerada: 58!6m3J4u0QE49z 
Digite um comando: 
ngen 4 
Senha gerada: 8325 
Digite um comando: 
gerar 15 
Comando inválido! Tente denovo! 
Digite um comando: 
ngen -3 
Número inválido! Tente denovo! 
Digite um comando: 
end 
Programa encerrado. Volte sempre! 

Questão 2 - Savarí

Num mundo muito muito distante, próximo a Surubim, um mago está precisando de sua ajuda. Sabendo que você é um programador de alta patente, oriundo do planeta IP-CIN, o mago lhe confiou a tarefa de codar o “Sistema de alta magia: Saraví”. O Saraví consiste em um programa que recebe um ingrediente e dá como resultado (saída) o nome do produto do feitio. O feitio pode ser:

1- Chá

2- Pó

3- Vapor

O nome do produto é dado pelo “inverso” da concatenação do tipo do feitio com o nome do ingrediente principal, sem espaços. Por exemplo, o Chá feito com “Maçã” terá o nome: “Ãçamáhc” (sem aspas) – atenção para deixar em maiúsculo apenas a primeira letra da palavra (após inverter). O programa só será encerrado quando o usuário assim quiser.

Programa rodando:

Bem vindo ao Saraví! 
Que tipo de feitio irá fazer? 
1- Chá 
2- Pó 
3- Vapor 
4- Sair do programa 
1 //Entrada do usuário 
Qual o ingrediente principaldo seu chá? 
Maçã //Entreda do usuário 
Seu feitio será chamado de: Ãçamáhc 
Que tipo de feitio irá fazer? 
1- Chá 
2- Pó 
3- Vapor 
4- Sair do programa 
4 //Entreda do usuário 
Foi um prazer fazer magia com você! Até a próxima! 

Questão 3 - CalcSapé Plus ++

Os alunos da Área II estão com dificuldades para realizar calculos aritméticos em bases diferentes da decimal (como hexadecimal, octal e binário). Sua tarefa, então, é criar uma calculadora em que o usuário escolhe a base de entreda e a de saída.

Exemplo do programa:

Qual a base de entrada: 
1- Decimal 
2- Hexadecimal 
3- Octal 
4- Binário 
4 //Entrada 
Qual a base de saída: 
1- Decimal 
2- Hexadecimal 
3- Octal 
4- Binário 
2 //Entrada 
Qual operação deseja realizar: 
1- Adição 
2- Subtração 
3- Multiplicação 
4- Divisão 
1 //Entrada 
Primeiro operando: 
101000 //Entrada 
Segundo operando: 
1000111 //Entrada 
Resultado: 
6F 
Volte sempre para a CalcSapé Plus ++ 

Questão 4 - Os mortos não me querem...

Talion é um patrulheiro das muralhas de Black Gate que teve sua família assassinada pelas tropas de Uruks e pela Black Hand de Sauron. Ele também foi morto neste processo, mas não antes de ser amaldiçoado pela Black Hand. Por conta disto, foi banido da terra dos mortos e teve sua alma ligada a do elfo Celebrimbor, o qual forjou os anéis do poder. Você, como programador e fã das histórias de Tolkien, terá que fazer um programa que tenha uma história deste patrulheiro (inventada por você) que em cada frase será disponibilizado ao usuário um texto, o qual ele deve ler e decidir entre algumas opções. Essas decisões irão influenciar no sucesso ou fracasso do patrulheiro.

  • O conteúdo das fases ficará por sua conta, embora o número mínimo de fases seja 15 e o máximo 20.
  • Você deverá disponibilizar no mínimo 3 alternativas por escolha para Talion, cada uma delas levando a novas fases distintas, vitória ou derrota.
  • A escolha da alternativa deverá ser feita por meio de palavras-chaves para cada opção definida por você programador, palavras estas DEVERÃO ser aceitas tanto com caracteres maiúsculos, como minúsculos e mistos (os dois).

Trace o destino da terra média e treine seus comandos condicionas. Boa sorte patrulheiro!

Exemplo:

Talion encontra uma caverna e acha ela meio sombria e misteriosa, será que ele deveria...
a) Entrar pelo CAMINHO A desta caverna?
b) Entrar pelo CAMINHO B desta caverna?
c) NAO ENTRAR na caverna e procurar os aterfatos de memória de Celebrimbor em outro lugar.
CaMinho A // Entrada do usuário
Talion entra pelo caminho A e encontra um Graug enorme, que esmaga o patrulheiro com um só pisão, é o fim desta jornada...
// fim da história

Questão 5 - Hoje a noite não tem luar...

H. P. Lovecraft foi um escritor muito famoso que contava histórias sobre deuses antigos presos em seus sonhos eternos dentre dimensões perdidas. Dentre os mais famosos estavam Cthulhu, Nyarlantothep, Azathoth, Shubb - Niggurath, entre outros. Estes deuses eram tão poderosos que podiam engolir galaxias e mundos inteiros com pouca dificuldade. Em Arkham, uma cidade pacata e com pouco movimento, coisas estranhas começaram a

acontecer. Você como se preocupa em passar em álgebra antes que o mundo acabe devorado por estes deuses, fará um programa para ajudar a população de Arkham que é cidade em que estão acontecendo a abertura de portais interdimensionais por onde os deuses antigos podem passar.

Estes portais se abrem sempre que há lua cheia e você precisa saber quando essas luas acontecerão para poder tentar fechá-los. Seu programa perguntará qual foi a data da última lua cheia e então deverá disponibilizar em quais datas haverá lua cheia durante o resto do ano, levando em consideração que esta ocorre a cada 30 dias. Após serem mostradas as próximas datas de lua cheia, você deverá perguntar se o usuário deseja saber as luas cheias a partir de outra data. Seu programa deve encerrar quando o usuário digitar a palavra “Não”.

-------------------------------------------------------------------------------------------------

Exemplo:

Bem-vindo ao Mythos Detector! 
Indique a data da última lua cheia e saiba quando haverá lua cheia durante o restante do ano. 
15/08/2012 // Entrada do Usuário 
As datas das próximas luas cheias serão: 
14/09/2012 
14/10/2012 
Deseja verificar outra data?
Não // Entrada do usuário
Obrigado por utilizar o Mythos Detector.

Questão 6 - Clube dos palíndromos - DESAFIO

Escreva um programa que mostre a maior subString palíndroma em uma dada String. Para encerrar o programa, deve-se utilizar o comando "/quit", e o programa deverá mostrar quantos palíndromos foram encontrados.

Lembrando, um palíndromo é uma sequência de caracteres que pode ser lida tanto da direita para a esquerda, quanto da esquerda para direita sem alterar sua informação, como bAAb ou AcEcA.

Exemplo:

Detector de palíndromos v1.0 
Digite seu texto: 
ban!a!nas //Entrada do usuário 
O maior palíndromo encontrado foi: 
an!a!na 
Digite seu texto: 
abcdaBcd dcbag //Entrada do usuário 
O maior palíndromo encontrado foi: 
aBcd dcba 
Digite seu texto: 
/quit //Entrada do usuário 
Detector de palíndromos encerrado, 2 palíndromos encontrados.