/* programma che, dati due punti sul piano cartesiano, ne calcola la distanza */ #include #include /*includo la libreria contenente la funzione SQRT*/ struct elemento{/*definisco una struttura formata da due campi di tipo float*/ float ascissa; float ordinata; }; typedef struct elemento Punto; /*questo TIPO di struttura la chiamo Punto*/ float distanza(Punto, Punto);/*definisco il prototipo della funzione*/ void main(void) { Punto punti[2]; /*definisco un vettore di due elementi*/ /*ogni elemento del vettore è una struttura Punto*/ float dist; /*definisco la varibile dist (riusltato finale)*/ system("cls"); /*pulisco lo schermo*/ /*--Catturo i valori da tastiera e li inserisco nei campi delle strutture--*/ printf("Inserisci l'ascissa del primo punto: \n"); scanf("%f",&punti[0].ascissa); printf("Inserisci l'ordinata del primo punto: \n"); scanf("%f",&punti[0].ordinata); printf("Inserisci l'ascissa del secondo punto: \n"); scanf("%f",&punti[1].ascissa); printf("Inserisci l'ordinata del secondo punto: \n"); scanf("%f",&punti[1].ordinata); /*--------------------fine dell'inserimento--------------------*/ dist=distanza(punti[0],punti[1]); /*chiamo la funzione distanza*/ /*passando le strutture come parametri*/ printf("La distanza fra i due punti e': %f\n",dist); system("pause"); } float distanza(Punto p1, Punto p2) { float delta1 = p1.ascissa - p2.ascissa; /*definisco e calcolo delta1*/ float delta2 = p1.ordinata - p2.ordinata;/*definisco e calcolo delta2*/ return sqrt((delta1*delta1)+(delta2*delta2));/*calcolo e ritorno la distanza*/ }