arthorius (Normal User)
Newbie
Messaggi: 1
Iscritto: 04/12/2008
|
Salve ragazzi allora io avrei qst traccia da sviluppare /*Siano dati due array x ed y di lunghezza n contenenti le informazioni relative a dei
punti in uno spazio bidimensionale. Implementare una funzione che determina se un
punto dato dall’utente è contenuto in entrambi gli array (usare l’algoritmo di ricerca
binaria).
Gli array vengono inizializzati casualmente con valori float nell’intervallo [-
100,100]. Per generare a caso un numero di tipo float nell’intervallo [-100,100],
si ricorda che, se x_casuale è dichiarata di tipo float, allora l’istruzione
x_casuale=-100.0F+200.0F*(float)rand()/(float)MAX_RAND; */
Il codice che sono riuscito a creare è qst
Codice sorgente - presumibilmente C++ |
# include <stdio.h> # include <stdlib.h> #include<time.h> # define q 5 /*Questa costante rappresenta il lato dell'array bidimensionale quadrato*/ void inizializza(float array_x[q],float array_y[q]); void stampa2D(float array_x[q],float array_y[q]); int appartiene (float chiave, float array_x[q], float array_y[q],int n, int m); int main() { /*Dichiarazione dell'array 2D che conterrà i valori casuali.*/ float array_x[q]; float array_y[q]; int i,j,n,m; float chiave; printf("*Valori dell'array 2D generati a caso da -100 a 100:\n\n"); inizializza(array_x, array_y); stampa2D(array_x,array_y); printf("Inserire le coordinate del punto: \n"); scanf("%f",&chiave); appartiene (chiave,array_x,array_y, n,m); system ("PAUSE"); return 0; } void inizializza(float array_x[q],float array_y[q]) { int i,j; float x_casuale=0.0; float y_casuale=0.0; srand( time(NULL)); /*Questa istruzione viene utilizzata per inizializzare il generatore casuale ad un valore diverso per ogni esecuzione del programma.*/ for (i=0; i<q ;i++) { float x_casuale=-100.0F+200.0F*(float)rand()/(float)RAND_MAX; array_x[i]=x_casuale; } for (j=0; j<q; j++) { float y_casuale=-100.0F+200.0F*(float)rand()/(float)RAND_MAX; array_y[j]=y_casuale; } /* Questo blocco di istruzioni permette di inizializzare un array bidimensionale con valori casuali reali e uniformemente distribuiti nell'intervallo [-100,100]*/ } void stampa2D(float array_x[q],float array_y[q]) { int i,j; printf("array_1\n\n"); for (i=0; i<q ;i++) { printf(" | %.2f | ",array_x[i]); printf("\n\n"); } for (j=0; j<q; j++){ printf("| %.2f |",array_y[j]);} printf("\n\n"); } int appartiene (float chiave, float array_x[q], float array_y[q],int n, int m) { int i,j; {for(i=0;i<n;i++) {for(j=0;j<m;j++) if(chiave==array_x[i] && array_y[j]) return 1; if(chiave!=array_x[i]&& array_y[j]) return 0; } } }
|
|