Data: 02/03/2026
Exit
#include <iostream> #include <cmath> using namespace std; int main() { int a, b, c, d, e; cout << "\n Analizzatore di coniche. v0.2 (ax^2 + by^2 + cx + dy + e = 0)\n\n"; cout << "Inserisci il coefficiente di a: "; cin >> a; cout << "Inserisci il coefficiente di b: "; cin >> b; cout << "Inserisci il coefficiente di c: "; cin >> c; cout << "Inserisci il coefficiente di d: "; cin >> d; cout << "Inserisci il coefficiente di e: "; cin >> e; cout << "\nformula conica: " << a << "x^2 + " << b << "y^2 + " << c << "x + " << d << "y + " << e; if (a == 0 && b == 0) { double m = -c / d; double q = -e / d; cout << "\n\nLa conica è una retta."; cout << "\nLa formula esplicita della retta è: y = " << m << "x + " << q; cout << "\nLa formula implicita della retta è: " << c << "x + " << d << "y + " << e; } else if (a != 0 && b == 0) { double delta = c * c - 4 * a * e; double vx = -c / (2 * a); double vy = delta / (4 * a * d); double fy = vy - d / (4 * a); double dir = vy + d / (4 * a); cout << "\nLa conica è una parabola parallela all'asse Y."; cout << "\nFormula esplicita: y = " << -a / d << "x^2 + " << -c / d << "x + " << -e / d; cout << "\nVertice: (" << vx << "; " << vy << ")"; cout << "\nFuoco: (" << vx << "; " << fy << ")"; cout << "\nDirettrice: y = " << dir; cout << "\nAsse di simmetria: x = " << vx; if (delta >= 0) { cout << "\nIntersezioni con asse X: (" << (-c + sqrt(delta)) / (2 * a) << "; 0) e (" << (-c - sqrt(delta)) / (2 * a) << "; 0)"; } else { cout << "\nNessuna intersezione con asse X"; } cout << "\nIntersezione con asse Y: (0; " << -e / d << ")\n"; } else if (a == 0 && b != 0) { double delta = d * d - 4 * b * e; double vy = -d / (2 * b); double vx = delta / (4 * b * c); double fx = vx - c / (4 * b); double dir = vx + c / (4 * b); cout << "\nLa conica è una parabola parallela all'asse X."; cout << "\nFormula esplicita: x = " << -b / c << "y^2 + " << -d / c << "y + " << -e / c; cout << "\nVertice: (" << vx << "; " << vy << ")"; cout << "\nFuoco: (" << fx << "; " << vy << ")"; cout << "\nDirettrice: x = " << dir; cout << "\nAsse di simmetria: y = " << vy; if (delta >= 0) { cout << "\nIntersezioni con asse Y: (0; " << (-d + sqrt(delta)) / (2 * b) << ") e (0; " << (-d - sqrt(delta)) / (2 * b) << ")"; } else { cout << "\nNessuna intersezione con asse Y"; } cout << "\nIntersezione con asse X: (" << -e / c << "; 0)\n"; } else if (a == b) { double cx = -c / (2.0 * a); double cy = -d / (2.0 * a); double r = sqrt((c * c + d * d - 4.0 * a * e) / (4.0 * a * a)); if (r > 0) { cout << "\nLa conica è una circonferenza."; cout << "\nForma canonica: (x - " << cx << ")^2 + (y - " << cy << ")^2 = " << r * r; cout << "\nCentro: (" << cx << "; " << cy << ")"; cout << "\nRaggio: " << r; } else if (r == 0) { cout << "\nLa circonferenza non esiste."; } else { cout << "\nRaggio immaginario"; } } else { cout << "\nLa formula non è una conica di alcun tipo conosciuto."; } return 0; }