Atps class e pesquisa
Por: Bruno Peter • 25/11/2015 • Relatório de pesquisa • 2.440 Palavras (10 Páginas) • 250 Visualizações
/*
********************************************************************************
Etapa 1 da ATPS de Classificação e Pesquisa
Prof. Rute
Aluno: RA:
Wesley Ricardo Silva 8634248059
Descrição:
Geração de números aleatórios e preenchimento em um vetor com esses números.
Foi adicionado um menu a função principal(main) para que o usuário tenha
mais facilidade para testes.
O código foi devidamente identado e separado entre declarações e funções:
- Declaração de bibliotecas primárias de input, output e a time, necessária
para o uso de funções de geração de números aleatórios.
- Constantes gerais, como qtdade de casas, min e max dos n.aleatorios.
- Declaração da estrutura e variáveis.
- Função geradora de números inteiros aleatórios
- Função que ordena o vetor criado
- Função preenchedora do vetor
- Função que mostra apenas 1 vetor
- Função que mostra todos vetores
- Função que faz a busca binária
- Função que faz a busca sequencial
- Função principal
********************************************************************************
*/
//Declaração de bibliotecas primárias
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// Constantes
#define QTD_CASAS 1000
#define MIN 15
#define MAX 500
// Declaração da estrutura e variável vetor dessa estrutura;
typedef struct Residencia tipoResidencia;
struct Residencia{
char rua[25];
int numCasa;
int numMedidor;
float medidaConsumo;
};
tipoResidencia vetResidencias[QTD_CASAS];
// Função geradora de números inteiros aleatórios
int RandomInteger (int low, int high){
int k;
double d;
d = (double) rand () / ((double) RAND_MAX + 1);
k = d * (high - low + 1);
return low + k;
}
// Função que odena Vetor criado
void ordena_Vetor(){
int i, j, min;
tipoResidencia x;
for (i = 0; i < QTD_CASAS-1; ++i) {
min = i;
for (j = i+1; j < QTD_CASAS-1; ++j)
if (vetResidencias[j].numMedidor < vetResidencias[min].numMedidor) min = j;
x = vetResidencias[i]; vetResidencias[i] = vetResidencias[min]; vetResidencias[min] = x;
}
}
// Função preenchedora do Vetor
void preencheVetor(){
int i;
for(i=0; i<=QTD_CASAS-1; ++i){
sprintf(vetResidencias[i].rua, "Rua %d", i);
vetResidencias[i].numCasa=i;
vetResidencias[i].numMedidor=RandomInteger(MIN,MAX);
vetResidencias[i].medidaConsumo = i;
}
ordena_Vetor();
}
//Função que mostra apenas 1 vetor
void visualiza_Vetor(int indice){
printf("\n------------------------------------------");
printf("\n Öndice Vetor:\t %d", indice);
printf("\n Rua:\t\t %s ",vetResidencias[indice].rua);
printf("\n numCasa:\t %d ",vetResidencias[indice].numCasa);
printf("\n numMedidor:\t %d ",vetResidencias[indice].numMedidor);
printf("\n medidaConsumo:\t %d ",vetResidencias[indice].medidaConsumo);
printf("\n------------------------------------------");
}
// Função que mostra todos vetores
void visualiza_todos_Vetores(){
int i;
for (i=0; i<=QTD_CASAS-1; ++i){
visualiza_Vetor(i);
}
}
// Função de busca binária
int buscaBinaria( int n_buscado) {
...