Ohjelmoinnin peruskurssi Y1

Samankaltaiset tiedostot
Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

T Ohjelmoinnin perusteet Y (Python). Tentti

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Tietokoneverkot. T Tietokoneverkot (4 op) viimeistä kertaa CSE-C2400 Tietokoneverkot (5 op) ensimmäistä kertaa

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin jatkokurssi, kurssikoe

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Pythonilla. Teemu Sirkiä, 2015

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

ITKP102 Ohjelmointi 1 (6 op)

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

ITKP102 Ohjelmointi 1 (6 op)

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Luento 5. Timo Savola. 28. huhtikuuta 2006

Ohjelmointi 1 C#, kevät 2014, 2. uusintatentti NIMI:

Ohjelmoinnin perusteet Y Python

ITKP102 Ohjelmointi 1 (6 op)

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

Ohjelmoinnin peruskurssi Y1

ITKP102 Ohjelmointi 1 (6 op)

Ohjelmoinnin peruskurssi Y1

Ohjelmointi 2 / 2010 Välikoe / 26.3

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmassa on käytettävä funktiota laskeparkkimaksu laskemaan kunkin asiakkaan maksu. Funktio floor pyöristää luvun lähimmäksi kokonaisluvuksi.

Transkriptio:

Ohjelmoinnin peruskurssi Y1 CSE-A1111 16.11.2016 CSE-A1111 Ohjelmoinnin peruskurssi Y1 16.11.2016 1 / 28

Kertausluento Luennolla käydään läpi tenttivaatimuksia ja vanhoja tenttitehtäviä. Lisäksi luennolla esitellään jatkomahdollisuuksia tämän kurssin jälkeen. Joitakin linkkejä oikean maailman Python-ohjelmiin. CSE-A1111 Ohjelmoinnin peruskurssi Y1 16.11.2016 2 / 28

Esimerkkejä oikean maailman Python-ohjelmista Sivulla http://en.wikipedia.org/wiki/list_of_python_software on lueteltu suuri joukko Pythonilla tehtyjä ohjelmia. Myös sivulla https://www.python.org/about/success/ on kerrottu eri alojen projekteista, joissa on käytetty Pythonia. Voit asentaa matkapuhelimeen (Android, IPhone tai Windows Phone) Python-tulkin. Tällöin voit itsekin kirjoittaa Python-ohjelmia, jotka esim. hakevat haluttua tietoa joltain www-sivulta. (Tietoa voi lukea www-sivulta lähes samaan tapaan kuin tekstitiedostosta.) CSE-A1111 Ohjelmoinnin peruskurssi Y1 16.11.2016 3 / 28

Mitä tämän kurssin jälkeen? Kaikki tällä kalvolla luetellut kurssit ovat mahdollisia heti tämän kurssin jälkeen. CS-A1121 Ohjelmoinnin peruskurssi Y2 (5 op) (kl) Lisää ohjelmointia Pythonilla, mm. suurempi harjoitustyö. Pohja ohjelmoinnin muille jatkokursseille. Kuuluu pakollisena tietotekniikan sivuaineeseen. CS-A1130 Tietotekniikka sovelluksissa (5 op) (kl) Datan analysointia ja visualisointia eri ohjelmoistoilla. Tietoteknisen sovelluksen hankintaprosessi. CS-A1141 Tietorakenteet ja algoritmit Y (5 op) (sl) Tietorakenteita, esim. linkitetyt listat, hakupuut, verkot Algoritmeja, esim. järjestäminen, haku Algoritmin tehokkuuden arviointi Kuuluu pakollisena tietotekniikan sivuaineeseen. ELEC-A7100 C-ohjelmoinnin peruskurssi (5 op) (kl) Ohjelmointia C-kielellä. Oletetaan toisen ohjelmointikielen aikaisempi tuntemus. CSE-A1111 Ohjelmoinnin peruskurssi Y1 16.11.2016 4 / 28

