#include #include using namespace std; int main(void) { // Coefficienti della parabola float a = 1; float b = 5; float c = 4; cout << "Equazione: " << a << "x^2 + " << b << "x + " << c << " = 0" << endl; // Apertura della parabola if (a > 0) { cout << "Parabola rivolta verso l'alto." << endl; } else if (a < 0) { cout << "Parabola rivolta verso il basso." << endl; } else { cout << "Errore." << endl; return 0; } // Calcolo del discriminante float delta = (b * b) - (4 * a * c); cout << "Delta: " << delta << endl; if (delta > 0) { float x1 = ((-b) - (sqrt(delta))) / (2 * a); float x2 = ((-b) + (sqrt(delta))) / (2 * a); cout << "S = {x1 = " << x1 << " V " << "x2 = " << x2 << "}" << endl; } else if (delta == 0) { float x0 = (-b) / (2 * a); cout << "S = {x = " << x0 << "}" << endl; } else { cout << "Soluzioni troppo complesse per ora." << endl; return 0; } // Calcolo del vertice float xVertice = (-b) / (2 * a); float yVertice = (a * xVertice * xVertice) + (b * xVertice) + c; cout << "V(" << xVertice << "; " << yVertice << ")" << endl; // Calcolo del parametro focale float parametroFocale = (1) / (4 * a); // Calcolo del fuoco float xFuoco = xVertice; float yFuoco = yVertice + parametroFocale; cout << "F(" << xFuoco << "; " << yFuoco << ")" << endl; // Calcolo della direttrice float direttrice = yVertice - parametroFocale; cout << "d: y = " << direttrice << endl; // Asse di simmetria cout << "s: x = " << xVertice << endl; // Disegnamo il grafico (solo se le soluzioni sono numeri interi) const int width = 20; const int height = 10; for (int y = height; y >= -height; --y) { for (int x = -width; x <= width; ++x) { float fx = (a * x * x) + (b * x) + c; if (round(fx) == y) { cout << "*"; } else if (y == 0 && x == 0) { cout << "+"; } else if (y == 0) { cout << "-"; } else if (x == 0) { cout << "|"; } else { cout << " "; } } cout << endl; } return 0; }