Lista 1

Lista

Recomendações Importantes

  • A lista deve ser entregue até às 23:59:59 do dia 14/04.
  • 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 - Help Albert

Alberto é um menino que gosta muito de jogar.

Ele é meio descontrolado e as vezes estrapola os limites de tempo, e isso está atrapalhando a sua vida acadêmica no CIn.

Ajude Alberto a organizar o seu tempo.

A leitura deve ser no formato

H1 M1 H2 M2. Onde H é a hora, e M minutos. O jogo tem duração minima de 1 minuto e máxima de 24 horas.

7 8 9 10 //entrada

O JOGO DUROU 2 HORA(S) E 2 MINUTO(S) //saída

4 4 4 4 //entrada

O JOGO DUROU 24 HORA(S) E 0 MINUTO(S) //saída

7 10 8 9 //entrada

O JOGO DUROU 0 HORA(S) E 59 MINUTO(S) //saída

Questão 2 - IMC

faça um programa que calcula o IMC do usuário,

usando os dados de peso e altura,

o índice ideal é entre 19 and 24 (segundo cdc e arredondado)

no inicio do programa informe de onde foi retirada a tabela usada

(não precisa tratar entrada inválida)

no resultado, mostre apenas o que o usuário deseja ver, perguntando a ele antes de mostrar

RESULTADO 1 (quero saber se estou no peso ideal)

-manda uma mensagem com: se ele está no peso ideal, caso não esteja, se precisa perder ou ganhar quilo e quanto

RESULTADO 2 (quero consultar a minha linha na tabela)

-manda uma mensagem com: o resultado do calculo, Weight Status e o intervalo

RESULTADO 3 (quero ambas opções)

-manda uma mensagem RESULTADO 1 e na outra linha mensagem RESULTADO 2

modelo:

olá usuário, esse programa sabe tudo sobre IMC e vai ajudar você

a tabela usada nesse programa foi disponibilizada em: Centros de Controle e Prevenção de Doenças - EUA

digite seu peso:

//entrada do usuário

digite sua altura:

//entrada do usuário

o que você deseja?

1- se você está no peso ideal

2- consultar a sua linha na tabela

3- todas as opções anteriores

//caso opção 1

você não está no peso ideal, precisa perder 5 kg

//caso opção 2

seu IMC: 26, está no intervalo: Overweight 25.0 to 29.9

//caso opção 3

você não está no peso ideal, precisa perder 5 kg

seu IMC: 26, está no intervalo: Overweight 25.0 to 29.9

Questão 3 - Valiant Quiz

Em 1914, após o assassinato do arquiduque Francisco Fernando, do Império Austro-Húngaro. O Império Germânico declara guerra a Rússia. Devido as alianças estabelecidas, a França também se prepara para o conflito, deportando os alemães...

Você, como fã de história, terá que fazer um programa em que se tenha um menu de escolha para “pelo menos 3” dos 6 seguintes personagens:

Anna: Enfermeira nascida na cidade de belga de Ieper, em uma família aristocrática.

Karl: Alemão, filho de pastor luterano. Não tinha aptidão para entrar na universidade.

Emile: Fazendeiro, dedicou sua vida ao trabalho, a Deus e à criação de sua filha.

Freddie: Nascido nos Estados Unidos, alistou-se voluntariamente nas forças francesas, no início da guerra.

George: Piloto britânico que mentiu durante o alistamento e realmente não sabe como pilotar um avião.

Walt: O cão de guerra!

(A descrição de cada personagem é apenas para “ajudar” a criar a sua própria história, não precisa seguir.)

Após a escolha (de pelo menos 3 personagens), deve ser exibido uma história inventada por você (ou seja, deve haver uma história para cada personagem escolhido).

Depois de exibida a história, deverá haver um “quiz” relativo a história da personagem escolhida.

E no final do quiz, deve-se mostrar a pontuação obtida.

Obs.: No exemplo, o menu de escolha, contém as 6 personagens, mas como só é preciso pelo menos 3, pode-se reduzi-lo.

Obs.: O quiz deve ter no mínimo 5 fases/perguntas.

Exemplo:

Escolha da personagem:

1. Emile

2. Freddie

3. Karl

4. Anna

5. Walt

6. George

Walt //entrada do usuário

Walt, um Doberman Pinscher, foi criado num canil militar alemão e treinado para ser um cão de enfermagem no Exército Alemão. Assim como outros 30.000 cães que também serviram durante a Primeira Guerra, alguns como cão-guarda e outros como mensageiros, Walt é muito leal e está sempre disposto a servir.

a) Walt, é um miniatura Pinscher.

b) Walt, é um Doberman Pinscher.

c) Walt, é um Malamute-do-Alasca.

b //entrada do usuário

Correto! //Saída

Próxima pergunta.

a) Walt, é um cão guia.

b) Walt, é um cão de enfermagem.

c) nenhuma das opções anteriores.

a //entrada do usuário

Errado! //Saída

Próxima pergunta.

.

.

.

Você acertou 8/10!

Deseja escolher outra personagem ou sair?

Questão 4 - Submit checker

Por muitos alunos zerarem questão por fazer o submit errado, você foi

escolhido para criar um programa que verifique se gerou o arquivo zip

dentro dos padrões,

o usuário, vai criar pastas e escolher uma das pastas pra zipar, (ele

pode fazer modificações antes de zipar)

o endereço das pastas vai ser uma string

se o usuário zipar uma pasta e o endereço gerado for igual ao do

padrão o verificador diz q o submit está correto

1. entrada:

-login

