sabato 21 gennaio 2012

Tutorial Linguaggio C - Risoluazione di un'equazione di secondo grado

In questo nuovo tutorial utilizzeremo alcune semplici nozioni del linguaggio C per risolvere le equazioni di secondo grado.
Per la nostra applicazione intenderemo l'applicazione in questo modo:
ax^2 + bx + c

Dove a, b, e c sono i coefficienti dell'equazione di secondo grado.
Per il calcolo delle soluzioni si calcola innanzitutto il determinante in questo modo:
b^2 - 4ac

Nel caso in cui il determinante sarà maggiore di zero si calcoleranno le due radici reali e distinte; nel caso in cui il determinante sia nullo le due radici saranno reali e uguali e nel caso in cui il determinante sia minore di zero le radici saranno complesse e si farà in modo di calcolare la parte reale e la parte immaginaria separatamente. Una volta calcolate verranno poi visualizzate insieme.
Buona visione.


Per chi dovesse testare quest'applicazione su macchine linux, vi consiglio di aggiungere "-lm" al comando gcc che serve a compilare l'applicazione poiché ci potrebbero essere problemi nella funzione sqrt.
Di seguito tutto il codice dell'applicazione:

#include
#include
#include
int main()
{
printf("Applicazione per la risoluzione delle equazioni di secondo grado\n");
printf("Inserire i tre coefficienti dell'equazione di secondo grado sotto forma di numeri interi\n");
double a,b,c,x1,x2,x1i,d,sd;
printf("Inserisci il coefficente di grado due: ");
scanf("%lf",&a);
printf("Inserisci il coefficente di grado uno: ");
scanf("%lf",&b);
printf("Inserisci il coefficente di grado zero ");
scanf("%lf",&c);
d = ( pow(b,2) - 4 * a*c);
printf("Il determinante e' pari a %f\n",d);
if (d>=0){
if (d==0)
{
x1=(-b)/(2*a);
x2=x1;
printf("X1 = %f\n",x1);
printf("X2 = %f\n",x2);
}
else
{
sd = sqrt(d);
x1= (-b +sd)/(2*a);
x2= (-b -sd)/(2*a);
printf("X1 = %f\n",x1);
printf("X2 = %f\n",x2);
}

}
else
{
sd = sqrt(-d);
x1 = (-b)/(2*a);
x1i = sd/(2*a);
printf("X1 = %f +i %f\n",x1,x1i);
printf("X2 = %f -i %f\n",x1,x1i);
}
}

Nessun commento:

Posta un commento