Demotehtävät 1A TIEA241 Automaatit ja kieliopit Demotilaisuudet pidetään 10.–11.11.2015. Tarkista ajat ja paikat Korpista. Demohyvitysjärjestelmä on selostettu kurssin verkkosivustossa. Tähdellä (?) merkityt tehtävät ovat erityisen suositeltuja. Mahdolliset muut tehtävät ovat lisätehtäviä, jotka otetaan huomioon tehdyissä tehtävissä mutta ei tehtävien kokonaismäärää laskettaessa. Näin yli 100 % demohyvitys on periaatteessa mahdollinen. Tässä tehtäväpaperissa on 1 sivua. ?1. Laadi regexp, jonka avulla egrep-ohjelma löytää tekstitiedostosta kaikki (a) vähintään kolme ääkköstä (å, ä, ö) sisältävät rivit (b) HTTP-urlin sisältävät rivit (älä kuitenkaan tarkista urlin muodollista oikeellisuutta) (c) HTTP- tai HTTPS-urlin sisältävät rivit (älä kuitenkaan tarkista urlin muodollista oikeellisuutta) (d) Java-kommentin aloittavat tai lopettavat rivit Testaa ne egrep-ohjelmalla. ?2. Regexpin alkuun voidaan lisätä sirkumfleksi (^) tarkoittamaan rivin alkamista. Vastaavasti regexpin loppuun voidaan kirjoittaa dollarimerkki ($) merkitsemään rivin loppua. Näin regexp ^42$ löytää täsmälleen ne rivit, jotka sisältävät luvun 42 eikä mitään muuta. Rivinvaihtomerkkiä ei lasketa rivin osaksi. Kirjoita regexp, jonka avulla egrep-ohjelma löytää tekstitiedostosta kaikki (a) tyhjät rivit (b) rivit, joilla on täsmälleen yksi merkki (c) rivit, joissa ei esiinny ääkkösiä Testaa ne egrep-ohjelmalla. ?3. Laadi Java-kielellä tai muulla valitsemallasi ohjelmointikielellä1 , käyttämättä regexpejä tai mitään vastaavaa tekniikkaa, ohjelma, joka lukee tiedoston ja tulostaa siitä kaikki ne rivit, jotka egrepohjelma tulostaisi regexpillä (kissa|koira)+kouluttajat?.2 Koeta tehdä ohjelmastasi mahdollisimman helppolukuinen. Testaa se. ?4. Tutustu Java-kielen regexp-kirjastoon java.util.regex tai jonkin muun valitsemasi kielen vastaavaan kirjastoon3 ja laadi edellisessä tehtävässä kuvattu ohjelma tällä kertaa regexp-kirjastoa hyväksi käyttäen. Koeta tehdä ohjelmastasi mahdollisimman helppolukuinen. Testaa se. 1 Huolehdi, että ohjelmasi voidaan kääntää ja testata demosalissa. Piste ei tässä tapauksessa sisälly regexpiin. 3 Huolehdi, että ohjelmasi voidaan kääntää ja testata demosalissa. 2 1
© Copyright 2024