SóProvas



Questões de Recursividade


ID
118624
Banca
FCC
Órgão
TRT - 20ª REGIÃO (SE)
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Objeto que se constitui parcialmente ou é definido em termos de si próprio. Nesse contexto, um tipo especial de procedimento (algoritmo) será utilizado, algumas vezes, para a solução de alguns problemas. Esse procedimento é denominado:

Alternativas
Comentários
  • Um objeto é dito recursivo se ele consistir parcialmente ou for definido em termos de si próprio. Nesse contexto, um tipo especial de procedimento (algoritmo) será utilizado, algumas vezes, para a solução de alguns problemas. Esse procedimento é denominado recursivo. Todo procedimento, recursivo ou não, deve possuir pelo menos uma chamada proveniente de um local exterior a ele. Essa chamada é denominada externa. Um procedimento não recursivo é, pois, aquele em que todas as chamadas são externas.

    Fonte:
    http://www.uems.br/docentes/rmmuller/recursiv.pdf


ID
148063
Banca
FCC
Órgão
TRT - 16ª REGIÃO (MA)
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

O poder da recursão deve-se à possibilidade de definição de um conjunto

Alternativas
Comentários
  • Recursão é o processo de definir algo em termos de si mesmo e é, algumas vezes, chamado de definição circular. Assim, pode-se dizer que o conceito de algo recursivo está dentro de si, que por sua vez está dentro de si e assim sucessivamente, INFINITAMENTE.
     
    Um algoritmo recursivo sempre deverá ter uma condição de parada (solução trivial) que define quando a recursão se encerra, ou seja a sua formulação é FINITA. Mas, os OBJETOS que serão utilizado no algoritmo recursivo terão  definições INFINITAS. Cabe o algoritmo limitá-los.
     
    Exemplo de objetos:
    O primeiro número natural é zero.
    O sucessor de um número natural é um número natural.
     
    Percebe-se que os valores desses objetos nunca vão acabar até que o algoritmo recursivo limite-os.
     
    Portanto, a definição dos objetos são INFINITOS e a formulação do seu algoritmos tenha uma resposta FINITA.
  •  c)infinito de objetos por meio de uma formulação finita.

    vai no google e pesquisa "recursion". ele vai questionar "do you mean 'recursion'?". se clicar na sugestao, ele de novo vai sugerir "do you mean 'recursion'?". Dessa forma, tu vai ficar infinitamente buscando recursion a menos que tu estabeleça um critério (uma formulação finita) para limitar o numero de iterações para buscar 'recursion'. 


ID
149389
Banca
FCC
Órgão
TJ-SE
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A recursividade na programação de computadores envolve a definição de uma função que

Alternativas
Comentários
  •  recursividade na programação de computadores envolve a definição de uma função que pode invocar a si própria, ou seja, nesta mesma função ela chama a si mesma até que a condição do loop satisfaça terminando a execução da função.

  • RE-cursivo, que pode tornar cursivo em si mesmo. Letra E.
  • A recursividade é um recurso bastante útil na linguagens de programação que consiste da própria função chamar a si mesma.

    Muito utilizada para percorrer árvores usando busca binária, ou montar árvores do tipo AVL (árvore binária balanceada). Note podemos resolver um problema de forma recursiva ou interativa (com laços de repetição).

    Gabarito: E.

     

     

  • A recursividade é uma função/método que chama a si mesmo uma ou mais vezes. 

    Alternativa: E


ID
149959
Banca
CESPE / CEBRASPE
Órgão
ANAC
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Com relação a aspectos de linguagem de programação,
programação estruturada, programação orientada a objetos e
conceitos associados, julgue os itens de 106 a 113.

Recursão ocorre quando uma função chama a ela mesma direta ou indiretamente.

Alternativas
Comentários
  • correto-

    recursividade ocorre quando uma função chama a si mesma, o que implica que ela chamara a si mesma indefinidamente a menos que haja uma condição:

    int factorial (int x){

    if (x > 1){

    return x * (factorial (x-1));

    }else

    return 1;

    }


ID
209215
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Acerca de pesquisa de dados e de operações básicas sobre
estruturas, julgue os itens que se seguem.

Quando um algoritmo recursivo recebe como parâmetro o trecho do vetor no qual deve ser realizada a pesquisa, então essa pesquisa é do tipo sequencial.

Alternativas
Comentários
  •  O tipo da pesquisa é binário.

  • Pode ser uma pesquisa sobre uma árvore binária.

  • Sugestão de resposta:

    "Quando um algoritmo recursivo recebe como parâmetro o trecho do vetor no qual deve ser realizada a pesquisa, então essa pesquisa é do tipo sequencial particionada."
  • Também pensei na binária.


ID
224533
Banca
FCC
Órgão
METRÔ-SP
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Objeto que se constistui parcialmente ou é definido em termos de si próprio. Nesse contexto, um tipo especial de procedimento (algoritmo) será utilizado, algumas vezes, para a solução de alguns problemas. Esse procedimento é denominado

Alternativas
Comentários
  • Gabarito: D

    Um objeto é dito recursivo se ele consistir parcialmente ou for definido em termos de si próprio. Nesse contexto, um tipo especial de procedimento (algoritmo) será utilizado, algumas vezes, para a solução de alguns problemas. Esse procedimento é denominado recursivo. 


    Fonte: http://www.rcosta62br.unifei.edu.br/ccf120/aula_5.pdf
  • Estudar sobre características de recursividade
  • Muito obrigado pelos comentários, foram bastante proveitosos.

ID
249403
Banca
CESPE / CEBRASPE
Órgão
DETRAN-ES
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Com relação à programação, algoritmos e estrutura de dados, julgue
os itens seguintes.

O método de recursividade deve ser utilizado para avaliar uma expressão aritmética na qual um procedimento pode chamar a si mesmo, ou seja, a recursividade consiste em um método que, para que possa ser aplicado a uma estrutura, aplica a si mesmo para as subestruturas componentes.

Alternativas
Comentários
  • A recursão é o processo pelo qual passa um certo procedimento quando um dos passos do procedimento em questão envolve a repetição completa deste mesmo procedimento. Um procedimento que se utiliza da recursão é dito recursivo. Também é dito recursivo qualquer objeto que seja resultado de um procedimento recursivo.

ID
255853
Banca
FCC
Órgão
TRT - 24ª REGIÃO (MS)
Ano
2011
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Considere: zero é um número natural. O sucessor de um número natural é um número natural.

Assim, em termos de algoritmo, o enunciado trata da possibilidade de aplicação de uma técnica denominada

