quarta-feira, 28 de setembro de 2016

Fatorial e Fibonacci com Recursividade em Java

Para treinar recursividade em Java, fiz dois programinhas. O primeiro calcula o fatorial de um número digitado pelo usuário e o segundo imprime a sequência de Fibonacci do tamanho solicitado também pelo usuário. Seguem os códigos logo abaixo.

//Desenvolva um algoritmo que calcule o fatorial de um número n.
import java.util.Scanner;

public class FatorialRecursivo {
   
    //Método que calcula fatorial de forma recursiva
    static int Fatorial(int numero) {
        if(numero > 1)
            return (numero * Fatorial(numero - 1));
        else
            return numero;
    }

    //Testando o método Fatorial()
    public static void main(String[] args) {
        Scanner leitor = new Scanner(System.in);
        System.out.print("Digite um número inteiro cujo fatorial deseje calcular: ");
        int numero = leitor.nextInt();
        System.out.println(numero+"! = "+Fatorial(numero));
        leitor.close();
    }
}



/***************************************************
 * Desenvolva um algoritmo que calcule o n-ésimo termo de uma série de fibonacci.
 * Série de fibonacci: 1, 1, 2, 3, 5, 8, 13, 21, 34 . . .
 * OBS.: O n-ésimo termo é obtido a partir dos dois anteriores.
***************************************************/


import java.util.Scanner;

public class FibonacciRecursivo {
   
    //Método que imprime sequência de Fibonacci recursivamente   
    static int Fibonacci(int quantidade, int i, int j) {
        if(quantidade > 0) {
            System.out.print(j+" ");
            return Fibonacci(quantidade - 1, j, i+j);
        } else {
            return 1;
        }
    }

    public static void main(String[] args) {
        Scanner leitor = new Scanner(System.in);
        System.out.print("Quantidade de número na sequência de Fibonacci: ");
        Fibonacci(leitor.nextInt(), 0, 1);
        leitor.close();
    }
}

Error parsing XML: must not undeclare prefix

Ao atualizar meu Android Studio para a versão 2.2, acabo me deparando com o seguinte erro:

Error parsing XML: must not undeclare prefix

Ele aponta esse erro para a linha destacada abaixo:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:app2=""
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"


Entretanto, percebo que o erro se encontra no acréscimo automático da seguinte linha:

xmlns:app2=""

Ao excluí-la, tenho meu aplicativo emulado corretamente sem erros. Não sei por que o Android Studio 2.2 acrescentou essa linha, mas espero que esta postagem possa ajudar a alguém. ^^

segunda-feira, 26 de setembro de 2016

Qual é o processo de geração de um aplicativo android?


A máquina virtual para Android (Dalvik) não gera bytecodes e sim arquivos .dex que são gerados a partir das classes java compiladas. Essa conversão é feita pela ferramenta dx que vem com o Android SDK. O arquivo .apk é criado a partir da junção do arquivo .dex com os demais recursos do projeto, como imagens e ícones.