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
Download

Tutorial 2: Primeiras classes