Os exercícios dessa lista cobrem
as aulas até o dia 22/05.
- O cadastro de produtos de uma loja deve conter: nome (string[40]), preço (real), estoque (integer). Defina um registro
para conter uma lista duplamente encadeada de produtos. Faça
funções/procedimentos para:
- Incluir um novo produto de forma ordenada por nome;
- Remover um produdo dado o nome dele;
- Mostrar na tela todos os produtos que estão em falta
(estoque = 0);
Faça um programa que utilize essas
funções/procedimentos para criar um cadastro de produtos e
mostrar os resultados da pesquisa de produtos em falta.
- Defina um registro com os dados de um aluno para uma disciplina
(RA, nome, faltas e nota final). Incremente o registro com os campos
necessários para fazer uma lista duplamente encadeada ordenada
por RAs. Aumente seu código para compartilhar os dados do aluno
em duas listas (sem duplicar os dados), uma ordenada por RA e outra por
nome. Faça procedimentos/funções para incluir,
remover e listar os elementos da lista nas duas ordens possíveis. A lista deve ser mantida simultaneamente
ordenada tanto por RA e nome.
- Ponteiros são muito úteis para organizar estruturas
de dados cujo tamanho não é definido antecipadamente. Na
segunda prova da disciplina, foram definidas estruturas de dados para
famílias. Redefina esta estrutura para utilizar ponteiros na hora
de armazenar as informações dos filhos. Faça um
programa exemplo de como utilizar suas funções e
procedimentos.
- Um outro exemplo interessante de uso de ponteiros está em
definir uma estrutura de dados e facilitar métodos de acesso aos
elementos. Para simplificar as funções de
inserção e remoção, é comum utilizar
um nó cabeçalho nas listas de forma que elas nunca fiquem
vazias. Modifique as definições dos exercícios
anteriores para que eles incluam um nó cabeçalho. Mostre
como as funções de inserção e
remoção ficam menores desta forma. Não se
esqueça de ignorar o nó cabeçalho quando for
imprimir sua lista.
- Implemente uma lista de inteiros para substituir um vetor. A
lista não será ordenada. Defina
funções/procedimentos para incluir elementos na lista (no
início, no meio e no final), remover um elemento, contar o
número de elementos da lista e mostrar todos os elementos na
tela. Faça também um procedimento que receba como
parâmetro uma lista e um procedimento e chame o procedimento com
cada um dos elementos da lista como parâmetro. Mostre que com este
último procedimento você pode implementar facilmente um
procedimento para imprimir a lista inteira.
- Para a estrutura do exercício 1, faça um programa
que:
- Leia os dados de um arquivo binário
- Permita que o usuário acrescente novos elementos
- Permita que o usuário remova alguns elementos
- Grave os dados de volta no arquivo binário
- Mostre qual o tamanho do arquivo e também quantos
elementos ele possui
- Faça um programa similar ao do exercício 6 para a
estrutura do exercício 2