Kierros 6, tehtävä 2

Lottopallojen laadunvalvonta (200 p)

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

Tee Eclipseen uusi projekti, jonka nimi on tehtava6_2, ja siihen moduuli lottopallot. Kirjoita siihen seuraavan kuvauksen mukainen ohjelma.

Yritys valmistaa lottopalloja. Kukin lottopallo on numeroitu. Pallojen valmistuksen jälkeen pallot punnitaan, ja lasketaan niiden painojen keskiarvo ja keskihajonta. Sellaiset pallot, joiden paino poikkeaa yli yhden keskihajonnan verran keskiarvosta, hylätään ja niiden tilalle valmistetaan uudet pallot. (Jos pallojen painot poikkeavat liikaa toisistaan, lottoarvonta ei ole reilu, vaan jokin luku voi esiintyä arvontatuloksessa selvästi toisia useammin.) Sinun tehtävänäsi on kirjoittaa ohjelma, joka pyytää käyttäjältä eri pallojen painot (oikeastaan massat, mutta ohjelmassa puhutaan painoista puhekielen käytännön mukaisesti) ja ilmoittaa sitten, mitkä palloista pitää hylätä. Tämä ohjelma ei enää käsittele korvaavien pallojen valmistusta ja niiden laadunvalvontaa.

Kirjoita ohjelmaasi seuraavat funktiot:

Kirjoita lisäksi pääohjelma, joka kutsuu edellä kuvattuja funktioita sopivasti niin, että ohjelma toimii edellä kuvatulla tavalla esimerkkiajon mukaisesti. Kirjoita pääohjelma niin, että se myös tulostaa painojen keskiarvon ja keskihajonnan niiden laskemisen jälkeen. Keskiarvo ja keskihajonta tulostetaan kolmen desimaalin tarkkuudella.

Muista jälleen testata ohjelmaasi ajamalla sitä itse Eclipsessä ennen kuin palautat sen Gobliniin. Ohjelman ei tarvitse varautua virheellisiin syötteisiin. Se ei saa kuitenkaan kaatua, jos käyttäjä antaa lottopallojen määräksi nollan. Palauta Gobliniin tiedosto lottopallot.py.

Esimerkkejä ohjelman suorituksesta:

[ohjelman suoritus alkaa]
Kuinka monta lottopalloa tutkitaan?
10
Anna 1. pallon paino (grammaa).
11.8
Anna 2. pallon paino (grammaa).
12.5
Anna 3. pallon paino (grammaa).
14.0
Anna 4. pallon paino (grammaa).
10.2
Anna 5. pallon paino (grammaa).
12.6
Anna 6. pallon paino (grammaa).
12.8
Anna 7. pallon paino (grammaa).
13.46
Anna 8. pallon paino (grammaa).
10.03
Anna 9. pallon paino (grammaa).
13.10
Anna 10. pallon paino (grammaa).
12.87
Painojen keskiarvo on 12.336 g.
Painojen keskihajonta on 1.240 g.
Seuraavat pallot ovat liian kevyita tai painavia:
3
4
8
[ohjelman suoritus päättyy]

[ohjelman suoritus alkaa]
Kuinka monta lottopalloa tutkitaan?
4
Anna 1. pallon paino (grammaa).
11.8
Anna 2. pallon paino (grammaa).
12.2
Anna 3. pallon paino (grammaa).
12.2
Anna 4. pallon paino (grammaa).
11.8
Painojen keskiarvo on 12.000 g.
Painojen keskihajonta on 0.200 g.
Kaikki pallot kelpaavat!
[ohjelman suoritus päättyy]

[ohjelman suoritus alkaa]
Kuinka monta lottopalloa tutkitaan?
0
Painojen keskiarvo on 0.000 g.
Painojen keskihajonta on 0.000 g.
Kaikki pallot kelpaavat!
[ohjelman suoritus päättyy]

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