|
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "Sistema.h"
#include "Equazioni.h"
double domanda(const char *, double, double);
void caricaMatrice(Tmatrice);
void stampaSistema(Tcirconferenza);
void CaricaSistema(Tcirconferenza);
int main()
{
printf("Circonferenza passante per tre punti\n");
Tcirconferenza cerchio;
allocaCirconferenza(&cerchio);
CaricaSistema(cerchio);
char soluzioni[500]="";
if (calcolaSoluzioni(cerchio, soluzioni))
{
printf("----------------------------------------------------------------------");
printf("\nRisultato:\n%s", soluzioni );
}
distruggiCirconferenza(&cerchio);
while (getchar() != '\n');
return 0;
}
double domanda(const char *messaggio, double lInf, double lSup)
{
char numero[80]="";
double esito=0.0;
while (1)
{
gets(numero);
esito=atof(numero);
if (esito < lInf)
{
printf("Inserire un valore superiore a %lf\n", lInf );
continue;
}
if (esito > lSup)
{
printf("Inserire un valore inferiore a %lf\n", lSup );
continue;
}
break;
}
return esito;
}
void caricaMatrice(Tmatrice matrix)
{
int i, j;
double valore;
char messaggio[80]="";
printf("\nCaricamento della matrice: \n");
for (i=0; i < matrix.lato; i++)
{
printf("\n------------------------------------\n");
for (j=0; j < matrix.lato; j++)
{
sprintf(messaggio, "Valore in riga %3d e colonna %3d ? ", i+1, j+1);
valore=domanda(messaggio, -1e30, 1e30);
setElemento(matrix, i, j, valore);
}
}
printf("\n------------------------------------\n");
}
void stampaSistema(Tcirconferenza sistema)
{
int i;
printf("\nCirconferenza passante per \n");
for (i=0; i < 3; i++)
{
printf("Punto %d: (%0.5lf | %0.5lf)\n", i +1 , sistema. punti[i ]. x, sistema. punti[i ]. y);
}
for (i=0; i<4; i++)
{
stampaMatrice(sistema.equazioni[i]);
printf("Determinante: %lf", determinante (sistema. equazioni[i ]));
printf("\n -----------------------------------------------------\n");
}
}
void CaricaSistema(Tcirconferenza cerchio)
{
Tpunto coordinate;
int i;
printf("Immetti le coordinate dei tre punti in cui passa la circonferenza\n\n");
for (i=0; i < 3; i++)
{
printf("Punto %d: \n", i + 1 );
coordinate.x=domanda("Coordinata x ? ", -1e100, 1e100);
coordinate.y=domanda("Coordinata y ? ", -1e100, 1e100);
immettiCoordinata(cerchio, coordinate, i);
printf(" ----------------------------------\n");
}
}
|
|