Buscar

Aap3 - Algoritmos e Programação Estruturada

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 23 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 23 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 23 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Aap3 - Algoritmos e Programação Estruturada
Na área da computação é comum que criemos analogias entre os conceitos e situações cotidianas, afim de facilitar o entendimento dos mesmos.
 
Com base nisso associe a COLUNA-A, que apresenta alguns elementos de programação, com a COLUNA-B, que apresenta alguns exemplos aplicáveis:
 
	COLUNA-A
	COLUNA-B
	I. Vetor
	A. Uma música em uma playlist criada pelo usuário.
	II. Índice do Vetor
	B. Edifício com 10 apartamentos.
	III. Lista ligada
	C. Brincadeira do amigo – secreto.
	IV - Elemento de uma lista
	D. O número de uma casa em uma rua.
A seguir assinale a alternativa que apresenta a associação correta.
Alternativas:
· a)
I - B; II - D; III - C; IV - A.
Alternativa assinalada
· b)
I - B; II - C; III - D; IV - A.
· c)
I - B; II - A; III - C; IV - D.
· d)
I - C; II - D; III - B; IV - A.
· e)
I - C; II - A; III - B; IV - D.
2)
As listas ligadas são estruturas de dados conhecidas por serem flexíveis quanto às suas operações e seu tamanho é dinâmico. Toda lista é composta por nós, e o nó é um conjunto de informações que permitem apontar para o próximo elemento.
Considere a organização das pessoas na fila do banco, porém seu funcionamento coerente depende do comportamento da lista ligada, então aplique o conceito de inserção em listas ligadas para assinalar a alternativa correta:
Alternativas:
· a)
As listas só permitem inserção de elementos em seu início.
· b)
As listas só permitem inserção de elementos em seu fim.
· c)
As listas só permitem inserção de elementos em seu início ou seu fim.
· d)
As listas permitem inserção de elementos em qualquer posição.
Alternativa assinalada
· e)
As listas não permitem sobreposição ao inserir elementos.
3)
A declaração da estrutura inicial para criação de uma pilha pode ser implementada por:
 
struct Pilha {
int topo;
int capacidade;
float * proxElem;
};
struct Pilha minhaPilha;
 
Segundo Celes, Cerqueira e Rangel (2004), com a estrutura declarada é possível criar a função para criar uma pilha. Esta função aloca dinamicamente na memória o espaço para utilização da pilha. O trecho de código para criação da pilha pode ser implementado por:
 
void cria_pilha(struct Pilha *p, int c ){
p -> proxElem = (float*) malloc (c * sizeof(float));
p -> topo = -1;
p -> capacidade = c;
}
 
Com a função para criar a pilha realizada, ela estará vazia, ou seja, não terá nenhum elemento na pilha em sua criação. Assim, é possível criar a função que vai permitir ser inserido um novo elemento na pilha.
 Considerando os códigos apresentados, o  correto  formato  para inserir um novo elemento na pilha  usando o nome push( )  é 
Alternativas:
· a)
void push-pilha(struct Pilha *p, float **v){
p -> topo++;
p -> proxElem [p -> topo] = v;
}
· b)
void push_pilha(struct Pilha *p, float v){
p -> topo-+;
p -> proxElem [p -> topo] = v;
}
· c)
void push_pilha(struct Pilha *p, float v){
p -> topo++;
p -> proxElem [p -> topo] = v;
}
Alternativa assinalada
· d)
void push-pilha(struct Pilha /p, float v){
p -> topo+-;
p -> proxElem [p -> topo] = v;
}
· e)
void push_pilha(struct Pilha /p, float v){
p -> topo++;
p -> proxElem [p -> topo] = v;
}
4)
Em uma fila, só é possível remover um elemento pelo seu início. É possível implementar o trecho de código a seguir para remoção do elemento e apresentar seu valor no retorno da função:
 
float remove_fila (Fila* f){
char elem;
if (fila_vazia(f)){
printf(“A Fila esta vazia\n”);
exit(1);
}
elem = f -> vet[f -> ini];
f -> ini = (f -> ini + 1) % N;
f -> n--;
return elem;
}
 
