Conforme Celes, Cerqueira, Rangel (2004), podemos utilizar um vetor para armazenar os elementos e implementarmos uma Fila em estrutura de dados, ou podemos utilizar uma alocação dinâmica de memória para armazenar os elementos, como utilizaremos em nosso exemplo de Fila. A Torre de Hanói, é um jogo pedagógico onde os elementos inseridos em uma pilha, possuem uma sequência de inserção, sendo o primeiro elemento que entra na pilha só pode ser removido por último, após todos os outros elementos serem removidos. Assim, um elemento maior nunca pode ficar sobre um elemento menor. Um programador apresentou o código abaixo como solução da Torre de Hanói. Considerando o contexto apresentado, avalie as seguintes asserções e a relação proposta entre elas. I. Aplica-se o algoritmo abaixo para solucionar o problema da Torre de Hanói: #include #include #include /* Declaração das funções de horas */ #define N 10 struct filacirc { int tam, ini, fim; int vet[N]; }; typedef struct filacirc FilaCirc; void inicia_fila (FilaCirc *f){ f -> tam = 0; f -> ini = 1; f -> fim = 0; } void insere_fila (FilaCirc* f, char elem) { if (f -> tam == N - 1) { printf("A fila esta cheia\n"); } else { f -> fim = (f -> fim % (N - 1)) + 1; f -> vet[f -> fim] = elem; f -> tam++; } } int fila_vazia (FilaCirc* f){ return (f -> tam == 0); } int remove_fila (FilaCirc* f) { if (fila_vazia(f)) { printf("Fila vazia\n"); } else { f -> ini = (f -> ini % (N-1)) + 1; f -> tam--; } } int main ( ) { FilaCirc* f; char processo[20]; int tempo, tmpGasto; clock_t tInicio, tFim; /* Declaração de variável do tipo hora */ printf("\n Informe o tempo do processo em execução: \n"); scanf("%d", &tempo); tInicio = clock(); /* Inicia o relógio */ while (f -> tam < N - 1) { insere_fila(f, processo); } while (f -> tam <= N - 1) { tFim = clock(); /* Finaliza o relógio */ tmpGasto = ((int) (tFim – tInicio)); /* Calcula o tempo gasto */ if (tempo <= tmpGasto) { /* Se o tempo for menor ou igual ao tempo gasto, remove da fila */ remove_fila(f); } else { printf("Processando..."); } } system("Pause"); } PORQUE II. A implementação do algoritmo em questão é uma das formas possíveis de solucionar o problema da Torre de Hanói através de Fila Circular. A respeito dessas asserções, assinale a alternativa correta. Escolha uma: a. as asserções I e II são proposições verdadeiras, e a II é uma justificativa da I. b. a asserção I é uma proposição verdadeira, e a II é uma proposição falsa. c. as asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I. d. a asserção I é uma proposição falsa, e a II é uma proposição verdadeira. e. as asserções I e II são proposições falsas.
Soluções para a tarefa
Respondido por
3
Resposta:Resposta Letra E, as duas são falsas
Explicação:O código usado é de lista circular, e a torre de Hanói se resolve com pilha
Respondido por
6
e. as asserções I e II são proposições falsas.
Na computação, os vetores podem ser utilizados para o armazenamento de elementos e para a implantação de filas estruturadas em dados. Além disso, também é possível usar uma alocação do tipo dinâmica de memória para o armazenamento dos elementos.
O algoritmo apresentado no enunciado da questão não pode ser utilizado para a resolução do problema da Torre de Hanói, visto que o código apresentado é de uma lista circular e a resolução da Torre de Hanói envolve pilhas.
Bons estudos!
Perguntas interessantes
Matemática,
7 meses atrás
Matemática,
7 meses atrás
Ed. Física,
7 meses atrás
Português,
11 meses atrás
Matemática,
11 meses atrás
Matemática,
1 ano atrás
Matemática,
1 ano atrás
Matemática,
1 ano atrás