wiki:Aliohjelmat
Last modified 9 years ago Last modified on 2010-07-14 16:49:49

Apuja ohjelmointiin » Aliohjelmat

Aliohjelmat eli funktiot ovat ohjelman osia, joista jokainen hoitaa jotain omaa erityistä tehtäväänsä. Voidaan sanoa, että ohjelmat koostuvat aliohjelmista, eli ne ovat ohjelmien rakennuspalikoita. Kun ohjelma voidaan jakaa pienempiin osiin (aliohjelmiin), sen hallinta helpottuu. Muun muassa virheiden jäljittäminen helpottuu, kun ohjelma on jaettu (tarpeeksi pieniin) aliohjelmiin.

Aliohjelmilla on nimi, parametrit ja palautusarvo. Seuraavassa esimerkki aliohjelmasta, joka yhdistää kaksi merkkijonoa.

Aliohjelma koostuu näistä osista:

  • Saantimääre: Voivatko muut ohjelmat käyttää aliohjelmaa. Voi yleensä olla public. Saantimäärettä ei ole pakko kirjoittaa C#:ssa.
  • Palautusarvon tyyppi: esimerkissä String
  • Aliohjelman nimi: esimerkissä Yhdista
  • Parametrit: esimerkissä String jono1, String jono2
  • Runko: aaltosulkujen väliin kirjoitettava ohjelmakoodi

Aliohjelmaa voidaan kutsua pääohjelmasta tähän tapaan, olettaen että String-tyyppiset muuttujat jonot1ja2, jono1 ja jono2 on määritelty ohjelmassa aikaisemmin:

jonot1ja2 = Yhdista( jono1, jono2 );

Palautusarvo ja sen tyyppi

Aliohjelmalta odotettavaa vastausta sanotaan aliohjelman palautusarvoksi. Esimerkiksi aliohjelma SummaaLuvut voisi palauttaa kysyjälle syötetyn kokonaisluvun summan.

Palautusarvon tyyppi kirjoitetaan aina ennen aliohjelman nimeä, ja se kertoo, minkä tyyppistä tietoa aliohjelmasta saadaan ulos.

Esimerkiksi SummaaLuvut-aliohjelman palautusarvon tyyppinä luonnollinen valinta olisi int, tosin periaatteessa double kävisi myös, ja olisi jopa parempi siinä tapauksessa, että aliohjelmalla pitäisi pystyä laskemaan myös desimaalilukuja. Palautusarvoksi on myös mahdollista asettaa erityistyyppi void, jolloin aliohjelma ei palauta mitään.

Parametrit

Aliohjelman nimen perään sulkujen sisällä kirjoitettu lista kertoo sen parametrit, eli mitä aliohjelmalle syötetään. Jokainen parametri koostuu tyypistä ja nimestä. Nämä parametrit ovat käytettävissä aliohjelmassa samaan tapaan kuin tavalliset muuttujat. Jos aliohjelmalle ei halua määrittää parametreja, voi listan jättää tyhjäksi. Sulut on silti jätettävä:

String EiParametreja()
{
}

Yllä olevassa esimerkissä on jätetty myös saantimääre pois, jolloin aliohjelma on automaattisesti ns. private-aliohjelma, eli sitä ei voi käyttää muista ohjelmista käsin. Näin tehdään myös seuraavissa esimerkeissä.

Aliohjelman runko

Merkityksellisin osa aliohjelmassa on sen runko, joka kirjoitetaan aaltosulkujen väliin. Runko voi sisältää mitä tahansa ohjelmointikielen lauseita.

Return-lause

Jos palautusarvon tyypiksi on määritetty jotain muuta kuin void, on itse palautusarvo palautettava aliohjelmasta erityisellä return-lauseella. Return-lauseen käyttö on yksinkertaista: kirjoita vain return ja palautusarvon kanssa samaa tyyppiä oleva muuttuja tai lauseke.

int Summaa( int a, int b )
{
   return a + b;
}

Aliohjelma voi palauttaa muuttujan (kuten yllä olevassa esimerkissä) tai suoraan jonkin arvon, esimerkiksi arvon 2, kun palautusarvon tyyppinä on kokonaisluku (int).

int Kakkonen()
{
    return 2;
}

Attachments