De acordo com o trecho, marque (V) verdadeiro ou (F) falso nas asserções a seguir:
 
(   ) Nesse trecho é possível observar que, antes de remover o elemento da fila, é preciso verificar se ela possui elementos, chamando a função fila vazia.
(   ) Caso a fila esteja vazia, a função apresenta uma mensagem informando ao usuário que não há elementos para serem removidos e finaliza a função.
(   ) Caso a fila possua elementos, a variável vet recebe o elemento da primeira posição da fila.
(   ) Assim, o início da fila volta para o elemento anterior.
(   ) Este elemento incrementa a quantidade de elementos e retorna o elemento removido.
Assinale a alternativa que contém a sequência correta:
Alternativas:
· a)
V-F-V-F-V.
· b)
F-V-F-V-F.
· c)
F-V-V-F-V.
· d)
V-V-F-F-F.
Alternativa assinalada
· e)
V-F-F-V-F.
Adg1 - Algoritmos e Programação Estruturada
1)
Sabemos que um algoritmo é uma sequência logica de procedimentos para conseguir chegar a um resultado desejado. Existem diversos tipos de algoritmos, dentre eles, podemos citar: Linguagem natural , Diagramas de blocos (fluxograma) e os Pseudocódigos. Neste contexto, relacione corretamente as colunas a seguir.
 
	Coluna -A
	Coluna -B
	a - Linguagem natural 
	1 - Um conjunto de símbolos gráficos, onde cada um desses símbolos representa ações especificas a serem executadas pelo computador.
	b - Diagramas de blocos (fluxograma)
	2 - Considerado uma ferramenta que pode auxiliar a programação, ela pode ser escrita em palavras similares ao inglês ou português para facilitar a interpretação e desenvolvimento de um programa.
	c - Pseudocódigos
	3 - Na definição geral é uma forma de comunicação entre as pessoas de diversas línguas, ela pode ser falada, escrita, gesticulada entre outras formas de comunicação, tem uma grande contribuição quando vamos desenvolver uma aplicação computacional, pois ela pode direcionar de forma simples e eficiente as descrições dos problemas e suas soluções.
Assinale a alternativa que apresenta a associação CORRETA:
Alternativas:
· a)
a-3, b-1, c-2.
Alternativa assinalada
· b)
a-3, b-2, c-1.
· c)
a-1, b-3, c-2.
· d)
a-1, b-2, c-3.
· e)
a-2, b-3, c-1.
2)
Cada país e região tem sua língua nativa, dessa mesma forma ocorrem com as linguagem de programação, cada linguagem existe uma sintaxe a ser seguida, por isso é fundamental entender todos os componentes de uma determinada linguagem de programação, para conseguir programar.
 
Tomando como referência as definições e características de Algoritmos e Linguagem de Programação, julgue as afirmativas a seguir  e marque (V)  para verdadeiras ou (F) para falso.
(   ) Em algoritmos a forma de escrever (maiúsculas e minúsculas) não acarretará em erros, porém, em linguagem de programação C é preciso diferenciar as palavras em letras maiúsculas e minúsculas.
(   )  As sintaxes (instrução) deverão ser escritas e armazenada na memória do computador na mesma ordem que se espera ser executada, ou seja, ela pode ser linear
(executada sequencialmente) e não linear (executada de forma a serem redirecionadas, isto é, uma instrução de bifurcação).
(   ) Um programa é uma sequência de código organizada de tal forma que, na maioria dos casos, permita resolver um determinado problema. Um programa pode ser desenvolvido em módulos distintos e/ou em subprogramas.
Assinale a alternativa que apresenta a sequência correta.
Alternativas:
· a)
V - F - V.
· b)
V - V - F.
Alternativa assinalada
· c)
F - V - V.
· d)
F - V - F.
· e)
V - V - V.
3)
Para se usar uma variável em uma linguagem de programação é preciso criá-la e para isso usase a seguinte sintaxe: <tipo> <nome_da_variavel>;
Com relação a criação de variáveis na linguagem C, complete as lacunas da sentença a seguir:
 
