Matematika na počítači a Základy programování Základy programování
Zuzana Morávková
Matematika na počítači a Základy programování
Co je to programování?
Zuzana Morávková
Matematika na počítači a Základy programování
Programování Počítačové programování spočívá v umění donutit počítač, aby dělal to, co chcete aby dělal. Což znamená předat počítači posloupnost příkazů, které vedou k dosažení cíle. kuchařský recept: sada instrukcí ingredience (data) posloupnost kroků (proces) Data uložíme do proměnných, a proces popíšeme pomoci algoritmu.
Zuzana Morávková
Matematika na počítači a Základy programování
Historie jediný jazyk, kterému počítač rozumí, se nazývá binární. několik odlišných dialektů - iMac, PC... binární jazyk - pro lidi obtížně čitelný počítačový jazyk - pomocí překladače se přeloží binární podoby příkazy co má dělat počítač na technické úrovni stále velmi složité – i vyřešení malých úkolů dalo hodně práce. počítačové jazyky vyšší úrovně - zjednodušení práce programovací jazyky Fortran Pascal C Java a mnoho dalších Zuzana Morávková
Matematika na počítači a Základy programování
Co je to proměnná?
Zuzana Morávková
Matematika na počítači a Základy programování
Proměnná Proměnná je pojmenované místo v operační paměti počítače. K tomuto místu můžeme přistupovat pomocí jména proměnné. Kromě jména je každá proměnná určena svým datovým typem, který určuje, jaký typ dat můžeme do proměnné uložit.
Zuzana Morávková
Matematika na počítači a Základy programování
Jak se proměnné ukládají do paměti? číslo se převede do dvojkové (binární) soustavy písmeno se pomocí ASCII tabulky převede na číslo
Zuzana Morávková
Matematika na počítači a Základy programování
Zuzana Morávková
Matematika na počítači a Základy programování
Zuzana Morávková
Matematika na počítači a Základy programování
Převod do binární soustavy desítková 0 1 2 3=2+1 4 5=4+1 6=4+2 7=4+2+1 8
8 = 23 0 0 0 0 0 0 0 0 1
4 = 22 0 0 0 0 1 1 1 1 0
2 = 21 0 0 1 1 0 0 1 1 0
1 = 20 0 1 0 1 0 1 0 1 0
binární 0000 0001 0010 0011 0100 0101 0110 0111 1000
1110 (binárně) = 1 · 23 + 1 · 22 + 1 · 21 + 0 · 20 = 8 + 4 + 2 =
= 14 (desítkově) 20 (desítkově) = 16 + 4 = 24 + 22 =
= 1 · 24 + 0 · 23 + 1 · 22 + 0 · 21 + 0 · 20 = = 10100 (binárně) Zuzana Morávková
Matematika na počítači a Základy programování
Sčítání v desítkové soustavě příklad 4
+8 −−− 12 příklad 47
+ 89 −−− 136
Zuzana Morávková
Matematika na počítači a Základy programování
Sčítání binárních čísel příklad 1
+1 −−− 10 příklad 11
+ 10 −−− 101
Zuzana Morávková
Matematika na počítači a Základy programování
Jak se sečte 3+2? 3 + 2(des) = 11 + 10(bin) = 101(bin) = 4 + 1(des) = 5
Zuzana Morávková
Matematika na počítači a Základy programování
Jednotky velikosti informace bit bajt (byte) kilobajt megabajt gigabajt
b B KB MB GB
bit může nabývat dvou stavů 0 a 1 8 bitů; může nabývat 28 =256 stavů 210 = 1 024 bajtů 220 = 1 048 576 bajtů 230 = 1 073 741 824 bajtů
Zuzana Morávková
Matematika na počítači a Základy programování
Co je to algoritmus?
Zuzana Morávková
Matematika na počítači a Základy programování
Algoritmus ”Algoritmus je konečná procedura, která probíhá po striktně daných krocích. Přičemž tento algoritmus přijímá vstupní data a v každém kroku je zcela jasné, jak je s těmito daty nakládáno. Pokud budeme předpokládát, že je algoritmus správný, tak vrací pro každý vstup z množiny vstupu vždy korektní výstup z množiny výstupů.” Proč se vlastně vůbec zabýváme algoritmy a k čemu to je? Chceme znát obecný popis řešení problému, nezávislý na tom, v jakým jazyce nebo zařízení se pak problém bude implementovat (realizovat). Slovo algoritmus poprvé použil Abu Abdullah Muhammad ibn Musa al-Khwarizmi v 9. století.
Zuzana Morávková
Matematika na počítači a Základy programování
Jak lze algoritmy popisovat? Vývojovým diagramem Datově orientované diagramy Verbálním popisem Pseudokódem Programovacím jazykem [implementace] Neuronovvými sítěmi [implementace] Elektrickým obvodem [implementace] Mechanickým zařízením [implementace] http://www.youtube.com/watch?v=nUHbVRSLlEs
Zuzana Morávková
Matematika na počítači a Základy programování
Stručné seznámení s Matlabem
Zuzana Morávková
Matematika na počítači a Základy programování
Proměnné Jméno proměnné obsahuje písmena, číslice, podtržítka začíná písmenem neobsahuje mezery, písmena s diakritikou a jiné znaky rozlišují se velká a malá písmena Hodnota proměnné hodnotu přiřadíme rovnítkem = typ se určí sám, přiřazením hodnoty
Zuzana Morávková
Matematika na počítači a Základy programování
číselné proměnné (double array)
a=4.2306 cisla=[2,5,22,6] Matice=[1.5, 3; 4, -7.3]
jiné typy proměnných
muj_retezec=’Ahoj, jak je’ podminka=a>4 p={’Ahoj’, 9.03 , [2,5]}
Zuzana Morávková
Matematika na počítači a Základy programování
Operace sčítání odčítání násobení dělení mocnina závorky
+ * /
ˆ ( )
priorita
operace
1. 2. 3.
* / + -
ˆ
Konstanty Ludolfovo číslo π = 3.14 . . . nekonečno ∞ neurčitý výraz relativní přesnost 2−52 ≈ 2.22e − 16 největší kladné číslo 21024 ≈ 1.7977e + 308 1022 ≈ 2.2251e − 308 nejmenší kladné číslo 2−√ imaginární jednotka i = −1 Zuzana Morávková
pi inf NaN eps realmax realmin i
Matematika na počítači a Základy programování
Relační operátory Relační operátory je rovno = není rovno 6= je menší < je větší > je menší nebo rovno ≤ je větší nebo rovno ≥
== ˜= < > <= >=
Používají se k porovnání hodnot.
> a=[1 3 3 5 3 4] a = 1 3 3 5 > a==3 ans = 0 1 1 0
3
4
1
0
Zuzana Morávková
Matematika na počítači a Základy programování
Logická proměnná Logická proměnná Může nabývat pouze dvou hodnot: buď 1 (tj. pravda, platí) nebo 0 (tj. nepravda, neplatí)
a=12.5 a = 12.500 a>10 ans = 1 a=[1 3 5 13 0 23 4] a = 1 3 5 13 a>10 ans = 0 0 0 1
Zuzana Morávková
0
23
4
0
1
0
Matematika na počítači a Základy programování
Logická proměnná
a=[1 2 4 12; 4 12 -9 5; 23 4 45 0] a = 1 2 4 12 4 12 -9 5 23 4 45 0 a>10 ans = 0 0 1
0 1 0
0 0 1
1 0 0
Zuzana Morávková
Matematika na počítači a Základy programování
Logické operátory
Logické operátory a (konjunkce) ∧ nebo (disjunkce) ∨ negace ¬
and(a,b) nebo a & b or(a,b) nebo a | b not(a) nebo ˜ a
Logické operace známe z matematiky. A 0 0 1 1
B 0 1 0 1
A∧B 0 0 0 1
A 0 0 1 1
B 0 1 0 1
A∨B 0 1 1 1
Zuzana Morávková
A 0 1
¬A 1 0
Matematika na počítači a Základy programování
Příkaz disp
disp příkaz pro výpis hodnoty proměnné nebo textu
a=12.5 a = 12.5000 disp(a) 12.5000 disp(’Ahoj’) Ahoj
Zuzana Morávková
Matematika na počítači a Základy programování
Rozhodovací blok a cyklus
Zuzana Morávková
Matematika na počítači a Základy programování
Rozhodovací blok
if podmínka 1 blok příkazů 1 end
a=12.5 a = 12.5000 if a>0, disp(’je kladne’), end je kladne
Zuzana Morávková
Matematika na počítači a Základy programování
Rozhodovací blok if podmínka 1 blok příkazů 1 else blok příkazů 2 end
a=12.5 a = 12.5000 if a>0, disp(’je kladne’), else disp(’neni kladne’), end je kladne a=-3 a = -3 if a>0, disp(’je kladne’), else disp(’neni kladne’), end neni kladne
Zuzana Morávková
Matematika na počítači a Základy programování
Rozhodovací blok
if podmínka 1 blok příkazů 1 elseif podmínka 2 blok příkazů 2 ... else blok příkazů 3 end
Zuzana Morávková
Matematika na počítači a Základy programování
Rozhodovací blok
a=-3 a = -3 if a>0, disp(’je kladne’), elseif a<0 disp(’je zaporne’), else disp(’je nula’),end je zaporne a=0 a = 0 if a>0, disp(’je kladne’), elseif a<0 disp(’je zaporne’), else disp(’je nula’),end je nula
Zuzana Morávková
Matematika na počítači a Základy programování
přepínač switch proměnná case hodnota1 blok příkazů 1 case hodnota2 blok příkazů 2 ... otherwise blok příkazů 3 end
Zuzana Morávková
Matematika na počítači a Základy programování
cyklus se známým počtem opakování for řídící proměnná=rozsah hodnot blok příkazů end
> for i=1:10, iˆ2, end ans = 1 ans = 4 ans = 9 ans = 16 ans = 25 ans = 36 ans = 49 ans = 64 ans = 81 ans = 100
Zuzana Morávková
Matematika na počítači a Základy programování
cyklus s podmínkou
while podmínka blok příkazů end
Zuzana Morávková
Matematika na počítači a Základy programování
Řešené příklady
Zuzana Morávková
Matematika na počítači a Základy programování
Řešené příklady jednoduché algoritmy funkce a její volání jednoduché funkce práce s vektorem čísel práce s maticemi čísel
Zuzana Morávková
Matematika na počítači a Základy programování
Jednoduché algoritmy
Zuzana Morávková
Matematika na počítači a Základy programování
Příklady 1
záměna hodnot v proměnných
2
součet čísel
3
největší číslo
4
největší číslo a jeho pozice
5
celočíselné dělení
6
řadící algoritmus
Zuzana Morávková
Matematika na počítači a Základy programování
Příklad 1. záměna hodnot v proměnných
Sestavte algoritmus na záměnu hodnot ve dvou proměnných. a=7
b=12
−→
a=12
b=7
a=7 b=12 pom=b b=a a=pom
Zuzana Morávková
Matematika na počítači a Základy programování
Příklad 2. součet čísel
Sestavte algoritmus na výpočet součtu čísel. 2 + 8 + 1 + 4 = 15
a=[2,8,1,4] s=0 for i=1:length(a) s=s+a(i) end
Zuzana Morávková
Matematika na počítači a Základy programování
Příklad 3. největší číslo
Sestavte algoritmus na nalezení největšího čísla. max(2, 6, 3, 7, 8, 4, 6, 1, 5) = 8
a=[2,6,3,7,8,4,6,1,5] m=a(1) for i=2:length(a) if a(i)>m m=a(i) end end
Zuzana Morávková
Matematika na počítači a Základy programování
Příklad 4. největší číslo a jeho pozice Sestavte algoritmus na nalezení největšího čísla a jeho pozici. (předpokládáme, že největší hodnota se vyskytuje jednou) max(2, 6, 3, 7, 8, 4, 6, 1, 5) = 8, maximální hodnota je na pozici 5
a=[2,6,3,7,8,4,6,1,5] m=a(1) p=1 for i=2:length(a) if a(i)>m m=a(i) p=i end end
Zuzana Morávková
Matematika na počítači a Základy programování
k zamyšlení
Jak se algoritmus změní, bude-li ve vektoru více největších čísel?
Zuzana Morávková
Matematika na počítači a Základy programování
Příklad 5. celočíselné dělení
Sestavte algoritmus na výpočet výsledku a zbytku po celočíselném dělení ba , pro dvě přirozená čísla. 14 4
= 3+
2 4
výsledek 0 1 2 3
(tj. výsledek je 3 a zbytek je 2) zbytek 14 10 6 2
Zuzana Morávková
Matematika na počítači a Základy programování
Příklad 5. celočíselné dělení
a=14 b=4 vysledek=0 zbytek=a while zbytek>=b vysledek=vysledek+1 zbytek=zbytek-b end
V Matlabu je pro výpočet zbytku po celočíselném dělení funkce rem. například rem(14,4)
Zuzana Morávková
Matematika na počítači a Základy programování
Příklad 5. celočíselné dělení Jak lze algoritmus pro celočíselné dělení použít pro zjištění sudosti čísla?
a=14 zbytek=abs(a) while zbytek>=2 zbytek=zbytek-2 end if zbytek==0 disp(’cislo je sude’) end
Zuzana Morávková
Matematika na počítači a Základy programování
Příklad 6. řadící algoritmus
Bubble sort (bublinkové řazení) – seřadí vzestupně čísla http://www.youtube.com/watch?v=lyZQPjUT5B4
Zuzana Morávková
Matematika na počítači a Základy programování
Příklad 7. řadící algoritmus 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
8 8 8 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 8 8 5 5 5 5 5 5 5 5 5 5
5 5 5 5 5 8 8 2 2 2 2 2 2 2 2
2 2 2 2 2 2 2 8 8 6 6 6 6 6 6
6 6 6 6 6 6 6 6 6 8 8 4 4 4 4
4 4 4 4 4 4 4 4 4 4 4 8 8 7 7
7 7 7 7 7 7 7 7 7 7 7 7 7 8 8
Zuzana Morávková
OK OK přehoď
i 1 1
j 1 2
přehoď
1
3
přehoď
1
4
přehoď
1
5
přehoď
1
6
přehoď
1
7
Matematika na počítači a Základy programování
Příklad 7. řadící algoritmus
3 3 1 1 1 1 1 1 1 1 1
1 1 3 3 3 3 3 3 3 3 3
5 5 5 5 5 2 2 2 2 2 2
2 2 2 2 2 5 5 5 5 5 5
6 6 6 6 6 6 6 6 4 4 4
4 4 4 4 4 4 4 4 6 6 6
7 7 7 7 7 7 7 7 7 7 7
8 8 8 8 8 8 8 8 8 8 8
Zuzana Morávková
přehoď
i 2
j 1
OK přehoď
2 2
2 3
OK přehoď
2 2
4 5
OK
2
6
Matematika na počítači a Základy programování
Příklad 7. řadící algoritmus
1 1 1 1 1 1 1 1 1
3 3 3 2 2 2 2 2 2
2 2 2 3 3 3 3 3 3
5 5 5 5 5 5 4 4 4
4 4 4 4 4 4 5 5 5
6 6 6 6 6 6 6 6 6
7 7 7 7 7 7 7 7 7
8 8 8 8 8 8 8 8 8
Zuzana Morávková
OK přehoď
i 3 3
j 1 2
OK přehoď
3 3
3 4
OK
3
5
Matematika na počítači a Základy programování
Příklad 7. řadící algoritmus 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
7 7 7 7 7 7 7 7 7 7 7 7 7 7 7
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
Zuzana Morávková
OK OK OK OK OK OK OK OK OK OK OK
i 4 4 4 4 i 5 5 5 i 6 6 i 7
j 1 2 3 4 j 1 2 3 j 1 2 j 1
Matematika na počítači a Základy programování
Příklad 7. řadící algoritmus
pocet=length(a) for i=1:pocet-1 for j=1:pocet-i if a(j)>a(j+1) pom=a(j) a(j)=a(j+1) a(j+1)=pom end end end
Zuzana Morávková
Matematika na počítači a Základy programování
Příklad 7. řadící algoritmus
pocet=length(a) jeok=0 i=1 while (jeok==0 & i<pocet) jeok=1 for j=1:pocet-i if a(j)>a(j+1) pom=a(j); a(j)=a(j+1); a(j+1)=pom; jeok=0 end end i=i+1 end
Zuzana Morávková
Matematika na počítači a Základy programování
k zamyšlení
Jak funguje tento algoritmus? http://www.youtube.com/watch?v=ROalU379l3U
Zuzana Morávková
Matematika na počítači a Základy programování
Funkce a její volání
Zuzana Morávková
Matematika na počítači a Základy programování
Funkce function [vystup]=jmeno(vstup) vystup je seznam výstupních paremetrů, oddělených čárkou vstup je seznam vstupních paremetrů, oddělených čárkou Příklad
function [S,o]=ctverec(a) % funkce na vypocet obsahu a obvodu ctverce S=aˆ2 o=4*a
Zuzana Morávková
Matematika na počítači a Základy programování
Volání funkce v hlavním okně Matlabu
a=3 [S,o]=ctverec(a)
nebo
x=7 [S,o]=ctverec(x)
nebo
[S,o]=ctverec(9)
nebo
a=3 [obsah,obvod]=ctverec(a)
Zuzana Morávková
Matematika na počítači a Základy programování
Jednoduché funkce
Zuzana Morávková
Matematika na počítači a Základy programování
Příklady 8
Sestavte funkci, která spočítá obsah a obvod čtverce.
9
Sestavte funkci, která spočítá obsah a obvod obdélníka. V případě, že se bude jednat o čtverec, pak tuto informace vypíše.
10
Sestavte funkci, která z poloměru kružnice a délek stran obdélníka zjistí, zda lze kružnici vepsat do obdélníka.
Zuzana Morávková
Matematika na počítači a Základy programování
Příklad 8. obsah a obvod čtverce
Sestavte funkci, která spočítá obsah a obvod čtverce.
function [S,o]=ctverec(a) % Funkce na vypocet obsahu a obvodu ctverce % [S,o]=ctverec(a) % Vstup a...strana ctverce % Vystupy S...obsah % o...obvod S=aˆ2 o=4*a
Zuzana Morávková
Matematika na počítači a Základy programování
Příklad 9. obsah a obvod obdélníka Sestavte funkci, která spočítá obsah a obvod obdélníka. V případě, že se bude jednat o čtverec, pak tuto informace vypíše.
function [S,o]=obdelnik(a,b) % Funkce na vypocet obsahu a obvodu obdelnika % [S,o]=obdelnik(a,b) % Vstup a,b...strany obdelnika % Vystupy S...obsah % o...obvod S=a*b o=2*(a+b) if a==b disp(’je to ctverec’) end
Zuzana Morávková
Matematika na počítači a Základy programování
Příklad 10. kružnice vepsaná Sestavte funkci, která z poloměru kružnice a délek stran obdélníka zjistí, zda lze kružnici vepsat do obdélníka.
b
a r
Zuzana Morávková
Matematika na počítači a Základy programování
Příklad 10. kružnice vepsaná
function kruznice_vepsana_obdelnik(r,a,b) % Funkce na zjisteni kruznice vepsane do obdelnika % kruznice_vepsana_obdelnik(r,a,b) % Vstup a,b...strany obdelnika % r...polomer kruznice if a
Zuzana Morávková
Matematika na počítači a Základy programování
Práce s vektorem čísel
Zuzana Morávková
Matematika na počítači a Základy programování
počet prvků vektoru nebo matice length počet prvků vektoru size počet řádků a sloupc matice
a=[3 8 1 5 2 6 4 7 ] a = 3 8 1 5 2 length(a) ans = 8
6
4
7
A=[1 2 4; 2 0 -4] A = 1 2 4 2 0 -4 [m,n]=size(A) m = 2 n = 3
Zuzana Morávková
Matematika na počítači a Základy programování
speciální vektory a matice zeros vektor nebo matice nul ones vektor nebo matice jedniček
zeros(3) ans = 0 0 0 0 0 0 0 0 0 zeros(1,5) ans = 0 0 0 ones(2,1) ans = 1 1
0
0
Zuzana Morávková
Matematika na počítači a Základy programování
Příklady 11
Sestavte funkci, která v zadaném vektoru a zjistí počet kladných čísel.
12
Sestavte funkci, která v zadaném vektoru a spočítá součet všech kladných čísel.
13
Sestavte funkci, která v zadaném vektoru a spočítá součin všech čísel z intervalu (−4, 0).
14
Sestavte funkci, která v zadaném vektoru a zjistí pozice všech čísel z intervalu h5, 10).
15
Sestavte funkci, která v zadaném vektoru a zjistí počet sudých čísel větších než 6.
16
Sestavte funkci, která v zadaném vektoru a přepíše všechny kladná na číslo 100.
17
Sestavte funkci, která ze zadaného vektoru a vybere do vektoru k všechna kladná a do vektoru z záporná čísla.
18
Sestavte funkci, která v zadaném vektoru a změní znaménko u všech čísel záporných čísel. Zuzana Morávková
Matematika na počítači a Základy programování
Příklad 11. počet kladných čísel
Sestavte funkci, která v zadaném vektoru a zjistí počet kladných čísel. a = (2, 5, −1, 2, 9, 0, 4, −5, −1, 2, 3)
↓ kladná čísla 2, 5, 2, 9, 4, 2, 3 počet kladných
Zuzana Morávková
7
Matematika na počítači a Základy programování
Příklad 11. počet kladných čísel
function [pocet]=pocet_kladnych(a) % Funkce zjisti pocet kladnych cisel % [pocet]=pocet_kladnych(a) % Vstup a...vektor % Vystupy pocet...pocet kladnych pocet=0 for i=1:length(a) if a(i)>0 pocet=pocet+1 end end
Zuzana Morávková
Matematika na počítači a Základy programování
Příklad 12. součet kladných čísel
Sestavte funkci, která v zadaném vektoru a spočítá součet všech kladných čísel. a = (2, 5, −1, 2, 9, 0, 4, −5, −1, 2, 3)
↓ kladná čísla 2, 5, 2, 9, 4, 2, 3 součet kladných
Zuzana Morávková
27
Matematika na počítači a Základy programování
Příklad 12. součet kladných čísel
function [soucet]=soucet_kladnych(a) % Funkce spocita soucet kladnych cisel % [soucet]=soucet_kladnych(a) % Vstup a...vektor % Vystupy soucet...soucet kladnych soucet=0 for i=1:length(a) if a(i)>0 soucet=soucet+a(i) end end
Zuzana Morávková
Matematika na počítači a Základy programování
k zamyšlení
Jak by se algoritmus změnil při výpočtu součinu čísel?
Zuzana Morávková
Matematika na počítači a Základy programování
Příklad 13. součin čísel z intervalu
Sestavte funkci, která v zadaném vektoru a spočítá součin všech čísel z intervalu (−4, 0). a = (2, 5, −1, 2, 9, 0, 4, −5, −1, 2, 3)
↓ čísla z (−4, 0) součin
Zuzana Morávková
− 1, −1 1
Matematika na počítači a Základy programování
Příklad 13. součin čísel z intervalu
function [soucin]=soucin_interval(a) % Funkce spocita soucin cisel % z intervalu (-4,0) % [soucin]=soucin_interval(a) % Vstup a...vektor % Vystupy soucin...soucin cisel z (-4,0) soucin=1 for i=1:length(a) if (a(i)>-4 & a(i)<0) soucin=soucin*a(i) end end
Zuzana Morávková
Matematika na počítači a Základy programování
Příklad 14. pozice čísel z intervalu
Sestavte funkci, která v zadaném vektoru a zjistí pozice všech čísel z intervalu h5, 10). a = (2, 5, −1, 2, 9, 0, 4, −5, −1, 2, 3)
↓ čísla z h5, 10)
5, 9
pozice 2, 5
Zuzana Morávková
Matematika na počítači a Základy programování
Příklad 14. pozice čísel z intervalu
function [pozice]=pozice_z_intervalu(a) % Funkce zjisti pozice cisel % z intervalu <5,10) % [pozice]=pozice_z_intervalu(a) % Vstup a...vektor % Vystup pozice...pozice cisel z <5,10) pozice=[ ] for i=1:length(a) if (a(i)>=5 & a(i)<10) pozice=[pozice,i] end end
Zuzana Morávková
Matematika na počítači a Základy programování
Příklad 15. počet sudých
Sestavte funkci, která v zadaném vektoru a zjistí počet sudých čísel větších než 6. a = (2, 5, −1, 2, 9, 0, 4, −5, −1, 2, 3)
↓ sudá čísla
2, 2, 4, 2
počet sudých
Zuzana Morávková
4
Matematika na počítači a Základy programování
Příklad 15. počet sudých
function [pocet]=pocet_sudych(a) % Funkce zjisti pocet sudych cisel % [pocet]=pocet_sudych(a) % Vstup a...vektor % Vystup pocet...pocet sudych cisel pocet=0 for i=1:length(a) if rem(a(i),2)==0 pocet=pocet+1 end end
Zuzana Morávková
Matematika na počítači a Základy programování
Příklad 16. přepsání čísel
Sestavte funkci, která v zadaném vektoru a přepíše všechny kladná na číslo 100. a = (2, 5, −1, 2, 9, 0, 4, −5, −1, 2, 3)
↓ a = (100, 100, −1, 100, 100, 0, 100, −5, −1, 100, 100)
Zuzana Morávková
Matematika na počítači a Základy programování
Příklad 16. přepsání čísel
function [a]=prepsani(a) % Funkce prepise kladna cisla na 100 % [a]=prepsani(a) % Vstup a...vektor % Vystup a...vektor for i=1:length(a) if a(i)>0 a(i)=100 end end
Zuzana Morávková
Matematika na počítači a Základy programování
Příklad 17. výběr čísel do jiného vektoru
Sestavte funkci, která ze zadaného vektoru a vybere do vektoru k všechna kladná a do vektoru z záporná čísla. a = (2, 5, −1, 2, 9, 0, 4, −5, −1, 2, 3)
↓ k = (2, 5, 2, 9, 4, 2, 3)
Zuzana Morávková
z = (−1, −5, −1)
Matematika na počítači a Základy programování
Příklad 17. výběr čísel do jiného vektoru
function [k,z]=vyber(a) % Funkce vybere do vektoru k kladna cisla a % do vektoru z zaporna % [k,z]=vyber(a) % Vstup a...vektor % Vystup k...kladna cisla % z...zaporna cisla k=[] z=[] for i=1:length(a) if a(i)>0 k=[k, a(i)] elseif a(i)<0 z=[z, a(i)] end end
Zuzana Morávková
Matematika na počítači a Základy programování
Příklad 18. změna znaménka
Sestavte funkci, která v zadaném vektoru a změní znaménko u všech čísel záporných čísel. a = (2, 5, −1, 2, 9, 0, 4, −5, −1, 2, 3)
↓ a = (2, 5, 1, 2, 9, 0, 4, 5, 1, 2, 3)
Zuzana Morávková
Matematika na počítači a Základy programování
Příklad 18. změna znaménka
function [a]=zmena(a) % Funkce zmeni znamenko u zapornych cisel % [a]=zmena(a) % Vstup a...vektor % Vystup a...vektor for i=1:length(a) if a(i)<0 a(i)=-a(i) end end
Zuzana Morávková
Matematika na počítači a Základy programování
Práce s maticí čísel
Zuzana Morávková
Matematika na počítači a Základy programování
Příklady 19
Sestavte funkci, která v dané matici spočítá součty ve sloupcích.
20
Sestavte funkci, která v dané matici na zadaném řádku najde největší prvek.
21
Sestavte funkci, která v dané matici zjistí počet kladných čísel.
22
Sestavte funkci, která v dané matici zjistí pozice kladných čísel mezi prvky na diagonále čtvercové matice.
23
Sestavte funkci, která v dané matici spočítá průměrnou hodnoty prvků na diagonále čtvercové matice.
Zuzana Morávková
Matematika na počítači a Základy programování
Příklad 19. součet ve sloupcích
Sestavte funkci, která v dané matici spočítá součty ve sloupcích.
1 2 0 −1 −2 3 −5 1 3 −6 0 0 2 −1 −5
Zuzana Morávková
0
Matematika na počítači a Základy programování
Příklad 19. součet ve sloupcích
function [soucty]=soucet_sloupce(A) % Funkce spocita soucty ve sloupcich matice % [soucty]=soucet_sloupce(A) % Vstup A...matice % Vystup soucty...soucty ve sloupcich [pocetR,pocetS]=size(A) soucty=zeros(pocetS,1) for j=1:pocetS for i=1:pocetR soucty(j)=soucty(j)+A(i,j) end end
Zuzana Morávková
Matematika na počítači a Základy programování
k zamyšlení
Sestavte funkci, která v dané matici spočítá součty v řádcích.
1 2 0 −1 −2 3 −5 1 3 −6 0 0
Zuzana Morávková
2 −3 9
Matematika na počítači a Základy programování
Příklad 20. největší hodnota v řádku
Sestavte funkci, která v dané matici na zadaném řádku najde největší prvek.
1 2 0 −1 −2 3 −5 1 3 −6 0 0 v prvním řádku ve druhém řádku
Zuzana Morávková
max(1, 2, 0, −1) = 2 max(−2, 3, −5, 0) = 3
Matematika na počítači a Základy programování
Příklad 20. největší hodnota v řádku
function [m]=nejvetsi_v_radku(A,radek) % Funkce spocita soucty ve sloupcich matice % [m]=nejvetsi_v_radku(A,radek) % Vstup A...matice % radek...cislo radku % Vystup m...nejvetsi hodnota v danem radku [pocetR,pocetS]=size(A) m=A(radek,1) for j=2:pocetS if A(radek,j)>m m=A(radek,j) end end
Zuzana Morávková
Matematika na počítači a Základy programování
k zamyšlení
Sestavte funkci, která v dané matici najde největší prvky ve všech řádcích.
1 2 0 −1 −2 3 −5 1 3 −6 0 0
Zuzana Morávková
2 3 3
Matematika na počítači a Základy programování
Příklad 21. počet kladných
Sestavte funkci, která v dané matici zjistí počet kladných čísel.
1 2 0 −1 −2 3 −5 1 3 −6 0 0 kladná čísla 1
2
3
počet kladných čísel
Zuzana Morávková
1
3
5
Matematika na počítači a Základy programování
Příklad 21. počet kladných
function [pocet]=pocet_kladnych(A) % Funkce zjisti pocet kladnych cisel v matici % [pocet]=pocet_kladnych(A) % Vstup A...matice % Vystup pocet...pocet kladnych cisel [pocetR,pocetS]=size(A) pocet=0 for i=1:pocetR for j=1:pocetS if A(i,j)>0 pocet=pocet+1 end end end
Zuzana Morávková
Matematika na počítači a Základy programování
k zamyšlení
Sestavte funkci, která v dané matici zjistí počet nul a počet kladných a počet záporných čísel.
1 2 0 −1 −2 3 −5 1 3 −6 0 0 počet nul 3 počet kladných čísel počet záporných čísel
Zuzana Morávková
5 4
Matematika na počítači a Základy programování
Příklad 22. pozice kladných čísel na diagonále
Sestavte funkci, která v dané matici zjistí pozice kladných čísel mezi prvky na diagonále čtvercové matice.
−1 2 0 −1 −2 3 −5 1 3 −6 0 0 1 7 5 8 na diagonále jsou čísla kladná jsou na pozicích
Zuzana Morávková
−1 3 0 8 2
4
Matematika na počítači a Základy programování
Příklad 22. pozice kladných čísel na diagonále
function [pozice]=pozice_kladnych_diagonala(A) % Funkce zjisti pozice kladnych cisel % na diagonale matice % [pozice]=pozice_kladnych_diagonala(A) % Vstup A...matice % Vystup pozice...pozice kladnych cisel % na diagonale [pocetR,pocetS]=size(A) pozice=[ ] for i=1:pocetR if A(i,i)>0 pozice=[pozice,i] end end
Zuzana Morávková
Matematika na počítači a Základy programování
Příklad 23. průměr na diagonále
Sestavte funkci, která v dané matici spočítá průměrnou hodnoty prvků na diagonále čtvercové matice.
−1 2 0 −1 −2 3 −5 1 3 −6 0 0 1 7 5 8 součet průměr
− 1 + 3 + 0 + 8 = 10 10 = 2.5 4
Zuzana Morávková
Matematika na počítači a Základy programování
Příklad 23. průměr na diagonále
function [prumer]=prumer_na_diagonale(A) % Funkce spocita prumer prvku % na diagonale matice % [prumer]=prumer_na_diagonale(A) % Vstup A...matice % Vystup prumer...prumer cisel na diagonale [pocetR,pocetS]=size(A) soucet=0 for i=1:pocetR soucet=soucet+A(i,i) end prumer=soucet/pocetR
Zuzana Morávková
Matematika na počítači a Základy programování
Grafy
Zuzana Morávková
Matematika na počítači a Základy programování
Graf plot(x,y) fplot(’f’,[a,b])
graf bodů o souřadnicích ( x, y) graf funkce f na intervalu h a, bi
Vykreslíme graf funkce y = x2 na intervalu h−4, 4i
x=-4:0.1:4; y=x.ˆ2; plot(x,y)
x=-4:0.1:4; plot(x,x.ˆ2)
fplot(’xˆ2’,[-4,4])
Zuzana Morávková
Matematika na počítači a Základy programování
Specifikace grafu plot(x,y,’specifikace’) b g r c m y k
modrá zelená červená světlé modrá fialová žlutá černá
. o x + * s d v p h
tečky kroužky křížky × křížky + hvězdičky čtverce kosočtverce trojúhelníky (dolu) pěticípé hvězdy šesticípé hvězdy
: -. --
plná tečkované čerchovaná čárkovaná
fplot(’sin(2*x)’,[-pi,pi],’r:’)
Zuzana Morávková
Matematika na počítači a Základy programování
Příklad t s
1 19
3 17
5 18
7 20
10 16
14 22
15 19
t=[1 3 5 7 10 14 15]; s=[19 17 18 20 16 22 19]; plot(t,s,’h’)
Zuzana Morávková
Matematika na počítači a Základy programování
Více grafů najednou vykreslení grafů do jednoho obrázku nastavením on tuto vlastnost zapneme, off vypneme víceobrázků do jednoho okna
hold
subplot(m,n,k) xi yi
1 9
3 6
7 0
9 32
10 89
x
y = x2 − xe 10 + 1 .
xi=[1 3 7 9 10]; yi=[9 6 0 32 89]; hold on plot(xi,yi,’r*’) fplot(’xˆ2-x*exp(x/10)+1’,[1,10])
Zuzana Morávková
Matematika na počítači a Základy programování
Nastavení grafu axis([x1,x2,y1,y2]) druhou od y1 do y2 axis equal grid title(’text’) xlabel(’text’) ylabel(’text’) legend(’text1’,’text2’)
rozsah os osy v poměru 1:1 zobrazení mřížky do grafu titulek obrázku popis x-ové osy popis y-ové osy legenda ke grafům
axis([0,11,-5,95]) legend(’vysledek experimentu’,’teoreticka hodnota’) title(’Vysledky mereni’) xlabel(’cas’) ylabel(’sledovana velicina’)
Zuzana Morávková
Matematika na počítači a Základy programování
Křivka v 3D
x = sin(t) y = cos(t) z=t
t ∈ h0, 10π i
t=0:pi/50:10*pi plot3(sin(t),cos(t),t)
Zuzana Morávková
Matematika na počítači a Základy programování
Graf funkce dvou proměnných - plocha
z = xe− x
2 − y2
x=-3:0.1:3; y=x; [X,Y]=meshgrid(x,y); Z=X.*exp(-X.ˆ2-Y.ˆ2); mesh(Z)
Zuzana Morávková
Matematika na počítači a Základy programování
Sloupcový graf 52 45 34 27 36
31 32 24 23 35
21 24 13 41 31
A=[52 31 21; 45 32 24; 34 24 13; 27 23 41; 36 35 31] bar(A) % nebo horizontalne barh(A) % nebo 3D vzhled bar3(A)
Zuzana Morávková
Matematika na počítači a Základy programování
Koláčový graf
30 5 12 12
p=[30 5 12 12] pie(p) % nebo 3D vzhled pie3(p) % pridani vyber volba=[0 1 0 0] pie(p,volba) pie3(A,volba)
Zuzana Morávková
Matematika na počítači a Základy programování
Konec
Zuzana Morávková
Matematika na počítači a Základy programování