Tentti Ensimmäinen tenttimahdollisuus on pe 2.12. klo 13:00 16:00 Kandidaattikeskuksessa (Otakaari 1) ja Tietotekniikan talossa (Konemiehentie 2). Salijako ilmoitetaan kurssin MyCourses-sivulla viimeistään to 1.12. Noudata salijakoa ja tarkista etukäteen, kumpaan rakennukseen sinun pitää mennä. Tämän jälkeen on vielä neljä muuta mahdollisuutta: Tentit kevätlukukaudella 2017: ke 15.2. ja ke 24.5. Kesätentti (todennäköisesti elokuussa 2017). Syyslukukauden 2017 ensimmäinen tentti (todennäköisesti lokakuussa). Varaa ylimääräistä aikaa tentin päättymisajan jälkeen, sillä tentti ei välttämättä pääse alkamaan tasan ilmoitettuna alkamisaikana. CSE-A1111 Ohjelmoinnin peruskurssi Y1 16.11.2016 5 / 28

Tenttiin ilmoittautumisesta Muista ilmoittautua tenttiin WebOodissa viimeistään viikko etukäteen! Ilmoittautumisaika 2.12. tenttiin päättyy siis 25.11. Tenttiin ei pysty osallistumaan, jos ei ole ilmoittautunut ajoissa, tai ainakaan vastauksia ei tarkisteta. Tämä sääntö on ehdoton. Jälki-ilmoittautuminen esim. sähköpostitse ei ole mahdollista. Tarkista, että ilmoittautuminen näkyy sinulla WebOodissa omissa ilmoittautumisissa. CSE-A1111 Ohjelmoinnin peruskurssi Y1 16.11.2016 6 / 28

Erityisjärjestelyt Jos tarvitset tenttikysymykset ruotsiksi, ilmoita siitä sähköpostitse luennoijalle viimeistään kaksi viikkoa ennen tenttiä, mieluummin jo aikaisemmin. Jos haluat tenttikysymykset englanniksi, riittää että rastitat oikean ruudun tenttiin ilmoittautuessasi. Jos tarvitset erityisjärjestelyjä esim. lukihäiriön tai jonkin vamman vuoksi, lähetä sähköpostia luennoijalle viimeistään kaksi viikkoa ennen tenttiä, mieluummin jo aikaisemmin. CSE-A1111 Ohjelmoinnin peruskurssi Y1 16.11.2016 7 / 28

Järjestelyistä Tentti tehdään kirjoittamalla käsin paperille, koska Aalto-yliopisto ei vielä tarjoa sopivia mahdollisuuksia sähköiseen tenttimiseen näin isolle kurssille. Lisämateriaali tai laskimet eivät ole sallittuja. Tentissä ei jaeta muuta materiaalia itse tentin lisäksi. Opiskelijat, joiden äidinkieli ei ole suomi, saavat halutessaan käyttää sanakirjaa, jos siinä ei ole ylimääräisiä merkintöjä (valvoja tarkistaa). CSE-A1111 Ohjelmoinnin peruskurssi Y1 16.11.2016 8 / 28

Miksi tentillä on niin suuri paino kurssin arvostelussa? Kurssin työmäärästä suurin osa menee harjoitustehtävien tekemiseen. Tentti on lopullinen varmistus sille, että harjoitustehtävät on tehty itse. Jos on tehnyt harjoitustehtävät itse eikä ole saanut liian yksityiskohtaista apua niiden tekemiseen, ovat tentissä vaadittavat taidot yleensä jo hallussa ja tarvitsee korkeintaan muutaman tunnin niiden kertaamiseen. Esimerkiksi viime vuoden kurssin ensimmäisessä tentissä yli 62 % osanottajista sai arvosanan 4 tai 5 ja alle 6 % hylätyn arvosanan. CSE-A1111 Ohjelmoinnin peruskurssi Y1 16.11.2016 9 / 28

Tenttitehtävätyyppejä Koodin ymmärtämistä testaavia tehtäviä, esimerkiksi: Mitä annettu ohjelma tulostaa? Mikä arvo ohjelmassa käytetyllä muuttujalla/muuttujilla on oltava, jotta ohjelma tulostaisi X? Mitä annettu funktio/ohjelma tekee? Mitä virheitä annetussa ohjelmassa on? Selitystehtäviä Esimerkiksi käsitteiden lyhyitä selityksiä. Näitä ei ole joka tentissä ja selitystehtävien osuus tentin maksimipistemäärästä on korkeintaan 20 prosenttia. CSE-A1111 Ohjelmoinnin peruskurssi Y1 16.11.2016 10 / 28