Alternativas
Comentários
  • A técnica é a recursão, através da recursividade poderemos repetir um trecho de código com a chamada para si mesmo.
  • Resposta E

    Recursão na matemática

    Um exemplo de conjunto definido recursivamente é dado pelos números naturais:
    0 está em N;
    Se n está em N, então n + 1 está em N.
    O conjunto dos números naturais é o menor conjunto satisfazendo as condições acima.

     
  • Não concordo com o gabarito dessa questão, se 0 é um número natural ( N ), o sucessor desse número natural é N + 1 , ou seja, 1,2,3,4......... , sabendo-se disso, a alternativa correta é a letra "D", pois a cada interação ( N + 1 ) eu tenho um novo número natural. Mas como existe também a alternativa "E", essa questão é passível de anulação, pois uma interação ( N + 1 ) de um numero natural também pode ser feito recursivamente.

    Questão mal formulada.
  • Colega Edluise Costa....

    Acredito que você tenha confundido ITERAÇÃO com INTERAÇÃO.
  •  e)recursão.

    Recursao ocorre quando uma função invoca ela propria. e.g:

    long factorial (long a){

    if (a>1){

    return a * (factorial (a-1));

    }else

    return 1;

    }

    Na 1° iteração (considerando que a !=1), a função vai retornar 'a' vezes todo a função inteira, a qual tambem contém 'a'. Dentro da função factorial(a), há outra chamada para factorial(a) (porque o objectivo é return a * (factorial(a-1)), e nao a* a-1). A função factorial (a) tem outra função factorial (a) dentro de si mesma, o que faz necessario um decremento (a-1). Quando derementar até a == 1, as iterações cessam.


ID
309523
Banca
CESPE / CEBRASPE
Órgão
TJ-ES
Ano
2011
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Com relação aos fundamentos de programação, julgue os seguintes
itens.

Tanto a recursividade direta quanto a indireta necessitam de uma condição de saída ou de encerramento.

Alternativas
Comentários
  • Na recursividade direta, uma função chama ela própria recursivamente.
    Na recursividade indireta, uma função é chamada recursivamente por outra função. Por exemplo: a função A chama a função B, e a função B chama a função A.

    Em ambos os casos é necessário uma condição de saída, senão as chamadas recursivas terão um loop infinito de chamadas.
  • Existem dois tipos de recursividade: direta e indireta. A recursividade direta é aquela tradicional em que uma função chama a si mesma (Ex: Função A chama a Função A); a recursividade indireta é aquela alternativa em que uma função chama outra função que chama a primeira (Ex: Função A chama a Função B, que chama a Função A).
    Ambas precisam de um caso-base, que é uma condição de saída, para não ficar em loop infinito.
    Gabarito: Certo


ID
347059
Banca
MOVENS
Órgão
IMEP-PA
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Um método que, para ser aplicado a uma estrutura, envolve a aplicação dele mesmo às subestruturas componentes, é chamado de

Alternativas
Comentários
  • Recursividade é uma função/método que chama a si mesmo uma ou mais vezes. 

    Alternativa: E


ID
783691
Banca
CESPE / CEBRASPE
Órgão
MEC
Ano
2011
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A respeito de algoritmos, estruturas de dados e objetos, julgue o  item  que se segue.

A função mostrada abaixo é um exemplo de algoritmo recursivo.

                 Function fat (x:integer) : integer;
                 begin
                        if  x=0 then cfat := 1
                     else                     fat := x * cfat (n-1);
                 end;

Alternativas
Comentários
  • Deveria ser 'x - 1', ao invés de 'n -1' para ser recursiva.


ID
1015987
Banca
Marinha
Órgão
CAP
Ano
2011
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Como se denomina o procedimento que contém, em sua descrição, uma ou mais chamadas a si próprio?

Alternativas
Comentários
  • D) Recursivo.

  • Comentário da questão na mentoria @coach_bizurado


ID
1043818
Banca
CESPE / CEBRASPE
Órgão
MPU
Ano
2013
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Acerca de funções, estruturas e operadores de lógica de programação, julgue os itens subsequentes.


A recursão pode ser relacionada a algoritmos, caso em que está diretamente relacionada ao método de dividir- para- conquistar, e relacionada a tipos de dados, que consiste em uma técnica para representar dados de tamanho indefinido.

Alternativas
Comentários
  • Não entendi a relação entre recursividade e dados de tamanho variável.

    Alguém poderia explicar essa questão?
  • Meu entendimento é que a recursão vai processando em profundidade a estrutura de dados. Caso típico é quando usamos para processar árvores hierárquicas em que para cada nodo chamamos recursivamente a função para processar os nodos filhos.

  • CERTA a questão!

    Como eu cheguei a esta definição? Eu compreendi esta questão da seguinte forma:

    a) "A recursão pode ser relacionada a algoritmos, caso em que está diretamente relacionada ao método de dividir- para- conquistar"

    Dividir-para-conquistar é uma técnica que aplica-se a divisão de um problema em blocos (funções - específicas e reutilizáveis). Assim, sendo a recursividade a chamada de uma função por ela mesma n-vezes, eu associei este fato a esta técnica (dividir-para-conquistar).

    b) "relacionada a tipos de dados, que consiste em uma técnica para representar dados de tamanho indefinido"

    Se ela chama ela mesma n-vezes eu posso gerar um dado de comprimento "n" que estará em função dos parametros fornecidos para ela.


  • Força Guerreiro!!!!!!


ID
1119397
Banca
FGV
Órgão
DPE-RJ
Ano
2014
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Seja a função recursiva f definida como

f(a,b)
se b = 0 então
retorna a
senão
retorna f(b, a MOD b)

onde x MOD y é o resto da divisão de x por y. O valor de f (30, 21) é :

