Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    4

    [C] Aiuto distanza punti array

    Salve ragazzi avrei un esercizio da fare, la traccia è :
    Distanze tra punti.
    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 i due array sono simili. I due array sono simili se la somma totale della distanza euclidea tra i punti è minore di una soglia scelta dall’utente.
    Gli array vengono inizializzati casualmente con valori float nell’intervallo [-100,100].

    Io ho già scritto il 90% o almeno credo
    codice:
    # include<stdio.h>
    # include<stdlib.h> /* per usare rand() e srand()*/
    # include<time.h> /* per usare time() */
    # include<math.h>
    int main ()
    {
    int n;
    printf("inserire un numero pari alla lunghezza dei due array");
    scanf("%d",& n);
    float x[n];
    float y[n];
    float dist=0,soglia,sum_dist=0;
    int j,i,logic;
    srand ( time (NULL));
    for (i =1; i <= n ; i ++)
    {
    x[i] =-100+(200)*(float)rand()/(float)RAND_MAX; //
    printf ("x[%d]=%f " ,i ,x[i]);                  //
    }                                               //
    for (j =1; j <= n ; j ++)                       // inizializzazione casuale dei due array
    {                                               //
    y[j] =-100+(200)*(float)rand()/(float)RAND_MAX; //
    printf("y[%d]=%f " ,j ,y[j]);                   //
    }
    printf("scegliere un numero float come soglia");
    scanf("%f",& soglia);
    
    
    i=1;
    j=1;
    while(i<=n-1 & j<=n-1)                               // utilizzo un ciclo while per il calcolo del totale delle distanze euclidee
    {
        dist=sqrt(pow(x[i+1]-x[i],2)+pow(y[j+1]-y[j],2) ) ;
        sum_dist=sum_dist + dist;
        dist=0;
        i=i+1;
        j=j+1;
    }
     printf("la somma della distanza euclidea e' %f",sum_dist);
    }
    logic= int somiglianza_array;
    
    
     if (logic=1)
     printf("I due array sono simili");
    else
    printf("I due array non sono simili");
    
    
    
    
    
    
    
    
    }
    int somiglianza_array(float soglia ,float sum_dist)// function che confront la somma delle distanze con la soglia e ha come output un valore logico
    {
    int risultato;
    if (sum_dist < soglia)
    
    
    risultato=1;
    
    
    else
    
    
    risultato=0;
    return risultato;
    }
    Mi continua a segnalare errore è da poco che studio informatica quindi abbiate pazienza, penso di aver sbagliato qualcosa con il richiamo della function ma proprio non riesco a venirne a capo , sintatticamente mi sembra tutto corretto...

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Abbi pazienza anche tu ma "mi segnala errore" non permette di rispondere senza dover impiegare molto tempo nel copiare, compilare, controllare tutto il codice e il tempo è tiranno.

    Se fornissi qualche indicazione più precisa (che del resto il compilatore ti fornisce) sarebbe meglio per tutti.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    4
    Mi da questi errori qua:
    |40|warning: data definition has no type or storage class [enabled by default]|
    |40|error: expected expression before 'int'|
    |42|error: expected identifier or '(' before 'if'|
    |44|error: expected identifier or '(' before 'else'|
    |50|error: expected identifier or '(' before '}' token|
    ||=== Build finished: 4 errors, 1 warnings (0 minutes, 0 seconds) ===|

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Si notano alcuni errori ...

    Questa linea
    logic= int somiglianza_array;

    che vuol dire?

    Qui

    if (logic=1)

    devi usare ==

    e in


    while(i<=n-1 & j<=n-1)

    l'operatore deve essere &&
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    4
    la prima linea ovvero
    logic= int somiglianza_array;

    la uso per assegnare il risultato della function alla variabile logic in modo che se il valore è 1 gli array risulteranno uguali altrimenti viceversa

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Ma non ha senso sintatticamente.

    Hai presente come si richiama una funzione in C?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    4
    Io ho modificato questo caso di chiamata su un esempio che avevo, modificando tutti i parametri in float al rigo della chiamata ovvero
    logic= float somiglianza_array(sum_dist,soglia);
    mi segnala ora questo errore |40|error: expected expression before 'float'|

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.