Buscar

Aap3 (algoritmo e programaçao estruturada )as funcoes sao utilizadas nos programs....

💡 4 Respostas

User badge image

Robinho Oliver

1)

 As funções são utilizadas nos programas para acelerar o processo de programação. Muitas vezes precisamos fazer o mesmo tipo de programa que tem a seguinte opção: “leia um vetor de N números”. Para essa atividade, podemos criar uma função que gera automaticamente o vetor, utilizando a função rand (). A função rand () gera números aleatórios e basta então inserir esses números em um vetor. Suponha que seja necessário ordenar o vetor. As linguagens de programação já possuem métodos de ordenação, os mais populares métodos de ordenação são: Insertion Sort, Selection Sort, Bubble Sort, Comb Sort, Quick Sort, Merge Sort, Heap Sort e Shell Sort.

 

Observe atentamente o programa que demonstra o uso das funções para gerar o vetor e para ordenar o vetor com o método Bubble Sort:

 

#include

#include

int r[10];

 

void gerarRandomico(){

int a;

for(a = 0; a < 10; ++a) {

r[a] = rand()%100;

}}

 

void ordena(){

 int i, j, aux;

for( i=0; i<10; i++ ){

  for( j=i+1; j<10; j++ ){

   if( r[i] > r[j] ){

     aux = r[i];

     r[i] = r[j];

     r[j] = aux;

   }}}}

 

int main(){

int i;

gerarRandomico();

ordena();

for ( i = 0; i < 10; i++ ) {

printf("\n Vetor[%d] = %d", i, r[i]);}

return 0; }

 

Tomando como referência o contexto apresentado, julgue as afirmativas a seguir em (V) Verdadeiras ou (F) Falsas .

(   ) Uma função criada para retornar um valor char, o comando return somente poderá retornar o valor char.

(  ) Uma função pode ser chamada quantas vezes forem necessárias para realizar uma tarefa, a única exceção é de que não podemos fazer essa chamada dentro de uma estrutura de repetição for ( ), somente poderá ser utilizado o comando while ( ).

(  ) No programa apresentado, existem duas funções que não utilizam o return porque elas são do tipo void.

(  ) A variável que foi utilizada no comando for ( i = 0; i < 10; i++ ) foi declarada como tipo int e deveria ser float pois, quando usamos vetores os números podem ser maiores.

(  ) No programa apresentado foi utilizado duas funções pois, cada função tem um objetivo específico, devemos evitar misturar as funcionalidades das funções.

Assinale a alternativa que apresenta a sequência correta:

Selecione uma alternativa:

a)V – V – V – V – V.

b)F – V – V – F – V.

c)F – F – V– F – V.

d)V – F – V – F – V.

e)F – F – F – F – F.

2)

 É comum utilizarmos ponteiros com funções. Um caso importante de ponteiros com funções é na alocação de memória dinâmica. A função malloc ( ) pertencente a biblioteca  é usada para alocar memória dinamicamente. Entender o tipo de retorno dessa função é muito importante, principalmente para seu avanço, quando você começar a estudar estruturas de dados.

 

Observe atentamente o programa que demonstra o uso de funções:

 

#include

#include

int* alocar(){

return malloc(200);

}

int main(){

int *memoria;

memoria = alocar();

if(memoria != NULL){

printf("Endereço de memória alocada = %x",memoria);

}

else{

printf("Memória não alocada");

}

return 0;

}

 Conforme demonstrado no programa apresentado a função malloc ( ) irá reservar um espaço de memória dinamicamente, a função malloc ( ) pode retornar dois valores e são eles:

Selecione uma alternativa:

a)

 null  ou um ponteiro genérico (ponteiro genérico é do tipo void)

b)

 int  ou um ponteiro genérico (ponteiro genérico é do tipo void)

c)

 float  ou um ponteiro genérico (ponteiro genérico é do tipo void)

d)

 char  ou numérico (int ou float)

e)

 string  ou  null

O escopo é dividido em duas categorias, local ou global. Quando se tem variáveis que ambas são locais, elas existem e são notadas somente dentro do corpo da função onde foram definidas. Para definir uma variável global é preciso criá-la fora da função, assim ela será visível por todas as funções do programa.

Fonte: SCHEFFER, V.C. Escopo e passagem de parâmetros.

 

Nesse contexto, analise as asserções a seguir:I - A utilização de variáveis globais permite dimensionar o uso da memória.

II - As funções e procedimento tem pouca relevância em programação.III - As variáveis locais são criadas e mantidas na memória ao fim da função

IV - As variáveis globais permanecem na memória durante todo o tempo de execução.É correto apenas o que se afirma em:

Selecione uma alternativa:

a)

I e II.

b)

III e IV.

c)

II e III.

d)

I e IV.

e)

I, II, III e IV.

4)

Analise a figura a seguir.

 

Fonte: elaborada pela autora.

 

Para compreender o mecanismo apresentado na imagem anterior, organize as operações em sequência correta:

 

1 - Chamada a função funcaoRecursiva(), que por sua vez, possui em seu corpo um comando que invoca a si mesma.

2 - Na terceira instância, uma determinada condição de parada é satisfeita.

3 - Um novo espaço é alocado, com variáveis e comandos. Como a função é recursiva, novamente ela chama a si mesma, criando então a terceira instância da função.

4 - Cada instância da função passa a retornar seus resultados para a instância anterior.

5 - Nesse momento é criada a segunda instância dessa função na memória de trabalho.

Assinale a alternativa que contém a sequência correta:

Selecione uma alternativa:

a)

1-3-5-2-4.

b)

4-5-3-2-1.

c)

1-5-3-2-4.

d)

1-5-2-4-3.

e)

2-5-1-3-4.


1
Dislike0
User badge image

Robinho Oliver

Resposta: Aap3 - Algoritmos e Programação Estruturada

1) d)

V – F – V – F – V.

2) a)

null ou um ponteiro genérico (ponteiro genérico é do tipo void)

3) d)

I e IV.

4) c)

1-5-3-2-4.


1
Dislike0
User badge image

Robinho Oliver

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.

Selecione uma alternativa:

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.

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.

Selecione uma alternativa:

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.

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

#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.

Selecione uma alternativa:

a)

Apenas as afirmativas I, III e IV estão corretas.

b)

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

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 no modelo 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.

Selecione uma alternativa:

a)

Apenas a afirmativa IV está correta.

b)

Apenas as afirmativas II e III estão corretas.

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.


todas corrigidas pelo ava

1
Dislike0

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

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais