Ohjelman tekeminen koostuu seuraavista vaiheista:
Tietokoneohjelma on sarja niistä toimintaohjeista, joilla tietokone saadaan toimimaan halutulla tavalla.
Ohjelma tehdään jollain ohjelmointikielellä (java, basic, C, fortran). Tietokone tajuaa pelkästään konekieltä, joka koostuu ykkösistä ja nollista. Assembler-kielessä ykköset ja nollat on korvattu muistikkaille (tavuilla).
Korkeamman tason kielissä on käytössä joko tulkki- tai kääntäjäohjelma, joka muuntaa kielen lauseet tietokoneen ymmärtämäksi konekieleksi.
Hyvä ohjelmointikieli on selkeä ja mahdollistaa rakenteisen ohjelmoinnin. Rakenteisessa ohjelmassa on koottu itsenäisistä palasista, joita voidaan käyttää ja testata erikseen. Lisäksi palasia voidaan käyttää hyväksi muissa ohjelmissa. Rakenteisia ohjelmointikieliä ovat mm. pascal, C, fortran.
Nykyään rakenteisen ohjelmoinnin tilalle on ollut tulossa olio-ohjelmointi. Olio-ohjelmoinnissa tehdään ”olioita” jotka toimivat tietyllä tavalla ja joilla on tietty tila. Oliokieliä ovat mm. java, C++, Visual Basic.
Mikäli ohjelma tehdään korkeamman tason kielellä, tarvitaan ohjelman suorittamiseen tulkki tai kääntäjä.
| TULKKI: Ajokäskyn saatuaan tulkkiohjelma ensin tarkistaa, onko ohjelmassa kielioppivirheitä. Sen jälkeen tulkki kääntää ohjelman rivi riviltä mikroprosessorin ymmärtämään muotoon. Tulkittua ohjelmaa ei talleteta, joten ohjelman suorittamista varten pitää tulkin olla koko ajan mukana. |
| KÄÄNTÄJÄ: Kääntäjä tarkistaa aluksi ohjelman kieliopin. Sen jälkeen kääntäjä kääntää koko ohjelman kerralla mikroprosessorin ymmärtämään muotoon. Käännetty ohjelma voidaan tallettaa ja suorittaa myöhemmin ilman kääntäjää. |
Java on tulkattava oliokieli. Kirjoitettu ohjelma talletetaan .java päätteellisenä. Java-ohjelma muutetaan javac-ohjelmalla tavukoodiksi, joka voidaan tulkata java-ohjelmalla.
Koska tietokone on hieman samantyyppinen kuin robotti, niin tutkitaan robotin ohjelmointia. Koska aamulla ollaan hieman kärttyisiä, niin annetaan robotin tehtäväksi keittää aamukahvit.
Robotti on kuitenkin typerä. Se ei ymmärrä kuin joitain peruskomentoja. Niinpä sille annettuja komentoja pitää tarkentaa niin kauan, kunnes se ymmärtää kaikki komennot.
Robotin komento keitä kahvia.
Robotti ei tiedä, miten lisätä vettä. Siispä vaihe lisää vettä kaipaa tarkennusta. Tehdään muutama lisäaskel:
2.1. Ota pannu kouraan.
2.2. Laita pannu hanan alle.
2.3. Laita hana päälle.
2.4. Odota, kunnes pannu on täynnä.
2.5. Laita hana pois päältä.
2.6. Laita pannu keittimen levylle.
Tässäkin ohjelmassa on vielä heikkoja kohtia. Entäpä, jos suodatinpaperit ovat loppu? Entäpä jos kahvinjuojia onkin enemmän?
Oikeassakin ohjelmoinnissa pitäisi pyrkiä samaan, eli vaiheittain tarkentamiseen. Aluksi suunnitellaan ohjelma pääpiirteissään ja sen jälkeen perehdytään tarkemmin vaihe vaiheelta itse ohjelman tekemiseen.
Otetaan esimerkiksi vaikkapa keskiarvon laskenta:
Kysy luvut. Laske lukujen keskiarvo. Tulosta keskiarvo.
Tietokoneelle pitää kertoa tarkemmin kuinka monta lukua kysytään. Keskiarvon laskentakaan ei ole niin yksinkertaista, ensin pitää laskea summa ja se pitää laskea lukujen lukumäärällä. Lopullisesta ohjelmasta voisi tulla seuraavanlainen:
Niin kauan, kunnes käyttäjä kirjoittaa "QUIT" Tulosta: "Anna luku:" Lue käyttäjän antama luku Lisää luku kaikkien lukujen summaan Keskiarvo = summa / lukumäärä Tulosta keskiarvo