Alternativas
Comentários
  • f(30,21) => f(21,9) => f(9,3) => f(3,0), se b = 0, retorna 3.

  • A função é recursiva pois fica chamando a si mesma, então devemos repeti - la até o b zerar e cair na primeira condição ,critério de parada, retornando o valor de a.

    f (30, 21) é:

    retorna f(21, 9(30 mod 21 = 1 resto 9))

    f(21, 9)

    retorna f(9, 3(21 mod 9 = 2 resto 3))

    f(9, 3)

    retorna f(3, 0(9 mod 3 = 3 resto 0))

    f(3, 0)

    Se b = 0 então retorna 3(valor de a)

    Resposta 3.

    Que Deus nos abençoe e nos proteja!

  • Força Guerreiro!!!!!!

  • Fala concurseiro (a), professor Martins na área...

    Essa questão é sobre recursividade, basta lembrar que uma função recursiva ela chama ela mesmo dentro de sua função. Vejamos o algoritmo da questão:

    f(a,b)

    se b = 0 então

    retorna a

    senão

    retorna f(b, a MOD b)

    Observe que na última linha é chamada a própria função para continuidade do algoritmo. A questão te dá os valores a=30 e b=21, agora basta executar o passo a passo do algoritmo. Vamos lá:

    1ª Rodada: f(30,21)

    21 = 0? -> Não, então vai para o senão

    Retorna a ser executado o algoritmo, os valores de a da função principal será b anterior e o valor de b será o resto da divisão de a por b (MOD), então para a função inicial os valores serão:

    b = 21,a MOD b=9 (30/21 possui resto 9) -> f(b, a MOD b)

    f(21,9)

    2ª Rodada: f(21,9) ->Observe os valores finais da primeira rodada

    9 = 0? -> Não, então vai para o senão

    Retorna a ser executado o algoritmo, os valores de a da função principal será b anterior e o valor de b será o resto da divisão de a por b (MOD), então para a função inicial os valores serão:

    b = 9, a MOD b=3 (21/9 possui resto 3) -> f(b, a MOD b)

    f(9,3)

    3º Rodada: f(9,3) ->Observe os valores finais da primeira rodada

    3 = 0? -> Não, então vai para o senão

    Retorna a ser executado o algoritmo, os valores de a da função principal será b anterior e o valor de b será o resto da divisão de a por b (MOD), então para a função inicial os valores serão:

    b = 3, a MOD b=0 (9/3 possui resto 0) -> f(b, a MOD b)

    f(3,0)

    4º Rodada: f(3,0) ->Observe os valores finais da primeira rodada

    0 = 0? -> Sim, então:

    Retorna a = 3

    Resposta então LETRA C

    Vamos juntos ser aprovados, guerreiros(as)!

    Me segue no insta para mais dicas @profmartinz


ID
1119508
Banca
FGV
Órgão
DPE-RJ
Ano
2014
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Seja a função recursiva f definida como

    f(a,b)
        se b = 0 então
             retorna a
        senão
                retorna f(b, a MOD b)

onde x MOD y é o resto da divisão de x por y. O valor de f (30, 21) é

Alternativas
Comentários
  • Força Guerreiro!!!!!!


ID
1119943
Banca
FGV
Órgão
DPE-RJ
Ano
2014
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Seja a função recursiva f definida como

f(a,b)

se b = 0 então

retorna a

senão

retorna f(b, a MOD b)


onde x MOD y é o resto da divisão de x por y. O valor de f (30, 21) é :

Alternativas
Comentários
  • Resposta correta é letra C, devido a recursividade.

    Inicio:

           f(30, 21)
           A=30
           B=21
           B é igual a Zero?
                não....
           Então retorna f(b, a MOD b) é feita uma nova chamada na forma de pilha..... e o ciclo se repete até que seja encontrada
           condição de parada.

         Sendo agora:
         f(21, 9)
            A=21
            B=9
            B é igual a Zero?
                não....
            Então: f(9,3)
            A=9
            B=3
            B é igual a Zero?
                 não....
          Então: f(3,0)
            A=3
            B=0
           B é igual a Zero?
                Sim...
           retorne 3
    fim
  • Essa questão aparece no mínimo 6 vezes no tema recursividade. Complicado! Muitas questões repetidas.

  • Força Guerreiro!!!!!!


ID
1190263
Banca
FGV
Órgão
DPE-RJ
Ano
2014
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Seja a função recursiva f definida como

f(a,b)
se b = 0 então
retorna a
senão
retorna f(b, a MOD b)


onde x MOD y é o resto da divisão de x por y. O valor de f (30, 21) é :

Alternativas
Comentários
  • O Resto da divisão entre 30 MOD 21 = 9 . Então o return é f( 21, 9). O resto da divisão entre x e y é: 21 MOD 9 que o resto da divisão entre 21 MOD 9 é igual a 3.

    Questão correta é C) 3.

  • Força Guerreiro!!!!!!


ID
1190353
Banca
FGV
Órgão
DPE-RJ
Ano
2014
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Seja a função recursiva f definida como


                                   f(a,b)
                                       se b = 0 ehtão
                                             retorna a
                                       senão
                                               retorna f(b, a MOD b)

onde x MOD y é o resto da divisão de x por y. O valor de f (30, 21)é

Alternativas
Comentários
  • Força Guerreiro!!!!!!


ID
1191256
Banca
FGV
Órgão
DPE-RJ
Ano
2014
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Seja a função recursiva f definida como 


              f(a,b) 
                   se b = 0 então 
                         retorna a 
                   senão 
                          retorna f(b, a MOD b)



onde x MOD y é o resto da divisão de x por y. O valor de f (30, 21) é

Alternativas
Comentários
  • A função é recursiva pois fica chamando a si mesma, então devemos repeti - la até o b zerar e cair na primeira condição ,critério de parada, retornando o valor de a.

    f (30, 21) é:

    retorna f(21, 9(30 mod 21 = 1 resto 9))

    f(21, 9)

    retorna f(9, 3(21 mod 9 = 2 resto 3))

    f(9, 3)

    retorna f(3, 0(9 mod 3 = 3 resto 0))

    f(3, 0)

    Se b = 0 então retorna 3(valor de a)

    Resposta 3.

    Que Deus nos abençoe e nos proteja!

  • Prezados,

    Vamos analisar a recursão passo a passo:

    f(30,21) ->
      se 21 =  0 então
      senão
             retorna f(21, 3) ->
                          se 3 = 0 então
                          senão
                                  retorna f(3,0)
                                           se 0 = 0 entao
                                                  retorna 3

    Portanto a alternativa correta é a letra C


  • esse é o algoritmo do MDC de dois números. Pra achar o resultado vc só tem que decrementar até o menor termo e o retorno deste será o resultado:

    O algoritmo continua a e so retorna algo quando b==0 e esse valor não é usado pra nada, então o programa termina quando acontecer apenas 1 retorno.

    entao para a=30 e b = 21, vc vai apenas passando b como o primeiro termo e o segundo termo sendo o resto da divisao de a por b (30%21). Como não ha divisão exata é só subtrair a por b até que o resultado seja menor do que b(21):

    f(30,21) = f(21, (30%21)) =

    f(21, 9 ) =

    f(9,3) =

    f(3,0) => como b == 0 então retorna a que é 3. O valor 3 é então retornado por todas as chamadas anteriores do método que estavam aguardando a chamada recursiva aguardar para retornarem seu valor.

  • Força Guerreiro!!!!!!


ID
1497871
Banca
FUNCAB
Órgão
MDA
Ano
2014
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Observe o algoritmo a seguir, que utiliza o conceito de função recursiva.

algoritmo "MDA"
var
   X, W, N : inteiro
funcao FF(Y:inteiro):inteiro
inicio
N <- N + 1|
se Y < 2 entao
  retorne 1
senao
  retorne Y * FF(Y-1)
