PI 2018-Q1 - Correção Lista 4
Clique aqui para baixar o arquivo .java
diretamente.
public class Exercicios_Funcoes { public static void main(String[] args){ System.out.println("igual(2.1,2.2,0.01)="+igual(2.1,2.2,0.01)); System.out.println("igual(0.3,0.33,0.1)="+igual(0.3,0.33,0.1)); System.out.println("contaVogais(\"TestE\")="+contaVogais("TestE")); System.out.println("contaVogais(\"tsktsk\")="+contaVogais("tsktsk")); System.out.println("contaPalavras(\"Wow\")="+contaPalavras("Wow")); System.out.println("contaPalavras(\"Deu certo\")="+contaPalavras("Deu certo")); System.out.println("contaPalavras(\"\")="+contaPalavras("")); System.out.println("contaConsoantes(\"Wow\")="+contaConsoantes("Wow")); System.out.println("contaConsoantes(\"Deu certo\")="+contaConsoantes("Deu certo")); System.out.println("contaConsoantes(\"\")="+contaConsoantes("")); System.out.println("estaDentro(1,1,2,2,5)="+estaDentro(1,1,2,2,5)); System.out.println("estaDentro(1,1,0,0,0.2)="+estaDentro(1,1,0,0,0.2)); System.out.println("estaDentro(5,5,0,0,5)="+estaDentro(5,5,0,0,5)); System.out.println("mediana(1,2,3)="+mediana(1,2,3)); System.out.println("mediana(3,2,1)="+mediana(3,2,1)); System.out.println("mediana(2,2,1)="+mediana(2,2,1)); System.out.println("mediana(1,2,2)="+mediana(1,2,2)); System.out.println("mediana(10,1,9)="+mediana(10,1,9)); System.out.println("paraBinario(\"111\")="+paraBinario("111")); System.out.println("paraBinario(\"1010\")="+paraBinario("1010")); System.out.println("convertePlaca(\"AAA0000\")="+convertePlaca("AAA0000")); System.out.println("convertePlaca(\"BAA0000\")="+convertePlaca("BAA0000")); } public static boolean igual(double x, double y, double tol){ return Math.abs(x-y) <= tol; } public static int contaVogais(String msg){ int numVogais = 0; msg = msg.toLowerCase(); for(int i=0;i<msg.length();++i){ switch(msg.charAt(i)){ case 'a': case 'e': case 'i': case 'o': case 'u': numVogais++; break; } } return numVogais; } public static int contaPalavras(String msg){ int numPalavras = msg.length() > 0 ? 1 : 0; msg = msg.toLowerCase(); for(int i=0;i<msg.length();++i){ if(msg.charAt(i) == ' '){ ++numPalavras; } } return numPalavras; } public static int contaConsoantes(String msg){ //contaPalavras(msg) = # numero de espaços na mensagem + 1 return msg.length() > 0 ? (msg.length() - contaVogais(msg) - (contaPalavras(msg) - 1)) : 0; } public static boolean estaDentro(double x, double y, double cx, double cy, double r){ return Math.pow(x-cx, 2) + Math.pow(y-cy, 2) <= Math.pow(r,2); } public static int mediana(int e1, int e2, int e3){ if(e1 >= e2 && e1 <= e3) return e1; if(e1 >= e3 && e1 <= e2) return e1; if(e2 >= e1 && e2 <= e3) return e2; if(e2 >= e3 && e2 <= e1) return e2; return e3; } public static int paraBinario(String bits){ int num = 0; for(int i=0;i<bits.length();++i){ num += bits.charAt(i) == '1' ? Math.pow(2,bits.length()-i-1) : 0; } return num; } public static int convertePlaca(String placa){ int v_letras = 0; int v_num = 0; for(int i=0;i<3;++i){ v_letras += (placa.charAt(i)-'A') * Math.pow(26, 2-i); } for(int i=0;i<4;++i){ v_num += (placa.charAt(3+i)-'0') * Math.pow(10, 3-i); } return v_letras * 10000 + v_num; } }