155GIT1 / 6. cvičení: Porovnání verzí
m →Ukázky |
|||
Řádek 13: | Řádek 13: | ||
''' logické AND ''' | ''' logické AND ''' | ||
všechny podmínky musí platit současně | |||
<source lang=octave> | <source lang=octave> | ||
Řádek 38: | Řádek 38: | ||
''' logické OR ''' | ''' logické OR ''' | ||
musí platit alespoň jedna podmínka | |||
<source lang=octave> | <source lang=octave> |
Verze z 26. 3. 2017, 04:26
Podmínky a cykly, uživatelské funkce
Náplň cvičení
- složené podmínky
- uživatelské funkce
- chybová hlášení, nápověda k funkci
Ukázky
Složené podmínky
logické AND všechny podmínky musí platit současně
% iterativni proces skonci jiz pri splneni jedne z pozadovanych presnosti
dx = 10; % pozadovana presnost v souradnici x
dy = 10; % pozadovana presnost v souradnici y
i = 0; % citac iteraci
while dx > 0.1 & dy > 0.1
i = i+1
dx = dx/2
dy = dy/5
end
% totez
dx = 10; % pozadovana presnost v souradnici x
dy = 10; % pozadovana presnost v souradnici y
i = 0; % citac iteraci
while all([dx > 0.1, dy > 0.1]) % totez: while [dx > 0.1, dy > 0.1]
i = i+1
dx = dx/2
dy = dy/5
end
logické OR musí platit alespoň jedna podmínka
% iterativni proces skonci az po splneni vsech pozadovanych presnosti
dx = 10; % pozadovana presnost v souradnici x
dy = 10; % pozadovana presnost v souradnici y
i = 0; % citac iteraci
while dx > 0.1 | dy > 0.1
i = i+1
dx = dx/2
dy = dy/5
end
% totez
dx = 10; % pozadovana presnost v souradnici x
dy = 10; % pozadovana presnost v souradnici y
i = 0; % citac iteraci
while any([dx > 0.1, dy > 0.1])
i = i+1
dx = dx/2
dy = dy/5
end
Uživatelské funkce
Syntax:
function [vystup1,vystup2,...,vystupn] = nazev(vstup1,vstup2,...,vstupn) end % end neni povinne
Každá funkce musí být uložena ve vlastním souboru s příponou .m. Název souboru musí odpovídat názvu funkce! Klíčové slovo function musí být na prvním řádku souboru.
function [min_x, max_x, mean_x] = stat(x)
min_x = min(min(x));
max_x = max(max(x));
mean_x = mean(x(:));
end
Příklad volání:
data = rand(10,1)
[mi, ma, mn] = stat(data)
fprintf('min = %.3f\nmax = %.3f\nmean = %.3f\n', mi, ma, mn)
Chybová hlášení, nápověda
function [min_x, max_x, mean_x] = stat(x)
% vypocet minimalni, maximalni a prumerne hodnoty matice
if any(imag(x)) > 0
error('stat: Vstupni matice obsahuje imaginarni cisla.')
end
min_x = min(min(x));
max_x = max(max(x));
mean_x = mean(x(:));
end
Vyvolání nápovědy k uživatelské funkci:
help stat
Volání funkce (chybná vstupní data):
data1 = [data; 5+2i; 4-3i]
[mi, ma, mn] = stat(data1)
Příkaz return
- je-li v běhu funkce vykonán příkaz return, je okamžitě činnost funkce ukončena (bez vykonání evtl.dalších příkazů) a na pozici jejího volání jsou vráceny aktuálně vypočtené hodnoty výstupních parametrů funkce