fimse
fimfuncao
inicio
  X <-5
  N <-0
  W <- FF(X)
  W <-W-50
  escreval(W,N)
fimalgoritmo


Após a execução, o algoritmo, os valores de W e N serão, respectivamente:

Alternativas
Comentários
  • A questão trata de recursividade por meio da chamada Y * FF(Y-1).

     

    Inicialmente temos as variáveis X = 5 e N = 0. A função FF atua de forma recursiva, com condição de parada quando o argumento (parâmetro) for menor que 2.

    A primeira chamada à função FF ocorre com argumento 5. Segue todas as iterações para a variável Y:

     

    - 5: Y * FF (Y - 1) => 5 * F(4)

    - 4: Y * FF (Y - 1) => 4 * F(3)

    - 3: Y * FF (Y - 1) => 3 * F(2)

    - 2: Y * FF (Y - 1) => 2 * F(1)

    - 1: Condição de parada, retornando 1. Com isso, basta substutuir nas chamadas anteriores: 2 * 1 = 2 / 3 * 2 = 6 / 4 * 6 = 24 / 24 * 5 = 120 (variável W). Note que cada chamada à função FF ocasiona o incremento à variável N. Como 5 chamadas foram feitas e a variável N inicialmente é 0, então temos que, ao final, N = 5. Antes da impressão das variáveis, o valor de W é subtraído em 50, passando a ter como resultado 70. Com isso, W = 70 e N = 5.

     

    Bons estudos!

  • resumindo pro povo da cola, a resposta é 70 e 5

  • Força Guerreiro!!!!!!

  • public class teste {

      private static final int x = 5;

      private static int n = 0;

      public static void main (String args[]) {

        int w = funcao(x);

        w -= 50;

        System.out.println(w + " " + n);

      }

      public static int funcao(int x) {

        n += 1;

        if ( x < 2 ) {

          return 1;

        } else {

          return x * funcao(x - 1);

        }

      }

    }

    Código feito em Java


ID
1568209
Banca
FUNDATEC
Órgão
BRDE
Ano
2015
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Considere uma variável de nome X que é passada para uma função que a recebe como sendo sua variável A. A função realiza uma alteração no conteúdo de sua variável A e essa alteração é refletida na variável X fora da função. Nesse caso, pode-se afirmar que houve uma

Alternativas
Comentários
  • Passagem de parâmetro por referência.

    Quando um valor é passado por referência, o método chamador pode acessar o valor do argumento no chamado diretamente e, talvez funciona exclusivamente com a cópia.

    Quando um argumento é passado por referência, o método chamado pode acessar o valor do argumento no chamador diretamente e modificar esses dados, se necessário. Passar por referência aprimora desempenho eliminando a necessidade de copiar quantidades de dados possivelmente grandes.

     

    Letra B

     

     

    Java como programa -  Deitel

  • Força Guerreiro!!!!!!


ID
1602868
Banca
FAPERP
Órgão
SeMAE
Ano
2015
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Uma boa lógica de programação é fundamental para que os algoritmos sejam bem desenvolvidos e, consequentemente, os programas bem implementados, claro que se agregando o conhecimento da sintaxe da linguagem de programação escolhida. Dessa forma, pensando-se em estruturas de algumas implementações, considere o seguinte trecho de código:


int fibonacci (int N)

{

if (N <= 1)

return N;

else

return ( fibonacci(N - 1) + fibonacci(N - 2) );

}


Pode-se afirmar, a partir do código anteriormente apresentado, que:

Alternativas
Comentários
  • existe um processo recursivo.

    Fibonacci

  •  c)existe um processo recursivo.  

    uma recursão ocorre quando uma função invoca a si mesma. fibonacci é o nome da função, a qual se chama dentro de sua própria estrutura em return ((fibanacci (n - 1) + fibonacci (n - 2)).

    Em d, nao pode ser passagem de parâmetros por referência porque a referência é feita por &, o que nao acontece:

    e.g.: 

    int a = 1;

    int b = 3;

    int * ref;

    ref = &a;

    *ref = 10;

    No caso, o novo valor de a vai ser 10 porque o ponteiro * ref faz uma referncia ao endereço da memoria do &a, substuindo o conteudo

  • Força Guerreiro!!!!!!


ID
1645297
Banca
CESPE / CEBRASPE
Órgão
FUB
Ano
2015
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A respeito de análise de algoritmos, programação estruturada e orientada a objetos e estruturas de dados, julgue o item a seguir.


Em um algoritmo que utilize o processo de recursão, é necessária a existência de uma condição de parada a fim de se evitar que o algoritmo entre em um loop.

Alternativas
Comentários
  • Achei que não houvesse problema em entrar em loop... O problema surge quando entramos em um loop infinito.
    Por ex: Uma função para resolver fatorial entra em loop mas tem uma condição de parada que é quando atingimos o valor 1.

    Alguém poderia comentar sobre? 

  • Para uma função ser recursiva é premissa que esta tenha um critério de parada. Uma função recursiva não é um loop e sim uma função que executa chamadas a si mesma até que o critério de parada seja detectado.

  • Solução recursiva do problema

    Eis uma solução recursiva do problema da seção anterior:


    int maximoR (int n, int v[])
    { 
       if (n == 1)
          return v[0];
       else {
          int x;
          x = maximoR (n-1, v);
          if (x > v[n-1])
             return x;
          else
             return v[n-1]; 
       }
    }

  • correto- ela vai chamar ela mesma até algo acontecer que interrompa as iterações. 

    usando exemplo classico:

    int factorial (int x){

    if (x >1){

    return x * (factorial (x-1));

    }else

    return 1;

    }

    A função factorial(x) chama ela mesma quando x >1. AO chamar ela mesma, havera decremento da var. Quando o valor var == 1, as iterações param. Sem o decremento, haveria um loop infinito. 

  • Força Guerreiro!!!!!!


ID
1796236
Banca
FCC
Órgão
DPE-SP
Ano
2015
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

O uso da recursividade geralmente permite uma descrição mais clara e concisa dos algoritmos. Em relação aos conceitos e utilização de recursividade, é correto afirmar:

Alternativas
Comentários
  • "é necessário garantir que o nível mais profundo de recursão seja finito" - É CLARO que não é necessário. Vários algoritmos recursivos são usados para encontrar boas soluções de problemas NP-completo, em que a condição é uma solução viável, mas que a "profundidade" das soluções é infinita. Tem que ter uma condição de parada, porém não é necessário garantir um nível finito.

    Que questão mais errada.

  • Rafael Freitas,

    Acho que o que deixa a questão correta é que ela fala "na prática". Toda vez que vc chama um algoritmo recursivo, ele coloca na sua pilha a chamada de onde originou para voltar. Além disso, há uma alocação de memória para isso. Imagina um algoritmo infinito. As máquinas que utilizamos no dia a dia (na prática) iriam apontar problemas na alocação de memória, como muitas vezes já vi em programas em Java.

  • É justamente na prática, Rosana. Eu já fiz vários algoritmos recursivos para problemas que tinha uma gama de respostas maior que os computadores conseguem processar. Não é necessário garantir que seja finito. Você tem que encontrar UMA resposta aceitável, e não passar por todas elas armazenando-as na memória. Se a resposta não servir, descarte-a. Faça um bom código e gerenciamento de memória que você não terá este problema.

  • Rafael Freitas, no caso dos problemas NP-completo existem infinitas condições que atendem o problema, porém uma boa solução é considerada como a mais certa e o algoritmo atinge o seu critério de parada, isto é o nivel mais profundo da recursão, quando o algoritmo encontrou uma resposta satisfatoria. Esta resposta é configurada por você no critério de parada, o que tornam finitas as possibilidades!

  • a) E. Pessoal quando temos um contexto de variáveis é criado uma estrutura de pilha (para o sistema operacional) registrando todos os valores na memória. Quando falamos em uma nova chamada da própria função (recursividade), um novo elemento é posta a pilha (operação 'push' com todas as varíaveis e seus respectivos valores passados). O item 'deque' macula o item. 

    b) E. A condição B (que deve ser trivial) é fundamental para a parada de execução do algoritmo. Se não tivermos ela, o algoritmo ficará em 'loop'.

    c) E. Nem sempre eles são a melhor solução, já que em geral os algortimos interativos são. 

    d) E. Variáveis globais e locais para cada chamada da função recursiva vão para o estado. 

    e) C

     

  • Força Guerreiro!!!!!!


