ITKP102 Ohjelmointi 1 (6 op)

Samankaltaiset tiedostot
ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op)

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

Ohjelmointi 1 C#, kevät 2014, tentti

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

Ohjelmointi 1 C#, kevät 2013, 2. tentti

1. Mitä tehdään ensiksi?

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

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

Ohjelmointi 1 C#, kevät 2013,

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Ohjelmointi 2, välikoe

Java-kielen perusteet

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();

Java-kielen perusteet

ITKP102 Ohjelmointi 1 Tentti

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

Metodien tekeminen Javalla

Ohjelmoinnin perusteet Y Python

13. Loogiset operaatiot 13.1

1. Omat operaatiot 1.1

Sisältö. 2. Taulukot. Yleistä. Yleistä

7. Oliot ja viitteet 7.1

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

C:\MyTemp\ohj1\ohjdemot\k2012\demot\vastaukset\demo11\PP1\TokaPisin.cs 1 using System; 2 using System.Collections.Generic; 3 using System.

Javan perusteita. Janne Käki

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta

Olio-ohjelmointi Syntaksikokoelma

13. Loogiset operaatiot 13.1

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

Sisältö. 22. Taulukot. Yleistä. Yleistä

Ohjelmoinnin perusteet, kurssikoe

Sisällys. 7. Oliot ja viitteet. Olion luominen. Olio Java-kielessä

Harjoitus 5 (viikko 41)

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

12. Javan toistorakenteet 12.1

Java kahdessa tunnissa. Jyry Suvilehto

7. Näytölle tulostaminen 7.1

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

12. Javan toistorakenteet 12.1

Harjoitus 5. Esimerkki ohjelman toiminnasta: Lausekielinen ohjelmointi I Kesä 2018 Avoin yliopisto 1 / 5

Ohjelmointi 1 Taulukot ja merkkijonot

11. Javan toistorakenteet 11.1

Ohjelmointiharjoituksia Arduino-ympäristössä

17. Javan omat luokat 17.1

Algoritmit 1. Demot Timo Männikkö

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset

Listarakenne (ArrayList-luokka)

Olio-ohjelmointi Javalla

Ohjelmoinnin jatkokurssi, kurssikoe

Harjoitus 4 (viikko 47)

Tietorakenteet. JAVA-OHJELMOINTI Osa 5: Tietorakenteita. Sisällys. Merkkijonot (String) Luokka String. Metodeja (public)

Algoritmit 1. Demot Timo Männikkö

11. Javan valintarakenteet 11.1

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

Muuttujien roolit Kiintoarvo cin >> r;

Pisteytys: Eri kommentointitavat tiedetty: 0,5 pistettä, jos puuttuu niin ei voinut saada täysiä pisteitä.

Ohjelmoinnin perusteet Y Python

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä

Luento 5. Timo Savola. 28. huhtikuuta 2006

Java-kielen perusteet

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo

ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012

815338A Ohjelmointikielten periaatteet Harjoitus 4 vastaukset

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004

Ohjelmoinnin perusteet Y Python

// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.

811120P Diskreetit rakenteet

Tietorakenteet ja algoritmit syksy Laskuharjoitus 1

811120P Diskreetit rakenteet

Java-kielen perusteita

Ohjelmointi 2 / 2010 Välikoe / 26.3

17. Javan omat luokat 17.1

Ohjausjärjestelmien jatkokurssi. Visual Basic vinkkejä ohjelmointiin

Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista.

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

Sisällys. 12. Javan toistorakenteet. Yleistä. Laskurimuuttujat

Ohjelmoinnin perusteet Y Python

1. Kun käyttäjä antaa nollan, niin ei tulosteta enää tuloa 2. Hyväksy käyttäjältä luku vain joltain tietyltä väliltä (esim tai )

TAMPEREEN TEKNILLINEN YLIOPISTO

Pong-peli, vaihe Aliohjelman tekeminen. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana

Taulukot. Jukka Harju, Jukka Juslin

Ohjelmoinnin perusteet Y Python

Harjoitus 2 (viikko 45)

Kerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta Toteuta Pythonilla seuraava ohjelma:

4. Luokan testaus ja käyttö olion kautta 4.1

Ohjelmoinnin perusteet Y Python

Pong-peli, vaihe Koordinaatistosta. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 2/7. Tämän vaiheen aikana

TAMPEREEN TEKNILLINEN YLIOPISTO