#include <stdbool.h>
void main(){
  ____ idade = 23;
  ____ salario = 750.50;  
  ____ confirma = false;
  ____ genero = 'M';
}
Assinale a alternativa que completa as lacunas corretamente:
Alternativas:
· a)
float / float / char / bool.
· b)
int / int / bool / char.
· c)
float / int / char / bool.
· d)
int / float / bool / char.
Alternativa assinalada
· e)
bool / float / char / bool.
4)
Na programação, uma variável é um objeto (uma posição, frequentemente localizada na memória) capaz de reter e representar um valor ou expressão. Enquanto as variáveis só "existem" em tempo de execução, elas são associadas a "nomes", chamados identificadores, durante o tempo de desenvolvimento. Com relação aos tipos de variáveis, complete as lacunas da sentença a seguir:
 
Além das variáveisprimitivas e compostas existe um tipo de variável muito especial na linguagem C chamada de ____________, são usadas exclusivamente para armazenar endereços de memória. Para acessa-las são usados dois operadores, o ____________ usado para criação do ponteiro e o ____________ usado para acessar o endereço da memória, por isso é chamado de operador de referência.
Assinale a alternativa que completa as lacunas corretamente:
Alternativas:
· a)
ponteiro / * (asterisco) / & (e comercial)
Alternativa assinalada
· b)
constante / * (asterisco) / || (duas barras)
· c)
ponteiro / & (e comercial) / * (asterisco)
· d)
constante / * (asterisco) / & (e comercial)
· e)
ponteiro / * (asterisco) / || (duas barras)
Adg2 - Algoritmos e Programação Estruturada
1)
A estrutura condicional possibilita a escolha de um grupo de ações e estruturas a serem executadas quando determinadas condições são ou não satisfeitas. A estrutura condicional pode ser simples ou composta. Nesse contexto, analise as asserções a seguir e marque (V) verdadeiro ou (F) falso:
 
(   ) A estrutura condicional simples executa um comando ou vários comandos se a condição for verdadeira.
(   ) Se a condição for falsa, a estrutura condicional simples é finalizada após executar todos os comandos.
(   ) O comando que define a estrutura condicional simples é representado pela palavra SE.
(   ) A estrutura condicional composta segue o mesmo princípio da estrutura condicional simples, com a diferença de que quando a condição não é satisfeita, o mesmo comando é executado até a condição ser satisfeita.
(   ) O comando que define a estrutura é representado pelas palavras SE e SENÃO.
Assinale a alternativa que contém a sequência correta:
Alternativas:
· a)
V-V-F-F-V.
· b)
F-F-V-V-F.
· c)
V-F-F-F-V.
· d)
F-V-F-V-F.
· e)
V-F-V-F-V.
Alternativa assinalada
2)
Em lógica de programação, usa-se condições para tomar decisões no decorrer da execução de um programa. Através de estruturas condicionais é possível alterar todo o fluxo de processamento. Um exemplo simples de estrutura de decisão é uma conta corrente de um banco.
 Fonte: Disponível em<Adaptado de http://profanderson.blog.etecarmine.com.br/estrutura-condicional-se-senao/>Acesso.11.Jul.2018.
  Neste contexto, complete corretamente as lacunas da asserção a seguir:
Entende-se que ____________ realizar saques na conta se houver saldo disponível, caso contrário, o saque será negado. Esta decisão, basicamente, é ____________, ou seja, ____________, a condição será verdadeira e _____________, senão, a condição falsa ____________.
Assinale a alternativa que completa corretamente as lacunas:
Alternativas:
· a)
somente será possível / um verdadeiro ou falso / se houver saldo / o saque será permitido / negará o saque.
Alternativa assinalada
· b)
sempre será possível / falsa / se houver saldo / o saque será permitido / negará o saque.
· c)
somente será possível / verdadeira / se não houver saldo / o saque será permitido / negará o saque.
· d)
sempre será possível / um verdadeiro ou falso / sem saldo / o saque será bloqueado / permitirá o saque.
· e)
somente será possível / um verdadeiro ou falso / sem saldo / o saque será bloqueado / negará o saque.
3)
Segundo Manzano (2013), para a solução de um problema é possível utilizar a instruça?o “if” para tomada de decisão e também criar desvios dentro de um programa para uma condição verdadeira ou falsa. Seguindo essa premissa, as repetições com teste no início – while, para deixar claro, acontecem para que algo seja repetidamente executado enquanto uma condição verdadeira for verificada, somente após a sua negativa essa condição será interrompida.
Sobre o comando while com teste no inicio é correto afirmar que:
Alternativas:
· a)
“não executara? nenhuma repetição e ações que ali dentro estiverem programadas sem antes testar uma condição.”
Alternativa assinalada
· b)
“não executara? nenhuma condição e ações que ali dentro estiverem programadas sem antes testar uma repetição.”
· c)
“executara? repetição e ações que ali dentro estiverem programadas, sem antes testar uma condição.”
· d)
“não executara? condição e ações que ali dentro estiverem programadas, sem antes que o programador tecle enter.”
· e)
“executara? inúmeras repetições e ações que ali dentro estiverem programadas antes de testar mais de uma condição.”
4)
Usando a estrutura de repetição “for”, os históricos e aplicações de estruturas de repetição determinísticas e os comparativos com estruturas condicionais, serão aplicados dentro da linguagem de programação. Para tal, será usada a repetição com variáveis de controle, ou seja, aplicar o laço “for”. Nesse contexto, complete corretamente a afirmativa a seguir:
O comando iterativo “for”, que em português significa “para”, segundo Mizrahi (2008), é:
Alternativas:
· a)
geralmente usado para repetir várias informações por um número alternado de vezes, isto é, pode-se determinar quantas vezes acontecerá a repetição.
· b)
geralmente usado para repetir uma informação por um número fixo de vezes, isto é, pode-se determinar quantas vezes acontecerá a repetição.
Alternativa assinalada
· c)
raramente usado para repetir um comando por um número fixo de vezes, isto é, pode-se determinar quantas vezes acontecerá a repetição.
· d)
raramente usado para repetir várias informações por um número fixo de vezes, isto é, pode-se determinar quantas vezes acontecerá a repetição.
· e)
geralmente usado para repetir um comando por um número alternado de vezes, isto é, pode-se determinar quantas vezes acontecerá a repetição.
Adg3 - Algoritmos e Programação Estruturada
1)
A modularização é uma técnica de programação que permite a divisão da solução de um problema, afim de diminuir a complexidade, tornar o código mais organizado e evitar a repetição de códigos. Em cada declaração da função alguns parâmetros são obrigatórios e outros opcionais, veja cada parâmetro: tipo de retorno da função, o nome da função, parênteses após o nome da função, parâmetros, comandos e o tipo de retorno da função.
 
Neste contexto, complete as lacunas da sentença a seguir:
 
Quando o tipo de retorno da função for do tipo void  esse ____________ não precisa ser usado, porém, quando não for void  é ____________. O valor a ser retornado em uma função tem que ser ____________ com o tipo de retorno, senão o problema dará um erro de ____________ em algumas linguagens, em outras retornará um valor errôneo. Na linguagem C, deverá ser retornado um valor de acordo com o ____________ de retorno da função.
Assinale a alternativa que completa as lacunas corretamente:
Alternativas:
· a)
vetor / permitido / provável / programação / valor
· b)
valor / válido / igualitário / estrutura / fator
· c)
programa / provável / condizente / acesso / comando
· d)
parâmetro / obrigatório / compatível / compilação / tipo
Alternativa assinalada
· e)
arquivo / assentido / favorável / otimização / aspecto
2)
De acordo com Mizrahi (2008) uma das definições de função é que ela é uma sub-rotina usada em um programa. Na linguagem de programação C, denominamos função a um conjunto de comandos que realiza uma tarefa específica em um módulo dependente de código. Uma função é referenciada pelo programa principal através do nome atribuído a ela. A utilização de funções visa modularizar um programa, o que é muito comum em programação estruturada. Desta forma podemos dividir um programa em várias partes, no qual cada função realiza uma tarefa bem definida.
 
 
A sintaxe de uma função:
 
