Advertisement
u53r

Risolvere equazioni di secondo grado

May 24th, 2018
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.72 KB | None | 0 0
  1. /*
  2.   Scrivere un programma in grado di determinare le radici della generica equazione di secondo grado a²x + bx + c = 0
  3. */
  4.  
  5. #include <stdio.h>
  6. #include <math.h> // Nel programma saranno sfruttate alcune funzioni aritmetiche contenute in questa libreria
  7.  
  8. int main() {
  9.   int a,b,c,delta,x1,x2; // a,b,c sono i coefficienti dell'equazione, delta è la variabile usata per conservare il valore di b²-4ac , x1 ed x2 sono le soluzioni
  10.   printf("Per risolvere la generica equazione di secondo grado, ridotta a forma normale\n a^2x+bx+c=0\n\n"); // Utilizzo lo \n più volte per evitare di dover utilizzare troppi printf
  11.   printf("Inserisci a --> ");
  12.   scanf("%d", &a);
  13.   printf("Inserisci b --> ");
  14.   scanf("%d", &b);
  15.   printf("Inserisci c --> ");
  16.   scanf("%d", &c);
  17.  
  18.   if(a == 0){ // Se a è uguale a 0, allora l'equazione NON è di secondo grado
  19.     x1 = -c/b; // Calcolo comunque la soluzione (essendo quindi un'equzione del tipo bx+c=0, di primo grado)
  20.     printf("L'equazione NON e' di secondo grado! Soluzione: %d\n", x1);
  21.   }else{
  22.     delta = pow(b,2)-(4*a*c); // Calcolo il delta, utilizzando la funzione pow per l'elevamento a potenza( pow(b,2) = b² . Lo stesso risultato si sarebbe potuto ottenere con b*b )
  23.     if (delta < 0) { // Se delta è minore di zero, l'equzione è impossibile (la radice quazdrata di un numero negativo non esiste)
  24.       printf("L'equazione e' IMPOSSIBILE");
  25.     } else {
  26.       // È importante ricordare che sqrt(), restituisce un valore assoluto, quindi, per es., sqrt(4) = 2 ; NON sqrt(4) = ±2
  27.       x1 = (-b-sqrt(delta))/2*a; // Calcolo la prima soluzione
  28.       x2 = (-b+sqrt(delta))/2*a; // Calcolo la seconda soluzione
  29.       printf("X1 = %d, X2 = %d\n", x1,x2);
  30.     }
  31.   }
  32.   return 0;
  33. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement