Esercizion con pow() in C

di il
6 risposte

Esercizion con pow() in C

Salve, mi è stato inviato un esercizio eseguito, da dover studiare, solo che la function pow() non è stata mai spiegata e, confesso la mia ignoranza, non ne sapevo l'esistenza. In particolare, ho capito che serve a effettuare l'operazione tipo x elevato y, ma non riesco a capire come viene utilizzata in questo esercizio.
/*
TRACCIA 2: Sviluppare una function C che, dato come parametro di
input un array di tipo struct punto {double x; double y;} e il
suo size, determina e restituisce come parametri di output gli
indici dei due punti che hanno distanza minima tra loro. I campi
x e y contengono l??ascissa e l??ordinata, rispettivamente, di un
punto.
*/
#include <math.h>

struct punto {
    double x;
    double y;
};

void dist_min(punto v[], unsigned int n, int *p1, int *p2){
        double distmin, dist;
        unsigned int i, j;
        *p1=-1; *p2=-1; //inizializzo indici distanza
        if(n>=2){
            distmin=distanza(v[0], v[1]);
            for (i=0; i<n-1;i++){
                for(j=i+1; j<n; j++){
                    dist=distanza (v[i], v[j]);
                    if(dist<distmin){
                        distmin=dist;
                        p1=i; p2=j;
                    }
                }
            }
      }
}

double distanza(const punto *p1, const punto *p2){
    return sqrt((pow(p2.x-p1.x,2))+pow(p2.y-p1.y,2));
}

6 Risposte

  • Re: Esercizion con pow() in C

    Non ti serve pow() per fare un quadrato, e se ci pensi bene non ti serve nemmeno sqrt() per risolvere il problema
  • Re: Esercizion con pow() in C

    No, ma infatti è un esercizio già fatto, e non riuscivo a capire il senso dell'ultimo codice e come funzionasse
  • Re: Esercizion con pow() in C

    Viene utilizzata per calcolare la distanza ... è questo che non comprendi?
  • Re: Esercizion con pow() in C

    Non capisco questo:
    sqrt((pow(p2.x-p1.x,2))+pow(p2.y-p1.y,2))
    sqrt so che è la radice, ma dopo il pow, in numero è tipo (2.4.6) elevato alla seconda? o sbaglio io a leggerlo?
  • Re: Esercizion con pow() in C

    Che vuol dire 2.4.6?
    quella formula è radice{[(p2.x - p1.x)^2] + (p2.y - p1.y)^2}
    E' un pessimo esempio perché usa pow(), sqrt() e un paio di parentesi inutili
  • Re: Esercizion con pow() in C

    2.4.6 ???
Devi accedere o registrarti per scrivere nel forum
6 risposte