Kierros 7, tehtävä 1

Merkkijonojen käsittely (150 p)

Tässä tehtävässä harjoitellaan erityisesti seuraavia asioita:

Tee Eclipseen uusi projekti, jonka nimi on tehtava7_1, ja tahan projektiin moduuli keilailutulokset. Kirjoita siihen ohjelma seuraavan ongelman ratkaisemiseen.

Eräässä keilailuturnauksessa käydään ensin alkukilpailut, joissa jokainen kilpailija heittää kolme sarjaa. Yhden sarjan maksimipistemäärä on 300. Tämän jälkeen jatkoon pääsevät ne kilpailijat, joiden kolmen sarjan yhteispistemäärä on vähintään 600. Sinun tehtävänäsi on kirjoittaa ohjelma, joka lukee alkukilpailujen tulokset ja tulostaa sen jälkeen jatkoon päässeiden kilpailijoiden nimet.

Käyttäjä antaa kilpailijoiden tulokset niin, että yhden kilpailijan tulokset annetaan aina samalla rivillä. Nimi (joka voi sisältää välilyöntejä) ja eri sarjojen tulokset on erotettu toisistaan /-merkillä (katso esimerkkiajoja). Kilpailijoiden määrää ei tiedetä etukäteen, mutta käyttäjä lopettaa tietojen syöttämisen antamalla lopuksi yhden tyhjän rivin. Jatkoon päässeiden kilpailijoiden nimet tulostetaan vasta sen jälkeen, kun kaikki tulokset on ensin luettu. Nimet on tulostettava samassa järjestyksessä kuin ne on annettu ohjelmalle.

Ohjelman alussa käyttäjälle annettavat ohjeet kannattaa tulostaa print-käskyllä. Tämän jälkeen suoritustietoja luetaan raw_input-käskyllä, jolle ei ole annettu lainkaan tulostettavaa kehotetta (ei edes rivinvaihtomerkkiä). Voit katsoa mallia esimerkiksi 17.2. pidetyn luennon luentokalvojen puhelinluettelo-esimerkistä.

Voit olettaa, että käyttäjän antama syöte on annetun kuvauksen mukainen ja että annetut tulokset ovat järkeviä. Tätä ei siis tarvitse tarkistaa. Kun ohjelma tulostaa jatkoon päässeiden kilpailijoiden nimet, se tulostaa ensin tekstin "Jatkoon paasevat seuraavat keilailijat:" ja sen jälkeen kunkin jatkoon päässeen kilpailijan nimen omalla rivillään samassa järjestyksessä kuin käyttäjä antoi tulokset ohjelmalle. Jos yhdenkään kilpailijan yhteistulos ei ole tarpeeksi hyvä jatkoon pääsemiseksi, ohjelma tulostaa "Kukaan keilaajista ei paassyt jatkoon."

Ohjelman rakennetta ei ole tässä määrätty sen tarkemmin, vaan saat itse suunnitella, mitä funktioita kirjoitat ohjelmaasi. Älä kuitenkaan kirjoita koko ohjelmaa yhdeksi pääohjelmaksi, vaan käytä myös muita funktioita järkevästi. Käytä listaa jatkoon päässeiden pelaajien nimien tallentamiseen. (Sanakirja ei toimi tämän tehtävän tarkastuksessa oikein, koska sanakirja ei pidä yllä sitä järjestystä, jossa keilailijoiden tiedot on syötetty.)

Testaa ohjelmaasi ajamalla sitä itse monta kertaa ennen kuin palautat sen Gobliniin. Palauta Gobliniin tiedosto keilailutulokset.py.

Huomautus: ohjelmaa on helppo laajentaa niin, että tulokset luetaan tiedostosta. Sitä ei kuitenkaan vaadita tässä tehtävässä.

Esimerkkejä ohjelman suorituksesta:

[ohjelman suoritus alkaa]
Anna keilailijoiden tulokset, yhden keilailijan tulokset
yhdella rivilla. Erota nimi ja sarjojen tulokset /-merkilla
Lopeta tyhjalla rivilla.
Tiina Teekkari/200/150/190
Risto Rakentaja/200/200/200
Anne Arkkitehti/250/202/290
Kimmo Kemisti/100/299/200
Katri Koneistaja/222/188/240

Jatkoon paasevat seuraavat keilailijat:
Risto Rakentaja
Anne Arkkitehti
Katri Koneistaja
[ohjelman suoritus päättyy]

[ohjelman suoritus alkaa]
Anna keilailijoiden tulokset, yhden keilailijan tulokset
yhdella rivilla. Erota nimi ja sarjojen tulokset /-merkilla
Lopeta tyhjalla rivilla.
Kalle Einari Mikkola/150/170/190
Nina Lahtinen/199/102/250
Niksu/227/221/95

Kukaan keilaajista ei paassyt jatkoon.
[ohjelman suoritus päättyy]

Värikoodit:
Sininen: Syöte käyttäjältä
Vihreä: Ohjelman tuloste
Punainen: Erityishuomatus: ei tulosteta