Kierros 4, tehtävä 1

Toisen asteen polynomi (150 p)

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

Tee Eclipseen uusi projekti, jonka nimi on tehtava4_1. Luo sitten tähän projektiin moduli polynomi ja kirjoita siihen seuraavan kuvauksen mukainen ohjelma.

Kirjoita ohjelmaan funktio laske_arvo, joka pyytää käyttäjältä toisen asteen polynomin a*x**2 + b*x + c kertoimet (kokonaislukuja) sekä muuttujan x arvon (desimaaliluku) ja laskee polynomin arvon käyttäjän antamalla x:n arvolla. Funktio myös tulostaa lasketun arvon.

Kirjoita tämän jälkeen pääohjelma, joka kutsuu laske_arvo-funktiota. Kun funktio on suoritettu kerran, pääohjelma kysyy käyttäjältä, haluaako hän jatkaa ohjelman suoritusta. Jos käyttäjä haluaa jatkaa, hän antaa 1:sen; jos käyttäjä ei halua jatkaa, hän antaa 2:sen. Kirjoita kuitenkin pääohjelma niin, että ohjelma jatkuu aina, kun käyttäjä antaa jonkun muun kokonaisluvun kuin 2. Jos käyttäjä haluaa jatkaa ohjelman suoritusta, funktiota laske_arvo kutsutaan uudelleen. Tätä toistetaan niin kauan, kunnes käyttäjä ei enää halua jatkaa.

Huomaa, että kaikki polynomin tiedot pyydetään ja tulostetaan funktiossa laske_arvo. Funktiolla ei siis ole parametreja eikä se palauta mitään arvoa. Pääohjelmassa ainoastaan kutsutaan funktiota sekä kysytään, haluaako käyttäjä jatkaa ohjelman suoritusta. Lisäksi pääohjelma tulostaa "Ohjelman suoritus päättyy." siinä vaiheessa, kun käyttäjä ei enää halua jatkaa ohjelman suoritusta.

Vinkki: Voit kirjoittaa ensin pyydetyn funktion ja pääohjelman, joka kutsuu pyydettyä funktiota ainoastaan kerran. (Tällaista ratkaisua ei voi vielä palauttaa Goblinille, mutta voit itse testata ohjelman toimintaa ajamalla sitä Eclipsessä.) Kun olet saanut tämän ohjelman toimimaan oikein, lisää pääohjelmaan toistokäsky, joka kysyy, haluaako käyttäjä jatkaa ohjelman suoritusta.

Ole tarkka siitä, että ohjelmasi tulostus on täsmälleen (välimerkkejä myöten) alla olevan mallin mukainen. Palauta Gobliniin tiedosto polynomi.py.

Esimerkki ohjelman suorituksesta:

[ohjelman suoritus alkaa]
Anna toisen asteen polynomin ax**2 + bx + c kertoimet.
Kerroin a:
2
Kerroin b:
4
Vakiotermi c:
5
Missa pisteessa polynomin arvo lasketaan?
-3.0
Polynomin arvo on talloin 11.0
Haluatko jatkaa (1 = kylla, 2 = ei)?
1
Anna toisen asteen polynomin ax**2 + bx + c kertoimet.
Kerroin a:
-2
Kerroin b:
3
Vakiotermi c:
-8
Missa pisteessa polynomin arvo lasketaan?
1.5
Polynomin arvo on talloin -8.0
Haluatko jatkaa (1 = kylla, 2 = ei)?
1
Anna toisen asteen polynomin ax**2 + bx + c kertoimet.
Kerroin a:
1
Kerroin b:
-6
Vakiotermi c:
3
Missa pisteessa polynomin arvo lasketaan?
8.0
Polynomin arvo on talloin 19.0
Haluatko jatkaa (1 = kylla, 2 = ei)?
3
Anna toisen asteen polynomin ax**2 + bx + c kertoimet.
Kerroin a:
1
Kerroin b:
1
Vakiotermi c:
1
Missa pisteessa polynomin arvo lasketaan?
0.78
Polynomin arvo on talloin 2.3884
Haluatko jatkaa (1 = kylla, 2 = ei)?
2
Ohjelman suoritus paattyi.
[ohjelman suoritus päättyy]

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