Tässä tehtävässä harjoitellaan erityisesti seuraavia asioita:
split
-metodin
käyttö.
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ä.
[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