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

Samankaltaiset tiedostot
Ohjelmointi 1 C#, kevät 2013,

Ohjelmointi 1 C#, kevät 2014, tentti

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op)

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

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

ITKP102 Ohjelmointi 1 (6 op)

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

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

1. Mitä tehdään ensiksi?

Ohjelmointi 2 / 2010 Välikoe / 26.3

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

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

Harjoitus 2 (viikko 45)

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

Ohjelmoinnin perusteet Y Python

Harjoitus 3 (viikko 39)

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

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

Ohjelmointiharjoituksia Arduino-ympäristössä

13. Loogiset operaatiot 13.1

Olio-ohjelmointi Syntaksikokoelma

Ohjelmoinnin jatkokurssi, kurssikoe

7. Näytölle tulostaminen 7.1

Olio-ohjelmointi 2. välikoe HYV5SN

Harjoitus 6 (viikko 42)

Ohjelmoinnin perusteet Y Python

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

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

815338A Ohjelmointikielten periaatteet Harjoitus 4 vastaukset

ITKP102 Ohjelmointi 1 Tentti

Ohjelmoinnin perusteet Y Python

List-luokan soveltamista. Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen

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

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

Harjoitus 5 (viikko 41)

Java-kielen perusteet

Java-kielen perusteet

Ohjelmoinnin perusteet Y Python

Ohjelmointi 1 Taulukot ja merkkijonot

Apuja ohjelmointiin» Yleisiä virheitä

Harjoitus 6 (viikko 42)

Ohjelmointi 2, välikoe

Harjoitus 5 (viikko 41)

Ohjelmoinnin perusteet Y Python

Ohjelmointi 2 / 2011 Välikoe / 25.3

Tietotekniikan valintakoe

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo

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

Java-kielen perusteet

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Ohjelmoinnin perusteet Y Python

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

JavaScript alkeet Esimerkkikoodeja moniste 2 ( Metropolia)

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen

7. Oliot ja viitteet 7.1

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

Tyyppejä ja vähän muutakin. TIEA341 Funktio ohjelmointi 1 Syksy 2005

Algoritmit 1. Demot Timo Männikkö

13. Loogiset operaatiot 13.1

1. Omat operaatiot 1.1

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

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

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

12 Mallit (Templates)

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

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

Algoritmit 1. Demot Timo Männikkö

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

13 Operaattoreiden ylimäärittelyjä

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

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

Ohjelmointi 2 / 2008 Välikoe / Pöytätestaa seuraava ohjelma.

RINNAKKAINEN OHJELMOINTI A,

Ohjelmoinnin perusteet Y Python

9. Periytyminen Javassa 9.1

Metodien tekeminen Javalla

Olio-ohjelmointi Javalla

Helsingin yliopisto, Tietojenkäsittelytieteen laitos Ohjelmistotuotanto, kurssikoe , H. Laine Arvostelu

7/20: Paketti kasassa ensimmäistä kertaa

Harjoitus 5 (viikko 48)

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

Tietorakenteet ja algoritmit syksy Laskuharjoitus 1

Javan perusteita. Janne Käki

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

1 Tehtävän kuvaus ja analysointi

20. Javan omat luokat 20.1

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang

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

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

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset

Transkriptio:

ITKP102 Ohjelmointi 1 C# 15.5.2013 1 / 6 Ohjelmointi 1 C#, kevät 2013, 2. tentti Tentaattori Antti-Jussi Lakanen Tässä tentissä saa olla mukana omia muistiinpanoja yhden arkin verran. Tentin valvojalla on oikeus tarvittaessa tarkastaa muistiinpanot (esimerkiksi tilanteessa, jossa tenttijä tekee kerralla enemmän kuin yhden tentin). Valitse neljä tehtävää ja vastaa niihin (bonuksiin ei ole pakko vastata). Kokeesta voi saada enintään 24 pistettä (+ mahdolliset bonuspisteet). Päästäkseen läpi on saatava 12 pistettä. Demohyvitykset lasketaan tenttipisteiden päälle, ja sitten katsotaan tuleeko tarvittavat pisteet täyteen. Tenttiaika on 4 tuntia. Tentin lopussa on vinkkejä ja käyttöesimerkkejä C#-kielen metodeista. Voit soveltaa niitä vastauksiisi. Kirjoittamasi luokat ja aliohjelmat pitää dokumentoida, kuten kurssilla on opetettu. ComTest-testien kirjoittaminen ei ole pakollista, mutta siitä voi saada lisäpisteitä, mikäli tehtävässä on niin sanottu. Jos vastauksessa tarvitset jotakin funktiota.net-apista (.NET-kirjasto) etkä muista tarkkaan mikä oli funktion/metodin nimi, niin kirjoita funktion esittely parametreineen ja kommentti siitä, mitä sen pitäisi tehdä. Luonnollisesti et saa itse keksiä funktiota, joita ei ole olemassa (jos itse myös toteuta niitä). Tehtävä 1 (6 p.) Tässä tehtävässä on kolme osaa: a, b ja c. Tee alla olevaa dokumentaatiota vastaava ja ComTest-testitapaukset täyttävä funktio (tehtävän c-osa). Funktiota varten kirjoita kaksi apufunktiota (tehtävän a- ja b-osat). Dokumentaatioita ei tarvitse kirjoittaa uudestaan. Kirjoita kuitenkin funktioiden esittelyrivit vastauspaperiin. /// <summary>antaauudenkellonajansitenettävanhaanaikaan ///(aika-parametri) lisätäänjokinaika(lisays-parametri). Huomaa, ettäkäytössä /// on24tunninkello.</summary> /// <paramname="aika">alkuperäinenkellonaika(muodossahh:mm)</param> /// <paramname="lisays">lisäys(muodossahh:mm)</param> /// <returns>uusikellonaika(muodossahh:mm)</returns> ///<example> /// <prename="test"> /// Aika.LisaaAikaa("16:01","00:05") ==="16:06"; /// Aika.LisaaAikaa("16:01","00:00") ==="16:01"; /// Aika.LisaaAikaa("16:59","00:11") ==="17:10";

ITKP102 Ohjelmointi 1 C# 15.5.2013 2 / 6 /// Aika.LisaaAikaa("00:01","01:01") ==="01:02"; /// Aika.LisaaAikaa("12:00","00:00") ==="12:00"; /// Aika.LisaaAikaa("00:00","00:01") ==="00:01"; /// Aika.LisaaAikaa("00:00","00:00") ==="00:00"; ///</pre> ///</example> publicstaticstringlisaaaikaa(stringaika, Stringlisays) // Toteutafunktio, tämäontehtävänc-osa (a) Tee funktio MinuutitAjaksi, joka muuttaa annetun minuuttimäärän vastaavaa kellonaikaa esittäväksi merkkijonoksi. Alla dokumentaatio ja Comtest-testit. (2 p.) /// <summary>muuttaaannetutminuutitkellonajaksi.</summary> /// <paramname="minuutit">aikaminuutteina(kokonaisluku).</param> /// <returns>kellonaikamerkkijonona.</returns> ///<example> /// <prename="test"> /// Tentti.MinuutitAjaksi(1) ==="00:01"; /// Tentti.MinuutitAjaksi(240) ==="04:00"; /// Tentti.MinuutitAjaksi(780) ==="13:00"; /// Tentti.MinuutitAjaksi(1439) ==="23:59"; /// Tentti.MinuutitAjaksi(1440) ==="00:00";// Joskaksiviimeistätestiä /// Tentti.MinuutitAjaksi(1441) ==="00:01";// meneeläpiniinbonus+1p. ///</pre> ///</example> publicstaticstringminuutitajaksi(intminuutit) // toteutafunktio Vinkki: Tarvitset tässä modulo-operaattoria (%). Ks. vinkit tentin takaosassa. Vinkki 2: Kahden int-luvun jakolaskun tulos on kokonaisluku. (b) Tee funktio AikaMinuuteiksi, joka muuttaa annetun kellonaikaa esittävän merkkijonon minuuteiksi. Alla dokumentaatio ja Comtest-testit. (2 p.) /// <summary>muuttaamerkkijononaannetunajan(hh:mm) minuuteiksi. /// Käytetäänedelleen24tunninkelloa. </summary> /// <paramname="aika">aikamerkkijonona.</param> /// <returns>aikaminuutteina.</returns> ///<example> /// <prename="test"> /// Tentti.AikaMinuuteiksi("00:01") ===1;

