2.4.3 Omat funktiot

Minkä tahansa ongelman ratkaisua voidaan useimmiten helpottaa jakamalla alkuperäinen tehtävä useampaan toisistaan riippumattomaan osatehtävään. Mikäli jokin osatehtävistä on yhä liian suuri kerralla ratkaistavaksi, voidaan se jälleen jakaa uusiin osatehtäviin. Lopulta huomataan, että tehtävä itse asiassa koostuu suuresta joukosta yksinkertaisia pikkutehtäviä, joita yhdistelemällä saadaan aikaan alunperin esitetyn ongelman ratkaisu.

Esimerkkinä on käytetty jo useampaan otteeseen ihannepaino-ohjelmaa. Ihannepainon laskenta voidaan jakaa useaan itsenäiseen osaan:

  1. Tulostetaan alkutekstit.
  2. Kysytään käytettävät arvot
    - pituus, paino,
    - tulevaisuudessa ikä, sukupuoli ja ruumiinrakenne,
    - tarkistetaan annettujen arvojen oikeellisuus.
  3. Lasketaan ihannepaino.
  4. Tulostetaan tulokset.

Kukin osatehtävä on huomattavasti yksinkertaisempi kuin alkuperäinen tehtävä, joten ohjelman kirjoittaminen saadaan näin vaivattomammaksi ja itse ohjelmasta tulee jäsennellympi ja paremmin luettava.

Funktio voi kommunikoida ympäristönsä kanssa lähinnä kahdella tavalla: parametrilistan välityksellä sekä paluuarvon avulla. Parametrien välityksellä tieto liikkuu molempiin suuntiin, kun taas paluuarvon välityksellä tieto liikkuu vain funktiosta kutsuvaan ohjelmanosaan.

• Tietoa voidaan viedä kutsuvasta ohjelmanosasta sisään funktioon parametrien välityksellä.
• Tietoa voidaan tuoda funktiosta ulos kutsuvaan ohjelmanosaan paluuarvon välityksellä.
• Tietoa voidaan tuoda funktiosta ulos kutsuvaan ohjelmanosaan myös parametrien välityksellä.