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 para calcular a expressão do problema.


Dada a função abaixo:
  function X(N:integer): integer;
      begin
          if (n >= 0) and (n <= 2) then
                x:=n else x := x(n-1)+x(n-2)+x(n-3)
      end;
 a) quantas chamadas serão executadas para avaliar x(6) ?
 b) indique a seqüência temporal destas chamadas.


Código Java

//Autor: Thiago Campos
//Data: 12.09.2012

import javax.swing.JOptionPane;

/**
 *
 * @author Thiago
 */
public class Exercicio4 {
    //variavel global
    static int cont=0; //contador -  não ha necessidade de public pq está na mesma classe
 
    public static void main(String[] args){
        //variaveis
        Exercicio4 f = new Exercicio4(); //instanciando a variavel f
        int n;
        String sequencia=""; //vai guardar as saidas da expressão
       
        //entrada do sdados
        n = Integer.parseInt(JOptionPane.showInputDialog("Informe n:"));
       
        //o for irá fazer com que a String sequencia guarde as saidas
        for (int i = 0; i <= n; i++) {
            sequencia += f.expressao(i) + " ";
           
        } //fim do for
        
        //Saida
        JOptionPane.showMessageDialog(null, "O termo é: " + f.expressao(n)
                +"\nA sequencia: " + sequencia
                +"\nQtd de chamadas: "+cont);
    } //fim do main
/*------------------------------------------------------------------------------
 *                 FUNÇÃO DA EQUAÇAO MATEMATICA - RESULTADO
-------------------------------------------------------------------------------- */
    public int expressao(int n){
        cont++; //contador
        if (n >=0 && n <= 2){//ponto de parada
            return n;
        }else{
            return  expressao(n-1) + expressao(n-2) + expressao(n-3);
        }
    } //fim da função
} //fim da classe

Nenhum comentário:

Postar um comentário