ID
1814566
Banca
IESES
Órgão
IFC-SC
Ano
2015
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Uma das regras básicas para definir novos objetos ou conceitos é que a definição deve conter somente termos que tenham já sido definidos ou que sejam óbvios. Assim, um objeto definido em termos dele próprio é uma violação sérias dessa regra – um círculo vicioso. Por outro lado, existem muitos conceitos de programação que se auto definem. Restrições formais impostas às definições, tais como existência e unicidade, são satisfeitas e não deve ocorrer violação das regras. Tais definições são usadas primordialmente para se definir conjuntos infinitos e são chamadas de:

Alternativas
Comentários
  • Quase chorei ao final...

  • Em uma definição recursiva um item é definido em termos de si mesmo, ou seja, o item que está sendo definido

    aparece como parte da definição;

    Em todas as funções recursivas existe:

    1 - Caso base (um ou mais) cujo resultado é imediatamente e conhecido.

    2 - Passo recursivo em que se tenta resolver um subproblema do problema inicial.

    http://www.inf.puc-rio.br/~iue1002/material/avancado/Recursao.pdf

  • Força Guerreiro!!!!!!


ID
1820632
Banca
CESPE / CEBRASPE
Órgão
MEC
Ano
2015
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Um programa pode ser estruturado em módulos denominados funções ou procedimentos. Considerando esse assunto, julgue o próximo item, acerca dos tipos de módulos.

Uma função recursiva pela cauda sempre possui um equivalente iterativo direto.


Alternativas
Comentários
  • Quando você lê a questão a primeira expressão é "whaaat?"

    No meu ponto de vista (depois de umas 5 releituras), o que o examinador questiona é: Funções recursivas são otimizações de código?

    Ou seja, é possível obter os mesmos resultados da recursividade por outros modos.

    Lembrando, foi o que eu entendi da questão.

     

  • Um Do... While é uma funções recursivas pela cauda e ele fala que sempre terá um equivalente iterativo direto, ou seja, o controlador das iterações.

  • Gab. Certo

  • Desculpe-me, caro 0x50657269746f 00, mas você falou uma big m*r*a. Funções recursivas não tem absolutamente nada a ver com while. Funções recurvisas são funções que se-chamam - seja diretamente, seja chamando alguma função que a chame novamente. As recusivas pela cauda são funções recursivas que não cria uma variável a cada chamada recursiva. No pdf a seguir explica muito bem a diferença.

    https://www.ic.unicamp.br/~oliveira/doc/mc102_2s2004/Aula19.pdf

  • Dizemos que uma função usa recursão de cauda quando as chamadas recursivas que ela executa são a última instrução executada antes de retornar. Quando uma função recursiva usa recursão de cauda, alguns compiladores e interpretadores são capazes de otimizar a função, transformando-a em uma função iterativa.

    fonte: http://rodrigorgs.github.io/mata56-20152/lisp-recursao#:~:text=Dizemos%20que%20uma%20fun%C3%A7%C3%A3o%20usa,a%20em%20uma%20fun%C3%A7%C3%A3o%20iterativa.


ID
1911826
Banca
COPEVE-UFMS
Órgão
UFMS
Ano
2015
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Sobre o conceito de Algoritmos Recursivos, analise as afirmações abaixo e, a seguir, assinale a alternativa correta.

I. Um programa tem um número limitado de procedimentos recursivos.

II. Recursividade é utilizada exclusivamente quando não se sabe solucionar um problema de maneira imediata, então é realizada a divisão em problemas menores para alcançar o resultado desejado.

III. Todos os problemas computacionais resolvidos de maneira iterativa gastam mais memória que se resolvidos de forma recursiva.

Alternativas
Comentários
  • ao povo da cola, a correta é letra Nenhuma está correta

  • Força Guerreiro!!!!!!

  • Por que teria um número ilimitado de procedimentos recursivos?

  • E)

    Nenhuma das afirmações está correta.


ID
2034424
Banca
CESPE / CEBRASPE
Órgão
TCE-PA
Ano
2016
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Com relação às estruturas de controle em programas de computador, julgue o item subsecutivo.

A chamada de uma função para execução é feita citando-se o seu identificador no meio de uma expressão. Uma função é dita recursiva quando chama ela própria.

Alternativas
Comentários
  • Uma função que é dita recursiva é aquela que invoca ela mesma.

    Fonte: http://www.cprogressivo.net/2013/03/O-que-sao-e-como-usar-funcoes-recursivas-em-linguagem-C.html

  • Força Guerreiro!!!!!!


ID
2332951
Banca
Crescer Consultorias
Órgão
CRF - PI
Ano
2016
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Um problema de algoritmo em uma estrutura recursiva demostra que:

Alternativas
Comentários
  • recursão = dividir pra conquistar

  • a-

    recursividade é invocar uma instancia menor de si mesmo. ate terminar a operacao.

    senao, a operacao fica em loop

  • Força Guerreiro!!!!!!


