Základy algoritmizace a programování

Petr Sváček
Ústav technické matematiky

Cvičení č. 2

Stručně doporučené úlohy pro 2. cvičení

MATLAB: Editor, zápis vlastního programu (skriptu). Příkaz vstupu a výstup. Cyklus. Operace s prvky vektorů/matic a operátory pro práci po složkách. Podmíněnný příkaz. Příkazy load a save


  1. Zápis jednoduchého programu pro výpočet hodnoty výrazu (modifikace)
    a) Otevrete editor, zapiste dole uvedenou sekvenci prikazu, ulozte pod nazvem napr. mujskript.m. Skript spustte.
    b) Upravte pro vypocet objemu rotacniho kuzele.
    c) Upravte pro vypocet obsahu plaste daneho valce

    Uzivane prikazy:
    
    R = 2;
    h = 3;
    V = pi * R*R*h;
    
    disp('Objem valce je');
    
    disp(V);
    
    
    

  2. Podmíněnný příkaz (kvadraticka rovnice)

    a) Zkuste help if. b) Modifikujte tak, aby skript načetl koeficienty kvadratické rovnice a,b,c a spočítal kořeny.
    c) Doplňte program tak, aby fungoval i pro komplexní kořeny.
    d) Na začátku programu vyšetřete případ nulového koeficientu a.

    Uzivane prikazy:
       a=input('Koef a?');
    
       if (a < 0),
          disp('a je zaporne');
       else
          disp('a je kladne');
       end
    

  3. Cyklus zobrazení funkce
    a) Spustte dany skript, zobrazte graf dane funkce.
    b) Vytvorte funkci ktera v intarvalu od -2 do 0 je dana jako 2, od 0 do 1 jako (2 - x), od 1 do 2 jako 4 - x^2. Zobrazte graf dane funkce.
    c) Do promenne pom přiřaďte [x',y']. Zavolejte save -ascii mojedata.txt pom. Prohlednete soubor pom.txt;
    d) Zkuste prikaz clear, a nasledne zavolejte load mojedata.txt. Prohlednete si promennou mojedata.

    Uzivane prikazy:
      h = 0.01;
      a = -2;
      b = 2;
      n = 400;
      h = (b - a) / (n - 1);
    
      for i = 1:n,
        x(i) = a + (i - 1) * h;
        y(i) = sin(x(i));
      end
    

  4. Cyklus (součet)
    a) Zapiste co delaji prikaz floor, rand.
    b) Zapiste co dela prikaz for.
    c) Doplnte vzorovy skript tak, aby v promenne S byl po probehnuti cyklu soucet prvku vektoru a (uzitim cyklu, nikoliv fce).
    d) Doplnte vzorovy skript tak, aby do promenne P spocital soucin vsech prvku vektoru a
    e) Upravte pro soucet vsech kladnych, zapornych, urceni poctu kladnych, zapornych, atp.
     n = 10;
     a = floor(20 * rand(n, 1) - 10);
    
     S = 0;
     for i = 1:n,
     end