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

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

Ohjelmointi 1 C#, kevät 2014, tentti

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op)

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

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op)

Ohjelmointi 1 C#, kevät 2013,

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

1. Mitä tehdään ensiksi?

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

Ohjelmointi 2 / 2010 Välikoe / 26.3

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

Ohjelmoinnin perusteet Y Python

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

12. Javan toistorakenteet 12.1

11. Javan toistorakenteet 11.1

12. Javan toistorakenteet 12.1

Determinantti. Määritelmä

Vektoreiden virittämä aliavaruus

Ohjelmoinnin perusteet Y Python

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

7. Näytölle tulostaminen 7.1

Python-ohjelmointi Harjoitus 2

Determinantti. Määritelmä

MAA Jussi Tyni Lue ohjeet huolellisesti! Tee pisteytysruudukko konseptin yläkertaan. Muista kirjoittaa nimesi. Kysymyspaperin saa pitää.

Algoritmit 1. Demot Timo Männikkö

Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla

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

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

MAB Jussi Tyni. Lue ohjeet huolellisesti! Tee pisteytysruudukko konseptin yläkertaan. Muista kirjoittaa nimesi. Kysymyspaperin saa pitää.

Ohjelmointi 1 Taulukot ja merkkijonot

Ohjelmoinnin jatkokurssi, kurssikoe

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

Käänteismatriisin. Aiheet. Käänteismatriisin ominaisuuksia. Rivioperaatiot matriisitulona. Matriisin kääntäminen rivioperaatioiden avulla

Ohjelmoinnin perusteet Y Python

1 Kannat ja kannanvaihto

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

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

Ohjelmoinnin peruskurssi Y1

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset

Ohjelmoinnin peruskurssi Y1

C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa.

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmointi 2, välikoe

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

Harjoitus 5 (viikko 41)

c) 22a 21b x + a 2 3a x 1 = a,

815338A Ohjelmointikielten periaatteet Harjoitus 4 vastaukset

Java-kielen perusteet

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Ohjelmoinnin perusteet Y Python

13. Loogiset operaatiot 13.1

Racket ohjelmointia osa 2. Tiina Partanen Lielahden koulu 2014

1. Matikan kurssin arvosanat jakautuivat seuraavalla tavalla:

Java-kielen perusteet

Ohjelmoinnin peruskurssi Y1

Harjoitus 3 (viikko 39)

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

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2

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

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tentti kestää kolme tuntia.

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

ITKP102 Ohjelmointi 1 Tentti

5. HelloWorld-ohjelma 5.1

58131 Tietorakenteet ja algoritmit (syksy 2015)

Maahan on pudonnut omenoita, ja Uolevi aikoo poimia niitä. Tiedät jokaisesta omenasta, kuinka painava se on.

2.8. Kannanvaihto R n :ssä

Ohjelmoinnin perusteet, kurssikoe

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

Olio-ohjelmointi 2. välikoe HYV5SN

Insinöörimatematiikka D

Lineaariset yhtälöryhmät ja matriisit

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tentti kestää kolme tuntia. Tehdään sähköisesti mikroluokkien Windows-koneilla.

Pong-peli, vaihe Aliohjelmakutsu laskureita varten. 2. Laskurin luominen. Muilla kielillä: English Suomi

TIEA341 Funktio-ohjelmointi 1, kevät 2008

tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla

S: siirtää listan ensimmäisen luvun viimeiseksi V: vaihtaa keskenään listan kaksi ensimmäistä lukua

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

Algoritmit 1. Demot Timo Männikkö

Matematiikan tukikurssi

Harjoitus 5 (viikko 48)

13. Hyvä ohjelmointitapa (osa 1) 13.1

