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