Existem ótimos exemplos de utilização de Pilhas em nosso cotidiano, nos brinquedos usados em sala de aula ou até mesmo numa simples pilha de livros, onde é possível se determinar qual o algoritmo (critério) utilizado para empilhá-los: tamanho, grossura, cor, tema, etc.. Muitos professores usam estas artimanhas a fim de que os alunos possam desenvolver o raciocínio lógico.
Pensando nisso, um programador desenvolveu o código abaixo, para que os professores possam informar a quantidade de discos e o sistema informasse a quantidade total de movimentos que serão realizados. Com esse algoritmo, eles poderiam criar gincanas e desafios entre os alunos para resolverem a ferramenta lógica que eles usam em sala de aula, com um número maior de discos.
Abaixo apresenta-se o código desenvolvido pelo programador mencionado.
#include
#include
int contador = 0;
void algoritmo(int n, char a, char b, char c)
{
if (n == 1)
{
printf("Move o disco %d de %c para %c\n", n, a, b);
contador++;
} else
{
algoritmo(n - 1, a, c, b);
printf("Move o disco %d de %c para %c\n", n, a, b);
algoritmo(n - 1, c, b, a);
contador++;
}
}
int main(void)
{
int numDiscos;
printf("Informe o numero de discos: ");
scanf("%d", &numDiscos);
algoritmo(numDiscos, 'A', 'B', 'C');
printf("\n\nA quantidade de movimentos foi: %d", contador);
return 0;
}
Sobre o algoritmo apresentado acima, analise as seguintes afirmações:
I - O Algoritmo trata-se da solução da Torre de Hanói.
II - Para o desenvolvimento deste algoritmo foi necessário o uso da recursividade assim como o uso de Pilhas.
III - Foi necessário, um contador para realizar a contagem da quantidade de movimento.
IV - O algoritmo limita o numero de pilhas informadas em 10 unidades.
Agora, assinale a alternativa correta.
Respostas
respondido por:
45
I - O Algoritmo trata-se da solução da Torre de Hanói.
Verdade
II - Para o desenvolvimento deste algoritmo foi necessário o uso da recursividade assim como o uso de Pilhas.
Falso. De fato é utilizado a recursividade porém o uso de Pilhas não é explícito no programa. Usa-se Pilhas como se usa quando se faz uma chamada de uma função/subrotina. Se considerarmos que toda vez que usamos uma rotinha, uma funçao, estams usando pilha, de fato se usou pilha. Porém, se usarmos esse argumento, todos os programas fazem uso de pilha. O ponto que quero dizer é que o programador não criou pilha alguma. Apenas chamou recursivamente a funcao. Mesmo que ele não a chamasse recursivamente, estaria fazendo uso de pilha de forma implícita.
III - Foi necessário, um contador para realizar a contagem da quantidade de movimento.
Verdade.
IV - O algoritmo limita o numero de pilhas informadas em 10 unidades.
Falso. Em canto nenhum o limite de 10 unidades é implementado nesse algoritmo.
Verdade
II - Para o desenvolvimento deste algoritmo foi necessário o uso da recursividade assim como o uso de Pilhas.
Falso. De fato é utilizado a recursividade porém o uso de Pilhas não é explícito no programa. Usa-se Pilhas como se usa quando se faz uma chamada de uma função/subrotina. Se considerarmos que toda vez que usamos uma rotinha, uma funçao, estams usando pilha, de fato se usou pilha. Porém, se usarmos esse argumento, todos os programas fazem uso de pilha. O ponto que quero dizer é que o programador não criou pilha alguma. Apenas chamou recursivamente a funcao. Mesmo que ele não a chamasse recursivamente, estaria fazendo uso de pilha de forma implícita.
III - Foi necessário, um contador para realizar a contagem da quantidade de movimento.
Verdade.
IV - O algoritmo limita o numero de pilhas informadas em 10 unidades.
Falso. Em canto nenhum o limite de 10 unidades é implementado nesse algoritmo.
leoleo2007p565g4:
está errado.
https://repl.it/@bokomoko/hanoi-hanoi
respondido por:
75
Resposta correta
Apenas as alternativas I, II e III são corretas. Correto
Corrigido pelo AVA
Anexos:
Perguntas similares
6 anos atrás
6 anos atrás
8 anos atrás
9 anos atrás
9 anos atrás
9 anos atrás