function [cenapaketu, cenapambloku, cenacelkemuzlu] = CenaZaUzel (BWpl, BWcel ,cenaza1pa, cenaza1pb, jednotkaBW)

%M-file je urcen pro vypocet ceny prepojovaciho uzlu, jenz se sklada z ceny za prepojeni 1 paketu a
%poctu paketu, ktere ktere musi uzel uchovat pamet uzlu.
%Vstupni parametry:
%BWpl - kapacita spoje pristupove linky, zadavejte v Bps, Mbps, Gbps
%BWcel - celkova kapacita spoju do uzlu, zadavejte v Bps, Mbps, Gbps
%jednotkaBW - pouzita jedntoka kakacity, zadavejte Bps, Mbps, Gbps
%cenaza1pa - zadejte jednotkovou cenu za prepojeny paket
%cenaza1pb - zadejte jednotkovou cenu za pametovy blok
%[cenapaketu, cenapambloku, cenacelkemuzlu] = CenaZaUzel (BWpl, BWcel,cenaza1pa, cenaza1pb, jednotkaBW)

disp('******************PARAMETRY CENY UZLU*************************')


if nargin ~= 5
    error('Spatny pocet vstupu')
    
elseif BWpl <= 0
    error('Hodnota BWpl musi byt kladna a > 0')
    
elseif BWcel <= 0
    error('Hodnota BWcel musi byt kladna a > 0')
    
elseif cenaza1pa <= 0
    error('Hodnota cena za paket musi byt kladna a > 0')
    
elseif cenaza1pb <= 0
    error('Hodnota cena za pametovy blok musi byt kladna a > 0')
    
end


switch jednotkaBW
    case 'Bps'
    pocetBpl = BWpl./8; %prepocet kapacity pristopovych linek na jednotku Byte      
    pocetBcel = BWcel./8; %prepocet kapacity vstupnich linek do daneho uzlu na jednotku Byte
    
    if pocetBpl < 1500 %kontrola, zda je kapacita spoju dostatecna pro preneseni datove jednotky
        error('Kapacita pristopovych linkek je nedostatecna')
    elseif pocetBcel<1500
        error('Kapacita odchozich linkek je nedostatecna')
    end
    
       
    case 'Mbps'
    tok = BWpl.*(1*10^6);
    celktok = BWcel.*(1*10^6);
    pocetBpl = tok./8;
    pocetBcel = celktok./8;
    
    if pocetBpl < 1500
        error('Kapacita pristopovych linkek je nedostatecna')
    elseif pocetBcel<1500
        error('Kapacita odchozich linkek je nedostatecna')
    end
    
        
    case 'Gbps'
    tok = BWpl.*(1*10^9);
    celktok = BWcel.*(1*10^9);
    pocetBpl = tok./8;
    pocetBcel = celktok./8;
    
    if pocetBpl < 1500
        error('Kapacita pristopovych linkek je nedostatecna')
    elseif pocetBcel<1500
        error('Kapacita odchozich linkek je nedostatecna')
    end
    
      
    otherwise
        error('zadej spravnou jednotku BW: Bps, Mbps, Gbps')
        
end

pocetPpl = pocetBpl./1500; % teoreticky pocet paketu z pristupove linky
pocetPcel = pocetBcel./1500; % teoreticky pocet paketu ze vstupnich linek linek


cenapaketu = pocetPpl.* cenaza1pa; %cena za prepojeni paketu vztazena vhledem k pristupove lince
sumazapaket = sum(cenapaketu);
disp (sprintf('Celkove naklady na prepojeni paketu: %9.9f\n', sumazapaket));

cenapambloku = (pocetPpl + pocetPcel).* cenaza1pb; %cena pametoveho bloku uzlu pro vstupni i pristupove liky
sumazapamblok = sum(cenapambloku);
disp (sprintf('Celkove naklady na pamet: %9.9f\n', sumazapamblok));

cenacelkemuzlu = cenapaketu + cenapambloku; %celkova cena uzlu slozena z ceny za prepojeni a pametovy blok
sumacelkemzauzly = sum(cenacelkemuzlu);
disp (sprintf('Celkove naklady na uzly: %9.9f\n', sumacelkemzauzly));

end