MC102: Algoritmos e Programação de Computadores - Turmas K e L

Zanoni Dias (PED)

 

Primeira Avaliação de Laboratório

 

 

Conjuntos

 

Um conjunto é definido como uma coleção sem repetição de elementos. Podemos implementar conjuntos usando vetores em Pascal, e este é o objetivo deste projeto. Exemplo:

Coleção  = (4, 2, 5, 6, 2, 8, 4, 8, 1, 7)

Conjunto = {1, 2, 4, 5, 6, 7, 8}

Note que a ordem que os elementos aparecem num conjunto não é significativa.

 

O programa

 

Seu trabalho é preencher o esboço do programa disponível na página do curso.

Você não deve alterar o programa principal (a menos de comentários). Implemente as seguintes rotinas já declaradas no esboço do programa:

 

·         function BuscaBinaria(Vetor: Vetor_de_Inteiros; n, x:integer): boolean;

Faz uma busca binária no vetor de tamanho n, procurando pelo elemento x. Retorna true caso encontre valor x no vetor e false caso contrário.

 

·         procedure Conjunto(var vetor: Vetor_de_Inteiros; var n : integer);

Dado um vetor de tamanho n este procedimento deve remover os elementos repetidos (deixar apenas uma cópia de cada elemento), atualizando também o valor de n, de forma que o vetor, no final, represente um conjunto.

 

·         procedure Intersecao(VetorA: Vetor_de_Inteiro; TamA: integer; VetorB: Vetor_de_Inteiros; TamB: integer; var VetorC: Vetor_de_Inteiros; var TamC : integer);

Dados dois vetores VetorA e VetorB, de tamanhos respectivamente TamA e TamB, esta rotina deve retornar um vetor denominado VetorC de tamanho TamC, tal que VetorC represente a interseção dos conjuntos representados por VetorA e VetorB. Ou seja, todos elementos que estão em VetorA e estão em VetorB.

 

·         procedure Diferenca(VetorA: Vetor_de_Inteiro; TamA: integer; VetorB: Vetor_de_Inteiros; TamB: integer; var VetorC: Vetor_de_Inteiros; var TamC : integer);

Dados dois vetores VetorA e VetorB, de tamanhos respectivamente TamA e TamB, esta rotina deve retornar um vetor denominado VetorC de tamanho TamC, tal que VetorC represente a diferença entre os conjuntos representados por VetorA e VetorB. Ou seja, estarão em VetorC os elementos que estão em VetorA e não estão em VetorB.

 

Você pode, à medida que sentir necessidade, criar outras rotinas para resolver o problema. Faz parte também da sua tarefa entender o código já implementado e incluir comentários.

 

Entrega

 

O programa é estritamente individual e deverá ser entregue até dia 26 de novembro através da Web Page do curso (www.dcc.unicamp.br/~zanoni/mc102).

 

Não serão discutidos aspectos relacionados à implementação do projeto.

 

Este projeto deve ser encarado como uma prova e como tal recomenda-se fortemente que os alunos não comentem suas soluções. É responsabilidade de cada aluno zelar pelo seu projeto. Qualquer tentativa de fraude será punida como previamente estabelecido na "Descrição do Curso", ou seja, todos os alunos envolvidos receberão nota zero no semestre.

 

Procure entregar este projeto o mais cedo possível. Evite deixar para os últimos dias. Assim como os projetos anteriores do curso, não serão aceitos projetos atrasados em hipótese alguma. Boa sorte.