ID
2567368
Banca
CONSULPLAN
Órgão
TRE-RJ
Ano
2017
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Analise as afirmativas a seguir a respeito de algoritmos recursivos.


I. Diz-se que uma rotina é recursiva se a sua definição envolver uma chamada a ela mesma. Neste sentido, o termo recursão é equivalente ao termo indução utilizado por matemáticos.

II. Cada algoritmo recursivo possui um algoritmo iterativo equivalente e vice-versa, mas que pode ter mais ou menos complexidade em sua construção.

III. Uma função recursiva possui duas partes: caso base e caso recursivo.

IV. Um algoritmo pode ser chamado de iterativo quando ele requer a repetição implícita de um processo até que determinada condição seja satisfeita.

V. A recursividade possibilita a escrita de um código mais enxuto, com maior legibilidade e simplicidade.


Assinale a alternativa que possui alguma afirmação INCORRETA.

Alternativas
Comentários
  • I. Diz-se que uma rotina é recursiva se a sua definição envolver uma chamada a ela mesma. Neste sentido, o termo recursão é equivalente ao termo indução utilizado por matemáticos.  [São conceitos diferentes]

    II. Cada algoritmo recursivo possui um algoritmo iterativo equivalente e vice-versa, mas que pode ter mais ou menos complexidade em sua construção. [Um algoritmo recursivo sempre possui um equivalente não recursivo, todavia o contrário não é verdade]

    III. Uma função recursiva possui duas partes: caso base e caso recursivo.

    IV. Um algoritmo pode ser chamado de iterativo quando ele requer a repetição implícita de um processo até que determinada condição seja satisfeita.

    V. A recursividade possibilita a escrita de um código mais enxuto, com maior legibilidade e simplicidade. [1 - Na maioria das vezes a recursividade será mais enxuta que o equivalênte não recursivo, porém isso não é uma verdade absoluta, 2 - tanto o recursivo quanto o equivalente não recursivo são legitimos e produzem o mesmo resultado, 3 - nem sempre o recursivo é mais simples].

  • Toda recursividade é composta por um caso base e pelas chamadas recursivas,.

    Caso base: é o caso mais simples. É usada uma condição em que se resolve o problema com facilidade.

    Chamadas Recursivas: procuram simplificar o problema de tal forma que convergem para o caso base.

    Fonte: http://linguagemc.com.br/recursividade-em-c/ 

  • Força Guerreiro!!!!!!


ID
2610058
Banca
PR-4 UFRJ
Órgão
UFRJ
Ano
2018
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Assinale a alternativa que define corretamente a técnica de função fatorial empregada no pseudocódigo a seguir.

1. funcao fatorial(n)

2.    se n=1 então

3.           fatorial = 1

4.    senao

5.           fatorial = n * fatorial(n-1)

6. fim funcao

Alternativas
Comentários
  • Método Recursivo: É aquele que faz chamada a si mesmo.

    Características:

    Um problema de algoritmo em uma estrutura recursiva demostra que:   cada instância do problema contém uma instância menor do mesmo problema.

    Tem como uma de suas vantagens serem  mais concisos do que um não recursivo correpondente

    Exemplos: Fibonacci, Torre de Hanói . . .

    Todo procedimento recurso ou não deve possui pelo menos uma chamada proveniente de um local exterior. Essa  chamada  é  denominada  EXTERNA

  • Recursividade - É quando um metodo chama a si mesmo. Pode ser direta (o metodo chama si mesmo) ou indireta (o metodo A chama o metedo B que chama o metodo A).

    Neste caso a função fatorial seria:

     f(1) = 1;

    f(n) = n * f(n - 1)

     

  • Força Guerreiro!!!!!!


ID
2709250
Banca
SUGEP - UFRPE
Órgão
UFRPE
Ano
2018
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Considere a função recursiva ‘func’ definida por


func(1) = 1

func(n) = (n - 1) * func(n - 1)


Quais são os valores de func(4) e func(5), respectivamente?

Alternativas
Comentários
  • func(4) = (4-1)*func(3) --> (3-1)*func(2) --> (2-1)*func(1)

    func(1) retorna 1

    func(2) retorna 1

    func(3) retorna 2

    e 2*3 é 6

    func(5) = (5-1)*func(4) 

    Como ja sabemos que func(4) retorna 6 então 4*6 =24

  • func(4) = 3 * func(3)

    func(3) = 2 * func(2)

    func(2) = 1 * func(1)

    func(1) = 1

     

    - Começa o caminha reverso:

    func(2) = 1 * 1 =>  1

    func(3) = 2 * 1 =>  2

    func(4) = 3 * 2 => 6

     

    func(5) = 4 * 6 => 24 

  • func(1) = 1

    ----------------------------------

    func(2) = (2 - 1) * func(2 - 1) - Aqui ele chama a func(1) que é o numero 1

    func(2) = 1 * 1

    func(2) = 1

    ----------------------------------

    func(3) = (3 - 1) * func(3 - 1) - Aqui ele chama a func(2) que é o numero 1

    func(3) = 2 * 1

    func(3) = 2

    ----------------------------------

    func(4) = (4 - 1) * func(4 - 1) - Aqui ele chama a func(3) que é o numero 2

    func(4) = 3 * 2

    func(4) = 6

    ----------------------------------

    func(5) = (5 - 1) * func(5 - 1) - Aqui ele chama a func(4) que é o numero 6

    func(5) = 4 * 6

    func(5) = 24

  • Vamos matar esta no peito por meio de debug.

    func(1) = 1 , por definição do enunciado

    func(2) = (2 – 1)*func(2 – 1) = func(1) = 1

    func(3) = (3 – 1)*func(3 – 1) = 2*func(2) = 2*1 = 2

    func(4) = (4 – 1)*func(4 – 1) = 3*func(3) = 3*2 = 6

    func(5) = (5 – 1)*func(5 – 1) = 4*func(4) = 4*6 = 24

    Portanto, func(4) = 6 e func(5) = 24.

    Obs: A func(n), na forma como foi definida pelo avaliador, nada mais é que (n-1)!, isto é, fatorial de (n-1).

    Resposta: C

  • Força Guerreiro!!!!!!

  • Força Guerreiro!!!!!!


ID
2876653
Banca
FCM
Órgão
IFN-MG
Ano
2018
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Considere a equação de recorrência abaixo.


T(n) = 0 para n = 1.

T(n) = 2T(n/2) + n – 1 para n > 1.


Após a resolução, a solução encontrada é

Alternativas
Comentários
  • Força Guerreiro!!!!!!


ID
2876701
Banca
FCM
Órgão
IFN-MG
Ano
2018
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Sobre linguagens recursivas e recursivamente enumeráveis, é correto afirmar que

