Johdatus tietojenkäsittelytieteeseen 11.11.2004

1.	Miten modulaarisuus auttaa ohjelman rakentamisessa ja ylläpitämisessä? 
	Mitä seikkoja tulee huomioida moduuleja muodostettaessa? Millainen on moduulin esitysmuoto?

2.	a) Selvitä erilaisten toistorakenteiden muoto ja toiminta.

	b) Kirjoita moduuli, joka palauttaa lausekkeen u^v (=u*u*..*u) (v kertaa) arvon, kun parametrissa
	v on jokin positiivinen kokonaisluku ja parametrissa u on mikä tahansa luku.

3.	Eläinlajien evolutionaarinen kehitys voidaan kuvata puurakenteena, jonka solmuja eri eläinlajit
	ovat. Tällöin puun juurena on jokin muinainen kantaeläin, ja lehtinä on nykyisiä tai sukupuuttoon
	kuolleita eläinlajeja.

	a) Oletetaan että puun ariteetti on 2. Kirjoita algoritmimoduuli, joka saa parametrinaan
	evoluutiopuun ja palauttaa eläinlajien lukumäärän puussa. Jos et osaa ilmaista ajatustasi moduulina,
	ilmaise se edes sanallisesti.

	b) Olkoon käytössä joukko erilaisia eläinluokkia tunnistavia algoritmimoduuleja:

		MODULE nisäkäs (eläinlaji) RETURNS totuusarvo
		MODULE matelija (eläinlaji) RETURNS totuusarvo
		jne.

	Kirjoita algoritmimoduuli, joka saa parametrinaan evoluutiopuun (ariteetti=2) ja palauttaa nisäkäslajien
	lukumäärän puussa.