JOENSUUN YLIOPISTO
Tietojenkäsittelytieteen laitos

Ohjelmoinnin alkeet 173104

Harjoitus 3

20.9.2002


Tuo ohjelmasi harjoituksiin levykkeellä tai Unix-koneelle (cs.joensuu.fi tai cc.joensuu.fi) talletettuna.

  1. Tee Pascal-ohjelma, joka lukee yhdellä read-lauseella päivämäärän muodossa pp kk vvvv, missä pp = on päivä 1..31, kk = kuukausi 1..12 ja vvvv = vuosiluku 1100..2100.

    Luettuaan päivämäärän ohjelman tulee tarkistaa että päivän, kuukauden ja vuoden numeroarvot ovat sallituissa rajoissa.

    Joudut siis tarkistamaan useita asioita syötteistä. Jos virhe löytyy jossakin tarkistuksessa, talleta tieto tästä Boolean-tyyppiseen muuttujaan OliVirhe. Tällainen muuttuja voi saada arvon OliVirhe:=True tai OliVirhe:=False.

    Muista alustaa muuttuja OliVirhe asianmukaisesti ennen virhetarkistuksia!

    Päivien ja kuukausien arvojen looginen yhteensopivuus jätetään tällä kertaa huomiotta.
    Jos tarkistuksessa löytyi virhe, tulostetaan:

    (1 tyhjä rivi)
    Annoit väärän päiväyksen.
    
    ja pyydetään päivämäärä uudestaan. Käytä hyväksesi repeat-until toistorakennetta ja muuttujaa OliVirhe. Lopuksi ohjelma tulostaa hyväksytyn päivämäärän käyttäen erottimena merkkiä "/", eli muodossa pp/kk/vvvv.

  2. Kirjoita Pascal-ohjelma joka kysyy kellonajan muodossa hh min, tarkistaa onko saatu aika mielekäs (päättele itse mielekkyysehdot), pyytää tarvittaessa ajan uudestaan ja muuntaa ajan sekunneiksi vuorokauden alusta lukien.

  3. Kirjoita Pascal-ohjelma joka lukee kaksi mielekästä saman vuorokauden kellonaikaa ja laskee niiden välisen ajan (sekunteina). Käytä hyväksesi edellisen tehtävän ohjelmaa.

  4. Kirjoita Pascal-ohjelma joka kysyy kauppalaskusi hintoja euroina ja laskee ne yhteen jotta voisit verrata kassakoneen laskentatulosta omaasi. Ilmoita ohjelmalle hintatietojen syötön päättymisestä jollakin kauppahintoihin sekaantumattomalla arvolla. Ohjelma tulostaa ostosten lukumäärän ja yhteishinnan sekä markkoina että euroina. Ohjelman pitää toimia järkevästi myös silloin kun annat lopetusluvun jo ensimmäisenä syötteenä. Valitse silmukkarakenne, jota käyttäen ohjelmasta tulee mahdollisimman yksinkertainen.