function A=generuj_matici_det(n,D,c)
%generuj_matici_det - generuje celociselnou matici, jejiz deteminant je
%roven D nebo -D
%r..rad matice
%D...pozadovana absolutni hodnota determinantu matice
%c..max.cele cislo, ktere smi matice obsahovat
%A vystupni matice pozadovanych vlastnosti
%priklad volani: A=generuj_matici_det(5,0,7)

if n<=0
    error('Rad matice n musi byt vetsi nez nula!')
end

if c~=fix(c) || c<=0
   error('Zadejte cele kladne cislo pro rozsah prvku matice!') 
end

while 1 %nekonecny cyklus - zastavte CTRL+C
    A=-c+fix((2*c+1)*rand(n));  %trik pro celociselnou matici majici poyadovane vlastnosti
    if abs(det(A))==D   %odchyceni matice s s det. D, resp. -D
        return;
    end
end