#include #include #include double * NewVecDouble(const int n); double * ResizeVecDouble(double * x, const int newdimx); double * BubbleSort(double *x, const int dimx); void swap(double * a, double *b); int main(){ double * x=NULL; double casuale; const double max_rand = 0.99; int n=0,i=0; /* In questo modo inizializzo il generatore di numeri casuali in modo diverso per ogni esecuzione del programma. Infatti time(NULL) restituisce il numero di secondi dal 1 Gennaio 1970 al tempo di esecuzione del programma, ed e' quindi un buon intero per inizializzare ogni volta in modo differente il generatore di numeri casuali. Una soluzione meno raffinata ma ugualmente accettabile sarebbe di chiedere in input il "seme" della sequenza, da usare al posto di time(NULL) . */ srand48(time(NULL)); /* Alloco un vettore di un elemento e lo inizializzo a zero */ x = NewVecDouble(1); /* Qui estraggo gli elementi a caso e ridimensiono il vettore ad ogni estrazione. uso il do-while perche' voglio che nel vettore ci sia anche l'ultimo elemento, quello > max_rand=0.99 per controllare che tutto sia OK. */ do{ /* Qui "allungo" il vettore x lasciando inalterata la parte gia' riempita. Attenzione al +1: la dimensione del vettore e' infatti pari all'indice dell'ultimo elemento riempito maggiorata di 1 visto che gli indici partono da zero.*/ x = ResizeVecDouble(x,n+1); casuale = drand48(); /* Un modo compatto per riempire l'elemento x[n] e SUCCESSIVAMENTE incrementare n */ x[n++] = casuale; }while (casuale