Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Python: Nopeasti apua koulutehtävään!!!

pauliinaw [18.05.2020 18:43:15]

#

Heipparallaa! Tälläinen harjoitus pitäisi tehdä enkä ollenkaan pääse alkuun mistään suunnasta (vain vähän kokemusta Pythonista). :D Osaisiko joku auttaa alkuun tai mielellään enemmämkin:D?


Harjoitus 11.10
Kirjoita ohjelma, joka ylläpitää yksinkertaista tehtävälistaa. Itse tehtävälista on tallennettuna teksitiedostoon todo.txt, jonka jokainen rivi on oma tehtävänsä. Tiedosto on rakenteeltaan seuraavanlainen

Osta maitoa, 3.9.2017
Koodaa harjoitus 3, 1.9.2017
Mene ajoissa nukkumaan, 12.8.2017
Jokaisesta tehtävästä tallennetaan tehtävän kuvaus ja luontipäivämäärä. Tiedostossa tiedot on erotettu toisistaan pilkulla.

Sisäisesti ohjelma tallentaa tehtävät sanakirjaan, joka on muotoa

{'numero':1,'tehtava':'Tehtävän kuvaus', 'pvm':'pp.kk.vvvv'}
Numero on tehtavaa vastaava rivinumero todo.txt tiedostosta. Tehtävän numeroa ei siis talleteta tiedostoon, vaan se luodaan kun tehtävät luetaan tiedostosta. Kun listaan lisätään uusi tehtävä, ohjelma luo automaattisesti päiväyksen tietokoneen kalenterista ja antaa tehtävälle numeroksi seuraavan vapaan luvun, joka on olemassa olevien tehtävien lukumäärä lisättynä yhdellä. Kun ohjelma lopetetaan, se huolehtii automaattisesti tehtävien tallentamisesta. Kun ohjelma käynnistetään se lukee tehtävät tiedostosta, jos tiedosto on olemassa.

Toteuta ohjelmaan seuraavat aliohjelmat:

avaa_tiedosto(): Avaa todo.txt tiedoston ja lukee tiedoston sisältämät tehtävät sanakirjaan.
tallenna_tiedosto(): Tallentaa sanakirjassa olevat tehtävät todo.txt tiedostoon. Vanha tiedosto korvataan uudella.
lisaa_tehtava(tehtavakuvaus): Luo uuden tehtävän, joka lisätään sanakirjaan.
etsi_tehtavat(paivays): Etsii sanakirjasta kaikki ne tehtävät, jotka on luotu tiettynä päivänä.
poista_tehtava(numero): Poistaa sanakirjasta tehtävän sen numeron perusteella.
listaa_tehtavat(): Tulostaa näytölle kaikki sanakirjan tiedot.
Toteuta ohjelmaan pääohjelma main, jossa on valikkojärjestelmä ohjelman käyttämiseksi:

Tehtävien hallinta
1. Tulosta tehtävät
2. Luo uusi tehtävä
3. Etsi tehtävät
4. Poista tehtävä
5. Lopeta ohjelma.
Anna valintasi: _

peran [18.05.2020 19:39:17]

#

Olethan tutustunut ohjelmointiputkan hyvään pythonoppaaseen.

https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=python3_01

peran [18.05.2020 19:53:23]

#

Siitä kannattaa käydä tarkasti läpi ainakin ...

https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=python3_05

https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=python3_08

https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=python3_11

Sanakirjalla tarkoittaneen rakennetta:

ika = {'peran':20,'taysi-ikainen':18}
ika['peran']
ika['taysi-ikainen']

pauliinaw [18.05.2020 19:54:43]

#

Enpäs ole vielä tutustunut, kiitos vinkistä! :)

jalski [18.05.2020 20:49:40]

#

Koulutehtävien valmiiden ratkaisujen saamiseen tämä on varmaankin väärä paikka...

Silti välillä näitä tehtävänantoja lukiessa ihmetyttää, että miksi sisäinen tallennusmuoto tiedolle on valittu yleensä hölmösti! Miksei tässä tehtävässä tallentaisi sisäisesti tietoa siten, että käyttäisi avaimena vaikka päivien lukumäärää ajanlaskun alusta kyseiselle päiväykselle? Lajittelu ja tehtävien hakeminen kävisi aika tavalla nopeammin!

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta