Oppure

Loading
04/12/08 18:03
arthorius
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
# 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;
       }
    }
}


ma sinceramente mi si inpalla e nn riesco a capire il perchè vi prego è una cosa urgente.....:d:d:d:d:d
aaa