function poc_soustavu
% spocte soustavu a vypise vysledek, nevraci jako vysledek zadnou hodnotu

% uzivatel je dotazan, zda chce nacist vstupni data (matici koeficientu
% soustavy a vektor pravych stran) ze souboru nebo chce-li zadat pozadovane
% udaje z klavesnice

% parametr 's' rika, ze vstupem bude text (znak), ne ciselna promenna

volba = menu('Prejete si provest vstup z klavesnice nebo ze souboru','z klavesnice','ze souboru');
switch volba
    case 1
        [A,b]=soustava_rovnic_vst;
    case 2
        [A,b]=soustava_rovnic_vst_ze_souboru;
end

if(min(size(A))==0)
    disp('Program ukoncen!')
    return
end

if(rank(A)~=length(b))&(rcond(A)<1e-12)
    disp('Matice je zrejme singularni.')
    dal=input('\n Reseni nemusi existovat. Prejete si pocitat dal? (a)no / (n)e: ','s');   
    while ((dal ~= 'a') & (dal ~= 'n'))
        dal=input('\n Reseni nemusi existovat. Prejete si pocitat dal? (a)no / (n)e: ','s');
        dal=lower(dal);
    end;
    if (dal == 'n')
        disp('Program bude ukoncen')
        return
    end
end

% volani funkce soustava, ktera vrati jako vysledek koreny rovnice
x=soustava_rovnic_reseni(A,b);

% uzivatel je dotazan, zda chce vypsat vysledek vypoctu do souboru 
% parametr 's' rika, ze vstupem bude text, ne ciselna promenna
do_soub=input('\nPrejete si provest vystup vysledku do souboru (A)no / (N)e: ','s');

% prevedeme znak v promenne do_soub na velke pismeno (nevime zda uzivatel zadal male nebo velke)
do_soub=upper(do_soub);

% ... a je tazan stale dokola, dokud neodpovi A nebo N, popr. a nebo n
while ((do_soub ~= 'A') & (do_soub ~= 'N'))
    do_soub=input('\nPrejete si provest vystup vysledku do souboru (A)no / (N)e: ','s');
    do_soub=upper(do_soub);
end;

if do_soub == 'A'
    % pozaduje-li uzivatel vypis do souboru - provede se
    soustava_rovnic_vystup_soubor(A,b,x,length(x))
    % zjisteni kolik korenu ma soustava - zjistim, jak velkou soustavu uzivatel
    % zadal podle poctu vypoctenych korenu (4. vstupni parametr funkce)
else
%   nepozaduje-li uzivatel vypis do souboru, provede tisk na obrazovku
    soustava_rovnic_vystup(A,b,x,length(x))
end;

volba_zk = menu('Prejete si provest zkousku','Ano','Ne');
if (volba_zk == 1)
    soustava_zkouska(A,b,x);
end