Tässä tehtävässä harjoitellaan seuraavia asioita:
Tämän tehtävän tarkoituksena on varmistaa, että osaat käyttää
kurssin uutisryhmää. Siksi osa tehtävän tekemiseen tarvittavista
tiedoista on annettu uutisryhmään opinnot.tik.opey
lähetetyssä viestissä. Pääset uutisryhmään esimerkiksi
seuraamalla linkkiä http://news.tky.fi/thread.php?group=opinnot.tik.opey.
(Sama linkki on annettu myös kurssin Noppa-sivun kurssiesitteessä.)
Käynnistä Eclipse kurssin kotisivun ohjeiden mukaan, jos se ei ole jo käynnissä. Tee uusi projekti, jonka nimi on tehtava1_4. Luo sitten tähän projektiin moduuli osakelaskuri ja kirjoita siihen ohjelma, joka suorittaa alla kuvatun tehtävän.
Käyttäjä on myymässä erän osakkeita, jotka hän on hankkinut aikaisemmin.
Sinun tehtävänäsi on kirjoittaa ohjelma, joka laskee, paljonko käyttäjä
saa voittoa osakkeiden myynnistä, kun myyntihinnasta vähennetään osakkeiden
ostohinnan lisäksi osakkeiden välityspalkkio (sekä ostosta että myynnistä)
ja osakkeiden säilytysmaksu pankin arvo-osuustilillä. Osakkeiden
myyntihinta, määrä ja omistusaika kuukausina kysytään käyttäjältä.
Myyntihinta on desimaaliluku, kun taas määrä ja omistusaika ovat
kokonaislukuja.
Osakkeiden ostohinta, välityspalkkio ja säilytysmaksu kuukautta kohti on
kerrottu kurssin uutisryhmään opinnot.tik.opey
lähetetyssä
viestissä "Apua kevaan 2011 tehtavaan 1.4".
Huomaa, että uutisryhmässä annetut hintatiedot ovat eri opiskelijoilla erilaiset. Sinun pitää itse käydä katsomassa uutisryhmän viestistä, mitä arvoja sinun pitää käyttää.
Ole tarkka siitä, että ohjelmasi tulostus on täsmälleen (välimerkkejä
myöten) alla olevan mallin mukainen. Muista erityisesti lisätä
rivinvaihtomerkki raw_input
-käskyissä käyttäjälle
annettavan pyynnön loppuun. (Näin ohjelman tarkastus Goblinilla
sujuu ilman ylimääräisiä ongelmia.)
Huomautus: Python-kielisissä ohjelmissa pystytään kyllä hyvin käsittelemään skandinaavisia aakkosia (å, ä ja ö). "Ääkkösiä" käyttävien ohjelmien Goblin-palautuksissa on kuitenkin helposti ongelmia, jos opiskelija ei ole osannut tehdä kotikoneeseensa oikeita merkistökoodiasetuksia. Tällaisten turhien harmien välttämiseksi tällä kurssilla kirjoitetaan Goblininille palautettavat ohjelmat ilman "ääkkösiä".
Kun olet tallentanut ohjelmasi, aja sitä useaan kertaan
Eclipsen Run->Run as->Python Run
-komennolla ja tarkista,
että ohjelma tulostaa oikeita arvoja.
Palauta sitten Gobliniin tiedosto osakelaskuri.py. Ohjelmasi ei tarvitse
osata varautua virheelliseen syötteeseen (esimerkiksi negatiivisiin
lukuihin tai siihen, että käyttäjä ei ole antanut oikeassa muodossa olevia
lukuja). Jos osakkeiden yhteismyyntihinta on pienempi kuin ostohinta ja kulut
yhteensä, ohjelma tulostaa negatiivisen myyntivoiton (katso toinen esimerkki
alla).
[ohjelman suoritus alkaa] Anna osakkeiden myyntihinta (eur / kpl): 5.5 Anna osakkeiden maara: 210 Anna omistusaika (kk): 5 Osakkeiden myyntivoitto on 77.5 euroa. [ohjelman suoritus päättyy]
[ohjelman suoritus alkaa] Anna osakkeiden myyntihinta (eur / kpl): 5.05 Anna osakkeiden maara: 100 Anna omistusaika (kk): 8 Osakkeiden myyntivoitto on -27.0 euroa. [ohjelman suoritus päättyy]
Värikoodit:
Sininen: Syöte käyttäjältä
Vihreä: Ohjelman tuloste
Punainen: Erityishuomatus: ei tulosteta