Alternativas
Comentários
  • Que isso hei!! Hierarquia de chomsky.

    Basicamente é isso pessoal:

    1) Linguagens finitas.

    2) Linguagens regulares.

    3) Linguagens livres de contexto .

    4) Linguagens sensíveis ao contexto.

    5)Linguagens recursivas(decidíveis).

    6) Linguagens recursivamente enumeráveis (semi-decidíveis).

    7) Linguagens irrestritas;

    Cada nível engloba o seu nível inferior, ou seja, o nível 7 engloba todas as outra linguagens e assim em diante....

    GABARITO ALTERNATIVA E

    E) a classe das linguagens recursivas é um subconjunto estrito da classe das linguagens recursivamente enumeráveis.

    CORRETO, pois o nível 5 (linguagens recursivas) é um subconjunto do nível 6 (linguagens recursivamente enumeráveis);

    Uma imagem vale mais que mil palavras, então: www.encurtador.com.br/mAFMV

  • alguem recomenda um livro,site,video sobre esse assunto bem cascudo ?

  • Existem duas definições equivalentes importante para o conceito de uma linguagem recursiva:

    1) Uma linguagem formal é um subconjunto recursivo no conjunto de todas as palavras possíveis sobre o alfabeto da linguagem.

    2) Uma linguagem recursiva é uma linguagem formal para a qual existe uma máquina de Turing tal que, quando é apresentada a uma entrada finita ou uma palavra, para aceitar a palavra pertence a linguagem, e para rejeitar caso contrário. Uma máquina de Turing que sempre é conhecida como um decisor e dizemos que ela decide a linguagem recursiva.

    Existem três equivalentes definições importantes para o conceito de uma linguagem recursivamente enumerável:

    1)Uma linguagem recursivamente enumerável formal é um subconjunto recursivamente enumerável no conjunto de todas as palavras possíveis sob o alfabeto da linguagem.

    2)Uma linguagem recursivamente enumerável é uma linguagem formal para a qual existe uma máquina de Turing que irá enumerar todas as cadeias válidas da linguagem. Note que, se a linguagem é infinita, o algoritmo de enumeração fornecido pode ser escolhido de forma que evite repetições, uma vez que podemos testar se a cadeia produzida para o número n é já é produzida para um número que é inferior a n. Se ela já é produzida, use a saída da entrada n+1 (recursivamente), mas mais uma vez, teste se é uma cadeia nova.

    3)(Resposta da Questão) Uma linguagem recursivamente enumerável é uma linguagem formal para a qual existe uma máquina de Turing que irá parar e aceitar quando se roda com qualquer cadeia da linguagem na entrada e pode parar e rejeitar ou entrar em loop quando se roda com qualquer cadeia que não é da linguagem. Esta é a diferença entre linguagem recursiva, que exige que a máquina de Turing sempre pare.

  • Força Guerreiro!!!!!!


ID
2909980
Banca
UFSC
Órgão
UFSC
Ano
2019
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A respeito de um algoritmo recursivo, analise as afirmativas abaixo e assinale a alternativa correta.


I. Deve conter pelo menos uma estrutura de repetição.

II. Deve conter pelo menos uma estrutura de seleção.

III. Deve invocar a si mesmo pelo menos uma vez ao ser executado.

Alternativas
Comentários
  • Gabarito B

    Uma função recursiva chama a si mesma dentro do próprio escopo. Pode ser uma recursão direta onde uma função A chama a própria função A ou uma recursão indireta onde uma função A chama uma função B que por sua vez chama a função A. Além de chamar a si mesma, a função recursiva deve possuir uma condição de parada que a impedirá de entrar em loop infinito.

    Antes de criar uma função recursiva para determinado problema, é preciso saber se ele possui uma estrutura recursiva. Neste caso, devemos verificar se parte do problema possui o mesmo tipo do original, assim podemos dizer que a solução para ele é a recursividade. Para compreender melhor, vamos analisar o caso do somatório onde temos um número natural n >= 0 e queremos descobrir a soma de todos os números de n até 0.

    "Retroceder Nunca Render-se Jamais !"

    Força e Fé !

    Fortuna Audaces Sequitur !

  • Alternativa correta: B.

    Ele precisa de pelo menos uma estrutura de seleção (switch, else ou if) para poder determinar quando parar a recursividade. Se não tiver isso ele entra em loop. Por exemplo:

    if (i > 0) then <chama a si mesmo novamente>

    else <sai da recursividade>

  • Fiquei na dúvida entre letra B e E. Acabei errando. Depois pensando melhor, acredito que a 3ª afirmação deva estar incorreta porque um algoritmo pode ser recursivo e ter uma chamada para ele mesmo em seu escopo, no entanto, pode terminar de executar sem realizar esta chamada. É o caso por exemplo de um algoritmo fatorial recursivo, que invocará a si mesmo várias vezes quando for calculado o fatorial de um inteiro maior que 1, no entanto, não invocará a si mesmo nenhuma vez quando for calculado o fatorial de 1.

  • Ainda não entendi porque a terceira alternativa está errada...

  • O erro da terceira alternativa é porque existe a recursividade indireta, na qual uma função A chama uma função B, posteriormente a função B chama a função A, ou seja, a função A não precisou chamar a si mesma, mas ainda assim houve recursividade.

  • Força Guerreiro!!!!!!

  • Introdução:

    • Recursão: quando aquilo chama a si mesmo. Em lógica de programação  processo de repetição de uma rotina. Preste atenção a palavra negritada "rotina", pois ela será muito importante.
    • Instruções em lógicas de programação:

    a) Decisão ou seleção: Escolha. Ela se subdivide em (1) simples (if), (2) composta (if, else) e (3) caso selecione (switch-case)

    b) Repetição: estrutura que permite executar mais de uma vez. Subdivisões: pré-testada (while), pós-teste (do while), variável de controle (for) e e a instrução permite executar uma função em cada elemento (for each).

    Vamos a questão:

    I Deve conter pelo menos uma estrutura de repetição. Maldade essa alternativa de número 1 kk. Tanto a recursão, quanto a repetição usam a repetição. Porém a recursão não precisa necessariamente usar as 4 estruturas básicas existentes de repetição. Por isso ela está errada. E como a recursão é feita? R.: a recursão usa a repetição na forma de chamadas repetitivas a uma rotina.

    II Deve conter pelo menos uma estrutura de seleção. Quando eu me deparei com a questão, eu fiz a seguinte indagação: “já que a chamada é para cair em uma rotina, para que usarei uma estrutura de seleção?”. A resposta é simples: loop. Veja o que o livro Projeto de Algoritmos de Nivio Ziviani diz: “como todo comando repetitivo, métodos recursivos introduzem a possibilidade de iterações que podem não terminar, implicando a necessidade de se considerar o problema de terminação. Uma exigência fundamental é que a chamada recursiva a um método P esteja sujeita a uma condição B, a qual se torna não satisfeita em algum momento da computação...”.

    III Deve invocar a si mesmo pelo menos uma vez ao ser executado. Como já bem explicado pelos colegas. Existe a recursão direta e a indireta. Reforçarei a explicação por analogia, Direta: quando a estrutura chama a si mesmo (exemplo um grito em uma caverna). Indireta é quando você chama o seu colega e ele chama outro colega, em termos mais técnicos "Recursão Indireta uma rotina que contém uma chamada a outra rotina que, por sua vez, tem uma chamada a outra rotina e assim sucessivamente, portanto, rotinas diferentes".

    Obs.: leiam o comentário dos coelgas Leophb e Ibsen para maiores esclarecimentos.

    Fonte:

    ZIVIANI Nivio. Projeto de Algoritmos com implementação em Java e C++. Editora Thomson. Ano de publicação: 2007.

    Recursividade https://www.embarcados.com.br/recursividade/


