1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
#include "busca.h"
using namespace std;
result::result(void)
{
step_ratio=0;
elem_ratio=0;
step_sigy_1=0;
elem_sigy_1=0;
step_sigy_t=0;
}
elem::elem(const elem &obj)
{
unsigned int i;
num=obj.num;
elementos=new unsigned int[obj.num];
for(i=0;i<num;i++)
elementos[i]=obj.elementos[i];
}
elem::elem()
{
num=0;
elementos=NULL;
}
elem::~elem()
{
delete[] elementos;
}
FILE* acha_titulo(FILE* f, char* limite);
FILE* passos(FILE* f);
FILE* acha_elem(FILE* f, int elem2);
FILE* capta_res(FILE* f, int elem, int gp, int step, result* results, char* param);
int capta_res(FILE** fp, int gp, result* results);
FILE* prox_step(FILE* f,int n_elem, int node);
result resultados(FILE* f, unsigned int* l_elem, unsigned int num);
FILE* abre_f(void);
int compara(const void* a, const void* b);
elem elementos()
{
elem elem;
char buff[1001];
char* cnum;
int i,j=1,k=0,m;
cout << "Digite os elementos de interesse, separados por virgula (1,2,3,4,5...)" << endl;
cin >> buff;
cout << endl;
for(i=0;i<1001 && buff[i]!='\0';i++)
if(buff[i]==',')
j++;
elem.num=j;
j=0;
elem.elementos=new unsigned int[elem.num];
for(i=0;buff[i]!='\0' && i<501;i++)
{
if(i!=0)
i++;
while(buff[j+i]!=',' && buff[j+i]!='\0')
j++;
cnum = new char[j+1];
for(m=0;m<j;m++)
cnum[m]=buff[m+i];
cnum[j]='\0';
elem.elementos[k]=atoi(cnum);
k++;
i+=j-1;
j=0;
delete[] cnum;
}
qsort(elem.elementos,elem.num,sizeof(int),compara);
cin.ignore();
return elem;
}
elem elementos(int);
|