Revisão da Java
Ex1
Crie um programa que determine a partir das coordenadas de 3 pontos, fornecidas pelo
utilizador, o tipo de triângulo que estas representam (equilátero, isósceles ou escaleno).
Nota:
ƒ Triângulo equilátero tem os 3 lados iguais.
ƒ Triângulo isóscele tem 2 lados iguais.
ƒ Triângulo escaleno tem os 3 lados diferentes.
Implementa a classe Ponto, para representar as coordenadas, e a classe Triangulo, para
representar e testar triângulos.
Em separado implementa a classe que contém o programa principal e faz uso das outras duas
para cumprir os objectivos pretendidos.
Ex2
Escreva um método que receba uma tabela de caracteres (tab) e um caractere (c1) e retorne a
quantidade de caracteres c1 encontrados na tabela tab. Faça código no método main que
demonstre a utilização deste método.
Ex3
Escreva um método recursivo que permita obter o resultado de A-B sendo A e B inteiros não
negativos e B menor que A.
Nota:
a-b = a if b=0
a-b =(a-1) - (b-1)
Ex4
a) Na classe TabelaUtil, estão definidos métodos que permitem realizar diversos
processamentos sobre uma tabela bidimensional. Faça o código dos seguintes métodos:
• Preenche uma tabela bidimensional de inteiros com números aleatórios até 100
(preencheTab).
• Imprima os elementos da tabela bidimensional em forma de matriz
(imprimeTab).
• Devolva a soma dos números de uma tabela bidimensional que forem divisíveis por
5 (somaDiv5).
b) Demonstre o uso dos métodos da classe TabelaUtil, numa outra classe.
Ex1 (Resolução)
public class Ponto {
private double x,y;
public Ponto(double a, double b){
x =a;
y =b;
}
public
public
public
public
void setX(double a) {x=a;}
void setY(double a) {y=a;}
double getX() {return x;}
double getY() {return y;}
public String toString()
{
return x+";"+y;
}
public double distOrigem()
{
return Math.sqrt(getX()*getX() + getY()*getY());
}
// Calcula distancia entre dois pontos
public double distancia(Ponto p)
{
return Math.sqrt((getX()-p.getX())*(getX()-p.getX()) +
(getY()-p.getY())*(getY()-p.getY()));
}
}
public class Triangulo {
private Ponto p1,p2,p3;
public Triangulo(Ponto np1, Ponto np2, Ponto np3){
p1=np1;
p2=np2;
p3=np3;
}
public boolean equilatero ()
{
double d1, d2, d3;
d1=p1.distancia(p2);
d2=p2.distancia(p3);
d3=p3.distancia(p1);
return d1==d2&&d2==d3;
}
public boolean isoscele ()
{
double d1, d2, d3;
d1=p1.distancia(p2);
d2=p2.distancia(p3);
d3=p3.distancia(p1);
return ((d1==d2) && (d2!=d3)) ||
(d2==d3) && (d1!=d2)) ||
(d3==d1) && (d1!=d2));
}
public boolean escaleno()
{
double d1, d2, d3;
d1=p1.distancia(p2);
d2=p2.distancia(p3);
d3=p3.distancia(p1);
return (d1!=d2)&&(d2!=d3)&&(d3!=d1);
}
}
public class Ex1 {
public static void main(String[] args){
Ponto p1, p2, p3;
p1 = new Ponto (2,2);
p2 = new Ponto (6,6);
p3 = new Ponto (2,6);
Triangulo t1;
t1=new Triangulo(p1,p2,p3);
if (t1.equilatero()) System.out.println("Triangulo equilatero");
if (t1.isoscele()) System.out.println("Triangulo isoscele");
if (t1.escaleno()) System.out.println("Triangulo escaleno");
}
}
Ex2 (Resolução)
public class Ex2
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
char [] tab={'a','s','d','f','a','s','d','f','a','s','d','f'};
System.out.println("Introduza o caracter a procurar: ");
char c1 = sc.next().charAt(0);
int vezes=procura(tab,c1);
System.out.println("Caracter "+c1+" encontra-se "+vezes+" vezes");
}
static int procura(char[] tab, char c1)
{
int cont=0;
for(int i=0;i<tab.length;i++)
if (tab[i]==c1)cont++;
return cont;
}
}
Ex3 (Resolução)
public class Ex3 {
public static void main(String[] args)
{
System.out.println("Digite o inteiro A:");
int a = Le.umInt();
System.out.println("Digite o inteiro B:");
int b = Le.umInt();
System.out.println("A-B=" + subtr(a,b));
}
static long subtr(int a, int b)
{
if (b==0)
return a;
return subtr(--a,--b);
}
}
Ex4 (Resolução)
import java.util.Random;
class TabelaUtil {
public static void preencheTab(int tabela[][])
Random random = new Random();
for (int i=0; i < tabela.length; i++)
for (int j=0; j < tabela[i].length; j++)
tabela[i][j] = random.nextInt(100);
}
{
public static void imprimeTab(int tabela[][]) {
for (int i=0; i < tabela.length; i++)
{
System.out.println();
for (int j=0; j < tabela[i].length; j++)
System.out.print(tabela[i][j]+" ; ");
}
}
public static int somaDiv5(int tabela[][]) {
int soma=0;
for (int i=0; i < tabela.length; i++)
for (int j=0; j < tabela[i].length; j++)
if (tabela[i][j]%5==0) soma+=tabela[i][j];
return soma;
}
}
class Teste{
public static void main(String[] args){
int tab[][] = new int[5][4];
TabelaUtil.preencheTab(tab);
TabelaUtil.imprimeTab(tab);
System.out.println();
System.out.println("Soma: "+TabelaUtil.somaDiv5(tab));
}
}
Download

Reviso da Java