Transkriptio:

ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 7. huhtikuuta 2017 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille. Kirjoittamasi luokat, funktiot ja aliohjelmat tulee dokumentoida XML-dokumentaatiokommenteilla, kuten kurssilla on opetettu. Yksi A4-kokoinen lunttilappu on sallittu tässä tentissä. Keväällä 2017 kurssin tehneille lasketaan demohyvitykset tenttipisteisiin mukaan. Palauta lunttilappu tutkimustarkoituksiin Ystävällisesti pyydän, että palauttaisit valvojalle myös lunttilapun jättäessäsi tenttipaperit. Jos palautat lunttilapun, niin suostut että sitä voidaan käyttää tutkimustarkoituksiin luonnollisesti nimettömänä ja ilman tunnistetietoja. Voit jättää myös lapun palauttamatta ja ottaa sen mukaasi tenttisalista. Kirjoita lunttilappuun nimesi, ja teksti Saa käyttää tutkimustarkoituksiin jotta siitä olisi enemmän hyötyä tutkimusmielessä. In English If you want the questions in English, please ask the invigilator. 1

Tehtävä 1 (6 p.) Tee funktio JononSumma, joka palauttaa kokonaislukujen jonon summan. Jono määritellään kolmen parametrin avulla: alku, loppu ja askel. Esimerkiksi kutsu JononSumma(2, 6, 2) palauttaa 12, koska 2 + 4 + 6 = 12. Jos alku-parametrin arvo on suurempi kuin loppu, funktio palauttaa arvon 0. Jos askel-parametri on negatiivinen, funktio palauttaa niin ikään 0. Alla esimerkkejä ComTest-syntaksilla kirjoitettuna. JononSumma(2, 6, 2) === 12; JononSumma(1, 5, 1) === 15; JononSumma(2, 2, 2) === 2; JononSumma(1, 5, 3) === 5; JononSumma(1, 1, 1) === 1; JononSumma(1, 0, 1) === 0; JononSumma(1, 0, -1) === 0; Tehtävä 2 (6 p.) Valitse jokaisesta kohdasta (1 6) täsmälleen yksi vaihtoehdoista (a d). Kukin kohta on yhden pisteen arvoinen. Perusteluita ei tarvitse eikä pidä kirjoittaa. Kirjoita vastauksesi vastauspaperille, ei tähän paperiin. 1. Olkoon meillä oheinen funktion esittelyrivi. Mikä seuraavista väitteistä pitää paikkansa esittelyrivin perusteella? public static double Keskiarvo(List<int> luvut) (a) Funktion kutsuminen tyhjällä listalla aiheuttaa ajonaikaisen virheen. (b) Mikäli luvut-listan sisältö on {2, 5}, palauttaa funktio arvon 3. (c) Funktiossa on mahdollista lisätä luvut-listaan alkioita. (d) Funktio ei voi palauttaa arvoa int.minvalue. 2. Mikä seuraavista väittämistä pitää paikkansa C#:ssa? (a) Operaattoria = voi käyttää myös String-olioiden sisällön vertailuun. 2

(b) Sijoituslauseessa vasemmalla olevan lausekkeen arvo kopioidaan sijoitusoperaattorin oikealla puolella olevaan muuttujaan. (c) Muuttujaan sijoitettava lausekkeen arvo voi koostua vakioista, muuttujien arvoista tai laskutoimituksista. (d) Mikäli muuttujaan on kerran sijoitettu jokin arvo, niin kyseiselle muuttujalle ei voi sijoittaa uutta arvoa. 3. Mikä seuraavista väittämistä pitää paikkansa C#:ssa? (a) for-silmukassa toistoehto (nimitetty kurssilla myös jatkamisehdoksi) on oltava aina epäyhtälö. (b) while-silmukalla voi tehdä ikuisia silmukoita, toisin kuin muilla silmukkarakenteilla. (c) foreach-silmukan voi keskeyttää ennen kuin kaikki listan alkiot on käyty läpi. (d) do-while-silmukassa toistoehdon tarkastus tehdään ennen silmukan rungon suorittamista. 4. Mitä seuraava koodirivi tulostaa? bool[] totuusarvot = { 2 == 2, 6 < 7,!false, true!= false }; System.Console.WriteLine("" +!totuusarvot[7 % 4] + 7 % 4); (a) False3 (b) True1 (c) +False+3 (d) Ohjelma kaatuu 5. Millainen on rekursiivinen funktio? (a) Funktio, joka hyödyntää hallittua ikuista silmukkaa siten, että silmukan runko-osa keskeytetään if-lauseella kun sopiva lopetusehto on saavutettu. (b) Funktio, joka laskee kertoman (esimerkiksi 5!) arvon. (c) Funktio, jonka toiminta perustuu ongelman ratkaisemiseen palauttamalla se yhden tai useamman samanlaisen ongelman ratkaisemiseen. (d) Funktio, joka piirtää itseään toistavia kuvioita (fraktaaleja). 3

