Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Scrivere un programma in grado di determinare le radici della generica equazione di secondo grado a²x + bx + c = 0
- */
- #include <stdio.h>
- #include <math.h> // Nel programma saranno sfruttate alcune funzioni aritmetiche contenute in questa libreria
- int main() {
- 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
- 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
- printf("Inserisci a --> ");
- scanf("%d", &a);
- printf("Inserisci b --> ");
- scanf("%d", &b);
- printf("Inserisci c --> ");
- scanf("%d", &c);
- if(a == 0){ // Se a è uguale a 0, allora l'equazione NON è di secondo grado
- x1 = -c/b; // Calcolo comunque la soluzione (essendo quindi un'equzione del tipo bx+c=0, di primo grado)
- printf("L'equazione NON e' di secondo grado! Soluzione: %d\n", x1);
- }else{
- 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 )
- if (delta < 0) { // Se delta è minore di zero, l'equzione è impossibile (la radice quazdrata di un numero negativo non esiste)
- printf("L'equazione e' IMPOSSIBILE");
- } else {
- // È importante ricordare che sqrt(), restituisce un valore assoluto, quindi, per es., sqrt(4) = 2 ; NON sqrt(4) = ±2
- x1 = (-b-sqrt(delta))/2*a; // Calcolo la prima soluzione
- x2 = (-b+sqrt(delta))/2*a; // Calcolo la seconda soluzione
- printf("X1 = %d, X2 = %d\n", x1,x2);
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement