Programação Orientada por Objectos jvo Tutorial 2: Primeiras classes 1. Considere o seguinte código de qualidade muito duvidosa: import java.util.Scanner; public class Comb { public static void main(String [] arg) { int n, m; Scanner sc = new Scanner(System.in); n = sc.nextInt(); m = sc.nextInt(); int i, fn=1; for(i=1; i<=n; i++) fn = fn*i; int fm=1; for (i=1; i<=m; i++) fm = fm*i; int nm= n-m, fnm=1; for(i=1; i<= nm; i++) fnm = fnm*i; int comb = fn / (fm*fnm); System.out.print(comb); } } a) Identifique o que o código faz; Considere apenas entradas positivas e menores do que 10. b) Melhore, justificando, a qualidade do código; c) Certifique-se que o código produzido na sua resposta à alínea anterior tem exatamente a mesma funcionalidade do código original submetendo um e depois o outro ao mooskak (Problema B de POO 2015/16) 2. Considere o seguinte código: public class AreaCirculo { public static void main (String [] args) { float raio; double area; Scanner sc = new Scanner(System.in); raio = sc.nextFloat(); area = Math.PI * raio * raio; System.out.print((int) area); } } a) Re-escreva o código usando as classes Point, Circle, e a cliente CircleArea. Para isso, crie o projeto T2Q2 no eclipse b) Certifique-se que o código produzido na resposta à alínea anterior tem exatamente a mesma funcionalidade do código original submetendo um e depois o outro ao mooskak (Problema C de POO 2015/16) http://w3.ualg.pt/~jvo/poo POO tutorial 2 - 1 Programação Orientada por Objectos jvo 3. Considere o seguinte código: } import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Ponto a, b; a = new Ponto(sc.nextDouble(), sc.nextDouble()); b = new Ponto(sc.nextDouble(), sc.nextDouble()); sc.close(); SegmentoReta sr = new SegmentoReta(a,b); System.out.println(sr.pontoMedio()); } Que é suposto construir um segmento de reta a partir de 2 pontos não coincidentes e escrever na consola o ponto médio desse segmento no formato <int> @ <int> onde <int> corresponde à parte inteira de cada uma das coordenadas do ponto médio. a) Crie o projeto T2Q3 no eclipse. Escreva a classe SegmetoReta com as funcionalidades pretendidas e só essas. Rescreva a classe Point que desenvolveu nas questões anteriores. Submeta ao mooskak (Problema D de POO 2015/16) todo o código produzido, incluindo a class Main acima . http://w3.ualg.pt/~jvo/poo POO tutorial 2 - 2