Kotisivu | Edellinen sivu | Ylös | Seuraava sivu


14.2 Algoritmit ja tietokoneohjelmat


Edellä kävi ilmi, että tietokoneen toimintaa ohjaavat erilaiset tietokoneohjelmat. Tietokoneohjelma"-käsitteen ymmärtäminen on käyttäjälle vähintään yhtä tärkeää, kuin jonkinlainen kuva tietokoneen sähköisestä rakenteesta.

Olennaisinta tietokoneen toiminnan kannalta on kuitenkin ymmärtää käsite algoritmi.


Mikä on algoritmi?

J. G. Brookshear: "Vapaamuotoisesti sanottuna algoritmi on joukko ohjeita, jotka ohjaavat tehtävän suorittamista."

(J. G. Brookshear: "Tarkemmin, algoritmi on äärellinen joukko täsmällisiä, suoritettavissa olevia ohjeita, jotka ohjaavat päättyvää tehtävän suoritusta.")

Koska algoritmin käsite on näin laaja, eivät algoritmit liity yksinomaan pelkästään tietokoneisiin.

  • Esim. keittokirja on itse asiassa kokoelma algoritmeja, joita seuraamalla kokkaamisen pitäisi onnistua.
  • Vastaavasti koottavan kirjahyllyn mukana pitäisi tulla algoritmi, jonka avulla palasista saa koottua toimivan kirjahyllyn (mutta käytännössä...)

Algoritmeja ovat siis kaikki täsmälliset suoritusohjeet. Algoritmin ei tarvitse selittää "miksi", vaan ainoastaan "miten".

Esimerkkinä lukujonon järjestysalgoritmi:

  • Lukuja käsitellään vasemmasta reunasta alkaen oikealle päin.
  • Mikäli luvun vasemmalla puolen oleva luku on pienempi kuin luku itse, ei mitään tarvitse tehdä ja siirrytään seuraavaan lukuun, muuten siirretään lukua vasemmalle suuruusjärjestyksen mukaiselle paikalle.
  • Käsiteltävän luvun vasemmalla puolen olevat luvut ovat aina keskenään järjestyksessä!
i <- 2;
Toistetaan niin kauan kuin i <= jonon pituus {
    j <- i;
    Toistetaan niin kauan kuin j > 1 ja jono[j-1] > jono[j] {
         vaihda jono[j-1] ja jono[j];
	 j <- j-1;
    }
    i <- i+1;
}

Algoritmeja opiskellaan varsinaisesti vasta kurssilla 81120 Tietorakenteet ja algoritmit.


Mikä on tietokoneohjelma?

Tietokoneohjelma esittää tietyn algoritmin tietokoneen ymmärtämässä muodossa.

  • Koska tietokone ei ymmärrä ihmisten käyttämää kieltä, ei esim. keittokirjaa sellaisenaan voi naputtaa koneeseen ja tehdä kokkausrobottia.
  • Tietokone ei ymmärrä hölkkäsen pöläystä siitä, mitä siihen syötetyllä ohjelmalla pyritään tekemään.
  • Koska tietokone on "tyhmä", tietokoneohjelmassa algoritmin ohjeet täytyy selittää rautalangasta vääntäen erittäin seikkaperäisesti.
  • Suurin osa tietokoneohjelmien virheistä tulee joko siitä, ettei algoritmia ole esitetty tietokoneelle oikein, tai siitä, että koko algoritmi on alkujaankin ollut päin mäntyä.
  • Yleensä algoritmia ei heti alkuun esitetä tietokoneen ymmärtämässä muodossa (siis 0- ja 1-jonona), vaan se kirjoitetaan ensin sopivaan ihmisen luettavaan välimuotoon jotain ohjelmointikieltä käyttäen.
  • Homman ideana on se, että ohjelmointikielellä tehdystä ohjelmasta tietokone osaa itse tehdä sopivan 0- ja 1-jonon.
  • Ohjelmointikielellä tehdyn ohjelman etuna on siis se, että se on sekä ihmisen että koneen "ymmärrettävissä" (konehan ei mitään ymmärrä).



Kotisivu | Edellinen sivu | Ylös | Seuraava sivu
Sanahaku | Hakemisto