Osakelaskuri (150 p)

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

Taustaa

Tämän tehtävän tarkoituksena on varmistaa, että osaat käyttää kurssin keskusteluryhmää. Siksi osa tehtävän tekemiseen tarvittavista tiedoista on annettu keskusteluryhmään lähetetyssä viestissä. Pääset keskusteluryhmään esimerkiksi seuraamalla linkkiä https://piazza.com/aalto.fi/fall2018/csa1111 (Sama linkki on annettu myös kurssin MyCourses-sivuilla.) Kirjaudu ensimmäisellä kerralla keskusteluryhmän käyttäjäksi valitsemalla "Student" kurssin alta Join as -kohdasta ja painamalla sen jälkeen painiketta "Join Classes". Ryhmään kirjautumiseen tarvitaan Aalto-sähköpostiosoite. Jos sinulla ei ole Aalto-sähköpostia (koskee lähinnä Avoimen yliopiston kautta tulleita opiskelijoita), lähetä sähköpostia kurssin vastuuopettajalle kerttu.pollari-malmi@aalto.fi, niin hän voi lisätä sinut kurssin keskusteluryhmään jollakin toisella osoitteella.

Alkuvalmistelut

Käynnistä Eclipse kurssin kotisivun ohjeiden mukaan, jos se ei ole jo käynnissä. Tee uusi projekti, jonka nimi on assignment1_4. Luo sitten tähän projektiin moduuli, jonka nimi on esimerkiksi "share_calculator" (moduulin nimellä ei ole palautuksen kannalta merkitystä).

Tehtävän kuvaus

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 https://piazza.com/aalto.fi/fall2018/csa1111 lähetetyssä viestissä "Apua syksyn 2018 tehtävään 1.4".

Jos osakkeiden yhteismyyntihinta on pienempi kuin ostohinta ja kulut yhteensä, ohjelma tulostaa negatiivisen myyntivoiton.

Virheiden käsittely

Ohjelman ei tarvitse tarkistaa käyttäjän antamien tietojen mielekkyyttä, vaan voit olettaa käyttäjän antavan vain järkeviä lukuja oikeassa muodossa.

Ohjelman tulostus

Ole tarkka siitä, että ohjelmasi tulostus on sanamuotoja myöten alla olevan mallin mukainen (kirjainten kokoa, rivinvaihtoja, pisteitä, pilkkuja, huuto- ja kysymysmerkkejä ei tarkisteta). Ohjelmassa ei tarvitse eikä pidä käyttää lukujen tulostamisessa tulostuksen muotoilua, vaan tulosta luvut sellaisina kuin print-käsky ne oletusarvoisesti tulostaa. Sinun ohjelmasi voi tällöin tulostaa luvuista eri määrän desimaaleja kuin suoritusesimerkit. Se ei haittaa. Muista myös, että ohjelmasi pitäisi tulostaa eri arvoja kuin suoritusesimerkeissä, koska sinun pitää käyttää eri lähtötietoja.

Palauttaminen

Kun olet kirjoittanut ohjelmasi, aja se monta kertaa eri lähtötiedoilla Eclipsen Run->Run as->Python Run-komennolla ja tarkista, että ohjelman tulostama kokonaishinta on oikein. Palauta sen jälkeen A+:aan tiedosto share_calculator.py.

Kaksi esimerkkiä ohjelman suorituksesta:

(Näissä esimerkeissä on oletettu, että osakkeiden ostohinta on 5.00 eur / kpl, välityspalkkio sekä ostosta että myynnistä 10 eur ja säilytysmaksu 1.50 eur / kk. Sinun pitää niiden sijaan käyttää kurssin keskusteluryhmässä annettuja arvoja, joten ohjelmasi pitää tulostaa eri luku kuin esimerkissä):

[Program execution starts]
Enter the selling price of the shares (eur/share):
5.5
Enter the number of the shares:
210
How many months have you owned the shares?
5
Profit from selling the shares is 77.5 euros.
[Program execution ends]
    

[Program execution starts]
Enter the selling price of the shares (eur/share):
5.0
Enter the number of the shares:
2100
How many months have you owned the shares?
3
Profit from selling the shares is -24.5 euros.
[Program execution ends]
    

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