% Cviceni c. 6 - programovani v Matlabu, davky a funkce

% 1. 
% Vytvorte davku, ktera vyzve uzivatele k zadani prijmeni. 
% Nasledne vypise nahodnou permutaci (presmycku) pismen zadaneho prijmeni. 
% Napoveda: funkce "randperm" provadi nahodnou permutaci posloupnosti 1:n. 
% Pokud nebude zadan zadny text, davka vypise chybove hlaseni. 


% 2. 
% Vytvorte funkci "faktorial" pro vypocet faktorialu n! pro nezaporne cele "n": 
%   1) bude mit jeden argument "n", 
%   2) zkontroluje podminku na "n", jinak skonci s chybovym hlasenim, 
%   3) spocita faktorial "n" a vrati jej jako svuj vystup. 


% 3. 
% Vytvorte funkci "kombc" pro vypocet kombinacniho cisla "n nad k":
%   1) bude mit dva argumenty "n" a "k", 
%   2) overi splneni predpokladu pro "n" a "k", jinak skonci s chybovym hlasenim, 
%   3) pomoci funkce "faktorial" z Ulohy c. 2 spocita 
%      a na svuj vystup vrati kombinacni cislo "n nad k".


% 4. 
% Vytvorte funkci "koreny" pro vypocet korenu kvadratickeho polynomu: 
%   1) bude mit 3 argumenty = koeficienty kvadratickeho polynomu, 
%   2) podle hodnoty diskriminantu spocita vsechny koreny, 
%   3) vypise typ korenu a jejich hodnoty a koreny vrati na svem vystupu. 
% Funkci naprogramujte bez pouziti vestavenych funkci pro vypocet korenu. 


% 5. 
% Vytvorte davku, ktera: 
%   1) vyzve uzivatele k zadani cisla, 
%   2) pokud je zadane cislo rovno 0, davka skonci, 
%   3) v opacnem pripade se vypise napovedna hlaska pro uzivatele a davka se opakuje. 
% Napoveda: cyklys "while". 


% 6. 
% Vytvorte davku pro nasledujici simulacni studii: 
% v mise je 10 stejnych jablek, postupne po jednom prichazi deti, 
% kazde si z misy vezme jedno jablko s pravdepodobnosti 0,5, 
% simulacni studie konci ve chvili, kdy se mista vyprazdni. 
% Cilem davky je spocitat, kolik deti k miste prijde, nez se mista vyprazdni. 
% V prubehu davky si muzete pro kontrolu vypisovat hlasky o tom, jak simulacni 
% studie probiha, tzn. kolikate dite prislo a jestli si vzalo ci nevzalo jablko. 


% 7. 
% Davku z Ukolu c. 6 prepiste na funkci "jablka", 
% ktera bude mit jeden argument "n" = pocet jablek v mise, tzn. prirozene cislo, 
% a na svuj vystup vrati pocet deti, ktere prisly k mise, nez se misa vyprazdnila. 
% Overte funkcnost pro nekolik hodnot n. 


% 8. 
% Pomoci cyklu "for" provedte 100 x vypocet funkce "jablka" pro n = 10. 
% Vysledky ulozte do vektoru "x". 
% Spocitejte vyberovy prumer (funkce "mean"), vyberovy rozptyl (funkce "var") 
% a vyberovou % smerodatnou odchylku (funkce "std") 
% cisel ve vektoru "x", tzn. poctu deti, ktere prisly k mise. 


% 9. 
% Vytvorte funkci "cramer" pro reseni systemu Ax = b linearnich rovnic Cramerovym pravidlem.
% Funkce bude mit 2 argumenty, matici "A" a vektor "b", 
% overi vsechny podminky nutne pro poziti Cramerova pravidla, 
% pri jejich nesplneni uzivateli sdeli, co je spatne zadane, 
% pomoci Cramerova pravidla spocita a na vystup vrati vektor hodnot "x". 



% 10. 
% Vytvorte davku, ktera ze souboru "data.mat" nacte promennou ABCD. 
% Pokud je ABCD ciselna promenna, davka vypise, zda jde o cislo, vektor nebo matici a jakych rozmeru, a obsah ABCD. 
% Pokud je ABCD textova promenna, davka vypise obsah ABCD a pocet znaku bez mezer. 
% Davku nasledne vyzkousejte: do promenne ABCD ukladejte ciselne vektory ci matice nebo texty, 
% promennou ulozte do souboru "data.mat", spustte davku a kontrolujte jeji vysledek.


