Evtek TM06S Hannu Laine Algoritmit ja tietorakenteet Syksy 2008 Tehtävä 1. (Tietojen ja toimintojen abstraktio) Aika tiettynä päivänä ilmaistaan tunteina ja minuutteina (keskiyöstä laskettuna). Kirjoita ohjelma, joka lukee kaksi aikaa (jossa siis kummassakin tunnit ja minuutit), jotka tulkitaan olevan samalta vuorokaudelta. Toinen aika on tietyn prosessin alkamisaika ja toinen saman prosessin loppumisaika. Aikoja ei välttämättä syötetä järjestyksessä alkamisaika ja loppumisaika, vaan missä järjestykses- sä tahansa. Siksi ohjelma aluksi selvittää, kumpi aika on aikaisempi. Seuraavaksi ohjelma tulostaa ajat oikeassa järjestyksessä eli ensin alkamisajan ja sitten loppumisajan. Tehtävässä pitää käyttää toimintojen ja tietojen abstraktiota. Funktiot pitää saada mahdollisimman yleisiksi (uudelleenkäytettäviksi). Selkeitä tehtäväkuvauksesta näkyviä osatehtäviä ovat ainakin 1) ajan lukeminen, 2) kahdesta ajasta aikaisemman selvittäminen ja 3) ajan tulostaminen. Huomautus 1. Kahden ajan vertailuun suositellaan tehtäväksi funktio compare_times, jolle annetaan parametrina kaksi aikaa ja joka palauttaa arvon -1, jos ensimmäisenä annettu aika on pienempi (aikaisempi) arvon 0, jos ajat ovat samoja arvon 1, jos ensimmäisenä annettu aika on suurempi (myöhäisempi) Huomautus 2. Etene pienin askelin. Kannattaa ensin kirjoittaa vain funktiot ajan lukemiseen ja ajan tulostamiseen ja testata ne erikseen. Sen jälkeen edetään vertailufunktioon.