Atividade1

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 6

Universidade Federal do Ceará

Estrutura de dados I
Atividade I
Prof. Dr. Hitalo Nascimento

Instruções:
O trabalho pode ser feito em dupla, mas deve ser enviado individualmente pelo SIGAA.
Prazo para envio: 09/12/2024
Apresentações nos dias 09 e 12/2024

O trabalho é composto por duas partes:

Parte I: Questões teóricas;


Parte II: Questões práticas a serem desenvolvidas em C.

Enviar um único arquivo comprimido (.zip, .rar, etc), que contenha o seguintes:

• Um arquivo PDF com as perguntas e respostas das questões teóricas;


• Os códigos separados referentes a cada questão (q1.c, q2.c, …, qn.c).

O trabalho deve ser apresentado em laboratório ao Professor. Na ocasião, algumas questões serão
selecionadas, e a equipe deverá apresentar para a turma.
Obs: Receberão a nota referente ao trabalho apenas os alunos que realizarem o envio no SIGAA e
apresentarem as questões selecionadas no laboratório. Os dois integrantes da equipe devem
apresentar.
-----------------------------------------------------------------------------------------------------------------------
Parte I: Questões teóricas

1) Como uma função é definida em C? Apresente a sintaxe e exemplos de aplicação. Além disso,
explique como o conceito de recursividade é implementado em C.

2) Faça uma breve discussão sobre vetores, matrizes e estruturas (structs). Definição, como
funcionam, como são implementados, etc.
3) Se um vetor é declarado como x[] = {1,3,5,7,9}, então qual é o retorno de sizeof(arr[3])?

4) Se uma matriz for declarada como int X[5][5], quantos elementos ela pode armazenar?

5) Faça uma breve discussão sobre ponteiros e ponteiros para ponteiros (Definição, como
funcionam, como são implementados, xemplos de aplicação, etc).

6) Qual a diferença entre alocação de memória estática e dinâmica. Cite exemplos de aplicação.

7) O que será impresso quando os seguintes segmentos de código forem executados em C?

8) Qual a diferença entre fila e pilha? Em termos de implementação dessas duas estruturas de dados,
o que se deve ser levado em consideração?

9) Desenhe a estrutura da fila em cada caso quando as seguintes operações forem executadas em
uma fila vazia.
10) Explique cada um dos termos a seguir (no contexto de uma fila):

(a) enqueue
(b) dequeue
(c) pop
(d) peek

11) Desenhe a estrutura da pilha em cada caso quando as seguintes operações forem executadas em
uma pilha vazia.

12) Faça um pesquisa sobre o problema da Torre de Hanói. Discuta sobre como este problema
pode ser implementado.

13) Explique cada um dos termos a seguir (no contexto de uma pilha):

(a) Pop()
(b) Push()
(c) Peek()
(d) isEmpty()

Parte I: Práticas (Implementado obrigatoriamente em C)

1) Escreva um programa que receba 10 valores fornecidos pelo usuário e os armazene em um vetor.
Em seguida, o programa deve retornar o somatório dos valores em questão.

2) Escreva um programa que retorne os elementos duplicados de um vetor.

3) Escreva um programa para encontrar a frequência de cada elemento armazenado em um vetor.

4) Escreva um programa que receba 8 valores e armazene tais valores em um vetor. Em seguida o
programa deve retornar o coeficiente de variação (cv), conforme a seguinte regra:
Baixo: se cv < 0,1
Médio: se 0,1 <= cv <0,2
Alto: se 0,2 <= cv <0,3
Muito alto: se cv > 0,3

5) Implemente um programa que retorne a seguinte soma:

6) Escreva um programa para adicionar dois números do tipo float usando o conceito de ponteiro e
função.

7) Escreva um programa que retorne as seguinte operações para as matrizes abaixo (Se for
possível).

8) Escreva um programa para armazenar n elementos em um vetor e imprimir os elementos em


questão usando o conceito de ponteiro.

9) Escreva um programa para encontrar o fatorial de um determinado número usando ponteiros.

10) Escreva um programa em C para imprimir as letras do alfabeto usando um ponteiro.

11) Escreva um programa em C utilizando estruturas que receba os dados de cinco alunos de
graduação e exiba as informações dos estudantes em questão:
Os dados fornecidos são: NOME, CPF, RG, MATRÍCULA, CURSO, ENDEREÇO (Rua, bairro,
número, cep, cidade e estado), data de nascimento, telefone e IRA (Índice de rendimento
Acadêmico). Após a exibição dos dados dos alunos, o programa deve retornar o desvio padrão do
IRA.

12) Resolva novamente a questão 4, mas agora a partir do conceito de alocação dinâmica de
memória.

13) Resolva novamente a questão 5, mas agora a partir do conceito de alocação dinâmica de
memória.

14) Escreva um programa em C para uma fila estática que receba 10 valores do tipo inteiro, e em
seguida, retorne:

a) A média aritmética e quadrática;


b) O desvio padrão.

15) Escreva um programa em C para fila estática, de forma a receber 10 valores do tipo inteiro, e
em seguida, retorne:

a) A média aritmética e quadrática;


b) O desvio padrão.

16) Resolva novamente a questão 15, mas agora a partir do conceito de fila dinâmica.

17) Escreva um programa em C para fila estática, de forma a receber 10 valores do tipo inteiro, e
em seguida, resolva:

a) Inserir alguns elementos na fila: Por exemplo: 1 2 3


b) Excluir um elemento da referida fila: Por exemplo: 2 3
c) Inserir outro elemento na fila: Por exemplo: 2 3 4

18) Escreva um programa em C que implemente duas filas dinâmicas chamadas de F1 e F2, como
mesma capacidade para armazenamento de elementos do tipo inteiro. Em seguida, retornar:
• Inserir dez valores em cada fila;
• Escrever uma função que compare os conteúdos os conteúdos de F1 e F2, e informe se
algum valor está presente nas duas filas;
• Por fim, o programa deve retornar a média, a moda e o coeficiente de variação das duas
filas.

19) Escreva um programa C para implementar uma pilha estática.

Saída esperada:

Push data 1
Push data 2
Push data 3
Push data 4

Pop data: 4
Pop data: 3
Pop data: 2
Pop data: 1

20) Escreva um programa em C para calcular o valor médio dos elementos de uma pilha dinâmica.

Saída esperada:
Elementos da pilha:
642531
Média dos valores da pilha: 3,50
Valor removido: 6
Elementos da pilha:
42531
Média dos valores da pilha: 3,00

Referências
Data Structures c Using. Reema Thareja.
Estruturas de Dados Usando C. Aaron Ai Tenenbaum, Yedidyah Langsam, Moshe J. Augenstein.
https://max.cs.kzoo.edu/cs230/Resources/C/pointerExercise.pdf

Você também pode gostar