Buscar

QUESTÃO 10 Listas, pilhas e filas são estruturas de dados, que nos permitem organizar e interagir com nossos dados e organizá-los de diferentes formas. Em C existem bibliotecas que nos permitem implem

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 10 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 10 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 10 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

‘
(44) 99162-8928
Está SEM TEMPO ou com DIFICULDADE de realizar o seu trabalho
acadêmico?
Entre em contato conosco agora mesmo! Iremos te ajudar nessa
jornada acadêmica
(44) 99162-8928
Acesse o site :https://atividademapa.com.br/
ATIVIDADE 2 – ADSIS – ESTRUTURA DE DADOS I – 52_2024
QUESTÃO 1
Os ponteiros são elementos fundamentais na linguagem C, conferindo-lhe uma notável
flexibilidade e poder. Eles funcionam como variáveis especiais que armazenam endereços
de memória de outras variáveis, permitindo acessá-las diretamente. Quando dizemos que
um ponteiro "aponta" para uma variável, significa que ele detém o endereço dessa variável
na memória. Essa capacidade de apontar para diferentes tipos de variáveis, como inteiros,
ponto flutuante, duplos, entre outros, confere aos ponteiros uma versatilidade excepcional.
Fonte: Elaborado pelo professor, 2024.
Dado o contexto, qual a função do operador de referência (&) em estruturas de dados
utilizando ponteiros em linguagem C?
Alternativas
Alternativa 1 - Retorna o endereço de memória da variável.
Alternativa 2 - Aloca dinamicamente memória para a variável.
Alternativa 3 - Libera a memória alocada dinamicamente pelo ponteiro.
Alternativa 4 - Retorna o valor contido na posição de memória apontada pelo ponteiro.
Alternativa 5 - Desreferencia o ponteiro, acessando o valor armazenado na posição de
memória apontada.
QUESTÃO 2
Pilhas são estruturas de dados lineares nas quais uma regra específica para inserção e
remoção de dados deve ser respeitada. A regra é a seguinte: o primeiro elemento a entrar,
terá a menor prioridade no momento de sair.
Em suma, o primeiro que entra, é o último que sai.
OLIVEIRA, Pietro Martins de; PEREIRA, Rogério de Leon. Estruturas de Dados I. Maringá:
Unicesumar, 2019.
Dessa forma, analise o trecho de código abaixo, no qual apenas a função de inserção na
pilha foi programada:
Linh
a
Código
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
#include <stdio.h>
#define tamanho 10
struct tpilha {
int dados[tamanho];
int topo;
};
struct tpilha pilha;
void push(){
printf("\nDigite o valor a ser empilhado:
");
scanf("%d", &pilha.dados[pilha.topo]);
pilha.topo++;
}
Com base no exposto, avalie as afirmações que se seguem:
I – Pode-se dizer que, ao inserir um novo elemento nessa pilha, o topo é incrementado em
uma unidade.
II – A função push(), da forma como está implementada, poderia gerar erros semânticos
caso a pilha esteja lotada, com mais de 10 elementos inseridos na pilha.
III – Da forma como foi implementada a struct tpilha, está faltando, obrigatoriamente, o
campo “int ini;”.
De acordo com as afirmações acima, é possível dizer que está(ão) correta(s) a(s)
afirmativa(s):
Alternativas
Alternativa 1 - I, apenas.
Alternativa 2 - I e II, apenas.
Alternativa 3 - I e III, apenas.
Alternativa 4 - II e III, apenas.
Alternativa 5 - I, II e III.
QUESTÃO 3
Matrizes são estruturas de dados com mais de uma dimensão que desempenham um papel
fundamental em cálculos matemáticos e são amplamente utilizadas na programação para
manipular e/ou armazenar conjuntos de dados.
Fonte: Elaborado pelo professor, 2024.
Qual das seguintes afirmações é verdadeira sobre a estrutura de dados em matrizes?
Alternativas
Alternativa 1 - Uma matriz pode ter dimensões variáveis durante a execução do programa.
Alternativa 2 - Acessar um elemento específico em uma matriz tem complexidade de tempo
O(n^2).
Alternativa 3 - Uma matriz é uma estrutura de dados que pode conter apenas números
inteiros positivos.
Alternativa 4 - Uma matriz é uma estrutura de dados unidimensional que organiza
elementos em linhas e colunas.
Alternativa 5 - As operações de adição e subtração de matrizes sempre resultam em outra
matriz do mesmo tamanho.
QUESTÃO 4
Os conceitos de variáveis homogêneas e heterogêneas, vetores, matrizes e registros, listas,
filas, etc, são os elementos básicos necessários para um processo lógico e estruturado de
formação do conhecimento, também para construir estruturas de dados mais avançadas.
Fonte: Elaborado pelo professor, 2024.
Dado o contexto, qual a estrutura de dados é a mais adequada para armazenar informações
de alunos, contendo nome, idade, sexo, curso e média final?
Alternativas
Alternativa 1 - Fila
Alternativa 2 - Pilha
Alternativa 3 - Registro
Alternativa 4 - Árvore binária
Alternativa 5 - Lista encadeada
QUESTÃO 5
A alocação dinâmica na memória é um processo essencial em muitas linguagens de
programação modernas. Imagine que você está organizando uma festa surpresa para um
amigo, e você não sabe exatamente quantas pessoas vão comparecer. Você poderia
reservar um espaço em um restaurante que tem capacidade para um número específico de
convidados. No entanto, se mais pessoas aparecerem do que o esperado, você pode ficar
sem espaço e alguns convidados terão que ficar de fora. Agora, considere a mesma
situação, mas desta vez você reserva um salão de festas flexível, onde você pode adicionar
mais mesas e cadeiras conforme necessário. Desta forma, você está permitindo que o
espaço se adapte ao número de convidados que aparecem. Da mesma forma, a alocação
dinâmica, possibilita uma utilização eficiente da memória, evitando desperdício e permitindo
que os programas sejam mais flexíveis e adaptáveis.
Fonte: Elaborado pelo professor, 2024.
Com base no contexto apresentado, leia as afirmações a seguir e assinale a afirmativa
correta.
Alternativas
Alternativa 1 - Facilitar a depuração de erros de memória durante a execução do programa.
Alternativa 2 - Permitir que os programas reservem espaço de memória conforme
necessário durante a execução.
Alternativa 3 - Garantir que a memória do sistema seja totalmente utilizada desde o início
da execução do programa.
Alternativa 4 - Restringir o acesso aos dados na memória, tornando o programa mais
seguro contra violações de segurança.
Alternativa 5 - Limitar o tamanho máximo dos dados que um programa pode manipular,
prevenindo possíveis sobrecargas de memória.
QUESTÃO 6
Ponteiros desempenham um papel crucial quando uma variável precisa ser acessada em
diferentes partes de um programa. Nesse contexto, é comum encontrar diversos ponteiros
distribuídos por várias seções do código, cada um apontando para a variável que contém os
dados necessários. Uma vantagem significativa dessa abordagem é que, se esses dados
forem alterados, não há preocupação, pois todos os ponteiros no programa estão
direcionados para o endereço onde os dados atualizados residem. Essa flexibilidade
oferecida pelos ponteiros é fundamental para garantir a eficiência e a consistência na
manipulação de dados em diferentes partes do código.
Considerando o uso de ponteiros em estruturas de dados, analise o seguinte código em C:
#include <stdio.h>
int main() {
int arr[5] = {1, 2, 3, 4, 5};
int *ptr = arr;
printf("%d\n", *ptr + 2);
printf("%d\n", *(ptr + 2));
printf("%d\n", ptr[2]);
printf("%d\n", *ptr++);
printf("%d\n", (*ptr)++);
return 0;
}
Fonte: Elaborado pelo professor, 2024.
Dado o contexto e analisando o código, qual será a saída impressa ao executar este
código?
Alternativas
Alternativa 1 - 3, 3, 3, 1, 2
Alternativa 2 - 3, 3, 3, 1, 3
Alternativa 3 - 3, 5, 3, 1, 2
Alternativa 4 - 3, 5, 3, 2, 2
Alternativa 5 - 3, 5, 3, 2, 3
QUESTÃO 7
No trecho de código a seguir, foi iniciado o desenvolvimento de uma fila estática que é
implementada com auxílio de uma struct contendo um campo “dados” (vetor), um campo
“ini” que deverá armazenar o índice do primeiro elemento da fila e um campo “fim” que
deverá armazenar o índice do último elemento da fila.
OLIVEIRA, Pietro Martins de; PEREIRA, Rogério de Leon. Estruturas de Dados I. Maringá:
Unicesumar, 2019.
Observe:
Linh
a
Código
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
#define tamanho 5
struct tfila {
int dados[tamanho];
int ini;
int fim;
};
struct tfila fila;
void remove() {
int i;
for (i = 0; i < tamanho; i++)
{
fila.dados[i] =
fila.dados[i+1];
}
fila.dados[fila.fim] = 0;
fila.fim--;
}
Com base em seus conhecimentos sobre filas estáticas, tomando como referênciao
código-fonte acima, avalie:
I – A função definida entre as linhas 11 e 18 é do tipo void, por isso não retorna valor algum.
II – A função remove() realiza o deslocamento dos dados da fila em uma posição da direção
do fim à direção do início da fila.
III – Podemos considerar que o início da fila será, nesse caso, a posição 0 do vetor de
dados da struct tfila.
De acordo com as afirmações acima, é possível dizer que está(ão) correta(s) a(s)
afirmativa(s):
Alternativas
Alternativa 1 - I, apenas.
Alternativa 2 - I e II, apenas.
Alternativa 3 - I e III, apenas.
Alternativa 4 - II e III, apenas.
Alternativa 5 - I, II e III.
QUESTÃO 8
Estruturas de dados complexas são feitas a partir de estruturas mais simples. Variáveis
únicas, vetores, matrizes, registros, todas elas fazem parte das composições necessárias
para se elaborar estruturas mais específicas e mais úteis na solução de determinadas
situações problema. Em linguagem C, temos sintaxes bem definidas para a declaração
dessas estruturas e suas respectivas e implementações em soluções algorítmicas.
OLIVEIRA, Pietro Martins de; PEREIRA, Rogério de Leon. Estruturas de Dados I. Maringá:
Unicesumar, 2019.
A respeito de estruturas de dados homogêneas e heterogêneas, analise as afirmações que
se seguem.
I – Podemos dizer que vetores são arranjos estruturais lineares e unidimensionais.
II – Os registros (structs) permitem que criemos novos tipos de dados compostos a partir de
outros tipos de dados.
III – Pode-se dizer que matrizes são estruturas de dados multidimensionais, podendo ser
combinadas com structs.
De acordo com as afirmações acima, é possível dizer que está(ão) correta(s) a(s)
afirmativa(s):
Alternativas
Alternativa 1 - I, apenas.
Alternativa 2 - I e II, apenas.
Alternativa 3 - I e III, apenas.
Alternativa 4 - II e III, apenas.
Alternativa 5 - I, II e III.
QUESTÃO 9
Uma das grandes vantagens de se utilizar ponteiros, é que podemos manipular a memória
de um computador com maior controle. Todavia, esse também é um fardo, pois pode tornar
o código-fonte complexo, além de trazer maior responsabilidade a programadores(as) que,
eventualmente, podem não estar preparados(as) para tal complexidade. Sabendo que você
é um(a) programador(a) aplicado, tenha em mente que todo e qualquer código-fonte pode
ser compreendido, desde que você tenha a disposição para pesquisar o significado de cada
instrução, cada operação, dentro do respectivo código-fonte.
OLIVEIRA, Pietro Martins de; PEREIRA, Rogério de Leon. Estruturas de Dados I. Maringá:
Unicesumar, 2019.
Assim sendo, vejamos o código-fonte que se segue:
Linh
a
Código
01
02
03
04
05
06
07
08
09
10
11
int main() {
int xi = 0;
int *ptr_xi = ξ
char xc = 'A';
char *ptr_xc = &xc;
ptr_xi = (int *)
ptr_xc;
return(0);
}
Tomando por base o código-fonte acima, bem como sua capacidade de realizar pesquisas
para compreender os códigos que manipula, avalie as afirmações a seguir:
I – Na linha e código 06 o programa está atribuindo o endereço de uma variável caractere a
um ponteiro de números reais.
II – Imediatamente após a execução da linha de código 03, podemos dizer que o conteúdo
da variável para a qual ptr_xi aponta é igual a zero.
III – A operação da linha 08 é ilegal e irá gerar um erro de compilação.
De acordo com as afirmações acima, é possível dizer que está(ão) correta(s) a(s)
afirmativa(s):
Alternativas
Alternativa 1 - I, apenas.
Alternativa 2 - II, apenas.
Alternativa 3 - III, apenas.
Alternativa 4 - I e II, apenas.
Alternativa 5 - II e III, apenas.
QUESTÃO 10
Listas, pilhas e filas são estruturas de dados, que nos permitem organizar e interagir com
nossos dados e organizá-los de diferentes formas. Em C++ existem bibliotecas que nos
permitem implementar esses tipos de estruturas, o que torna nosso trabalho mais simples
do que se tivéssemos de criá-las manualmente.
GOULART, Gabriel. Listas, pilhas e filas em C++. Portal GSTI. Disponível em:
https://www.portalgsti.com.br/2018/04/listas-pilhas-e-filas-em-c.html acesso em: 09/02/2022.
A partir dessas informações, avalie as asserções a seguir e a relação proposta entre elas:
I. Pilha é uma coleção de elementos, que segue a ordem LIFO. O que significa que o
elemento que é inserido mais recentemente será removido primeiro. Uma pilha tem uma
restrição de que a inserção e exclusão do elemento só pode ser feita a partir de apenas
uma extremidade da pilha e chamamos essa posição de topo.
PORQUE
II. Fila é uma estrutura de dados que segue o princípio FIFO. Sendo que o elemento
adicionado primeiro na fila será o que será removido primeiro. Os elementos são sempre
adicionados na parte de trás e removidos da frente.
A respeito dessas asserções, assinale a opção correta.
Alternativas
Alternativa 1 - As asserções I e II são proposições verdadeiras e a II é uma justificativa
correta da I.
Alternativa 2 - As asserções I e II são proposições verdadeiras, mas a II não é uma
justificativa correta da I.
Alternativa 3 - A asserção I é uma proposição verdadeira e a II é uma proposição falsa.
Alternativa 4 - A asserção I é uma proposição falsa e a II é uma proposição verdadeira.
Alternativa 5 - As asserções I e II são proposições falsas.
‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’

Continue navegando

Outros materiais