tipo_de_retorno nome_da_função (listagem de parâmetros)
{
   instruções;
   retorno_da_função;
}
Uma função é definida como um trecho de código escrito para solucionar um subproblema. Esses blocos são escritos tanto para:
Alternativas:
· a)
aumentar a quantidade de linhas do programa, quanto para facilitar o trabalho do programador.
· b)
evitar erros de compilação, quanto para depurar o programa afim de achar os futuros erros de código e lógica.
· c)
dividir a complexidade de um problema maior, quanto para evitar a repetiçãode códigos.
Alternativa assinalada
· d)
possibilitar o uso de ponteiros em funções que possuem vetores, quanto funções que não possuem vetores.
· e)
usar funções com passagem de parâmetros por valor, quanto usar passagem de parâmetros por referência.
3)
As variáveis em C podem ser declaradas basicamente de três maneiras diferentes: dentro de uma função, fora de uma função, e como parâmetro de uma função. Essas três maneiras de declaração fazem com que as variáveis sejam chamadas de locais, globais ou parâmetros formais.
 Fonte:disponível em<http://www.di.ufpb.br/liliane/aulas/escopo.html>Acesso06.Ago.2018.
 Nesse contexto, julgue as seguintes afirmações
 I. As variáveis globais existem durante a execução de todo o programa.
 II. Uma variável local só pode ser utilizada pela função ou bloco que a declarou.
III. Os parâmetros formais são variáveis locais de uma função que são inicializadas no momento da chamada da função.
É correto apenas o que se afirma em:
Alternativas:
· a)
I.
· b)
III.
· c)
I e II.
· d)
II e III.
· e)
I, II e III.
Alternativa assinalada
4)
Embora a sintaxe da função recursiva seja similar as não recursivas, o funcionamento de ambas é bastante distinto e o mau uso dessa técnica pode acarretar em uso indevido de memória, muitas vezes chegando a travar a aplicação e o sistema. Para entender o processo,julgue as seguintes afirmações.
 I - A função recursiva chama a si própria até que um ponto de parada seja estabelecido, podendo ser alcançado através de uma estrutura condicional ou através de um valor informado pelo usuário.
 II -  No uso de uma função recursiva, os recursos são alocados em outro local da memória, ou seja, para cada chamada da função, novos espaços são destinados a execução do programa. E é justamente por esse ponto que o ponto de parada é crucial.
III - As variáveis criadas em cada instância da função na memória são dependentes, ou seja, quando as variáveis possuem nomes iguais, cada uma terá seu próprio endereço de memória, mas a alteração do valor em uma afetará a outra.
É correto apenas o que se afirma em:
Alternativas:
· a)
I.
· b)
II.
· c)
III.
· d)
I e II.
Alternativa assinalada
· e)
II e III.
Adg4 - Algoritmos e Programação Estruturada
1)
Uma lista ligada ou lista encadeada é uma forma de estruturar dados para o seu armazenamento, ou seja, é determinar a forma de inseri-los ou remove-los, sendo necessário organizá-los em células e inserir um ponteiro que aponte para o primeiro elemento e outro que aponte para o seu fim.
 
Assim, toda vez que queremos manipular uma estrutura de dados em uma memória, ou em uma unidade de armazenamento qualquer, podemos fazer isso de ao menos três formas diferentes conforme a seguir:
a) reservar os espaços em memória na forma estática, ou seja, alocar uma determinada quantidade de memória previamente definida, mesmo sem considerar a quantidade que seria realmente necessária;
b) reservar os espaços em memória através de variáveis locais. O espaço estará disponível somente enquanto a função que o declarou estiver executando o programa.
c) alocação de espaço em memória dinamicamente, ou seja, o Sistema Operacional aloca blocos de espaços que estão disponíveis (livres) ou para atender uma determinada demanda. 
 
