Informática, perguntado por mthscapelini, 11 meses atrás

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.

Soluções para a tarefa

Respondido por bokomoko
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.


leoleo2007p565g4: está errado.
mthscapelini: errado
bokomoko: Está certo.
adyalves11: Correto é I, II e III
bokomoko: Demonstre
alexandregsantp64dey: Resposta Correta - I, II e III.
bokomoko: a iI está errada. Não há uso de pilhas> Se tem, me mostre onde.
Respondido por wolfwilly1p8tlht
75

Resposta correta

Apenas as alternativas I, II e III são corretas.  Correto

Corrigido pelo AVA

Anexos:
Perguntas interessantes