Sie sind auf Seite 1von 6

Simulado de Linguagem de Programao Java

1. Descreva o processo de criao de programas em Java, desde a criao do cdigo-fonte at a obteno do resultado esperado, por meio de sua execuo. Cite as instrues e/ou comandos usados durante o processo. Passo 1: criar e/ou editar o cdigo-fonte usando um editor de textos ASCII Passo 2: compilar o cdigo-fonte com javac <nome_da_classe>.java Passo 3: executar a classe com Java <nome_da_classe> 2. Descreva sucintamente em que situaes ocorrem os erro e excees listados abaixo e quais as aes necessrias para corrigi-los. a. NoSuchMethodError: main Causa: tentativa de executar um classe sem o mtodo main. Soluo: verificar se o mtodo existe e se a sua assinatura est correta public static void main(String a[]). b. NoClassDefFoundError: principal Causa: tentativa de executar uma classe que no existe. Soluo: verificar se o nome da classe este correto em sua declarao. c. ArrayIndexOutOfBoundException: 2 Causa: tentativa de acessar o elemento de ndice 2 de um array. Soluo: verificar erro de lgica e se todos os argumentos da linha de comando, esperados pelo programa, foram de fato passados. d. incompatible types: found <tipo1> required <tipo1> Causa: tentativa de usar um tipo de dado <tipo1> onde era esperado <tipo1> Soluo: corrigir erro de lgica, definindo o tipo adequado e compatvel e. NumberFormatException: For input string "xpto" Causa: tentativa de gerar um tipo numrico a partir de um String, sendo que o String no pode ser convertido em nmero. Soluo: tratar o erro com try/catch ou assegurar de outra forma que o String que se deseja converter contenha apenas dgitos.

f. cannot find symbol: <qual> <onde> Causa: alguma varivel ou mtodo <qual> usado no est definido em <onde>. Soluo: definir o que no est definido ou corrigir erro de digitao. g. javac: file not found: Teste.java Causa: tentativa de compilar um cdigo-fonte (Teste.java) que no existe na pasta atual. Soluo: verificar a existncia do arquivo, alterando sua localizao e/ou nome.

3. Escrever uma classe executvel em Java que gera e escreve os 4 primeiros nmeros perfeitos. Um nmero perfeito aquele que igual soma dos seus divisores. Ex: 6 = 1+2+3, 28 = 1+2+4+7+14.
public class NrosPerfeitos { public static void main(String[] args) { int n = 6; int cont = 0; while (cont <= 4) { if (ePerfeito(n)) { cont++; System.out.println(n + " eh " + ePerfeito(n)); } n++; } } static boolean ePerfeito(int n) { boolean perfeito = false; int soma = 0; for (int i = 1; i < n; i++) { if (n % i == 0) { soma += i; } } if (soma == n) { perfeito = true; } return perfeito; } }

4. Escrever uma classe executvel em Java que l um nmero no determinado de valores, todos inteiros e positivos, pela linha de comando. Para cada nmero proceder como segue: (a) se par, verificar quantos divisores possui e escrever esta informao; (b) se mpar e menor do que 12, calcular e escrever o seu fatorial; (c) se mpar e maior ou igual a 12 calcular e escrever a soma dos inteiros de um at o nmero lido. Ateno: requisito tcnico da soluo que seja usado o for aprimorado, disponvel a partir da verso 5 da Linguagem Java.
public class NrosAnaliseMultipla { public static void main(String[] args) { if (args.length == 0) { System.out.println("Erro na quantidade de argumentos!!!"); } else { for (String a : args) { int n = Integer.parseInt(a); if (n % 2 == 0) { System.out.println( n + " tem " + qtdDivisores(n) + " divisores!!!"); } else { if (n < 12) { System.out.println( "O fatorial de " + n + " = " + fatorial(n)); } else { System.out.println( "A soma dos inteiros ate " + n + " = " + somaInteirosAte(n)); } } } } static int qtdDivisores(int n) { int qtdDiv = 0; for (int i = 1; i < n; i++) { if (n % i == 0) { qtdDiv++; } } return qtdDiv; }

static int fatorial(int n) { int fat = 1; for (int i = n; i > 1; i--) { fat*=i; } return fat; } static int somaInteirosAte(int n) { int soma = 0; for (int i = 1; i <= n; i++) { soma += i; } return soma; } }

5. Faa uma classe executvel em Java que gere uma tabela com os nmeros de 1 a 10 e mostre o nmero (N), seu quadrado (Q), cubo (C), fatorial (F), nmero de divisores (D) e uma mensagem dizendo se o nmero primo ou no, conforme layout a seguir:

N Q C F D Primo 1 1 1 1 1 Sim 2 4 8 2 2 Sim


public class NrosAnaliseMultiplaV2 { public static void main(String[] args) { System.out.println("N Q C F D Primo"); for (int i = 1; i <= 10; i++) { System.out.println( i + " " + i * i + " " + i * i * i + " " + fatorial(i) + " " + qtdDivisores(i) + " " + ePrimo(i)); } } static int qtdDivisores(int n) { int qtdDiv = 0; for (int i = 1; i <= n; i++) { if (n % i == 0) { qtdDiv++; } } return qtdDiv;

static int fatorial(int n) { int fat = 1; for (int i = n; i > 1; i--) { fat *= i; } } return fat;

static boolean ePrimo(int n) { boolean primo = true; for (int i = 2; i < n; i++) { if (n % i == 0) { primo = false; break; } } return primo;

} }

6. Escrever uma classe executvel em Java que l um conjunto no determinado de pares de valores a, b, todos inteiros e positivos, e para cada par lido, obtm o Mximo Divisor Comum (MDC) e o Mnimo Mltiplo Comum (MMC) de a,b, escrevendo-os juntamente com os valores lidos.
public class MmcEMdc { public static void main(String[] args) { if (args.length == 0 || args.length % 2 != 0) { System.out.println("Erro na quantidade de argumentos!!!"); } else { for (int i = 0; i < args.length-1; i++) { int a = Integer.parseInt(args[i]); int b = Integer.parseInt(args[i+1]); System.out.println( "a = " + a + " b = " + b + " MDC = " + calcMdc(a, b) + " MMC = " + calcMmc(a, b)); } } } static int calcMmc(int a, int b) { return (a * b) / calcMdc(a, b); } static int calcMdc(int a, int b) { int menor = a; if (a > b) { menor = b; } int mdc = 0; for (int i = 1; i <= menor; i++) { if (a % i == 0 && b % i == 0) { mdc = i; } } return mdc; } }

Das könnte Ihnen auch gefallen