function s2cos_super
% Funkce s2cos_super bez parametrù bude vykreslovat graf køivky dané rovnicí
% 		y = sin2(x) cos(x) 
% pro x z intervalu, jehož dolní mez, horní mez a krok zadá uživatel z klávesnice. Je tøeba ošetøit, aby dolní mez byla menší než horní, aby krok byl kladný a nepøevyšoval hodnotu 1/10 z rozdílu mezi horní a dolní mezí intervalu. 
% Pokud se uživatel zmýlí, bude mu umožnìno dolní mez, horní mez a krok zadat znovu.  
% Ve funkci bude provedeno ošetøení poètu chyb uživatele, maximální poèet chyb, které mùže uživatel udìlat, bude 10.

kolik_chyb = 0;
while(1)
 dolni = input('Zadejte pocatecni hodnotu: ');
 horni = input('Zadejte koncovou hodnotu: ');  
 if (horni > dolni)
    break;
 end
 disp('Dolni mez je mensi nebo stejna s horni!');
 kolik_chyb = kolik_chyb + 1;
 pocet_chyb(kolik_chyb); % volání funkce pocet_chyb
 if(kolik_chyb > 10)
     return
 end    
end
while(1)
    krok = input('Zadejte krok: ');
    if (krok <= 0)
        disp('Je pripustny pouze kladny krok...');
        kolik_chyb = kolik_chyb + 1;
        pocet_chyb(kolik_chyb); % volání funkce pocet_chyb
        if(kolik_chyb > 10)
            return
        end
        continue;
    elseif (krok > ((horni - dolni)./10)) 
        disp('Krok je prilis velky...');
        kolik_chyb = kolik_chyb + 1;
        pocet_chyb(kolik_chyb); % volání funkce pocet_chyb
        if(kolik_chyb > 10)
            return
        end
        continue;
    end
    break;
end
osa_x = dolni:krok:horni;
osa_y = s2cos(osa_x); % volání funkce s2cos
plot(osa_x, osa_y,'Linewidth',2)
xlabel('x')
ylabel('y')
end

function pocet_chyb(kolik_chyb)
% Funkce s jedním vstupním parametrem kolik_chyb
% podle poètu chyb vypisuje hlášení na obrazovku
switch kolik_chyb
     case 0
        disp('Chybka programu, nula chyb, tady nemam byt?!?!');
     case 1
        disp('Tak to byla prvni chyba...');
     case 2
        disp('Tak to byla druha chyba...');
     case 3
        disp('Tak to bylo do tretice...');
     case {4, 5, 6, 7, 8, 9}
        disp(['Uz ',num2str(kolik_chyb),'. chyba, to snad neni mozne!']);
     case 10
        disp('Jubileum, 10. chyba!');
     otherwise
        disp('Uz si nemame co rici... Jsi beznadejny pripad.');
end
end

function y = s2cos(x)
% Funkce s jedním vstupním parametrem x a jedním výstupním parametrem y
% pro výpoèet y = sin2(x) cos(x) 
y = (sin(x).^ 2).* cos(x);
end 