ITKP102 Ohjelmointi 1 C# 15.5.2013 3 / 6 /// Tentti.AikaMinuuteiksi("04:00") ===240; /// Tentti.AikaMinuuteiksi("23:59") ===1439; /// Tentti.AikaMinuuteiksi("00:00") ===0; ///</pre> ///</example> publicstaticintaikaminuuteiksi(stringaika) // toteutafunktio Vinkki: Paloittele merkkijono Split-metodilla, ja lue palojen luvut int.parse-metodilla. (c) Toteuta nyt LisaaAikaa-funktio käyttäen a- ja b-kohdissa tekemiäsi funktioita. (2 p.) Tehtävä 2 (6 p.) Alla on kolme kohtaa, joista jokaisesta saa enintään kaksi pistettä. Vastaa enintään muutamalla virkkeellä. 1. Kurssilla käyetyt C#:n silmukkarakenteet ja mitä eroa niillä on? Mainitse vähintään kolme erilaista rakennetta. 2. Laske välivaiheineen yhteen luvut 3 ja -3 kun oletetaan että negatiivisille luvuille on käytössä 2-komplementti ja tilaa käytössä 4 bittiä. 3. Esittele vähintään kolme aritmeettista operaattoria ja kerro mitä kukin tekee. Tehtävä 3 (6 p.) Tee aliohjelma, joka poistaa annetusta merkkijonolistasta kaikki ne jonot, jotka sisältävät parametrina annetun merkkijonon. Saat käyttää esimerkiksi List<T>-tyypin valmista metodia poistamiseen (ks. vinkit). Aliohjelmaa voisi kutsua seuraavasti. List<String>jonot=newList<String>()"Antti","Jussi","Viljo","Aati","Henna"; Tentti.PoistaSisaltavat(jonot,"tti"); // jonot-listasisältäisinytalkiot"jussi","viljo","aati","henna" Asiaankuuluvat ComTest-testit +1p. Tehtävä 4 (6 p.) Tee funktio nimeltä KaannaTaulukko, joka palauttaa parametrina annetun kokonaislukutaulukon

ITKP102 Ohjelmointi 1 C# 15.5.2013 4 / 6 päinvastaisessa järjestyksessä. Alkuperäistä taulukkoa ei saa muuttaa, eikä funktio saa tulostaa mitään. Funktiota voidaan kutsua esimerkiksi seuraavasti: publicstaticvoidmain(string[] args) int[]luvut=5,9,3,7,8; int[] luvutkaannetty=kaannataulukko(luvut); Tällöin luvutkaannetty-taulukon sisältö olisi 8, 7, 3, 9, 5. Array.Reverse()-metodin käyttö on kielletty. Edelleen tarpeettomasta olioiden luomisesta tulee miinuspisteitä. Tehtävä 5 (6 p.) Vastaa sekä a- että b-kohtiin. (a) Mitä on kommentointi ja mitä eri tapoja kommentoinnille on? Miksi koodia kannattaa kommentoida? (2 p.) (b) Kirjoita dokumentaatio seuraavaan funktioon. (4 p.) Bonus: Kattavat ComTest-testit + 1p. publicstaticcharmuutakirjain(charkirjain) Stringmitka="åäö"; Stringmiksi="aao"; charmuutettukirjain=char.tolower(kirjain); inti=mitka.indexof(muutettukirjain); if(i>=0) returnmiksi[i]; if(muutettukirjain<'a') return'1'; if(muutettukirjain>'z') return'1'; returnmuutettukirjain; Vinkit / Tips String.Contains Method Returns a value indicating whether the specified String object occurs within this string. Syntax publicboolcontains(

ITKP102 Ohjelmointi 1 C# 15.5.2013 5 / 6 ) stringvalue Parameters value Return value Type: System.String The string to seek. Type: System.Boolean true if the value parameter occurs within this string, or if value is the empty string (""); otherwise, false. Example publicclasssample publicstaticvoidmain() strings1="thequickbrownfoxjumpsoverthelazydog"; strings2="fox"; boolb; b=s1.contains(s2); Console.WriteLine("Isthestring, s2, inthestring, s1?:0", b); /*Output: */ Isthestring, s2, inthestring, s1?: True String.Split(Char[]) Split-metodia voidaan käyttää merkkijonojen paloitteluun. Split-metodille annetaan parametrina merkki (tai merkit), jonka perusteella erottelu tehdään. Example Stringjono="ab,cd"; String[] osat=jono.split(',');// nyt: osat[0] =="ab", osat[1] =="cd" int.parse Method (String) Converts the string representation of a number to its 32-bit signed integer equivalent. Syntax

ITKP102 Ohjelmointi 1 C# 15.5.2013 6 / 6 publicstaticintparse( ) Parameters s strings Return Value Type: System.String A string containing a number to convert. Type: System.Int32 A 32-bit signed integer equivalent to the number contained in s. List<T>.RemoveAt Method Removes the element at the specified index of the List<T>. Syntax publicvoidremoveat( ) Parameters index intindex Type: System.Int32 The zero-based index of the element to remove. % Operator The % operator computes the remainder after dividing its first operand by its second. Example publicclasstentti publicstaticvoidmain(string[] args) Console.WriteLine(5% 2); // output: 1 Console.WriteLine(4% 2); // output: 0 Console.WriteLine(11% 7); // output: 4 Console.WriteLine(11% 11);// output: 0