Tällä rästitehtävällä voit korvata kierroksen 9. Kierros 9 ei ole pakollinen, mutta harjoitustehtävistä ei voi saada arvosanaa 2 parempaa arvosanaa, jos kierrokselta 9 ei ole minimipisteitä. Tällä rästitehtävällä ei voi korvata mitään muuta harjoituskierrosta. Jotta rästitehtävä korvaisi tehtäväkierroksen 9, siitä on saatava vähintään 300 pistettä. Jos saat tästä rästitehtävästä vähintään 300 pistettä, niin tällä tehtävällä korvatun kierroksen pistemääräksi lasketaan harjoitusarvosanaa määrättäessä korvattavan kierroksen minimipistemäärä. Rästitehtävällä ei voi nostaa hyväksytyn kierroksen pistemäärää.
Tee Eclipseen uusi projekti, jonka nimi on tehtava10_4. Luo sitten tähän projektiin moduulit radioisotooppi ja isotooppilaskuri, jotka on selitetty tarkemmin alempana. Tehtävässä siis kirjoitetaan ja palautetaan kaksi eri moduulia, jotka kuuluvat molemmat samaan projektiin.
Tässä tehtävässä kirjoitetaan ohjelma, jolla käyttäjä voi tulostaa radioaktiivisten aineiden tietoja ja tietoja niiden hajoamisesta. Radioaktiivinen aine menettää puolet aktiivisuudestaan puoliintumisajan kuluessa. Jos esimerkiksi isotoopin puoliintumisaika on 4 vuotta, on vain tätä isotooppia sisältävän radioaktiivisen aineen aktiivisuus neljän vuoden kuluttua 50 % alkuperäisestä, kahdeksan vuoden kuluttua 25 % alkuperäisestä ja kahdentoista vuoden kuluttua 12,5 % alkuperäisestä.
Kirjoita moduuliin radioisotooppi luokka Radioisotooppi . Luokkaa käytetään yhden radioaktiivisen isotoopin kuvaamiseen. Luokan olioilla on seuraavat kentät:
Kirjoita sitten luokkaan seuraavat metodit
Aika Aktiivisuus 0.000 h 12000 Bq 4.100 h 6000 Bq 8.200 h 3000 Bq 12.300 h 1500 Bq 16.400 h 750 Bq 20.500 h 375 BqTaulukossa ajalle on varattu 8 merkin, ajan yksikölle 4 merkin ja aktiivisuudelle 8 merkin levyinen kenttä. Lisäksi kenttien välillä on yksi välilyönti. Aika esitetään kolmen desimaalin tarkkuudella. Aktiivisuuteen ei oteta desimaaleja lainkaan mukaan. Käytä siis aktiivisuudelle muotoilukoodia "%8.0f".
Isotooppi: Sn-110, puoliintumisaika: 4.1 hMerkkijonoa muodostettaessa ei käytetä muotoilukoodeja, vaan puoliintumisaika otetaan mukaan Python-tulkin käyttämällä oletustarkkuudella.
Kirjoita moduuliin isotoopilaskuri ohjelma, joka lukee ensin isotooppien tiedot käyttäjän antamasta tiedostosta, luo vastaavat Radioisotooppi-oliot ja tallentaa ne sanakirjaan (avaimena isotoopin tunnus ja arvona koko Radioisotooppi-olio). Sen jälkeen ohjelma antaa käyttäjän valita haluamansa toiminnon (isotoopin tietojen tulostus tai hajoamistaulukon tulostus) niin kauan, että käyttäjä haluaa lopettaa. Tehtävässä 9.3 annettu pituushyppaajia-moduuli tai 23.3.2011 pidetyn luennon luentokalvot voivat antaa sinulle joitain vinkkejä siitä, miten ohjelman jälkimmäisen osan voi toteuttaa. Tiedostossa isotooppien tiedot on annettu niin, että isotoopin tunnus, puoliintumisaika ja puoliintumisajan yksikkö on erotettu toisistaan puolipisteellä. Voit katsoa mallia tiedostosta isotoopit1.txt. Lopuksi ohjelma tulostaa "Ohjelman suoritus paattyy."
Katso tarkemmin esimerkkiajosta, millainen ohjelman tulostuksen pitää olla eri tilanteissa. Moduulissa isotooppilaskuri olevan ohjelman rakennetta ei ole määrätty sen tarkemmin, vaan voit suunnitella sopivan funktiojaon itse. Ohjelmassa pitää kuitenkin olla pääohjelman lisäksi muitakin funktioita, sen pitää lukea isotooppien tiedot tiedostosta ja käyttää Radioisotooppi-olioita ja sanakirjaa isotooppitietojen tallentamiseen. Ratkaisuja tarkistetaan käsin jälkikäteen ja Goblinin antamat pisteet voidaan nollata, jos ratkaisu ei täytä näitä vaatimuksia.
Ohjelman on selvittävä siitä virhetilanteesta, että se ei pysty lukemaan isotooppitietoja käyttäjän antamasta tiedostosta. Tällöin ohjelma tulostaa virheilmoituksen ja sen toiminta päättyy. Voit kuitenkin olettaa, että isotooppitiedosto (jos se on olemassa) on virheetön, ja käyttäjän antama syöte on muutenkin oikeassa muodossa. Ohjelman pitää kuitenkin ilmoittaa, jos sanakirjasta ei löydy sitä isotooppia, jonka tiedot tai hajoamistaulukon käyttäjä haluaa tulostaa.
Jotta voisit testata ohjelmaasi, sinun pitää kopioida tiedosto isotoopit1.txt samaan hakemistoon ohjelmatiedostojesi kanssa. Palauta Gobliniin tiedostot radioisotooppi.py ja isotooppilaskuri.py.
[ohjelman suoritus alkaa] Mista tiedostosta isotooppitiedot luetaan? isotoopit1.txt Isotooppien tiedot luettu Valitse toiminto: 1. tulosta isotoopin tiedot 2. tulosta hajoamistaulukko 3. lopeta 1 Minka isotoopin tiedot tulostetaan? Fr-209 Isotooppi: Fr-209, puoliintumisaika: 3.2 min Valitse toiminto: 1. tulosta isotoopin tiedot 2. tulosta hajoamistaulukko 3. lopeta 1 Minka isotoopin tiedot tulostetaan? Sn-127 Isotooppi: Sn-127, puoliintumisaika: 2.12 h Valitse toiminto: 1. tulosta isotoopin tiedot 2. tulosta hajoamistaulukko 3. lopeta 1 Minka isotoopin tiedot tulostetaan? Pu-239 Isotoopin Pu-239 tietoja ei loydy. Valitse toiminto: 1. tulosta isotoopin tiedot 2. tulosta hajoamistaulukko 3. lopeta 2 Minka isotoopin hajoamistaulukko tulostetaan? Pd-100 Anna aktiivisuus aluksi (Bq). 8400 Aika Aktiivisuus 0.000 d 8400 Bq 3.700 d 4200 Bq 7.400 d 2100 Bq 11.100 d 1050 Bq 14.800 d 525 Bq 18.500 d 262 Bq Valitse toiminto: 1. tulosta isotoopin tiedot 2. tulosta hajoamistaulukko 3. lopeta 2 Minka isotoopin hajoamistaulukko tulostetaan? Mt-268 Anna aktiivisuus aluksi (Bq). 640 Aika Aktiivisuus 0.000 s 640 Bq 0.070 s 320 Bq 0.140 s 160 Bq 0.210 s 80 Bq 0.280 s 40 Bq 0.350 s 20 Bq Valitse toiminto: 1. tulosta isotoopin tiedot 2. tulosta hajoamistaulukko 3. lopeta 2 Minka isotoopin hajoamistaulukko tulostetaan? U-235 Anna aktiivisuus aluksi (Bq). 50000 Isotoopin U-235 tietoja ei loydy. Valitse toiminto: 1. tulosta isotoopin tiedot 2. tulosta hajoamistaulukko 3. lopeta 0 Valitse toiminto: 1. tulosta isotoopin tiedot 2. tulosta hajoamistaulukko 3. lopeta 4 Valitse toiminto: 1. tulosta isotoopin tiedot 2. tulosta hajoamistaulukko 3. lopeta 3 Ohjelman suoritus paattyy. [ohjelman suoritus päättyy]
[ohjelman suoritus alkaa, tiedostoa ei löydy] Mista tiedostosta isotooppitiedot luetaan? toopit.txt Tiedoston lukeminen ei onnistu! Ohjelman suoritus paattyy. [ohjelman suoritus päättyy]
Värikoodit:
Sininen: Syöte käyttäjältä
Vihreä: Ohjelman tuloste
Punainen: Erityishuomatus: ei tulosteta