ITKP102 Ohjelmointi 1 (6 op)

Samankaltaiset tiedostot
ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op)

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

ITKP102 Ohjelmointi 1 (6 op)

Ohjelmointi 1 C#, kevät 2014, tentti

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

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

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

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

Ohjelmointi 1 C#, kevät 2013,

1. Mitä tehdään ensiksi?

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

Ohjelmointi 2, välikoe

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

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

Harjoitus 4 (viikko 47)

1. Omat operaatiot 1.1

Javan perusteita. Janne Käki

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

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

Ohjelmointi 2 / 2010 Välikoe / 26.3

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

Ohjelmoinnin perusteet, kurssikoe

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

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

Olio-ohjelmointi Javalla

Ohjelmointiharjoituksia Arduino-ympäristössä

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

Harjoitus 2 (viikko 45)

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

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

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset

Ohjelmoinnin perusteet Y Python

Harjoitus 5 (viikko 48)

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

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2

Apuja ohjelmointiin» Yleisiä virheitä

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

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

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

Ohjelmoinnin jatkokurssi, kurssikoe

Listarakenne (ArrayList-luokka)

ITKP102 Ohjelmointi 1, syksy 2007

Lohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 15.3

Tietorakenteet ja algoritmit syksy Laskuharjoitus 1

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

Java kahdessa tunnissa. Jyry Suvilehto

Metodien tekeminen Javalla

7. Näytölle tulostaminen 7.1

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Lohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 16.3

Harjoitus 1 (viikko 44)

Ohjelmoinnin peruskurssien laaja oppimäärä

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 )

Java-kielen perusteet

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

7/20: Paketti kasassa ensimmäistä kertaa

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

9. Periytyminen Javassa 9.1

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

Sisällys. 15. Lohkot. Lohkot. Lohkot

Java-kielen perusteet

Metodit Arvotyyppi. Metodit Arvotyyppi. Metodit Parametrit. Metodit Parametrit. Metodit Kuormittaminen. Metodit Kuormittaminen. Javan perusteet

Algoritmit 1. Demot Timo Männikkö

Ohjelmointi 2 / 2011 Välikoe / 25.3

Tietotekniikan valintakoe

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

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

Tässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ).

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

ITKP102 Ohjelmointi 1, syksy 2007

Harjoitustyö: virtuaalikone

Harjoitus 6. Käytä String-luokasta vain charat- ja length-operaatioita.

7. Oliot ja viitteet 7.1

Harjoitus 5 (viikko 41)

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

Tietorakenteet (syksy 2013)

Harjoitus 6 (viikko 42)

13. Loogiset operaatiot 13.1

Ohjelmoinnin perusteet Y Python

19. Olio-ohjelmointia Javalla 19.1

ITKP102 Ohjelmointi 1, syksy 2007

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

Rakenteiset tietotyypit Moniulotteiset taulukot

1 Tehtävän kuvaus ja analysointi

Ohjelmointi 1 Taulukot ja merkkijonot

Ohjelmoinnin perusteet Y Python

Harjoitus 6 (viikko 42)

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

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

Tutoriaaliläsnäoloista

58131 Tietorakenteet ja algoritmit (syksy 2015)

12. Javan toistorakenteet 12.1

Transkriptio:

ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 22. huhtikuuta 2016 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ä 2016 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.) 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. Mikä seuraavista pääohjelmaan (Main) kirjoitetuista lauseista on syntaksiltaan oikeaa, kääntyvää C#-koodia? Oletetaan, että systeemikirjasto on liitetty mukaan käännökseen (using System;). (a) for (;;;) { Console.WriteLine("Moi maailma!"); } (b) int a, b = 5; (c) while (true = true) { return; } (d) double d = 5,1; 2. Mitä tulostaa Console.WriteLine(11 % 3 + "11 % 3"+ 11 % 3);? (a) 11 % 3 + 11 % 3 + 11 % 3 (b) 222 (c) 211 % 32 (d) 211 % 311 % 3 3. Olkoon meillä seuraava koodi: StringBuilder jono = new StringBuilder("Kissa sihisee kauhusta."); string p = SiirraMerkit(jono, "aeiouyäö"); Mikä on funktion SiirraMerkit esittelyrivi? (a) public static void SiirraMerkit(jono, vokaalit) (b) public static StringBuilder SiirraMerkit(StringBuilder, string) (c) public static string SiirraMerkit(StringBuilder jono, string poistettavat) (d) public static string SiirraMerkit(StringBuilder sb, string "aeiouyäö") 4. Mikä seuraavista väittämistä pitää paikkansa C#:ssa? 2

