14.03.2015 Views

ILA - Unisinos

ILA - Unisinos

ILA - Unisinos

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!