Tenttitehtävätyyppejä, jatkoa Omien ohjelmien ja funktioiden kirjoittaminen, esimerkiksi Kirjoita ohjelma, joka tekee vaaditun asian. Kirjoita funktio, joka saa parametrina tehtävässä mainitut arvot ja palauttaa vaaditun arvon. Olkoon olemassa funktio X, jonka parametrit ja paluuarvo on kerrottu tehtävässä. Kirjoita ohjelma, joka tekee vaaditun asian käyttämällä hyväksi funktiota X. CSE-A1111 Ohjelmoinnin peruskurssi Y1 16.11.2016 11 / 28

Tenttitehtävätyyppejä, jatkoa Ratkaisuja kirjoittaessa voi tarvita esimerkiksi seuraavia asioita: Sijoituskäsky If-käsky Toistokäsky Listojen tai merkkijonojen käsittely Funktion kirjoittaminen (sisältää parametrien ja paluuarvojen käytön) Tiedostosta lukeminen tai tiedostoon kirjoittaminen Poikkeusten käsittely try except-rakenteen avulla. Tentissä tarvitsee käyttää eri poikkeustyypeistä vain kurssilla käytettyjä OSErroria ja ValueErroria. Muita poikkeustyyppejä ei tarvitse osata. CSE-A1111 Ohjelmoinnin peruskurssi Y1 16.11.2016 12 / 28

Tenttitehtävätyyppejä, jatkoa Olio-ohjelmointitehtävä Vastaa vaativuustasoltaan yhteensä harjoitustehtäväkierroksen 9 tehtäviä 2 ja 3. (Kirjoita yksinkertainen luokka ja pääohjelma, joka luo luokan olioita ja kutsuu niille luokan metodeita.) Tällainen tehtävä on joka tentissä ja sen pistemäärä on 25 prosenttia tentin maksimipisteistä. Käytännössä tentistä on vaikea saada arvosanaa 3 tai parempaa, jos ei saa lainkaan pisteitä olio-ohjelmointitehtävästä. (Arvosanan 3 raja on noin 70 prosenttia tentin maksimipistemäärästä.) CSE-A1111 Ohjelmoinnin peruskurssi Y1 16.11.2016 13 / 28

Vanhoja tenttejä Esimerkkejä vanhoista tämän kurssin tenteistä (vanha kurssikoodi CSE-A1111) voi katsoa sivulta www.tenttiarkisto.fi CSE-A1111 Ohjelmoinnin peruskurssi Y1 16.11.2016 14 / 28

Tenttivaatimuksista Kaikki opetusmonisteessa kerrotut asiat kuuluvat tenttivaatimuksiin, paitsi seuraavat asiat: Tulostuksen muotoilu (tenttitehtävissä tulostusta ei tarvitse muotoilla). Monikko Sanakirja Listoja käsittelevistä funktioista, metodeista ja operaattoreista seuraavia ei tarvitse osata ulkoa (jos niitä tarvitaan, ne on annettu tehtävässä): index, insert, remove, sort, sorted, reverse, del. Myöskään sellaisia Pythonin valmiita listoja käsitteleviä funktioita ja metodeita ei tarvitse osata, joita ei ole esitelty lainkaan opetusmonisteessa. Merkkijonoja käsittelevistä funktioista ja metodeista seuraavia ei tarvitse osata ulkoa (jos niitä tarvitaan, ne on annettu tehtävässä): index, lower, upper, strip. Myöskään sellaisia Pythonin valmiita merkkijonoja käsitteleviä funktioita ja metodeita ei tarvitse osata, joita ei ole esitelty lainkaan opetusmonisteessa. Tentissä ei vaadita graafisen käyttöliittymän kirjoittamista (esitelty vain luennolla, ei opetusmonisteessa) CSE-A1111 Ohjelmoinnin peruskurssi Y1 16.11.2016 15 / 28

