AGRADECIMENTO...

Pessoal, Gostaria de pedir desculpas aqueles que deixam perguntas/comentários/elogios/críticas e ainda não foram respondidos.

Aproveito a oportunidade para informar a todos que devido a correria do dia a dia não conclui o curso de BSI, por isso meus conhecimentos são limitados rsrsrs...

Ainda não retirei o blog do ar porque tem ajudado a diversos estudantes, principalmente os iniciantes.

As vezes, quando o trabalho me permite, ainda arrisco tentar resolver algumas questões rs... mas para não deixar esse blog parar no tempo, o ESTUDANTE que quiser enviar a resolução de alguma questão (código próprio) para o meu e-mail, terei o prazer de posta-la neste blog e será mantido a autoria.

Desde já agradeço a todos pelas visitas e desejo bons estudos.

Thiago Campos
(srthiago@hotmail.com)

quinta-feira, 13 de setembro de 2012

Função recursiva e janelas JOptionPane


Dada a função x:
function x(n,m: integer):
    integer; begin
    if (n=m) or (m=0)
    then x:=1;
    else x:= x(n-1,m)+x(n-1,m+1) end;
a) qual o valor de x(5,3) ? 
b) quantas chamadas serão feitas na avaliação acima ?


Código Java

//Autor: Thiago Campos
//Data: 12.09.2012

package br.com.unirn.exemplos;

import javax.swing.JOptionPane;

/**
 *
 * @author Thiago
 */
public class Exercicio3 {
    //variavel global
    static int cont=0; //variavel global
   
    public static void main(String[] args){
        //variaveis
        Exercicio3 f = new Exercicio3(); //Instanciando uma variavel
        int m, n;
       
        //entrada do sdados
        n = Integer.parseInt(JOptionPane.showInputDialog("Informe m:"));
        m = Integer.parseInt(JOptionPane.showInputDialog("Informe n:"));
       
        //saida do dados
        JOptionPane.showMessageDialog(null, "O resutado é: " + f.expressao(n,m)
                + "\nTotal de chamadas: " + cont);
    } //fim do main
/*------------------------------------------------------------------------------
 *                 FUNÇÃO DA EQUAÇAO MATEMATICA - RESULTADO
-------------------------------------------------------------------------------- */
    //Essa função receberá 2 inteiros e retornará um inteiro
    public int expressao(int n, int m){
        cont++; //contador
        if (n == 0 || m == 0){ //condição de parada
            return 1;
        }else{
            return  expressao(n-1,m) + expressao(n-1,m+1); //recursividade
        }
    } //fim da função
} //fim da classe

Nenhum comentário:

Postar um comentário