creaPunto(x, y) = p
Postcondizione: p = (x, y)
ascissa(p) = x
Postcondizione: il risultato x è il primo elemento della coppia p
ordinata(p) = y
Postcondizione: il risultato y è il secondo elemento della coppia p
distanza(p1, p2) = d
Postcondizione: d = $\sqrt{(\text{ascissa}(p1)-\text{ascissa}(p2))^2-(\text{ordinata}(p1)-\text{ordinata}(p2))^2}$
typedef struct
{
float x;
float y;
} punto;
punto creaPunto(float x, float y);
float ascissa(punto p);
float ordinata(punto p);
float distanza(punto p1, punto p2);
#include <math.h>
#include "punto.h"
punto creaPunto(float x, float y)
{
punto p;
p.x = x;
p.y = y;
return p;
}
float ascissa(punto p)
{
return p.x;
}
float ordinata(punto p)
{
return p.y;
}
float distanza(punto p1, punto p2)
{
float dx = p1.x - p2.x;
float dy = p1.y - p2.y;
float d = sqrt(dx*dx + dy*dy);
return d;
}
Realizzare un programma che prende in ingresso una sequenza di punti e un numero reale d e restituisce il numero di coppie m di punti che hanno distanza minore di d