%EQ2GR Script per la risoluzione di un'equazione % di secondo grado (solo soluzioni reali) % con i coefficienti a, b e c non nulli % FORMULE INSTABILI % Settare il formato di visualizzazione format long e % Scrivere a video "Risoluzione di un'equazione di secondo grado" fprintf('Risoluzione di un''equazione di secondo grado (formule instabili) \n') % Chiedere all'utente di inserire i coeficienti a, b, c dell'equazione fprintf('Inserire i coefficienti dell''equazione di secondo grado \n') a = input('a = '); b = input('b = '); c = input('c = '); % Controllare che siano tutti NON nulli % se è così calcolare le radici, % altrimenti dare un messaggio di errore if (a==0) || (b==0) || (c==0) if a == 0 error('ERRORE: il coefficiente a é'' nullo!') elseif b == 0 error('ERRORE: il coefficiente b é'' nullo!') else %c == 0 e' l'unica alternativa rimasta error('ERRORE: il coefficiente c é'' nullo!') end else %CALCOLO DELLE RADICI % calcolo del discriminante delta delta = b^2 -4*a*c; fprintf('Il discriminante vale %1.1f \n', delta) % se delta<0 nessuna soluzione reale (scriverlo a video) if delta < 0 disp('Nessune soluzione reale ') % se delta = 0 due soluzioni reali coincidenti(scriverle a video) elseif delta == 0 disp('Due soluzioni reali coincidenti') x1 = -b/(2*a); x2 = x1; fprintf('x1 = x2 = %1.0e \n', x1) else x1 = (-b-sqrt(delta))/(2*a); x2 = (-b+sqrt(delta))/(2*a); fprintf(' x1 = %1.4e \n x2 = %1.4e \n', x1, x2) end % altrimenti x1 e x2 reali e distinte (scriverle a video) end