Programação Primeiro trabalho prático Semestre de Inverno de 2013/2014 Neste trabalho, os alunos adquirem prática de utilização de elementos essenciais da linguagem Java, nomeadamente variáveis, expressões, tipos primitivos, instruções de entrada e de saída de dados e decisão binária. Na resolução destes exercícios não poderão usar elementos da linguagem que não constam na primeira parte da matéria desta unidade curricular, nomeadamente é proibida a utilização de ciclos repetitivos, arrays, métodos da classe Math ou qualquer outra classe da API do JAVA que não foram usadas nas aulas, durante a primeira parte da matéria, e que não sejam explicitamente indicadas no exercício. Para cada exercício implemente uma classe em Java cujo nome é apresentado no exemplo de execução. A resolução dos exercícios deve cumprir exatamente os exemplos apresentados, onde se diferencia graficamente as escritas do programa das entradas realizadas pelo utilizador. Assuma que os valores introduzidos estão corretos. Dependendo da língua configurada no sistema operativo, os valores reais podem ser lidos e escritos usando vírgula em vez de ponto na separação das casas decimais. Cada grupo entregará no site da sua turma (http://thoth.cc.e.ipl.pt/classes/Pg/1314i/) até 23 de Outubro, um documento (com extensão docx, doc, pdf ou txt) que descreva a solução encontrada para cada exercício, assim como os ficheiros fonte (apenas os que têm extensão java) das respetivas soluções, devidamente comentados, comprimidos num ficheiro (com extensão zip, rar, gz, etc.). É valorizada a simplicidade das soluções que cumpram o enunciado. C:\ISEL\PG>java Num Valor (0..999) ? 342 <┘ 342 = 3 X 100 + 4 X 10 + 2 C:\ISEL\PG>java Num Valor (0..999) ? 50<┘ 50 = 0 X 100 + 5 X 10 + 0 1. Escrever em centenas, dezenas e unidades um valor (entre 0 e 999) introduzido pelo utilizador. 2. Escrever a equação reduzida da reta (y = m x + b) que passa por dois pontos (x1,y1) e (x2,y2) introduzidos pelo utilizador. Na equação reduzida, m é o declive da reta e é obtido com a expressão m = (y1-y2) / (x1-x2) e b é a ordenada na origem e é obtida com b = y1 – m x1 ou b = y2 – m x2. Quando o declive é infinito a equação da reta será (x = c) 3. C:\ISEL\PG>java Reduzida Ponto 1: x1 y1 ? 1 5,9<┘ Ponto 2: x2 y2 ? 0 3,2<┘ y = 2.7 x + 3.2 C:\ISEL\PG>java Reduzida Ponto 1: x1 y1 ? 3 6,9<┘ Ponto 2: x2 y2 ? 3 10 <┘ x = 3.0 Fazer a simulação do lançamento de dois dados num jogo de tabuleiro gerando valores pseudoaleatórios com o método random() da classe Math. Só é mostrado o segundo dado lançado após o utilizador premir a tecla “Enter”. No final é mostrada a soma dos dados, que deverá ser dobrada se os dois valores forem iguais. 4. Ler 4 valores inteiros e indicar quantos são iguais, quantos são pares e quantos são ímpares. C:\ISEL\PG>java Count4 4 valores ? 3 2 8 2<┘ Iguais: 2 Pares: 3 Impares: 1 5. Ler a hora de partida e de chegada de uma viagem e apresentar a duração. A partida, a chegada e a duração são indicados em horas, minutos e segundos. O programa deve verificar se a partida e a chegada são válidas e deve assinalar se a partida é superior à chegada. C:\ISEL\PG>java Reduzida Ponto 1: x1 y1 ? 1 1<┘ Ponto 2: x2 y2 ? 0 0<┘ y = 1.0 x + 0.0 C:\ISEL\PG>java Reduzida Ponto 1: x1 y1 ? 3 2,7<┘ Ponto 2: x2 y2 ? 0 2,7<┘ y = 0.0 x + 2.7 C:\ISEL\PG>java Dados Dado 1: [1] Prima enter <┘ Dado 2: [6] Total = 7 C:\ISEL\PG>java Count4 4 valores ? 30 5 5 30<┘ Iguais: 4 Pares: 2 Impares: 2 C:\ISEL\PG>java Viagem Partida: H M S ? 7 50 25<┘ Chegada: H M S ? 14 25 12<┘ Duração = 6 : 34 : 47 C:\ISEL\PG>java Viagem Partida: H M S ? 7 50 25<┘ Chegada: H M S ? 4 20 58<┘ Partida superior à chegada C:\ISEL\PG>java Dados Dado 1: [3] Prima enter ok <┘ Dado 2: [3] Total = 12 C:\ISEL\PG>java Count4 4 valores ? 31 5 9 11 <┘ Iguais: 0 Pares: 0 Impares: 4 C:\ISEL\PG>java Viagem Partida: H M S ? 2 63 25<┘ Hora de partida inválida C:\ISEL\PG>java Viagem Partida: H M S ? 7 50 25<┘ Chegada: H M S ? 25 0 0<┘ Hora de chegada inválida ISEL, 1 de Outubro de 2013