function  MBKS_zobraz_pocty_zmien(n, m, z, min_poc_den, max_poc_den, KN, delta, l, XOPT)
% Funkcia, ktora sluzi na zostavenie grafu, ktory zobrazuje pocet roznych
% smien sestier za cele obdobie
%
% Volanie
%   MBKS_zostav_zobrazenie3(n, m, z, min_poc_den, max_poc_den, KN, delta, XOPT2)
% Vstup:
%   n - pocet sestier
%   m - pocet dni planovaneho obdobia
%   z - pocet smien
%   min_poc_den - minimalny pocet pracovnych dni
%   max_poc_den - maximalny pocet pracovnych dni
%   KN - mnozina nocnych smien
%   delta - koeficient nocnej smeny
%   XOPT - riesenie v tvare viacrozmernej matice
% Výstup:
%   Graf poctu roznych smien sestier za cele obdobie
%   Graf pomeru nocnych smien ku vsetkym smenam
%% ABOUT
% Zobrazenie poctu roznych smien sestier za cele obdobie sa vytvara pomocou
% funkcie bar a zobrazenie minimalneho a maximalneho poctu smien (min_poc_den
% a max_poc_den zo zadania) sa vytvara pomocou funkcie plot. 
% Pocet roznych smien sestier sa napocitava do matice POCTY_SMIEN, kde
% POCTY_SMIEN(i,k) obsahuje hodnotu ktoru ziskame scitanim XOPT(i,j,k) cez
% vsetky j.
%
% Zobrazenie skutocneho pomeru poctu nocnych/vsetkych smien sa vytvara
% pomocou funkcie bar a zobrazenie pozadovaneho pomeru poctu
% nocnych/vsetkych smien sa vytvara pomocou funkcie plot (delta zo
% zadania). Skutocny pomer ziskame pomocou poctu smien sestier,
% vypocitaneho v predoslej matici POCTY_SMIEN, a to tak ze vyberieme z
% tejto matice iba stlpce v mnozine KN a urobime sumu prvkov v stlpcoch.
% Tuto sumu vydelime sumou hodnout v stlpcoch celej matice
% SKUTOC_POMER_SMIEN.

%% Deklaracia a populacia matice poctu smien a skutocneho pomeru smien
del = ones(1,n) * delta; % Inicializacia vektorov a matic  
min = ones(1,n) * min_poc_den;
max = ones(1,n) * max_poc_den;
optl = ones(1,n) * l;
POCTY_SMIEN = zeros(n,z);
SKUTOC_POMER_SMIEN = zeros(1,n);

for i = 1:n
    for k = 1:z
        for j = 1:m
            POCTY_SMIEN(i,k) = sum(XOPT(i,:,k)); % Naplnenie matice 
        end
    end
end

for i = 1:n
    SKUTOC_POMER_SMIEN(1,i) = POCTY_SMIEN(i,KN)/sum(POCTY_SMIEN(i,1:z)); % Vypocet skutocneho pomeru smien nocnej ku vsetkym smenam 
end

%% Vykreslenie poctu smien jednotlivych sestier 
subplot(211);
bar(POCTY_SMIEN,'stacked') % Vykreslenie poctu smien
hold on;
plot(min,'b:.','linewidth',3) % Minimialny pocet smien
hold on;
plot(optl,'y:.','linewidth',3) % Optimalny pocet smien
hold on;
plot(max,'r:.','linewidth',3) % Maximalny pocet smien
hold off;
grid off;
title(['Počty smien jednotlivých sestier'],'FontSize',16);
legend({'Smena č.1','Smena č.2','Smena č.3','Minimálny počet smien','Optimálny počet smien','Maximálny počet smien'},'Location','northeastoutside');
xlabel('Sestra','fontsize',12);
ylabel('Počty smien','fontsize',12);

%% Vykreslenie pomeru nocnych ku vsetkym smenam
subplot(212);
bar(SKUTOC_POMER_SMIEN,'stacked') % Vykreslenie pomeru nocnych a vsetkych smien
hold on;
plot(del,'r:.','linewidth',3) % Pozadovany minimalny pomer
hold off;
grid off;
title(['Pomer počtu nočných a všetkých smien pre jednotlivé sestry'],'FontSize',16);
legend({'Skutočny pomer','Požadovaný minimálny pomer '},'Location','northeastoutside');
xlabel('Sestra','fontsize',12);
ylabel('Pomer nočná/všetky','fontsize',12);

end