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:
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ä.