Základy algoritmizace a programování
Petr Sváček, Luděk Beneš, Olga Majlingová
Ústav technické matematiky
Cviceni č. 5
Zde obsah cvičení jen v provizorní textové podobě, podrobněji viz MOODLE.
1. Jednoduche algoritmy (realizace pomoci cyklu):
a) Zopakujte si nebo si prohlednete napovedu k prikazum for, while, length, if. Prikazy si vyzkousejte.
b) Vytvorte skript, ktery v zadanem poli AA urci soucet prvku. Skript upravte tak aby nalezl nejvetsi prvek (tedy maximum, pouzijte cyklus a podminneny prikaz!) c) Modifikujte tak, aby bylo nalezen take index maxima (pouzijte cyklus a podminneny prikaz!).
d) Modifikujte tak, aby bylo nalezeno minimum i index minima (pouzijte cyklus a podminneny prikaz!)
e) Zjistěte počet prvků větších nebo rovných nule. Vytvorte seznam jejich indexu.
f) Zjistěte počet prvků větších než průměr.
Uzivane prikazy:
AA = round(200 * rand(90,1))-100;
n = length(y);
m = y(1);
if (m < y(2)),
m = y(2);
end
A = [8,2,-1,4,-2,0, -3,4,5];
S = 0;
for i=1:n,
if (A(i) < 0)
end
end
2. Funkce v MATLABu
a) Ulozte dole uvedeny obsah jako soubor mojefunkce.m.
b) Vyzkousejte prikazy help mojefunkce a vypoctete val = mojefunkce(0.2,-0.1);
c) Vyzkousejte co dela prikaz [xx,yy]=meshgrid(-1:0.1:1, -1:0.1:1);. Zobrazte sit mesh(xx,yy,0*xx)
d) Upravte funkci pouzitim operace nasobeni .* misto *. Vypoctete hodnotu funkce mojefunkce v kazdem bode site xx,yy, vysledek ulozte do promenne zz a zobrazte pomoci prikazu mesh nebo surf
Příklad funkce: Soubor mojefunkce.m
function f = mojefunkce(x, y)
% KOMENTAR
%
f = exp(9 - x^2 - y^2);
end
3. Funkce v MATLABu
a) Ulozte kod do souboru spravneho jmena.
b) Vyzkousejte pouziti funkce cast.
c) Vyzkousejte napovedu help cast a upravte navod tak, aby popisoval spravne realizovany algoritmus.
d) Vytvorte funkci, ktera pri zadanem uroceni (rocni urok) vypocita dluznou castku po X letech. Uroky z castky pripisujte dle parametru UROCENI (francouzske, anglicke?) bud po roce, po mesici, nebo po dnech.
function ret = cast(zaklad, procenta)
%
% function ret = cast(zaklad, procenta)
% NAVOD UMISTIT ZDE!
%
ret = zaklad * procenta / 100;
end