JOENSUUN YLIOPISTO
Tietojenkäsittelytieteen laitos

Ohjelmoinnin alkeet 173104

Harjoitus 5


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

  1. Kirjoita määrittelyt seuraaville Pascal-taulukoille käyttäen hyväksesi joka kohdassa sopivia vakio-, tyyppi- ja muuttujamäärittelyjä
  2. Taulukko Rivi, johon mahtuu 80 merkkiä.
  3. Taulukko PvKulut, johon voidaan tallettaa rahan kulutus kunakin kuukauden päivänä (euroina).
  4. Taulukko AlkuKuu, johon voidaan tallettaa päivien 1-15 kulut (euroina).
  5. Taulukko KKulut, johon voidaan tallettaa kuukausikulut koko vuodelle (euroina).
  6. Taulukko OnVarattu, jossa tieto merkeistä 'A'..'Z', onko merkki jo "varattu" johonkin käyttöön vai ei.
  7. Tee Pascal-ohjelma, joka lukee silmukassa rivin merkkejä näppäimistöltä yksi kerrallaan ja sijoittaa ne merkkitaulukkoon Rivi. Taulukon Rivi määrittelyt voit lainata tehtävästä 1. Taulukkoon sijoittaminen loppuu kun rivinvaihto löytyy tai viimeistään silloin kun taulukkoon Rivi ei enää mahdu merkkejä.

    Rivin lopun löytymisen jälkeen tulostetaan syötetty rivi käänteisessä järjestyksessä, esim.:

    Anna rivi, lopuksi Enter:
    Kukkuu kukkuu[Enteriä painettu]
    Rivi takaperin:
    uukkuk uukkuK
    

  8. Muunna edellä kirjoittamaasi ohjelmaa siten, että taulukkoon Rivi mahtuu useita rivejä (256 merkkiä) ja syötteen loppumerkki voi olla mikä tahansa käyttäjältä kysyttävä merkki. Siten syöte voi käsittää useitakin rivinvaihtoja ennen loppumerkkiä. Lisäksi taulukkoon Rivi luetut merkit tulostetaan näytölle korkeintaan 60 merkin pituisina tulostusriveinä. Rivi voidaan tällä kertaa "taittaa" sanaväleistä piittaamatta.

  9. Kirjoita Pascal-ohjelma, joka selaa merkkitaulukkoon luettua syöttöriviä. Ohjelma tunnistaa etu- (e, i, y, ä, ö) ja takavokaalit isoista ja pienistä aakkosista sekä vain isojen aakkosten osalta konsonantit. Mainittujen lajitteluiden määrät lasketaan ja sijoitetaan sopivaan taulukkoon M.

    Taulukon indekseihin on viitattava ohjelmakoodissa itse keksimäsi luetellun tyypin avulla (Esim. M[etuv]). Käytä merkkien lajittelussa apuna case-lausetta.

    Lopuksi ohjelmasi tulostaa taulukkoon M talletetut lukumäärät sopivien sarakeotsikoiden alapuolelle.

    Voit käyttää ratkaisussa hyväksesi tehtävän 2 tai 3 ohjelmaa.