Tenttiin valmistautumisesta ja vastaamisesta Harjoittele tenttiin kirjoittamalla itse pieniä Python-ohjelmia. Harjoittele myös ohjelmien kirjoittamista ilman mallia ja paperille. Ratkaisujen pienistä kirjoitusvirheistä ei yleensä sakoteta, jos niillä ei ole periaatteellista merkitystä ja muusta ratkaisusta näkyy, että vastaava asia on osattu. Poikkeuksena on kuitenkin sisennykset: niiden on erotuttava selvästi ja oltava oikein, koska sisennyksillä on koodin toimintaan ratkaiseva merkitys. Jos sisennyksistä ei saa selvää tai ne puuttuvat, niin se vähentää pisteitä selvästi. Käytä kahden ruudun levyisiä sisennyksiä. Jos joku tehtävä tuntuu liian vaikealta, älä jää liian pitkäksi aikaa tekemään sitä, vaan tee ensin ne tehtävät, jotka osaat. Tee vain se, mitä tehtävässä on pyydetty. Jos tehtävässä pyydetään kirjoittamaan vain funktio, niin pääohjelmaa ei tarvitse kirjoittaa. CSE-A1111 Ohjelmoinnin peruskurssi Y1 16.11.2016 16 / 28

Vanhoja tenttitehtäviä Seuraavilla kalvoilla esitetään esimerkkejä viime ja toissasyksyn kurssien ensimmäisten tenttien tenttitehtävistä. Kalvoilla esitettyjä tehtävänantoja on lyhennetty. Alkuperäisiä tenttejä on tenttiarkistossa. CSE-A1111 Ohjelmoinnin peruskurssi Y1 16.11.2016 17 / 28

Esimerkki syksyn 2014 tenttitehtävästä Mitä seuraava ohjelma tulostaa? (2 p.) def main(): matka = 3100 if matka > 2200: print("cooperin testin tulos on hyva.") elif matka > 2800: print("cooperin testin tulos on erinomainen.") else: print("cooperin testin tulos on huono.") main() CSE-A1111 Ohjelmoinnin peruskurssi Y1 16.11.2016 18 / 28

Esimerkkejä syksyn 2015 tenttitehtävistä Mitä seuraava funktio tekee, kun sille annetaan parametrina positiivisia kokonaislukuja sisältävä lista ja positiivinen kokonaisluku. (5 p.) def mysteeri3(lista, luku): i = 1 tulos = lista[0] while i < len(lista): if lista[i] == lista[i - 1] + luku: tulos += lista[i] else: return -1 i += 1 return tulos CSE-A1111 Ohjelmoinnin peruskurssi Y1 16.11.2016 19 / 28

Esimerkkejä syksyn 2015 tenttitehtävistä Mitä seuraava funktio tekee, kun sille annetaan parametrina positiivisia kokonaislukuja sisältävä lista ja positiivinen kokonaisluku. (5 p.) def mysteeri3(lista, luku): i = 1 tulos = lista[0] while i < len(lista): if lista[i] == lista[i - 1] + luku: tulos += lista[i] else: return -1 i += 1 return tulos Esimerkki täydet pisteet tuovasta vastauksesta: Jos listassa kahden peräkkäisen luvun väli on aina parametrina annettu luku, funktio laskee ja palauttaa listassa olevien lukujen summan. Muussa tapauksessa funktio palauttaa arvon -1. CSE-A1111 Ohjelmoinnin peruskurssi Y1 16.11.2016 19 / 28

Esimerkkejä syksyn 2015 tenttitehtävistä, jatkuu Kolme autovuokraamoa tarjoaa samanlaista autoa vuokralle erilaisilla ehdoilla. Ensimmäinen vuokraamo veloittaa 140 eur / vrk riippumatta autolla ajetuista kilometreistä. Toinen vuokraamo veloittaa 100 eur / vrk. Tähän hintaan sisältyy koko vuokrausaikana 1200 km. Jos kokonaiskilometrit menevät sen yli, pitää asiakkaan maksaa ylimenevistä kilometreistä 8 snt / km. Kolmas vuokraamo veloittaa kahdelta ensimmäiseltä vuorokaudelta 60 eur / vrk ja lisävuorokausilta 40 eur / vrk, mutta niiden lisäksi asiakkaan pitää maksaa 20 snt jokaisesta ajetusta kilometristä. Kaikissa vuokraamoissa asiakkaan pitää lisäksi maksaa tarvittava polttoaine itse. Kirjoita Python-ohjelma, joka kysyy käyttäjältä, kuinka moneksi vuorokaudeksi auto vuokrataan ja montako kilometriä sillä on tarkoitus ajaa yhteensä. Ohjelma laskee ja tulostaa, mistä autovuokraamosta auto kannattaa vuokrata ja mikä tämän vuokraamon kokonaishinnaksi (ilman polttoainetta) tulee. (10 p.) CSE-A1111 Ohjelmoinnin peruskurssi Y1 16.11.2016 20 / 28