(a) Ääkköset muuttujan nimessä aiheuttavat käännösvirheen. (b) Muuttujan nimeä i voi käyttää vain silmukan sisällä. (c) Samalla näkyvyysalueella voi olla kaksi kissa-nimistä muuttujaa, mikäli ne ovat erityyppisiä. (d) Muuttujan nimi voi sisältää numeroita. 5. 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. 6. Olkoon meillä seuraava koodi Main-pääohjelmassa: string k = "Kissa"; k.tolower(); Console.WriteLine(k); Mikä seuraavista pitää paikkansa? (a) Viimeinen rivi tulostaa tekstin Kissa. (b) Viimeinen rivi tulostaa tekstin kissa. (c) Viimeinen rivi tulostaa tekstin string. (d) Ohjelma ei käänny. Tehtävä 2 (6 p.) Tee ohjelma (luokka, pääohjelma), joka tulostaa riveittäin luvut 1... 100. Jos luku on jaollinen kolmella, tulostetaan luvun lisäksi sana Hip. Jos luku on jaollinen viidellä, tulostetaan Hei. Jos luku on jaollinen sekä kolmella että viidellä, tulostetaan HipHei. Alla esimerkki tulostuksesta (ote). 5 Hei 6 Hip 7 3

8 9 Hip 10 Hei 11 12 Hip 13 14 15 HipHei Tehtävä 3 (6 p.) Tee a- ja b-kohdat. (a) (3 p.) Kirjoita funktio EriLuvut, joka ottaa ensimmäisenä parametrina kokonaislukutaulukon ja toisena parametrina kokonaisluvun. Funktio palauttaa kokonaislukutaulukon, jossa kukin alkuperäisen aineiston alkio esiintyy enintään kerran. Palautettavaan taulukkoon tulevien alkioiden määrä on kuitenkin enintään toisen parametrin verran. Tee myös aliohjelma Tulosta, joka tulostaa tuloksena saadun taulukon siten, että kaikki alkiot ovat samalla rivillä välilyönneillä erotettuina. Alla on pääohjelma, jossa on esimerkki funktion käyttämisestä sekä esimerkkituloste. Pääohjelmaa ei tarvitse kirjoittaa vastauspaperille. public static void Main() { int[] luvut = { 1, 4, 3, 1, 1, 5, 4, 2, 10, 7 }; int erilukujaenintaan = 5; int[] eriluvut = EriLuvut(luvut, erilukujaenintaan); Tulosta(eriLuvut); // Tulostaa "1 4 3 5 2" } Vinkki: Voit muuttaa List-tietorakenteen taulukoksi listan ToArraymetodilla. Bonus (+ 1 p.): Kattavat ComTest-testit. (b) (3 p.) Kirjoita funktio PisinJono, joka palauttaa parametrina saadun merkkijonotaulukon pisimmän merkkijonon. Pääohjelmaa tai luokkaa ei tarvitse tässä 4

kirjoittaa, pelkkä funktio riittää. Tehtävä 4 (6 p.) Valitse jokaisesta kohdasta (1 6) täsmälleen yksi vaihtoehdoista (a e). Perusteluita ei tarvitse eikä pidä kirjoittaa. Kirjoita vastauksesi vastauspaperille, ei tähän paperiin. 1. Mitä seuraava koodirivi tulostaa? System.Console.WriteLine((11 % 2) - 1); (a) 0 (b) 1 (c) 3 (d) 4 (e) 4.5 2. Olkoon funktion esittelyrivi public static double[] Kaanteisluvut(int[] luvut). Mikä seuraavista kyseisen funktion sisään kirjoitetuista lauseista on syntaksiltaan oikeaa, kääntyvää C#-koodia? (a) return new double[5]; (b) return new double(); (c) return new Array() { 5.0 } (d) return double[] { 5.0 }; (e) return 5.0; 3. Mitä on 10-järjestelmän luku -15 binäärisenä? Oletetaan, että negatiivisille luvuille on käytössä kahden komplementti. (a) 10001 (b) 10101 (c) 11010 (d) 01111 (e) 11111 5

4. Mitä eroa on while ja do-while silmukkarakenteilla? (a) do-while-silmukkaa voidaan käyttää vain silloin, jos halutaan tulostaa jotakin. (b) do-while-silmukalla ei voida tehdä ikuista silmukkaa, toisin kuin while-silmukalla. (c) do-while-silmukan runko-osaa ei välttämättä suoriteta kertaakaan mutta while-rakenteessa runko-osa suoritetaan aina vähintään yhden kerran. (d) while-silmukka on tehokkaampi, sillä while on lyhyempi sana kuin do-while. (e) Ei mikään ylläolevista. 5. Mitä tarkoittaa const-määre muuttujan edessä? (a) Sillä ilmaistaan, että kysymyksessä on oliomuuttuja. (b) Muuttuja on vakio, eikä sitä voida muuttaa ohjelman ajon aikana. (c) Muuttuja on luokan attribuutti, jolloin sen arvoa voidaan muuttaa luokan sisällä. (d) Muuttuja on tarkoitettu aliohjelman parametriksi eikä sitä voi käyttää muuhun tarkoitukseen. (e) Annettaessa tällainen muuttuja funktion argumentiksi, eivät muuttujaan tehdyt muutokset näy sillä näkyvyysalueella (eng. scope), missä funktiota kutsuttiin. 6. Mitä tarkoittaa aliohjelman kuormittaminen? (a) Aliohjelmaa kutsutaan monta kertaa peräkkäin. (b) Aliohjelma suorittaa useamman kuin yhden operaation. (c) Aliohjelmasta on olemassa useita samannimisiä toteutuksia. (d) Aliohjelma kutsuu itse itseään. (e) Aliohjelma sisältää useita return-lauseita. 6