ATIVIDADES PRÁTICAS SUPERVISIONADAS DE CLASSIFICAÇÃO E PESQUISA
Por: Evandro.2016 • 10/4/2018 • 1.964 Palavras (8 Páginas) • 360 Visualizações
...
de cada ponto de coleta de informações, em muitos casos em tempo real, para que os gerentes possam tomar atitudes baseadas nos pilares de gestão da rede de fornecimento energético. Garantir a medição e a atuação quando necessários são os principais conceitos tratados em um projeto de Smart Grid.
A empresa SmartXY XXI Informática contratou sua equipe para aperfeiçoar o sistema de medição de energia elétrica por meio das coletas de dados realizadas pelos medidores Smart Grid implantados em um determinado município.
O desafio de sua equipe é criar uma solução que melhore a ordenação e análise dos dados de coleta, gerando resultados mais rápidos e simples de serem analisados pelos gerentes das fornecedoras de energia elétrica (denominadas concessionárias ou permissionárias).
Os algoritmos que serão adotados na solução são os algoritmos clássicos de ordenação e busca, devendo a equipe utilizá-los de forma bastante ampla.
Relatório 01: Pesquisa de Dados
2.0 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.
3.0 Relatório 01: Pesquisa de Dados.
Conceito de Pesquisa Seqüencial
Pesquisa Sequencial: é usada para verificar item por item da lista, até encontrar o item desejado. Esse método é útil para vetores pequenos e números que estejam desordenados.
Mas se o vetor for muito grande, esse tipo de processo não é recomendado, pois o tempo para a execução desse processo acaba sendo lenta.
Podemos usar o exemplo de 9 números diferentes, veja:
Temos o vetor (1,8,5,6,4,9,7,3,2). Vamos supor que precisamos achar o número 3.
A Pesquisa sequencial irá verificar um item por vez até achar o número 3.
V 1 2 3 4 5 6 7 8 9
n 1 8 5 6 4 9 7 3 2
A posição 1 do vetor tem o número 1;
A posição 2 do vetor tem o número 8;
A posição 3 do vetor tem o número 5;
A posição 4 do vetor tem o número 6;
A posição 5 do vetor tem o número 4;
A posição 6 do vetor tem o número 9;
A posição 7 do vetor tem o número 7;
A posição 8 do vetor tem o número 3;
A posição 9 do vetor tem o número 2;
A pesquisa começará pelo vetor 1, nesse vetor não achamos o número desejado, que no nosso caso é o número 3.
Com o não achamos continuaremos a procurar. A próxima posição do vetor é a 2, que encontramos o número. Sendo assim ainda não encontramos o valor desejado.
Assim continuaremos a pesquisar, o próximo vetor é o 3, nessa posição o valor que está lá é o 5.
A próxima posição é a de número 4, o valor que está nessa posição o valor que está lá é o 6;
A próxima posição a ser verificada é a posição de 5. Que tem o elemento 4.
A próxima posição a ser verificada é a posição de 6. Que tem o elemento 9.
A próxima posição a ser verificada é a posição de 7. Que tem o elemento 7.
A próxima posição a ser verificada é a posição de 8. Que tem o elemento 3. Encontramos o elemento desejado.
Veja o exemplo no código abaixo de busca sequencial conforme a Linguagem C:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
clock_t tInicio, tFim, tDecorrido;
struct Residencia
{
char rua[25];
int numCasa;
int numMedidor;
float medidaConsumo;
} vetResidencias[1000];
int tam = 10000;
int tamRes = 1000;
int vetor[10000];
FILE *fpEntrada, *fpSaida;
int contaTrocas=0;
int contaTrocasEst=0;
int nPassos=0;
int menorValor(int indCur){
int i=indCur;
int vMenor=1000000;
int iAchei;
for(i=indCur; i<tam; i++){
if(vetor[i]<=vMenor) {
vMenor = vetor[i];
iAchei = i;
}
}
return iAchei;
}
void swap(int ind1, int ind2){
// Questao 01 O que faz esta rotina?
// Sua resposta aqui
//
//
//
int
...