Buscar

Colaborar - Av2 - 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 4 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

28/02/23, 10:50 Colaborar - Av2 - Algoritmos e Programação Estruturada
https://colaboraread.com.br/aluno/avaliacao/index/3506122201?atividadeDisciplinaId=14334486 1/4
 Algoritmos e Programação Estruturada (/alu…
Av2 - Algoritmos e Programação Estruturada
  
(/notific
Informações Adicionais
Período: 06/02/2023 00:00 à 13/03/2023 23:59
Situação: Cadastrado
Tentativas: 1 / 3
Pontuação: 1000
Protocolo: 831483090
Avaliar Material
1)  É 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  <stdlib.h>  é 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<stdio.h>
#include<stdlib.h>
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;
}
https://colaboraread.com.br/aluno/timeline/index/3506122201?ofertaDisciplinaId=1974652
https://colaboraread.com.br/notificacao/index
javascript:void(0);
28/02/23, 10:50 Colaborar - Av2 - Algoritmos e Programação Estruturada
https://colaboraread.com.br/aluno/avaliacao/index/3506122201?atividadeDisciplinaId=14334486 2/4
a)
b)
c)
d)
e)
2)
a)
b)
c)
d)
e)
3)
  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:
Alternativas:
 null ou um ponteiro genérico (ponteiro genérico é do tipo void) Alternativa assinalada
 int ou um ponteiro genérico (ponteiro genérico é do tipo void)
 float ou um ponteiro genérico (ponteiro genérico é do tipo void)
 char ou numérico (int ou float)
 string ou null
“Muitos problemas têm a seguinte propriedade: cada instância do problema contém uma instância menor do
mesmo problema. Diz-se que esses problemas têm estrutura recursiva. Para resolver tal problema, pode-se aplicar o
seguinte método: se a instância em questão for pequena, resolva-a diretamente; senão, reduza-a a uma instância
menor do mesmo problema, aplique o método à instância menor, volte à instância original. A aplicação desse
método produz um algoritmo recursivo.” (FEOFILOFF, 2017, p. 1). Baseado nesse conceito, avalie as asserções a
seguir:
 
I - Recursividade significa indicar quando um problema maior pode ser dividido em instâncias menores do
mesmo problema.
PORQUE
II - A técnica de recursividade pode substituir o uso de estruturas de repetição tornando o código mais elegante.
A respeito dessas asserções, assinale a alternativa correta:
Alternativas:
As asserções I e II são proposições verdadeiras, e a II é uma justificativa da I. Alternativa assinalada
As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I.
A asserção I é uma proposição verdadeira, e a II é uma proposição falsa.
A asserção I é uma proposição falsa, e a II é uma proposição verdadeira.
As asserções I e II são proposições falsas.
Recursividade é uma técnica sofisticada em programação, na qual uma função chama a si mesma criando várias
instâncias (chamadas recursivas). Embora seja uma técnica que proporciona um código mais limpo e facilita a
manutenção, seu uso deve levar em consideração a quantidade de memória necessária para a execução do
programa. Nesse contexto, avalie as asserções a seguir:
 
I. A cada chamada recursiva é alocado recursos na memória para a função, se a função for muito grande poderá
ocorrer um acúmulo de memória.
PORQUE
II. É preciso avaliar o custo-benefício em se ter um código mais sofisticado em detrimento de uma estrutura de
repetição, pois a segunda opção gasta menos memória.
A respeito dessas asserções, assinale a alternativa correta:
28/02/23, 10:50 Colaborar - Av2 - Algoritmos e Programação Estruturada
https://colaboraread.com.br/aluno/avaliacao/index/3506122201?atividadeDisciplinaId=14334486 3/4
a)
b)
c)
d)
e)
4)
a)
b)
c)
d)
e)
5)
Alternativas:
As asserções I e II são proposições verdadeiras, e a II é uma justificativa da I.
As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I.
A asserção I é uma proposição verdadeira, e a II é uma proposição falsa.
A asserção I é uma proposição falsa, e a II é uma proposição verdadeira. Alternativa assinalada
As asserções I e II são proposições falsas.
A estrutura de Fila é do tipo FIFO (First in, First out), ou seja, o primeiro elemento que entra na fila é o primeiro
elemento a ser removido, assim, todo primeiro elemento que entra na fila por uma extremidade, saíra primeiro pela
outra extremidade.
 
Um aluno afirmou que a estrutura de Fila é muito similar a uma fila de espera de um caixa eletrônico em um banco
ou até mesmo uma fila para passar as compras em um mercado.
 
Considerando o contexto apresentado, avalie as seguintes asserções e a relação proposta entre elas.
 
I. Um função que podemos implementar na Fila, é a de verificação se a Fila está vazia ou não. No trecho de remoção
de um elemento da Fila, já realizamos a chamada a esta função, e ela pode ser implementada com o trecho de
código a seguir:
int fila_vazia (Fila* f)
{
    return (f -> n == 0);
}
 
PORQUE
 
II. É impossível remover um elemento de uma Fila vazia.
Agora assinale a alternativa correta.
Alternativas:
as asserções I e II são proposições verdadeiras e a II é o motivo que justificativa da
implementação da I.
Alternativa assinalada
as asserções I e II são proposições verdadeiras, mas a II não é o motivo que justificativa da implementação da I.
a asserção I é uma proposição verdadeira, e a II é uma proposição falsa.
a asserção I é uma proposição falsa, e a II é uma proposição verdadeira.
as asserções I e II são proposições falsas.
A seguir é apresentado o código da função "clonar(p)", capaz de criar e retornar uma nova pilha idêntica a uma
pilha "p" já existente.
28/02/23, 10:50 Colaborar - Av2 - Algoritmos e Programação Estruturada
https://colaboraread.com.br/aluno/avaliacao/index/3506122201?atividadeDisciplinaId=14334486 4/4
a)
b)
c)
d)
e)
 
struct Pilha* clonar(struct Pilha* p) {
assert(p != NULL);
struct Pilha* clone = criar();
struct Pilha* aux = criar();
 
while(vazia(p) == false) {
empilhar(aux, desempilhar(p));
}
 
while(vazia(aux) == false) {
int elemento =____________;
____________;
empilhar(p, elemento);
}
 
____________
return clone;
}
Assinale a alternativa que preenche corretamente as lacuna do código da função "clonar":
Alternativas:
topo(aux) / empilhar(clone, elemento) / liberar(aux).
desempilhar(aux) / empilhar(clone, elemento) / free(aux).
desempilhar(aux) / empilhar(clone, elemento) / liberar(aux). Alternativa assinalada
desempilhar(aux) / empilhar(clone, desempilhar(aux)) / liberar(aux).
topo(aux) / empilhar(clone, desempilhar(aux)) / free(aux).

Continue navegando