Professional Documents
Culture Documents
PZAL2 Panus
PZAL2 Panus
2. pednka
Cl pedmtu
Analza a nvrh algoritm
Podmnky absolvovn
Zpoet:
Dochzka 75%
Odevzdan lohy v prbhu semestru bude
upesnno na cviench s min. spnost
60%.
Zvren zpotov test s min. spnost
60%.
Nhradn podmnky:
Opravn zvren test s min. spnost
70%
Podmnky absolvovn
Zkouka:
Psemn
teoretick znalosti zskan v prbhu semestru na
pednkch
praktick pklad typov probran na cviench
stn dozkouen
v ppad spn psemn zkouky bude
nsledovat stn dozkouen
Literatura
Zkladn literatura:
Virius: Zklady algoritmizace. VUT, Praha 1995.
urkov, D., Dvorsk, J., Schodkov, E.: Zklady
algoritmizace. Elektronick uebn opora VBTechnick univerzity Ostrava.
Knuth, D.: Umn programovn-1. dl Zkladn
algoritmy. Cpress, Praha, 2008
Doplkov literatura:
Wirth, N.: Algoritmy a truktry dajov. Alfa 1975.
Anany V. Levitin.: Introduction to the Design and
Analysis of Algorithms. Addison-Wesley, 2003.
Algoritmus - nzev
Muhammad ibn Ms AlChwrizm (780-850)
Hisab al-debr val-muquabala
(Vda o rekonstrukci a
vzjemnm ruen) - jaksi
prvopotky algebraickho
studia rovnic. Z nzvu knihy
se vyvinul pojem algebra, ze
jmna autora je odvozen
pojem algoritmus.
Algoritmus
Algoritmus postup pro een njakho
problmu (lohy)
Zskat poadovan vstup pro jakkoliv
oprvnn vstupn data v konenm ase
PROBLM
ALGORITMUS
VSTUP
POTA
VSTUP
Vlastnosti algoritmu
Konenost
Hromadnost
Elementrnost
Determinovanost
Rezultativnost
Konenost
Poadovan vsledek mus bt poskytnut v
rozumnm ase (pokud by vpoet trval
na nejrychlejm potai nap. jeden
milion let, tko bychom hovoili o
algoritmu een, nemluv o vpotu, kter
by neskonil vbec). Za rozumn lze
povaovat as, kdy nm vsledek vpotu
k nemu bude.
Hromadnost
Vstupn data nejsou v popisu algoritmu
reprezentovna konkrtnmi hodnotami,
ale spe mnoinami, za kterch lze data
vybrat. Pi popisu algoritmu v
programovacm jazyce se to projev tm,
e vstupy do algoritmu jsou oznaeny
symbolickmi jmny
Jednoznanost
(tak elementrnost)
Kad pedpis je sloen z krok, kter na
sebe navazuj. Kad krok meme
charakterizovat jako pechod z jednoho
stavu algoritmu do jinho, piem kad
stav je uren zpracovvanmi daty. Tm,
jak data v jednotlivch stavech algoritmu
vypadaj, mus bt jednoznan ureno,
kter krok nsleduje.
Opakovatelnost, rezultativnost
Opakovatelnost
Pi pouit stejnch vstupnch daj mus
algoritmus dospt vdy k tmu vsledku
Rezultativnost
Algoritmus vdy vede ke sprvnmu
vsledku
Kvadratick rovnice
Hrub formulace:
1. Prove vodn operace
2. Dokud nen konec souboru A, opakuj body
3-5, potom pejdi na bod 6
3. Peti soubor s koeficienty a,b,c
4. Vye kvadratickou rovnici
5. Zapi vsledky do souboru B a vra se k
bodu 2
6. Prove zvren operace.
Kvadratick rovnice
Bod 4 upesnn
4a) Vypoti d = b2 4ac
4b) Je-li d<0, pokrauj bodem 4f, jinak pokrauj bodem
4c
4c) Polo d = d
b d
4d) Rovnice m koeny x1, 2
4ac
4e) Jdi na 5
4f) Polo d = -d
4g) Rovnice m koeny x1, 2 b , id
kde i je imaginrn
4ac
hodnota
Cyklus (iterace)
cyklus s podmnkou na zatku jsou
kroky 2 - 5
Dl algoritmus (podprogram)
Vvojov diagramy
Pehlednj zpis algoritm ne slovn popis.
Sloeny z blok a spojnic.
Znzoruj poad, ve kterm jsou jednotliv
instrukce vykonvny.
Typy blok
Zatek, konec.
Zatek/Konec
Zpracovn pkazu
X:=2
Vstup, vstup
ti/Pi Z
Z=5
Rozhodovn, vtven,
podmnka
Mezn znaky
Zatek
Sekvenn bloky
Vstup nebo Vstup
ti/Zobraz X
Zpracovn
X:=2
Vtven
Vtven
Podmnka2
Podmnka1
Dal znaky
Cyklus
I = 1..N
Nati matici
Pprava
Spojka
Podprogram
Pklad
ZATEK
TI A
Absolutn
hodnota sla
A>0
1) Nati slo
2) Je-li slo vt ne 0
a) Pak vypi slo
b) Jinak nahra slo jeho
Zpornou hodnotou
3) Konec algoritmu
A := -A
PI A
KONEC
Podmnka
Nepln
Podm.
+
Pkaz 1
pln
Podm.
+
Pkaz 1
Pkaz 2
Cykly
S podmnkou:
na konci
na zatku
Podm.
Podm.
DAL I
Pseudokd
Kombinace pirozenho jazyka a
programovacho jazyka
Pesnj ne pirozen jazyk
For, if, while,
for i 0 to n 1 do
cc+i
return c
Zkladn znaky
Piazen, substituce (operace, kterou je
mon provst)
mn; m:=n
nn+1 (n bude nahrazeno za n+1)
nn+1(patn)
Relace rovnosti
m=n
je m rovno n? (podmnka)
Poad
NSD(m,n) - pseudokd
// Vstup: Dv kladn nenulov sla m a n
// Output: Nejvt spolen dlitel sel
man
while n 0 do
r m mod n
mn
nr
return m
NSD(119,544)
1. 119/544; r 119; m 544; n 119
2. 544/119; r 68; m 119, n 68;
3. 119/68; r 51; m 68, n 51;
4. 68/51; r 17; m 51, n 17;
5. 51/17; r 0; konec vsledek je 17
Promnn
nzev promnn
hodnota promnn
typ promnn
Nzev promnn
Typ promnn
jmeno, pocetStudentu,
x, i, n
Text1, Text2, Osoba1, Osoba2
Vloen hodnoty
Text1:=Jindra
read(Text2)
write(Text2)
Typ promnn
Druh ukldanch dat
Text
etzec
Znak
slo
Cel slo
Desetinn sla
Datum
Logick opertor
etzce
String
var Text1: String - a 255 znak
var Text1: String[10]
Text1:=3
Text2:=46
Text3:=Text1+Text2
write(Text3) - -> ???
346
etzce
Char (jednotliv znaky)
Pouze jeden znak
sla
Integer (cel sla)
Longint
-2.147.483.648 a 2.147.483.647
Shortint
-128 a 127
Desetinn sla
Real, Single
mohou obsahovat i cel sla
Operace
Stn, odtn, dlen, nsoben i pro cel
sla
Zbytek po celoselnm dlen MOD
Celoseln podl DIV
Pouze cel sla
Logick operace
Pklady
Prvn tvrzen
Opertor
Druh tvrzen
Vsledek
True
AND
True
True
True
AND
False
False
False
AND
True
False
False
AND
False
False
Pklady
Prvn tvrzen
Opertor
Druh tvrzen
Vsledek
True
OR
True
True
True
OR
False
True
False
OR
True
True
False
OR
False
False
Pklady
3 + (2+5) + (2-(6*4))=3+10+(2-24)
True AND (True OR (False XOR (NOT
True))) = True AND (True OR (False XOR
False))
Pklady
Prvn tvrzen
Opertor
Druh tvrzen
Vsledek
True
XOR
True
False
True
XOR
False
True
False
XOR
True
True
False
XOR
False
False