DCC003: Algoritmos e Estruturas de Dados I
2013/1

Exercícios 9

Exercício 1. Implemente um programa para resolver sistemas lineares da forma:

ax + by = u
cx + dy = v,

dados a, b, c, d, u e v.

Exercício 2. Fazem parte da declaração de uma função int fatorial(int N) { ... } (marque todos que aplicarem):

  1. bloco de comandos
  2. tipo de retorno
  3. alocação de memória
  4. lista de parâmetros
  5. registro de ativação
  6. nome

Exercício 3. Implemente uma função que processa um arranjo de ponteiros para struct atleta e retorne a altura média dos atletas e a idade do atleta mais novo. Considere que a estrutura atleta foi definida como:

struct atleta {
	char nome[80];
	double altura;
	int idade;
};
	

Sua função deve ter o seguinte cabeçalho:

void estatisticas(struct atleta **v, int n, double *altura_media, int *menor_idade);
	

Desafio. Na Prática 8 nós vimos o conceito de pilha. Uma pilha aceita as operações de empilhar (colocar um elemento no topo da pilha) e desempilhar (retirar e retornar o elemento no topo da pilha. Uma fila é uma estrutura de dados similar que suporta as operações de enfileirar (colocar um elemento no final da fila) e desenfileirar (retirar e retornar o elemento no começo da fila). A diferença é que na pilha o último elemento a entrar é o primeiro a sair, e na fila o primeiro elemento a entrar é o primeiro a sair.

Se você precisar usar um sistema de computação que só possua pilhas, descreva como você pode implementar uma fila eficiente usando duas pilhas.