Traba ATPS CLASSIFICA O E PESQUISA ETAPA 01 02
CIÊNCIA DA COMPUTAÇÃO – 5º Série – 2014
ATPS CLASSIFICAÇÃO E PESQUISA
ETAPA 01 E 02
ETAPA 1
Objetivo do Desafio
Desenvolver os algoritmos de ordenação e busca de dados do consumo de energia elétrica nas residências de um município. Para atender a este desafio serão desenvolvidos algoritmos e elaborados os relatórios de forma que documentem a realização destas atividades solicitadas. Estes algoritmos e relatórios serão entregues com o desenvolvimento do desafio.
Esta atividade é importante para o conhecimento de algoritmos de pesquisa de dados que recuperem informações em bases de dados, tendo como objetivo tornar eficiente esta operação computacional.
Algoritmo 1 - Bateria de 1000 números inteiros.
Algoritmo 1 – Gerador de números reais aleatórios
Gerador de distribuição uniforme retorna um numero
double (real com longa precisão) na faixa low – high,
ou seja, [low,high].
double unif(long int *seed, double low, double high)
{
double unif_ret;
long int m,a,b,c, k;
double value_0_1;
m = 2147483647;
a = 16807;
b = 127773;
c = 2836;
k = *seed/b;
*seed = a * (*seed % b) - k*c;
if (*seed
Algoritmo 2 – Definição de uma struct que representa uma residência
#include
#include
#include
#include
#define MAX 1000
//variaveis globais int cont;
//
struct Residencia{ char rua[25]; int numCasa; int numMedidor; float medidaConsumo;
};
typedef struct Residencia residencia;
struct Lista{int qtd_res; residencia casas[MAX];
};
typedef struct Lista Lista;
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;
}
void inicializa(Lista * L){
L->qtd_res=0;
}
int listaCheia(Lista * L){ return(L->qtd_res >= MAX);
}
int listaVazia(Lista * L){ return(L->qtd_res == 0);
}
void preencheLista(Lista * L){ int i; for(i=0;icasas[i].rua,"Alameda dos Anjos");
L->casas[i].numCasa = i + 1; //RandomInteger (101,500);