10. Algoritm ja plokkskeem
Iga ülesande lahendamisel oleme eelnevalt kasvõi oma peas läbi mõelnud, kuidas tulemuseni jõuda. Võimalikke (ka õigeid) teid on enamasti mitu. Kui ülesanne on veidi keerulisem, tuleb see eelnevalt lahutada väiksemateks osadeks ning neid eraldi lahendada. Nii toimime ju mitte ainult programmeerimises, vaid ka oma tavapärases elus: et hommikul kooli minna, ärkame, sööme, riietume jne, iga tegevus on omaette ülesanne, mis tuleb enne eesmärgini jõudmist lahendada.
Algoritmide kirjapanekuks on erinevaid võimalusi, üheks ülevaatlikuks variandiks on koostada plokkskeem. Plokkskeem koosneb lahenduskäiku iseloomustavatest sammudest (operatsioonidest) ja neid ühendavatest nooltest, mis näitavad liikumise suunda.
Igal skeemil on üks algus ja üks lõpp.
Tingmärgid:
- Algus ja lõpp on ovaalikujulised;
- Tavalised tegevused kirjutatakse ristkülikute sisse;
- Kasutajaga suhtlus (sisendid ja väljundid) rööpkülikutesse;
- Otsustused (tingimuslaused, hargnemised) on rombikujulised.
Igast plokist saab väljuda üks nool (välja arvatud tingimusest, mille puhul väljub kaks noolt vastavalt pealkirjadega "jah" ja "ei", samuti ei välju lõpust ühtki noolt), siseneda võib rohkem nooli.
Järgnev plokkskeem küsib kasutajalt nime (rööpkülik), omistab muutujale "tervitus" teksti ja nime (ristkülik) ning väljastab muutuja "tervitus" väärtuse (taas rööpkülik):
Tingimuste puhul kasutame rombi, positiivse arvu puhul trükitakse vastav tekst, vastasel juhul ei tehta midagi:
Lisaks eelmisele trükitakse mittepositiivse arvu puhul samuti vastav tekst (lisatud on else-osa):
Mitme variandi puhul (if - elif - else vms) lisame joonisele veel ühe tingimuse:
Tsükli jaoks pole eraldi tingmärki. Järgnev algoritm demonstreerib tsüklit, mis trükib ekraanile 5 korda sõna "Tere", tsüklimuutuja i muutub vahemikus 0 kuni 4:
Algoritmi plokkskeeme saab koostada nii käsitsi kui arvutiprogrammide abiga. Viimase puhul on variantideks näiteks online-programm draw.io (https://www.draw.io/) või töölauaprogramm yED (http://www.yworks.com/en/products_yed_download.html).
Lisamaterjalid
https://courses.cs.ut.ee/2015/progmaa/spring/Main/PARTIAlgoritm
Creative Commons litsentsiga Autorile viitamine + Mitteäriline eesmärk 3.0 Eesti (CC BY-NC 3.0 EE) - https://creativecommons.org/licenses/by-nc/3.0/ee/