Com base nas informações disponíveis e em Listas Encadeadas (ou Listas Ligadas), avalie a seguinte afirmativa preenchendo suas lacunas:
 
"Os elementos armazenados numa lista não ocupam um espaço de memória ___________, fazendo com que o acesso aos elementos da lista seja ___________. Enquanto que a utilização de vetores é considerada primária para a representação de conjuntos de dados, a utilização de listas ligadas é uma maneira mais ______________, para a organização e disponibilização dos dados, isto porque em listas ligadas, cada um de seus elementos___________________."
Agora assinale a alternativa que preenche corretamente as lacunas do texto.
Alternativas:
· a)
 distribuído / aleatório / flexível / indica o máximo de elementos.
· b)
 contíguo / sequencial / flexível / indica qual é o seu próximo.
Alternativa assinalada
· c)
 aleatório / contíguo / simplória / indica o mínimo de elementos.
· d)
 contíguo / aleatório / íntegra / indica qual é o seu próximo.
· e)
 distribuído / sequencial / limitada / indica o máximo de elementos.
2)
O uso do vetor, ao ser declarado, reserva um espaço na memória contíguo para armazenar seus elementos e assim é possível acessar qualquer dos seus elementos a partir do primeiro elemento, por meio de um ponteiro (CELES, 2004).
 
Com base no funcionamento das Estruturas de Dados, avalie as seguintes asserções e a relação proposta entre elas:
 
I – Além do primeiro elemento é necessário que se conheça o último elemento, que é o que controla o acesso do vetor.
 
PORQUE
 
II – Vetores permitem que os elementos sejam acessados de forma aleatória.
Assinale a alternativa correta.
Alternativas:
· a)
As asserções I e II são verdadeiras, mas a II não é uma justificativa da I.
· b)
As asserções I e II são verdadeiras e a II é uma justificativa da I.
· c)
A asserção I é verdadeira e II é falsa.
· d)
A asserção I é falsa e II é verdadeira.
· e)
As asserções I e II são falsas.
Alternativa assinalada
3)
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 <stdio.h>
#include <stdlib.h>
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.
Alternativas:
· a)
Apenas as afirmativas I, III e IV estão corretas.
· b)
Apenas as alternativas I, II e III são corretas.
Alternativa assinalada
· c)
Apenas as afirmativas I e III estão corretas.
· d)
Apenas as afirmativas I, II e IV estão corretas.
· e)
Apenas as afirmativas II, III e IV estão corretas.
4)
As Filas não apresentam uma solução completa, sendo que, mesmo chegando ao final do vetor poderemos ter a Fila cheia mesmo não estando cheia, uma vez que elementos podem ter sido removidos e para isso, podemos utilizar as Filas Circulares como solução para esta situação.
Tendo como referência Filas Circulares, avalie as seguintes afirmativas:
I - Uma Fila Circular utiliza menos instruções a serem executadas, podendo ser mais adequada e eficiente na utilização de programação.
II -  Em relação ao driver-thru (serviço de vendas alimentos fast food, que permite ao cliente comprar o produto sem sair do carro),  seu processo todo se encaixa nomodelo de Fila Circular.
III -  Em uma Fila Circular, o conceito de circularidade se baseia quando o último elemento da fila está na última posição do vetor, e é adjacente à primeira
IV -  Em uma Fila Circular são os ponteiros, e não os elementos da fila que se movem em direção ao início do veto.
Agora assinale a alternativa correta.
Alternativas:
· a)
Apenas a afirmativa IV está correta.
· b)
Apenas as afirmativas II e III estão corretas.
Alternativa assinalada
· c)
Apenas as afirmativas I e II estão corretas.
· d)
Apenas as afirmativas I, III e IV estão corretas.
· e)
As afirmativas I, II, III e IV estão corretas.

Continue navegando