Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö

Samankaltaiset esitykset


Esitys aiheesta: "Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö"— Esityksen transkriptio:

1 Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö

2 Yleistä Tehtävä: Tee Javalla StringStats-ohjelma, joka laskee esikäsittelemästään merkkijonosta joitakin tunnuslukuja. Lausekielinen ohjelmointi II -kurssin pakollinen osasuoritus. Työ tehdään yksin. Ideoita voi vaihtaa – koodia ei. Henkilökohtaista ohjausta tarjolla mikroluokissa myöhemmin ilmoitettavina aikoina. Sähköpostilla voi edelleen kysyä. Palautus WETOon todennäköisesti ke Lue tehtävänanto ja palautusohjeet tarkkaan. Lopullinen tehtävänanto ja esimerkkejä julkaistaan tällä viikolla.

3 Merkkijonon esikäsittely
Käyttäjän oletetaan antavan aina syötteenä merkkijonon, jossa on vähintään yksi merkki ja korkeintaan 1000 merkkiä. Merkkijonosta poistetaan ennen tunnuslukujen laskua seuraavat välimerkit: pilkku, piste, puolipiste, kaksoispiste, kysymysmerkki, huutomerkki, yksinkertainen lainausmerkki ('\''), lainausmerkki ('\"'), jakomerkki ('/') ja kaarisulkeet ('(' ja ')'). Oletetaan, että yksi välilyönti seuraa useimmissa tapauksissa edellä mainittuja välimerkkejä. Lisäksi oletetaan, että merkkijonon alussa tai lopussa ei ole välilyöntejä ja että välilyöntejä ei ole peräkkäin. It's a dangerous business, Frodo, going out your door. → Its a dangerous business Frodo going out your door

4 Tunnuslukujen laskeminen
Ohjelma katkoo esikäsitellyn merkkijonon osiksi välilyöntien kohdilta ja laskee: osien lukumäärän, osien pituuksien summan, osien pituuksien keskiarvon kokonaisluvuksi pyöristettynä, lyhimmän osan pituuden, toiseksi lyhimmän osan pituuden, toiseksi pisimmän osan pituuden ja pisimmän osan pituuden.

5 Tunnuslukujen laskeminen
Lyhimmän, toiseksi lyhimmän, pisimmän ja toiseksi pisimmän osan pituudet (min1, min2, max1, max2) ovat samat, kun osia on yksi tai kaikkien osien pituudet ovat samat. Jos osat ovat esimerkiksi "x" ja "x", niin min1 = 1 ja max1 = 1, min2 = 1 ja max2 = 1. Kun osia on vain kahta pituutta, on toiseksi pisimmän osan pituus sama kuin lyhimmän osan pituus ja toiseksi lyhimmän osan pituus sama kuin pisimmän osan pituus. Jos osat ovat esimerkiksi "x" ja "xx", niin min1 = 1, max1 = 2, min2 = 2 ja max2 = 1.

6 Tunnuslukujen laskeminen
Lyhimpien ja pisimpien osien osalta ei huomioida myöhemmin löydettäviä samanpituisia osia. Osien pituuksia vertaillaan pienempi ja suurempi kuin operaattoreilla. Jos osat ovat esimerkiksi "x", "xx", "x" ja "xx", niin min1 = 1 ja max1 = 2 ja min2 = 2 ja max2 = 1, vaikka ensimmäinen ja kolmas osa ja toinen ja neljäs osa ovat samanpituisia.

7 Ohjelman toiminnasta Ohjelma tervehtii käyttäjäänsä tulostamalla kerran merkkijonon ″Hello! I calculate some string statistics.″ Merkkijonoa luettaessa tulostetaan ″Please, enter a string:″ Esikäsitelty merkkijono tulostetaan lainausmerkkien väliin ennen tunnuslukujen tulostamista. Pituuksien keskiarvo lasketaan siten, että tulos on liukuluku, joka pyöritetään kokonaisluvuksi Math-luokan round-operaatiolla.

8 Ohjelman toiminnasta Merkkijonon sovituksen jälkeen ohjelman käyttäjältä tiedustellaan ″Continue (y/n)?″ ja vastaukseksi hyväksytään vain pieni y- tai n-kirjain. Virheeseen reagoidaan tulostamalla ″Error!″. Syöte luetaan uudelleen, jos käyttäjä haluaa jatkaa. Ohjelman loppuessa tulostetaan ″See you soon.″ Kaikki viestit tulostetaan omille riveilleen ja tulosteet päätetään rivinvaihtoon.

9 Esimerkki ohjelman toiminnasta
Hello! I calculate some string statistics. Please, enter a string: It's a dangerous business, Frodo, going out your door. "Its a dangerous business Frodo going out your door" - The number of parts is 9. - The sum of part lengths is 42. - The average length of parts is 5. - The length of the shortest part is 1. - The length of the second shortest part is 3. - The length of the second longest part is 8. - The length of the longest part is 9. Continue (y/n)? k Error! n See you soon.

10 Esimerkki ohjelman toiminnasta
Hello! I calculate some string statistics. Please, enter a string: x "x" - The number of parts is 1. - The sum of part lengths is 1. - The average length of parts is 1. - The length of the shortest part is 1. - The length of the second shortest part is 1. - The length of the second longest part is 1. - The length of the longest part is 1. Continue (y/n)? y

11 Esimerkki ohjelman toiminnasta
Please, enter a string: x xx "x xx" - The number of parts is 2. - The sum of part lengths is 3. - The average length of parts is 2. - The length of the shortest part is 1. - The length of the second shortest part is 2. - The length of the second longest part is 1. - The length of the longest part is 2. Continue (y/n)? n See you soon.

12 Muuta Taulukot ja Javan API:n edistyneemmät ohjelmointitekniikat on kielletty, jotta noviisit eivät käyttäisi tuntemattomia tekniikoita. API-luokkien operaatioista sallittuja ovat System.out.println ja print, String-luokan length- ja charAt-, equals-operaatiot ja Math-luokan round-operaatio. Muita API-operaatioita ei saa käyttää. Lue syötteet In-luokan avulla. Kysy ohjaajalta, jos olet epävarma. Noudata hyvää ohjelmointitapaa. Testaus WETOssa julkisilla ja salaisilla testeillä. Arvostelu: hylätty tai hyväksytty. Hylätyn työn saa korjata.


Lataa ppt "Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö"

Samankaltaiset esitykset


Iklan oleh Google