ILA - Unisinos
ILA - Unisinos
ILA - Unisinos
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
7. Pesquisa e Ordenação<br />
7.1 Introdução<br />
Embora os problemas que serão abordados neste capítulo sejam exercícios de manipulação de<br />
vetores, optamos por destacá-los numa seção específica devido à importância deles para a<br />
computação como um todo e, em particular, para o desenvolvimento da lógica de programação.<br />
Uma pesquisa (ou busca ou consulta) consiste em se verificar se um dado valor é uma<br />
componente de uma variável composta. Para exemplificar, consideremos o Registro Nacional de<br />
Veículos Automotores (RENAVAM). O RENAVAM contém dados de todos os veículos registrados<br />
nos Departamentos Estaduais de Trânsito, dados que incluem, entre outros, a placa do veículo, o<br />
número do motor, o nome do proprietário, o CPF do proprietário. Evidentemente, pode ser<br />
necessário se verificar se uma determinada placa é de um veículo registrado ou se um dado CPF é<br />
de alguém que é proprietário de algum veículo.<br />
A questão da ordenação (também chamada classificação) foi introduzida na seção 3.3 e<br />
consiste em se colocar numa ordem preestabelecida uma relação de valores. Na seção referida,<br />
mostramos como ordenar uma relação contendo três valores. Neste capítulo, apresentaremos<br />
algoritmos para ordenar uma relação com qualquer números de valores. A ordenação de uma<br />
relação é realizada para que a leitura dos resultados seja facilitada ou para que, como veremos a<br />
seguir, pesquisas sejam realizadas com mais eficiência.<br />
7.2 Pesquisa sequencial<br />
A pesquisa sequencial é o método mais simples e mais óbvio (embora, o mais ineficiente) de<br />
se realizar uma busca. No nosso caso, em que realizaremos pesquisas num vetor, a pesquisa<br />
sequencial consiste em se percorrer o vetor comparando cada componente com o valor a ser<br />
pesquisado.<br />
Variaveis<br />
Numerico Aux, i, j, x, Pos<br />
Matriz numerico Vet[50]<br />
Inicio<br />
Escrever "Digite os elementos da relação (-1 para encerrar)"<br />
Ler Aux<br />
Vet[1] = Aux<br />
i = 1<br />
Faca enquanto Vet[i] -1<br />
Ler Aux<br />
i = i + 1<br />
Vet[i] = Aux<br />
Fim_enquanto<br />
i = i - 1<br />
Escrever "Digite o valor a ser pesquisado"<br />
Ler x<br />
j = 1<br />
Faca enquanto (Vet[j] x) e (j < i)<br />
j = j + 1<br />
Fim_enquanto<br />
Se Vet[j] = x entao<br />
Pos = j<br />
Escrever x, " encontrado na posição ", Pos<br />
Senao