11 marzo 2010 Es. 1. #define MAXV 4 a. leggere da linea di comando i valori n, k, s n = lunghezza dell'array k = chiave da cercare (un intero in [1..MAXV]) s = seme o seed (per inizializzare la funzione rand) b. creare un array A di dimensione n riempirlo con interi scelti casualmente nell'intervallo [1..MAXV] c. ordinare l'array A (per adesso non importa con quale metodo) d. cercare l'occorrenza piu' a sinistra di k in A #include #include #include #define NMAX 32 #define MAXV 4 int A[NMAX]; int casuale( int min, int max ){ /* genera un numero random in min...max */ int m = max-min+1; return min + (rand() % m); } void stampa( int A[], int m ){ int i; for (i=0; i< m; i++) printf( "%d ", A[i] ); printf("\n"); } int main( int argc, char** argv ){ int i, n, k, s; if (argc != 4){ printf("Usage: %s \n", argv[0] ); return 1; } n = atoi( argv[1] ); assert( n >= 1 && n <= NMAX ); k = atoi( argv[2] ); s = atoi( argv[3] ); srand ( s ); for ( i=0; i < n; i++ ) A[i] = casuale( 1, MAXV ); stampa( A, n ); /* codice per ordinare A */ /* codice per cercare k in A con la ricerca binaria ricorsiva vista a lezione */ return 0; }