Esimerkkejä syksyn 2015 tenttitehtävistä, jatkuu Eräässä yrityksessä työntekijä saa bonusta työntekijän askelmittarin mittaamien päivässä kuljettujen askelten määrän mukaan. Jos yhden päivän askelten määrä on pienempi kuin yhtiön määräämä raja1, ei työntekijä saa tästä päivästä bonuspisteitä. Jos taas päivän aikana kuljettujen askelten määrä on vähintään raja1, mutta pienempi kuin raja2, saa työntekijä päivästä yhden bonuspisteen. Jos askelten määrä on vähintään raja2, saa työntekijä päivästä 2 bonuspistettä sekä lisäksi yhden lisäbonuspisteen jokaista täyttä 1000 askelta kohti, jolla askelten määrä ylittää raja2:n. Kirjoita Python-funktio laske_askelbonukset(askeltiedot, raja1, raja2). Funktio saa ensimmäisenä parametrina listan, joka sisältää erään työntekijän eri päivinä kulkemien askelten määrät kokonaislukuina. Toisena ja kolmantena parametrina on edellä kuvatut rajat. Funktion pitää laskea ja palauttaa työntekijälle eri päiviltä yhteensä kertyvien bonuspisteiden summa. (20 p) CSE-A1111 Ohjelmoinnin peruskurssi Y1 16.11.2016 21 / 28

Esimerkkejä syksyn 2015 tenttitehtävistä, jatkuu Erään seiväshyppykilpailun karsintojen tulokset on tallennettu tiedostoon. Yhden kilpailijan karsintatulos on tallennettu yhdelle riville seuraavasti: rivillä on ensin hyppääjän kilpailunumero, sitten nimi, tämän jälkeen suurin korkeus, jonka kilpailija ylitti karsinnassa ja lopuksi tieto siitä, kuinka monennella yrityksellä kilpailija ylitti tämän korkeuden. Eri tiedot on erotettu toisistaan pilkulla, esimerkiksi: 543,Raphael Holzdeppe,560, 776,U.N. Known,550,2 447,Renault Lavillenie,550,1 Loppukilpailuun pääsevät kaikki ne hyppääjät, jotka ovat ylittäneet vähintään 560 (millä tahansa yrityksellä) ja lisäksi ne hyppääjät, jotka ovat ylittäneet 550 ensimmäisellä yrityksellä. Kirjoita Python-ohjelma, joka pyytää käyttäjältä karsintatulokset sisältävän tiedoston nimen. Ohjelma lukee tulokset tästä tiedostosta ja tulostaa kaikkien loppukilpailuun päässeiden hyppääjien kilpailunumerot ja nimet. (20 p) CSE-A1111 Ohjelmoinnin peruskurssi Y1 16.11.2016 22 / 28

Esimerkkejä syksyn 2015 tenttitehtävistä, jatkuu Kirjoita luokka Kasinopelaaja erään rahapelin pelaajan kuvaamiseen. Pelaaja aloittaa ostamalla käyttöönsä pelimerkkejä. Päästäkseen peliin mukaan pelaajan on asetettava osa hallussaan olevista pelimerkeistä panoksiksi. Pelissä käydään useita korotuskierroksia, joiden aikana pelaajat voivat korottaa panoksiaan. Jos yksi pelaaja korottaa panoksiaan, muiden pelaajien pitää joko korottaa panoksiaan vastaavalla summalla tai luovuttaa. Pelin lopussa voittaja saa kaikkien pelissä vielä mukana olevien pelaajien panokset sekä lisäksi pelin luovuttaneiden pelaajien ennen luovutusta asettamat panokset. Kasino määrää aina jonkun pelaajan olevan pelissä vaarassa, mikä voi kasvattaa tämän pelaajan voittaessa saamien mutta myös hävitessä menettämien pelimerkkien määrää CSE-A1111 Ohjelmoinnin peruskurssi Y1 16.11.2016 23 / 28

