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 void setx(double a) x=a; public void sety(double a) y=a; public double getx() return x; public 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 () return d1==d2&&d2==d3; public boolean isoscele () return ((d1==d2) && (d2!=d3)) (d2==d3) && (d1!=d2)) (d3==d1) && (d1!=d2)); public boolean escaleno() 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(); tabela[i][j] = random.nextint(100); public static void imprimetab(int tabela[][]) System.out.println(); System.out.print(tabela[i][j]+" ; "); public static int somadiv5(int tabela[][]) int soma=0; 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));