Mis
on algoritm?
Enne
programmi koostamist mingi ülesande lahendamiseks arvutis on
oluline omada täielikku ettekujutust sellest, millist
ülesannet me lahendame. Oluline on koostada ülesande
lahendamise plaan.
Ülesande lahendamine tähendab üldjuhul teatud tegevuste
teatud järjekorras täitmist. Algoritm määrab ära:
- mida on vaja teha
ülesande lahendamiseks
- millises
järjekorras neid asju tegema peab
Wikipedia ütleb:
Algoritm
on samm-sammuline tegevusjuhis, juhend, eeskiri mingi tegevuse
sooritamiseks või eesmärgi saavutamiseks. Kõige
sagedamini kasutatakse seda terminit matemaatilise ülesande
lahendamiseks mõeldud eeskirja kohta. Algoritmi esitust mingis
formaalses keeles, tavaliselt programmeerimiskeeles või
masinakoodis, nimetatakse programmiks.
Sõna
algoritm pärineb
araabia matemaatiku Abu Ja'far Muhammad ibn Musa Al-Khwarizmi
nimest, kes elas Bagdadis umbes 780 kuni 850
Algoritmi võib kirjeldada ka kui:
- Programmeerimises
– ülesannete lahendamise eeskirjade koostamine arvutile.
- Algoritmiks
nimetatakse eeskirjade kogumit, mis rakendatuna teatud
lähteandmetele viib etteantud järjekorras sooritatud
operatsioonide teostamise määratud tulemuseni.
Lihtsamate
algoritmide näiteks võib tuua: täisarvude liitmine,
lahutamine, korrutamine, jagamine jne.
Algoritmide põhiomadused:
- ühesus - ühesuguste
lähteandmete korral peab algoritmi täitmine viima
ühesugustele lõpptulemustele. Algoritmitäitmise
tulemus ei tohi sõltuda täitjast.
- lõplikkus - lõpliku
arvu sammude järel peab algoritm viima lõpptulemusele
- universaalsus - algoritm peab olema
mõeldud kõikide antud
- klassi
ülessannete lahendamiseks
Algoritmide tüübid
- Lineaarne algoritm - algoritmi
sammude täitmise järjekord ei sõltu vahetulemustest
- Hargnev algoritm - sammude
täitmise järjekord sõltub mingist tingimusest
või vahetulemusest
- Tsükliline algoritm -
algoritmi mingit osa täidetakse korduvalt
Iga
ülesande puhul võib algortimi koostamise võib jagada:
- Ülesande püstitus - määratletakse
kasutada olevad algandmed ning soovitav lõpptulemus;
ülesande püstituse korrektsusest sõltub
ülesandelahendamise edukus
- Ülesande analüüs - ülesande
püstituse täpsustamine, sobiva lahendusmeetodi valimine
- Algoritmi koostamine algoritmkeeles -
koostatakse üldisem algoritm, tuues ära vaid üldisemad
tegevused; edaspidi täpsustatakse algoritmi, kuni on saadud
korrektne algoritm
- Algoritmi kontrollimine - tänapäevani
puudub algoritmi õigsuse üle otsustamiseks hea meetod.
Enimkasutatavam on testimine, st algoritmi täidetakse selliste
algandmete korral, mille puhul on tulemus ette teada
Algoritmide
esitusviisid:
Sammalgoritm - kogu
tegevus jaotatakse teatud lihtoperatsioonideks, mis nummerdatakse ja
kirjutatakse üksteise järele, eeldades, et sammud
täidetakse numbrite järjekorras
Näide: tahvli pesemise algoritm
1. leia
tahvel
2. leia
lapp
3.
võta lapp
4.
nühi tahvlit lapiga
Skeemalgoritm -
algoritmi esitusviis, mille korral samme ei nummerdata, kuid iga sammu
kirjutamist alustatakse uuelt realt. Kokkukuuluvad
st. järjestikku täidetavad read ühendatakse
vasakult suure nurksuluga üheks skeemiks
Plokkskeem - algoritmi
graafiline kujutamine plokkide ja neid ühendavate noolte
abil.
Elemendid:
- Algoritmi algus ja
lõpp
- Sisestus/väljastusplokk
- Töötlusplokk
- Kontrollplokk
Struktuurprogrammeerimise jaoks:
JSP - Jackson
Structured Programming
JSD
- Jackson System Development
- Modelleerimine
- Võrk
- Teostamine
Autor:
Michael A. Jackson
Objekt-orienteeritud programeerimise jaoks:
Unified Modelling
language UML
|