Esimerkkejä syksyn 2015 tenttitehtävistä, jatkuu Kasinopelaaja-oliolla on oltava seuraavat kentät: nimi pelimerkit panokset vaarassa Määrittele luokkaan seuraavat metodit init (self, nimi1, merkkeja) kerro_nimi(self) kerro_pelimerkit(self) aseta_vaaraan(self) poista_vaarasta(self) (jatkuu seuraavalla kalvolla) CSE-A1111 Ohjelmoinnin peruskurssi Y1 16.11.2016 24 / 28

Esimerkkejä syksyn 2015 tenttitehtävistä, jatkuu Lisää luokkaan määriteltäviä metodeja: kasvata_panoksia(self, lisapanos) Parametrin täytyy olla positiivinen ja korkeintaan yhtä suuri kuin vapaiden pelimerkkien määrä. Palauttaa True tai False sen mukaan, onnistuuko. luovuta(self) nollaa asetetut panokset. voitto(self, voitetut_panokset, luovutetut_panokset) Siirtää pelaajan omat panokset takaisin vapaina oleviin pelimerkkeihin sekä lisää niihin pelissä voitetut muiden pelaajien panokset. Jos pelaaja on vaarassa, voitetut panokset lisätään kaksinkertaisina. havio(self) Nollaa pelaajan asettamien panosten määrän. Jos pelaaja on vaarassa, häneltä vähennetään lisäksi vapaita pelimerkkejä yhtä paljon kuin mitä hänellä oli asetettuja panoksia, korkeintaan kuitenkin niin paljon kuin pelaajalla on vapaita pelimerkkejä. Metodi palauttaa arvonaan tiedon siitä, kuinka monta pelimerkkiä pelaajalta yhteensä vähennettiin str (self) palauttaa merkkijonon, joka sisältää pelaajan nimen, vapaiden pelimerkkien määrän, pelaajan tällä hetkellä asettamien panosten määrän ja joko tekstin on vaarassa tai ei ole vaarassa. CSE-A1111 Ohjelmoinnin peruskurssi Y1 16.11.2016 25 / 28

Esimerkkejä syksyn 2015 tenttitehtävistä, jatkuu Kirjoita lisäksi pääohjelma, joka tekee seuraavat asiat: Luo kaksi Kasinopelaaja-oliota, kasvattaa kaksi kertaa kummankin pelaajan panoksia ja tulostaa jälkimmäisen pelaajan viimeisestä kasvatuskerrasta, onnistuiko panosten kasvatus. Kutsuu ensiksi luodulle pelaajalle havio-metodia ja tulostaa, montako pelimerkkiä pelaaja menetti. Tulostaa molempien pelaajien tiedot (nimi, vapaiden pelimerkkien ja asetettujen panosten määrä ja tieto siitä, onko pelaaja vaarassa). CSE-A1111 Ohjelmoinnin peruskurssi Y1 16.11.2016 26 / 28

Erityistä 2.12. tentissä Tentin maksimipistemäärä on 100 pistettä. Pisteistä 4 tulee siitä, että opiskelija vastaa 1.12.-9.12. välisenä aikana Goblinissa lopputestiin ja loppumotivaatiokyselyyn. Nämä 4 pistettä tulevat ko. kyselyihin vastaamisesta. Vastausten sisältö ei vaikuta pisteisiin, kunhan opiskelija on vastannut lopputestin kysymyksiin tosissaan eikä selvästi kirjoittanut täysin mielivaltaisia vastauksia. CSE-A1111 Ohjelmoinnin peruskurssi Y1 16.11.2016 27 / 28

Kurssipalautekysely Kurssipalautekysely aukeaa 23.11. ja on auki 13.12. asti. Linkki palautekyselyyn tulee sähköpostissa niille opiskelijoille, jotka ovat ilmoittautuneet kurssille WebOodissa. Palautekyselyyn vastanneet saavat 200 lisäharjoitustehtäväpistettä. Pisteitä ei lasketa minkään kierroksen pisteisiin, mutta ne vaikuttavat harjoitustehtäväarvosanaan. CSE-A1111 Ohjelmoinnin peruskurssi Y1 16.11.2016 28 / 28