function fibon
% fibonacciho posloupnost
% Jako Fibonacciho posloupnost je v matematice oznaèována nekoneèná
% posloupnost pøirozených èísel, zaèínající 0, 1, 1, 2, 3, 5, 8, 13, … ,
% kde každé èíslo je souètem dvou pøedchozích.

% Poèet prvkù posloupnosti zadá uživatel (omezeno na 3 až 20 prvkù) nebo je
% naèten ze souboru Data.txt nebo je náhodný z intervalu od 3 do 20 prvkù

v=input('Zadej volbu: Uzivatel - U / Soubor - S / Nahodne cislo - C\nTvoje volba: v = ','s');
v=upper(v); % pøevod na velká písmena, pro pøípad, že by uživatel zadal malé písmeno, opaènì: lower - pøevod na malá písmena
switch (v)  % pøepínaè
    case 'U'    % je- li výsledkem výrazu v písmeno U provedou se následující pøíkazy
        k=input('Zadej pocet prvku posloupnosti: k = '); % uživatel zadá v pøíkazovém øádku poèet prvku, uloží se do promìnné k
        if ((k>20)|(k<3))  % podmínìný pøíkaz - podmínka: není-li k zvoleno od 3 do 20
                           % znak | znaèí logický operátor OR(nebo)
             disp('Konec - spatne zadani') % výpis na obrazovku bez názvu promìnné
             return  % ukonèí provádìní funkce, která tento pøíkaz obsahuje
        end % ukonèení podmínìného pøíkazu if
    case 'S'    % je- li výsledkem výrazu v písmeno S provedou se následující pøíkazy
        f=fopen('Data.txt', 'r');   % otevøení souboru Data.txt pro ètení (parametr 'r')
        k=fscanf(f,'%d',[1 1]);     % ze souboru je naèteno cislo, f - identifikátor souboru, %d - formát èísla, [1 1] - naèten 1 øádek a 1 sloupec
        fclose(f);                  % uzavøení souboru
    case 'C'    % je- li výsledkem výrazu v písmeno C provedou se následující pøíkazy
        k=round(3 + (20-3).*(rand(1,1)));     % vygenerováno náhodné èíslo od 3 do 20 - rand generuje matici nahodných èísel (1 øádek a 1 sloupec), round - zaokrouhlení
    otherwise 
        disp('Neznama volba, k bude nahodne cislo');     % výpis na obrazovku bez názvu promìnné
        k=round(3 + (20-3).*(rand(1,1)));     % vygenerováno náhodné èíslo od 3 do 20 - rand generuje matici nahodných èísel (1 øádek a 1 sloupec), round - zaokrouhlení
end
disp(['pocet prvku posloupnosti: ',num2str(k)]) % výpis na obrazovku bez názvu promìnné
fib(1) = 0;                     % prirazeni (1. prvek posloupnosti)
fib(2) = 1;                     % prirazeni (2. prvek posloupnosti)
for n = 3:1:k                   % cyklus for (1. prvek posloupnosti)
    fib(n) = fib(n-2) + fib(n-1);
end;                            % konec cyklu for
disp('Fibonacciho posloupnost') % výpis na obrazovku bez názvu promìnné
disp(fib);                      % výpis na obrazovku bez názvu promìnné