ID
3007786
Banca
Marinha
Órgão
Quadro Técnico
Ano
2019
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

De acordo com Szwarcfiter e Markenzon (2010), coloque F (Falso) ou V (verdadeiro) nas afirmativas abaixo, assinalando a seguir a opção que apresenta a sequência correta.


( ) Análise é um aspecto básico no estudo dos algoritmos, o qual consiste em verificar a exatidão do método empregado, o que é realizado através de um prova de matemática.

( ) Correção é outro aspecto básico no estudo do algoritmo, o qual visa à obtenção de parâmetros que possam avaliar a eficiência do algoritmo em termos de tempo de execução e memória ocupada.

( ) Frequentemente, um procedimento recursivo é mais conciso que o seu correspondente não recursivo. Entretanto, muitas vezes há desvantagens no emprego prático da recursividade, podendo um algoritmo não recursivo ser mais eficiente que o seu equivalente recursivo.

( ) As complexidades do pior caso, do melhor caso e do caso médio têm por objetivo avaliar a eficiência de tempo ou espaço. Sendo a complexidade de pior caso a que fornece um limite superior para o número de passos que o algoritmo pode efetuar, em qualquer caso,

( ) Para a questão de algoritmos ótimos, o interessante é determinar a função que represente o menor limite inferior possível para um problema e a maior complexidade de melhor caso do algoritmo.

Alternativas
Comentários
  • Correção é um aspecto básico no estudo dos algoritmos, o qual consiste em verificar a exatidão do método empregado, o que é realizado através de um prova de matemática.

    Análise é outro aspecto básico no estudo do algoritmo, o qual visa à obtenção de parâmetros que possam avaliar a eficiência do algoritmo em termos de tempo de execução e memória ocupada.

    Para a questão de algoritmos ótimos, o interessante é determinar a função que represente a complexidade igual a cota inferior do problema.

  • ( F) Análise é um aspecto básico no estudo dos algoritmos, o qual consiste em verificar a exatidão do método empregado, o que é realizado através de um prova de matemática.

    Análise: visa à obtenção de parâmetros que possam avaliar a eficiência do algoritmo em termos de tempo de execução e memória ocupada. 

    ( F) Correção é outro aspecto básico no estudo do algoritmo, o qual visa à obtenção de parâmetros que possam avaliar a eficiência do algoritmo em termos de tempo de execução e memória ocupada.

    Correção: verifica a exatidão do método empregado, o que é realizado através de uma prova matemática. 

    (V) Frequentemente, um procedimento recursivo é mais conciso que o seu correspondente não recursivo. Entretanto, muitas vezes há desvantagens no emprego prático da recursividade, podendo um algoritmo não recursivo ser mais eficiente que o seu equivalente recursivo.

    (V) As complexidades do pior caso, do melhor caso e do caso médio têm por objetivo avaliar a eficiência de tempo ou espaço. Sendo a complexidade de pior caso a que fornece um limite superior para o número de passos que o algoritmo pode efetuar, em qualquer caso,

    (F) Para a questão de algoritmos ótimos, o interessante é determinar a função que represente o menor limite inferior possível para um problema e a maior complexidade de melhor caso do algoritmo

    Um algoritmo ótimo é aquele que apresenta a menor complexidade dentre todos os possíveis algoritmos para resolver o mesmo problema. 

    Alternativa; A

  • Algoritmo ótimo = menor complexidade


ID
3263170
Banca
AOCP
Órgão
Prefeitura de Juiz de Fora - MG
Ano
2016
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A recursividade é uma importante sub-rotina que pode auxiliar o analista de sistemas a resolver problemas mais complexos. Sabendo disso, assinale a alternativa em que esteja implementado corretamente um algoritmo recursivo.

Alternativas
Comentários
  • Impressão minha ou a alternativa C e D são iguais?

  • A alternativa D indica um "procedimento" ao invés de "função" como está na letra C

  •  A ideia de recursividade é a de um processo que é definido a partir de si próprio. No caso de um algoritmo, esse é definido invocando a si mesmo. E um fator crucial que todos os algoritmos recursivos devem apresentar é uma condição de parada, de outra forma entramos em um loop infinito. portanto a letra c) esta correta

  • Força Guerreiro!!!!!!


ID
3292135
Banca
AOCP
Órgão
FUNPAPA
Ano
2018
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Existem casos em que um procedimento ou função chama a si próprio. Sobre introdução à computação, é correto afirmar que

Alternativas
Comentários
  • A recursividade é a definição de uma sub-rotina (função ou método) que pode invocar a si mesma. Um exemplo de aplicação da recursividade pode ser encontrado nos analisadores sintáticos recursivos para linguagens de programação. A grande vantagem da recursão está na possibilidade de usar um programa de computador finito para definir, analisar ou produzir um estoque potencialmente infinito de sentenças, designs ou outros dados.

  • O processo no qual uma função chama a si própria direta ou indiretamente é chamado de recursão e a função correspondente é chamada de função recursiva. Usando um algoritmo recursivo, certos problemas podem ser resolvidos com bastante facilidade.

  • Força Guerreiro!!!!!!


ID
3313615
Banca
Quadrix
Órgão
Prefeitura de Jataí - GO
Ano
2019
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A situação em que dois subprogramas fazem chamadas recíprocas, como, por exemplo, um subprograma P faz uma chamada a um subprograma J, que, por sua vez, faz uma chamada a P, é caracterizada como uma

Alternativas
Comentários
  • b-

    recursividade direta- a funcao chama a si mesma

    recursividade indireta- uma funcao chama outra, a qual chama a 1° funcao

  • Força Guerreiro!!!!!!

  • Força Guerreiro!!!!!!