-numero da questão

2. String padrão gerada, que será comparada no resultado:

zip>>login>>q_

onde _ é o numero digitado na entrada

3. toda a modificação que o programa irá fazer será feita na String caminho

(chamada de string) que armazena endereço de pasta (ex.: pasta1>>pasta2>>pasta3)

4. Os menus são (o primeiro menu (desktop) que não possui pastas de inicio,

e o segundo menu (pasta) que é acessado a partir da primeira pasta criada):

MENU-DESKTOP:

visão geral: //string (no começo vazia)

1- criar pasta única ou modificar a existente

/*pede um nome para a pasta e adiciona/altera nome da seguinte forma "nome" na string*/

2- selecionar pasta

//mostra o menu-pasta caso exista uma pasta no desktop

3- inserir pasta no desktop em um arquivo zip

/*adiciona "zip>>" no inicio da string, mostra o resultado e encerra o programa*/

MENU-PASTA:

pasta atual: //nome da pasta atual

visão geral: //string

1- renomear pasta

//modifica o nome da pasta selecionada na string

2- realocar conteúdo e excluir pasta

//coloca o conteúdo dela para a pasta anterior e remove a pasta selecionada da string (ou seja, só remove o termo da string)

3- abrir proxima pasta

//caso tenha próxima pasta, seleciona essa próxima pasta

4- voltar pasta anterior

//caso tenha pasta anterior, seleciona essa pasta anterior, caso não tenha, vai para o menu-desktop

5- criar e abrir próxima pasta

/*pede um nome para pasta e adiciona nome da seguinte forma ">>nome" na string; e abre o menu-pasta dessa pasta criada*/

6- inserir pasta atual em um arquivo zip

/*descarta da string

o que vem antes de ">>"

e adiciona "zip" no inicio da string, mostra o resultado e encerra o programa*/

5. RESULTADO:

se a string de acordo com o padrão for igual a string gerada com os menus,

então a submissão está correta

se não,

submissão está incorreta e o aluno zerou essa questão

6. Modelo (também chamado de exemplo [a ser seguido com rigor] )

o modelo segue um padrão de:

mensagem para o usuário

entrada do usuário

(se necessário) próxima mensagem

modelo (por questão de espaço na exibição o menu será exposto apenas o nome,

OS ITENS DO MENU DEVEM CONTER NA QUESTÃO):

insira login:

login

insira o numero da questão:

1

MENU-DESKTOP:

visão geral:

1- criar pasta única ou modificar a existente

2- selecionar pasta

3- inserir pasta no desktop em um arquivo zip

1//entrada do usuário

insira um nome:

login

MENU-DESKTOP:

visão geral: login

-itens-

2

MENU-PASTA:

pasta atual: login

visão geral: login

1- renomear pasta

2- realocar conteúdo e excluir pasta

3- abrir proxima pasta

4- voltar pasta anterior

5- criar e abrir próxima pasta

6- inserir pasta atual em um arquivo zip

5

insira um nome:

questão1

MENU-PASTA:

pasta atual: questão1

visão geral: login>>questão1

-itens-

4

MENU-PASTA:

pasta atual: login

visão geral: login>>questão1

-itens-

4

MENU-DESKTOP:

visão geral: login>>questao1

-itens-

3

resultado:

submissão está incorreta e o aluno zerou essa questão

//motivo a pasta apos o login era pra ser q1

Questão 5 - Iam: O mago sedutor

Yam é um menino levado que estava trocando bilhetes com sua namorada na aula.

Como a professora é troll, ela tomava as cartas dele e as lia em voz alta para a turma, constrangendo o menino Yam.

Yam, maroto que só ele, resolveu usar um método para encriptar suas mensagens.

O método é simples, dado um número de deslocamento “n”, e uma letra original da mensagem, a nova letra estará “n” letras a frente da mesma.

OBS1: O deslocamento é sempre para a direita, ou seja, (deslocamento>=0).

OBS2: Para facilitar a questão, as entradas serão formadas apenas por LETRAS MAIÚSCULAS.

OBS3: O programa só deve finalizar com a entrada END.

Exemplo:

Insira o deslocamento: //saida

13 //entrada do usuário

Digite o seu texto abaixo: //saida

QUEM ABANDONA A LUTA NAO PODERA NUNCA SABOREAR O GOSTO DA VITORIA //entrada do usuário

DHRZ NONAQBAN N YHGN ANB CBQREN AHAPN FNOBERNE B TBFGB QN IVGBEVN //saida

Digite o seu texto abaixo: //saida

END //entrada do usuario

Questão 6 - O vicio de Gio - DESAFIO

Gio é um exímio programador, mas nem sempre foi assim, ele sentia muita dificuldade nas listas de IP, então resolveu estudar mais.

Estudou tanto que acabou tendo algumas sequelas, e uma delas foi sempre ao ver um piso xadrez andar por cada cerâmica contando seus passos, de uma para a outra, da seguinte maneira:

Visto essa mania estranha, gostaríamos que você, que estuda tanto quanto Giovanni estudava, nos mostrasse um algoritmo para sabermos em que casa (cerâmica) ele pararia, dando inicialmente a quantia de passos que ele daria.

Obs.: Você deve assumir que a quantidade de cerâmicas seja ilimitada, ou seja, não é apenas 7x7 como na imagem.

Obs.: O usuário deverá entrar com a quantidade de passos e a saída do programa será as coordenadas do local.

Exemplo:

6 //entrada do usuário

(2,2) //Saída

11 //entrada do usuário

(3,2) //Saída