155GIT1 / 6. cvičení: Porovnání verzí
mBez shrnutí editace |
m →Ukázky |
||
Řádek 11: | Řádek 11: | ||
=== Složené podmínky === | === Složené podmínky === | ||
''' logické AND ''' | |||
* všechny podmínky musí platit současně | |||
<source lang=octave> | <source lang=octave> | ||
% iterativni proces skonci jiz pri splneni jedne z pozadovanych presnosti | % iterativni proces skonci jiz pri splneni jedne z pozadovanych presnosti | ||
dx = 10; % pozadovana presnost v souradnici x | dx = 10; % pozadovana presnost v souradnici x | ||
Řádek 33: | Řádek 35: | ||
dy = dy/5 | dy = dy/5 | ||
end | end | ||
</source> | |||
''' logické OR ''' | |||
* musí platit alespoň jedna podmínka | |||
<source lang=octave> | |||
% iterativni proces skonci az po splneni vsech pozadovanych presnosti | % iterativni proces skonci az po splneni vsech pozadovanych presnosti | ||
dx = 10; % pozadovana presnost v souradnici x | dx = 10; % pozadovana presnost v souradnici x |
Verze z 26. 3. 2017, 04:25
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