6. Mikä seuraavista väittämistä pitää paikkansa C#:ssa? (a) Matriisin riveillä voi olla keskenään eri määrä sarakkeita. (b) Kaksiulotteinen taulukko voidaan käydä läpi foreach-silmukan avulla. (c) int-taulukkoon voidaan sijoittaa alkioksi double-luku, mutta sen tarkkuus kärsii sijoituksen yhteydessä. (d) C#:ssa voidaan tehdä enintään kaksiulotteisia taulukoita. Tehtävä 3 (6 p.) Tee funktio MuutaIsoksi, joka ottaa parametrina merkkijonon ja palauttaa merkkijonon, jossa jokaisen sanan ensimmäinen kirjain on muutettu isoksi kirjaimeksi. Voit olettaa, että jokaisen sanan välissä on vain yksi välilyönti. Mikäli syötteenä saadaan tyhjä merkkijono, funktio palauttaa tyhjän merkkijonon. Funktion tulee toimia seuraavilla ComTest-syntaksilla kirjoitetuilla testitapauksilla: MuutaIsoksi("") === ""; MuutaIsoksi("kissa") === "Kissa"; MuutaIsoksi("kissa istuu puussa") === "Kissa Istuu Puussa"; Vinkki: Saatat tarvita (mutta et välttämättä tarvitse) alla olevia funktioita: string jono = "Kissa"; jono.substring(1) === "issa"; Char.ToUpper( a ) === A ; Tehtävä 4 (6 p.) Valitse jokaisesta kohdasta (1 6) täsmälleen yksi vaihtoehdoista (a d). Kukin kohta on yhden pisteen arvoinen. Perusteluita ei tarvitse eikä pidä kirjoittaa. Kirjoita vastauksesi vastauspaperille, ei tähän paperiin. 1. Oletetaan, että 8-bittisille binääriluvuille on käytössä kahden komplementti negatiivisille luvuille. Mikä seuraavista luvuista vastaa kymmenjärjestelmän lukua -4? Välilyönnit ovat mukana luettavuuden parantamiseksi. 4

(a) 0000 0100 (b) 0000 0101 (c) 1000 0100 (d) 1111 1100 2. Mikä seuraavista sijoituslauseista on syntaktisesti oikeaa C#-koodia? (a) bool b = True; (b) if (true = true) return; (c) int[] public = new int[] {0}; (d) StringBuilder s; 3. Mikä seuraavista muuttujista sisältää suurimman arvon? (a) int a = 4 % 2; (b) int b = 5 / 3; (c) double c = 5 / 3; (d) double d = 1.5; 4. Mikä seuraavista väittämistä pitää paikkansa C#:ssa? (a) Funktion paluuarvo täytyy aina tulostaa. (b) Olkoon sijoituslause double d = F(1.0);. Funktion F paluuarvon tyyppi voi olla int. (c) Useampi kuin yksi return-lause funktion sisällä aiheuttaa käännösvirheen. (d) return-lauseen voi korvata tarvittaessa break-lauseella. 5. Mikä seuraavista väittämistä pitää paikkansa C#:ssa? (a) Muuttujan nimi voi alkaa numerolla. (b) Aliohjelmassa täytyy aina olla return-lause. (c) void-aliohjelmassa voi olla return-lause (d) Yhdessä ohjelmassa saa olla useita pääohjelmia. 6. Olkoon meillä seuraava kutsu: bool tulos = TutkiTaulukko(new int[] {1,2,3,4}, 4, false); 5

Mikä on funktion TutkiTaulukko esittelyrivi? (a) public static bool TutkiTaulukko(int[] luvut, int pituus, bool false) (b) public static bool TutkiTaulukko(int[] taulukko, double pituus, bool tyhja) (c) public static void TutkiTaulukko(int[] taulukko, double pituus, tulos) (d) public static bool TutkiTaulukko(int[] 1,2,3,4, int 4, bool false) 6