Ohjelmoinnin perusteet Y Python

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

} {{ } kertaa jotain

1. Omat operaatiot 1.1

Ohjelmoinnin perusteet Y Python

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

Salausmenetelmät. Veikko Keränen, Jouko Teeriaho (RAMK, 2006)

12 Mallit (Templates)

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

Transkriptio:

ITKP102 Ohjelmointi 1 C# 16.5.2014 1 / 7 Ohjelmointi 1 C#, kevät 2014, 1. uusintatentti Tentaattori Antti-Jussi Lakanen Valitse neljä tehtävää ja vastaa niihin. Keväällä 2014 kurssin tehneille lasketaan demohyvitykset tenttipisteisiin mukaan. Tee jokainen tehtävä omalle konseptiarkille! (Tämä tarkistuksen nopeuttamiseksi.) Kirjoittamasi luokat ja aliohjelmat pitää dokumentoida, kuten kurssilla on opetettu. NIMI: (Palautteita varten. Palauta kysymyspaperi valvojalle. Kysymykset tulevat kyllä myös nettiin, joten saat ne sieltä tentin jälkeen.)

ITKP102 Ohjelmointi 1 C# 16.5.2014 2 / 7 Tehtävä 1 (6 p.) Kommentoi Main-pääohjelma rivi riviltä kertomalla lyhyesti mitä kukin rivi tekee. Mitä alla oleva ohjelma tulostaa? (Oletetaan, että tarvittavat using-lauseet ovat kunnossa.) ///@authorantti-jussilakanen ///@version16.5.2014 /// ///Tehtävä1. publicclasst1 /// Alustuksetjatietorakenteidenmuokkaukset /// sekätulostus. publicstaticvoidmain() int[]luvut=5,10+1,-4,0,5/3; List<bool>totuudet=newList<bool>() true, false; totuudet.add(luvut[0] ==(luvut[1]/ 2)); totuudet.add(totuudet.count==luvut.length); Array.Sort(luvut); totuudet.add(luvut[2]!=(luvut[0] +luvut[3])); foreach(boolarvointotuudet) Console.WriteLine(arvo); Tehtävä 2 (6 p.) Olkoon meillä 100 hehkulamppua, jotka ovat aluksi kaikki sammutettuina. Sytytetään jokainen lamppu vuorollaan alkaen ensimmäisestä, päätyen sadanteen. Ensimmäisen kierroksen jälkeen siis lamppurivistö näyttää tältä.

ITKP102 Ohjelmointi 1 C# 16.5.2014 3 / 7 1 2 3 4 5 6 100 Tämän jälkeen aloitetaan uusi kierros, tällä kertaa lampusta numero 2, ja vaihdetaan joka toisen lampun tilaa -- eli sammutetaan joka toinen lamppu. Huomaa, että ensimmäiseen lamppuun ei kosketa, joten se säilyy päällä. Toisen kierroksen jälkeen lamppurivistö näyttäisi seuraavalta. 1 2 3 4 5 6 100 Jälleen uusi kierros, alkaen lampusta 3. Vaihdetaan joka kolmannen lampun tilaa, jonka jälkeen lamput näyttäisivät seuraavilta. Lamppuihin 1 ja 2 ei kosketa, joten ne jäävät siihen tilaan, joka niille edellisellä kierroksella asetettiin. 1 2 3 4 5 6 100 Tee ohjelma, joka tulostaa kuinka monta lamppua on sadan kierroksen jälkeen sytytettyinä, ja mitkä lamput yo. sadasta lampusta ovat sytytettyinä. Alla esimerkkituloste (joka ei tietenkään ole oikein -- korvaa luvut oikeiksi omassa ohjelmassasi.)......... Sytytettyjälamppujayhteensä: 8kpl. Sytytettyinäovatlamputnro: 1, 6, 11, 14, 18, 22, 98, 99. Vinkki/ohje: Voit simuloida lamppujen tiloja esimerkiksi bool-taulukolla. Vinkki/ohje: Kaksi sisäkkäistä silmukkaa. Tehtävä 3 (6 p.) Vastaa kaikkiin kohtiin, ja enintään parilla lauseella (plus mahdollisesti esimerkillä.) 1. Anna kaksi esimerkkiä C#:n perustietotyypeistä ja niiden käytöstä. (1 p.) 2. Muuttujien ja vakioiden nimeämiskäytänteet C#:ssa. (1 p.) 3. Anna minimaalinen (toimiva) esimerkki funktiosta, ja siitä miten ko. funktiota voi kutsua. Muista, että funktio ottaa parametrina (yhden tai useamman) arvon ja palauttaa arvon. (1 p.)

ITKP102 Ohjelmointi 1 C# 16.5.2014 4 / 7 4. Mainitse kolme vertailuoperaattoria, ja kerro mitä kukin tekee. (1 p.) 5. Millainen on rekursiivinen aliohjelma? (1 p.) 6. Kymmenjärjestelmän luku 19.125 kaksijärjestelmässä? Laskutoimitus näkyville. (1 p.) Tehtävä 4 (6 p.) Olkoon meillä 6 x 6 matriisi, jossa voi liikkua ainoastaan oikealle ja alas, ei vasemmalle, vinoon tai ylös. Aloituspaikka on vasemmalla ylhäällä, ja maali oikealla alhaalla. Esimerkiksi, soluun (1, 1), siis toiseen sarakkeeseen toisella rivillä, voi tulla kahta eri reittiä; ensin lähtöpaikasta oikealle ja sitten alas (tämä on yksi reitti), tai voit mennä ensin alaspäin ja vasta sitten oikealle (tämä on toinen reitti). a) Tee vastauspaperiisi ruudukko, johon täytät kuhunkin soluun johtavien reittien määrän. Montako mahdollista reittiä pitkin voi mennä oikeaan alakulmaan? Tässä ei tarvitse kirjoittaa koodia, pelkkä 6 x 6 ruudukko ja sen täyttäminen riittää. Vinkki: Tämä kohdan pohtiminen kynällä ja paperilla helpottaa b-kohdan tekemistä. Vinkki 2: Älä laske reittejä yksitellen, "raakaa voimaa" käyttäen tähän menee kauan! (2 p.) b) Täydennä ohjelman puuttuvat osat. Yksinkertaisuuden vuoksi ohjelmaan on valmiiksi tehty Tayta-funktio, joka tekee matriisin, joka on valmiiksi täynnä ykkösiä. Ohje/vinkki: Laske mahdollisten reittien määrä matriisin kunkin solun kohdalle yksitellen. (4 p.) ///@authorantti-jussilakanen ///@version16.5.2014 /// ///Tehtävä4. publicclasst4 /// Täytetäänmatriisiensinluvulla1 /// jalasketaansittenreittivaihtoehtojen ///(elimilläerilaisillatavoillavoidaan /// ko. soluuntulla, kunvoidaanliikkua ///vainoikeallejaalas)lukumääräkullekin /// matriisinsolulle. Lähtöpaikkavasemmalla

ITKP102 Ohjelmointi 1 C# 16.5.2014 5 / 7 ///ylhäällä. publicstaticvoidmain() int[,] matriisi=tayta(6, 6, 1); //Täydennä... // Vinkki: TarvitsetLaskeReittienLukumaara-funktiota Console.WriteLine(matriisi[5, 5]); ///Funktiopalauttaamatriisintietynpaikan ///(rivi,sarake)reittienlukumäärän,kunsolustatoiseen ///"liikkuminen"voitapahtuaainoastaanoikeallejaalaspäin. ///Esimerkiksi,soluun(1,1)voitullakahtaerireittiä; ///ensinoikeallejaalas,taisittenensinalasjavasta ///sittenoikealle. /// <paramname="matriisi">matriisi</param> /// <paramname="rivi">rivi</param> /// <paramname="sarake">sarake</param> publicstaticintlaskereittienlukumaara(int[,] matriisi, intrivi, intsarake) //Täydennä... /// Tekeejapalauttaauuden2-ulotteisentaulukonjatäyttääsen ///annetullaluvulla.toisinsanoenkaikkiintaulukon /// paikkoihintuleeko. luku. /// <paramname="riveja">rivienmäärä</param> /// <paramname="sarakkeita">sarakkeidenmäärä</param> /// <paramname="millataytetaan">luku, jollatäytetään</param> /// <returns>taulukko</returns> publicstaticint[,] Tayta(intriveja, intsarakkeita, intmillataytetaan) int[,] taulukko=newint[riveja, sarakkeita]; for(inti=0; i<riveja; i++) for(intj=0; j<sarakkeita; j++) taulukko[i, j] =millataytetaan; returntaulukko;

ITKP102 Ohjelmointi 1 C# 16.5.2014 6 / 7 Tehtävä 5 (6 p.) Tee lotto-ohjelma, joka arpoo ja tulostaa 7 varsinaista numeroa ja 3 lisänumeroa väliltä 1-39. Kohtuuttoman monimutkaisista vastauksista tai turhien olioiden luonnista tulee vähennyksiä. Voit käyttää taulukon/listan sekoittamiseen Jypeli.RandomGen.Shuffle-aliohjelmaa (oletetaan taas, että using-lauseet ovat kunnossa), mutta jos teet sekoittamisen itse, saat siitä kaksi bonuspistettä. (6 p. + 2 bonusp.) arvio omasta pistemäärästä (1-6 + bonus): Huomautus Muistithan, että tässä tentissä piti tehdä enintään neljä tehtävää. Jos palautat viisi tehtävää, niin korkeimman pistemäärän saanut tehtävä hylätään. 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, jotta siitä olisi enemmän hyötyä tutkimusmielessä. Vinkit Satunnaisluvut

ITKP102 Ohjelmointi 1 C# 16.5.2014 7 / 7 Satunnaisen kokonaisluvun väliltä 1-10 saat tehtyä seuraavasti. Randomr=newRandom(); intminimi=1; intmaksimi=10; intsatunnainen=r.next(minimi, maksimi+1); % (jakojäännös) -operaattori Jakojäännösoperaattori % laskee jakojäännöksen, joka saadaan kun merkin vasemmalla puolella oleva luku jaetaan oikealla puolella olevalla luvulla. Alla esimerkki. publicclasstentti publicstaticvoidmain(string[] args) Console.WriteLine(5% 2); // tulostaa: 1, koska5/2on2, jää1 Console.WriteLine(4% 2); // tulostaa: 0 Console.WriteLine(11% 7); // tulostaa: 4 Console.WriteLine(11% 11);// tulostaa: 0