
function quadrilatero(b1,b2,c1,A1,A2)

disp('Calcolo di un certo lato di un quadrilatero.');
fprintf('\n');

a_sq=b1^2+c1^2-2*b1*c1*cos(A1);
if a_sq > 0
    a=sqrt(a_sq);
else
    fprintf('\n \t Non si puo'' applicare il teorema del coseno!');
end


AA=1;
BB=-2*b1*cos(A1);
CC=b1^2-a^2;

[x1,x2,flag]=equaz2gst_sub(AA,BB,CC);

if x1 >= 0
    fprintf('\n \t Lato c2=%1.15e \n ',x1); 
end

if x2 >= 0
    fprintf('\n \t Lato c2=%1.15e \n ',x2); 
end





function [x1,x2,flag]=equaz2gst_sub(a,b,c)

%--------------------------------------------------------------------------
% OGGETTO.
%--------------------------------------------------------------------------
% RISOLUZIONE DELL'EQUAZIONE ax^2+bx+c=0 MEDIANTE FORMULA STABILE.
%--------------------------------------------------------------------------

% INIZIALIZZAZIONE.
x1=[]; x2=[]; flag=0;

% CONTROLLI SUI PARAMETRI NULLI.

if a == 0
    fprintf('\n \t Parametro ''a'' nullo');
    flag=1;
end

if b == 0
    fprintf('\n \t Parametro ''b'' nullo');
end

if c == 0
    fprintf('\n \t Parametro ''c'' nullo');
end

% CALCOLO DISCRIMINANTE.
fprintf('\n \t a=%1.15e',a);
fprintf('\n \t b=%1.15e',b);
fprintf('\n \t c=%1.15e \n \n',c);

delta=b^2-4*a*c;

if delta < 0
    fprintf('\n \t Discriminante negativo.');
    flag=2;
end

% Equazione puramente di secondo grado.
% Equazione puramente di secondo grado.
if flag == 0
    if b == 0
        x1=sqrt(-c/a);
        x2=-x1;
        fprintf('\n \t x1=%1.15e',x1);
        fprintf('\n \t x2=%1.15e \n \n',x2);
    else
        x1=(-b-sign(b)*sqrt(delta))/(2*a);
        x2=c/(a*x1);
        fprintf('\n \t x1=%1.15e',x1);
        fprintf('\n \t x2=%1.15e \n \n',x2);
    end
end


% Equazione puramente di primo grado.
if flag == 1
    if b == 0
        if c == 0
            fprintf('\n \t Ogni numero reale risolve l''equazione.');
        else
            fprintf('\n \t Nessuna soluzione.');
        end
    else
        x1=-c/b;
        fprintf('\n \t x1=%1.15e',x1);
    end
end

