ITKP102 Ohjelmointi 1 Tentti

Koko: px
Aloita esitys sivulta:

Download "ITKP102 Ohjelmointi 1 Tentti"

Transkriptio

1 ITKP102 Ohjelmointi 1 Tentti Vastaa neljään tehtävään tehtävistä 1-6 tai yhteen tehtävään 7 (yhteensä enintään 24p + mahd bonus pisteet). HUOM! Jokaisen tehtävän vastaus omalle paperilleen. Paperit palautetaan eri pinoihin! Muista täyttää Korpissa kurssin kohdalta "lomake": "kuinka opiskelin" sekä vastata kurssin palautekyselyyn sekä Ohjelmointikäsityksiä-kyselyyn. Jos tenttivastauksessa tarvitset jotakin funktiota API-kirjastosta (C#:n kirjasto) ja et muista tarkkaan mikä oli funktion/metodin nimi, niin kirjoita funktion esittely (parametreineen) ja kommentti siitä, mitä sen pitäisi tehdä. Et saa itse keksiä funktioita, joita ei ole olemassa (ellet itse myös toteuta niitä). Tehtävä 1. Merkkijonojen käsittelyä using System; using System.Text; public class KerroVuodenaika public static void Main(string[] args) // Kysymys: Mitä tähän pitäisi tulla? string nimi = Console.ReadLine(); // Käyttäjä antaa syötteenä kuukauden, esimerkiksi "Helmikuu nimi = MikaVuodenaika(nimi); Console.WriteLine(nimi); // Tulostaa "Talvi" // Kysymys: Oikeaoopiset kommentit tähän, myös parametrin nimet kuntoon public static string MikaVuodenaika(string tahankunnonnimiparametrille) // Kysmymys: Tähän aliohjelman toteutus return ""; a) Täydennä ylläoleva koodi toimivaksi. Käyttäjältä tulee syöte kuukauden nimestä ja sen perusteella pitäisi päättää, mikä vuodenaika on kyseessä. Vuodenajat alkavat niin, että joulukuu on talvikuukausi ja jokaiseen vuodenaikaan kuuluu kolme kuukautta, eikä ohjelma saa kaatua virheellisestä syötteestä. Syötteeseen ei tule ylimääräisiä merkkejä esim. HelmikuuxXX, mutta syöte voi olla muodossa helmikuu (3 p) b) Tee kommentit ja ComTest-testit ohjelmalle. Katso tehtävä 2:n Summa-aliohjelmasta mallia ComTestien kirjoittamiseen. (3 p) Bonus 1p: Tee tehtävän toteutus käyttäen taulukkoa tai dictionarya. 1/7

2 Tehtävä 2. Muuttujat ja aliohjelmat /// Luokka joka laskee yhteen- ja kertolaskuja public class SummatJaTulot public static void Main(string[] args) int a = 5; int b = 3; int c = a * b++; // Kysymys: a) minkä arvon c saa nyt (1/3 p) Console.WriteLine(a + " * " + b + " = " + c); // Kysymys: b) mitä edellinenrivi tulostaa (1/3 p) int b; // Kysymys: c) mikä on b:n arvo tällä rivillä? (1/3 p) int summa = Summa(4, 9, 1, 8); Console.WriteLine(summa); // Kysymys: d) mitä tulostuu? (1/3 p) Summa(); Console.WriteLine(summa); // Kysymys: e) mitä tulostuu? (0,5 p) // Kysymys: f) Kutsu Tulo aliohjelmaa kahdella eri tavalla. (2 p) /// Laskee summan kolmelle ennalta määritetylle luvulle /// <returns> 3:n, 5:n ja 7:n summa </returns> public static int Summa() return ( ); /// Laskee neljän luvun summan. /// <returns>annettujen lukujen summan</returns> /// <example> /// <pre name="test"> /// Program.Summa(3, 5, 1, 1) === 10; /// Program.Summa(1, 1, 1, 1) === 4; /// Program.Summa(2, -1, -2, 1) === 0; /// Program.Summa(-2, -5, -4, -3) === -14; /// Program.Summa(0, 0, 0, 0) === 0; /// </pre> /// </example> public static int Summa(???) // Kysymys: g) Täydennä aliohjelman // vastinparametrit (0,5 p) // Kysymys: h) Täydennä aliohjelma toimivaksi (1 p) 2/7

3 /// Kertoo kolme lukua ja tulostaa niiden tulon. /// <param name="kertoja">kertoja</param> /// <param name="kerrottava">kerrottava</param> /// <param name="lisakerroin">lisä kerroin</param> public static void Tulo(double kertoja, double kerrottava, double lisakerroin = 5.0) double tulo = kertoja * kerrottava; tulo *= lisakerroin; // Kysymys: i) Mikä on muuttujan tulo arvo // tämän rivin jälkeen? (1/3 p) Console.WriteLine(tulo); Console.WriteLine(tulo * 2); // Kysymys: j) Mitä tulostuu (1/3 p) Tehtävä 3. Taulukko Seuraava osa on Taunolla tuotettua koodia. int[] t = 56, 78, 59, 1, 82, 40; int apu; apu = t[0]; t[0] = t[5]; t[5] = apu; apu = t[1]; t[1] = t[4]; t[4] = apu; apu = t[2]; t[2] = t[3]; t[3] = apu; a) Mitä koodi tekee taulukolle tja miltä taulukko tnäyttää koodin suorittamisen jälkeen? (2p) b) Kirjoita yllä olevaa Tauno-koodia avuksi käyttäen aliohjelma, joka tekee saman kuin yllä. Käytä aliohjelmassa silmukkaa. Aliohjelman on toimittava erikokoisilla taulukoilla! Mieti mitä parametreja aliohjelma tarvitsee. Kommentoi aliohjelma kuten on opetettu. b)-kohdassa ei tarvitse kirjoittaa testejä. (4p) Bonus 1p: Kirjoita tarvittavat eri testitapaukset ComTest testeinä. Tehtävä 4. Toiston poisto Poista alla olevasta koodista toisto hyödyntämällä listoja tai taulukoita, silmukoita ja toteuttamalla aliohjelma LaskeMerkit, joka palauttaa, kuinka monta tiettyä merkkiä annetussa merkkijonossa on. Dokumentoi kyseinen aliohjelma. (6p) Bonus 1p: Aliohjelman testit public static void Main() 3/7

4 Console.WriteLine("Anna 1. merkkijono:"); string tutkittava1 = Console.ReadLine(); Console.WriteLine("Anna 2. merkkijono:"); string tutkittava2 = Console.ReadLine(); Console.WriteLine("Anna 3. merkkijono:"); string tutkittava3 = Console.ReadLine(); int lkm1 = 0; for (int i = 0; i < tutkittava1.length; i++) if (tutkittava1[i] == 'a') lkm1++; Console.WriteLine("Merkkijonossa 0 on 1 kpl 2-kirjaimia.", 1, lkm1, 'a'); int lkm2 = 0; for (int i = 0; i < tutkittava2.length; i++) if (tutkittava2[i] == 'e') lkm2++; Console.WriteLine("Merkkijonossa 0 on 1 kpl 2-kirjaimia.", 2, lkm2, 'e'); int lkm3 = 0; for (int i = 0; i < tutkittava3.length; i++) if (tutkittava3[i] == 'i') lkm3++; Console.WriteLine("Merkkijonossa 0 on 1 kpl 2-kirjaimia.", 3, lkm3, 'i'); Tehtävä 5. Teoriaa a) Mitä alla oleva koodirivi tulostaa ja miksi? (1p) System.Console.WriteLine((17 % 5) - 3); b) Onko alla olevassa C#-koodissa ongelmaa? Jos on, niin mikä? (1p) /// Tulostaa onnittelun konsoliin, mikäli parametrina annettu ikä on 20. Muussa /// tapauksessa tulostaa toteamuksen, että henkilö ei ole vielä 20, tai että hän /// ei enää ole 20-vuotias /// <param name="ika">henkilön ikä vuosina</param> public static void OnnitteleKaksikymppista(int ika) if (ika > 20) System.Console.WriteLine("Et ole enää 20-vuotias..."); else if (ika = 20) System.Console.WriteLine("Onneksi olkoon 20-vuotiaalle!"); else System.Console.WriteLine("Et ole vielä 20-vuotias."); 4/7

5 c) Miten vakiomuuttuja (constant) eroaa C#:ssa tavallisesta muuttujasta? (1p) d) Mitä ohjelmalle usein tapahtuu, mikäli poikkeusta ei oteta try-catch -rakenteessa kiinni? (1p) e) Mikä on ehdollinen keskeytyskohta (conditional breakpoint)? (1p) f) Mikä on ikuinen silmukka? Mitä täytyy ottaa huomioon, mikäli haluaa tehdä hallitun ikuisen silmukan (sellaisen, jossa silmukan ehto on aina tosi)? (1p) Tehtävä 6. Olioviitteet Vastaa kommenteissa oleviin neljään (4) kysymykseen. public static void Main(string[] args) List<int> lista1 = new List<int> 1, 2, 3, 4 ; List<int> lista2 = new List<int> 1, 2, 3, 4 ; // Kysymys: a) Tulostuuko seuraava ruutuun? Perustele. 2p if (lista1 == lista2) Console.WriteLine("Listat ovat samoja"); List<int> muokattulista = muokkaalistaa(lista1); string erotin = ""; // Kysymys: b) Mitä alla olevat 2 silmukkaa tulostavat? 2p foreach (int alkio in lista1) Console.Write(erotin + alkio); erotin = ","; Console.WriteLine(); erotin = ""; foreach (int alkio in muokattulista) Console.Write(erotin + alkio); erotin = ","; lista2 = muokattulista; muokattulista = new List<int> 0, 0, 0, 0 ; // Kysymys: c) Mihin olioviitteet lista1, lista2 sekä muokattulista // viittaavat tässä vaiheessa ohjelman ajoa. 1.5p // Kysymys: d) Selitä lyhyesti: "automaattinen roskienkeruu"? 0.5p /// Lisää parametrina tuodun listan viimeiseksi alkioksi luvun 8. /// <param name="lista">kokonaisluku lista, jonka perään lisätään luku 8</param> 5/7

6 /// <returns>lista, jonka perään on lisätty luku 8</returns> public static List<int> muokkaalistaa(list<int> lista) lista.add(8); return lista; Tehtävä 7. Laajempi ohjelmointitehtävä, 24p Jos teet tämän, älä tee muita tehtäviä! Tee ohjelma, joka luo sokkelon kaksiulotteiseen taulukkoon. Sokkelotaulukon luova aliohjelma saa parametreikseen sokkelon leveyden ja korkeuden. Taulukon alkiot tulkitaan joko seinäksi tai käytäväksi. Sokkelon käytävät ovat yhden ruudun paksuisia, samoin seinät. Sokkelon reunoilla tulee olla 2 uloskäyntiä. Esimerkiksi ohjelmalla tehty 15*15 -sokkelo voisi näyttää vaikka tältä: X XXXXXXXXXXXXX X X X XXX XXXXXXX XXX X X X X X XXXXXXX XXX X X X X X X X X X X XXX X X X X X X X X X XXX X X XXX X X X X X X X XXX X XXXXX X X X X X X X X XXXXXXX X X X X X XXXXXXXXXXXXXXX Rakenna sokkelo seuraavalla algoritmilla: 1. Alusta 2-ulotteinen taulukko siten, että taulukon kaikki alkiot ovat seiniä. 2. Valitse aloitusruutu. 3. Muuta ruutusi käytäväksi. 4. Tee lista ruutusi kaikista naapuriruuduista. 5. Valitse satunnaisesti jokin sellainen naapuriruutu, jossa ei ole vielä käyty ja poista seinä sen ja ruutusi välistä. 6. Siirry valitsemaasi naapuriruutuun ja jatka kohdasta Jos päädyt umpikujaan, palaa takaisin niin pitkälle, että vastaan tulee naapuriruutuja, joissa ei vielä ole käyty. 8. Tee lopuksi sisäänkäynnit sokkeloon. Täydennä alla olevaan koodiin puuttuvat aliohjelmat. public class Sokkelomatriisi private static Random rnd = new Random(); //käytetään sekoituksessa. 6/7

7 /// Pääohjelma, jossa luodaan 25 x 25 sokkelo. public static void Main() bool[,] sokkelo = LuoSokkelo(25, 25); TulostaSokkelo(sokkelo); /// Sekoittaa annetun listan. /// <typeparam name="t">listan alkioiden tyyppi</typeparam> /// <param name="lista">lista, joka sekoitetaan</param> public static void Sekoita<T>(List<T> lista) int n = lista.count; while (n > 1) n--; int k = rnd.next(n + 1); T value = lista[k]; lista[k] = lista[n]; lista[n] = value; /// Luokka koordinaateille. Tätä luokkaa voi käyttää apuna /// naapurialkioiden etsimisessä. public class Koordinaatti public int X get; set; public int Y get; set; /// Luo uuden (x,y)-koordinaatin /// <param name="x">x-koordinaatti</param> /// <param name="y">y-koordinaatti</param> public Koordinaatti(int x, int y) X = x; Y = y; 7/7

8 Mallivastaukset 1. Merkkijonojen käsittelyä (Tero) a) 3p ohjelma tulostaa jokaisella kuukaudella jonkun vuoden ajan, niin että 3 kuukautta on per vuodenaika 2p Ohjelman toiminnallisuudessa on puutteita, ei esimerkiksi oteta huomioon isoja kirjaimia tai ohjelma kaatuu huonolla syötteellä, kuitenkin ohjelmasta on saatavissa ulos 3 kuukautta per vuodenaika 1p Ohjelman idea tai toiminnallisuus on ymmärretty, mutta kaikkia vuodenaikoja ei saa vastauksena, tai kaikille kuukausille ei ole vastinetta. b) Kommentit kuvaavat, mitä aliohjelma tekee. Parametrien ja paluuarvot ovat kommentoitu(1 p) ½ pistettä, jos toinen edellämainituista ½ jos kommenteissa syntaktisia ongelmia, kuten <summary> ja </summary> eivät ole oikein ComTest-testit toimivat ja ne menevät läpi oikein toimivan ohjelman kanssa (2p) 1p ½ ComTesteissä pieniä syntaksivirheitä, kuten luokannimeä unohdettu kutsua 1p Joku ComTesteista ei mene läpi, mutta ohjelman toteutus toimii 2. Muuttujat ja aliohjelmat (Anna) a) 15 // b++ kasvattaa b:n arvoa vasta seuraavalla rivillä. b) 5 * 4 = 15 c) 4 //b:tä ei voi määritellä uudelleen, tämä tuottaa virheen käännettäessä. Ei vaikuta mitenkään b:n arvoon. Jos selitti tämän sai myös pisteet. d) 22 e) 22 //Summa() ei muuta summan arvoa, koska Summa()-aliohjelman palauttamaa arvoa ei oteta vastaan. f) Tulo(1.0,2.0,3.0 ); //Saa tietysti myös pisteet, jos esitteli muuttujat ensin tai jos laittoi int lukuja Tulo(1.0, 2.0); g) (int a, int b, int c, int d) h) return(a + b + c + d); i) kertoja * kerrottava * lisakerroin //myös numeroilla esim. 3 * 4 * 5 eli 60 j) tulo * 2 // tai Taulukko a) Ohjelma kääntää taulukon ympäri (1p), taulukko t=40,82,1,59,78,56(1p) b) /// Aliohjelma kääntää taulukon ympäri 8/7

9 /// <param name="t">käytettävä taulukko</param> public static void KaannaTaulukko(int[] t) int apu, j; for(int i = 0; i < t.length/2; i++) j = t.length-i-1; apu = t[i]; t[i] = t[j]; t[j] = apu; 4. Toiston poisto (Mika) public static void Main() List<string> merkkijonot = new List<string>(); //voi käyttää myös taulukkoa for (int i = 1; i <= 3; i++) Console.WriteLine("Anna 0. merkkijono:", i); merkkijonot.add(console.readline()); char[] kirjaimet = 'a', 'e', 'i'; for (int i = 0; i < 3; i++) int kirjaintenlkm = LaskeMerkit(merkkijonot[i], kirjaimet[i]); Console.WriteLine("Merkkijonossa 0 on 1 kpl 2-kirjaimia.", i + 1, kirjaintenlkm, kirjaimet[i]); /// Laskee, kuinka monta tiettyä merkkiä annetussa merkkijonossa on. /// <param name= merkkijono >merkkijono, jonka merkkejä lasketaan</param> /// <param name= merkki >merkki, jonka esiintymiä lasketaan</param> /// <returns>annetun merkin esiintymien lukumäärä merkkijonossa</returns> /// <example> /// <pre name="test"> /// Program.LaskeMerkit("", 'a') === 0; /// Program.LaskeMerkit("kissa", 'a') === 1; /// Program.LaskeMerkit("kissa", 's') === 2; /// Program.LaskeMerkit("kissa", 'r') === 0; /// </pre> /// </example> public static int LaskeMerkit(string merkkijono, char merkki) int lkm = 0; for (int i = 0; i < merkkijono.length; i++) 9/7

10 if (merkkijono[i] == merkki) lkm++; return lkm; Arviointikriteerit: Ensimmäinen silmukka: 2p Aliohjelma + dokumentaatio: 2p Aliohjelman kutsuminen silmukassa: 2p Aliohjelman testit: + 1p Miinukset (verrattuna täyteen pistemäärään): Silmukat: Silmukan rajat väärin (silmukka suoritetaan liian monta/vähän kertaa): -1p Silmukan rajat huonosti kuvaavia, esim: for (int i = 1; i < 4; i++): -0.5p For-silmukassa ylimääräinen "i++" (tai while-silmukassa unohtunut kokonaan): -1p Taulukko esitellään silmukan sisällä: -1p Aliohjelman esittelyrivi: Aliohjelman static-avainsana puuttuu: -0.5p Aliohjelman paluuarvon tyyppi väärin: -1p Aliohjelma saa liian vähän parametreja: -1p Aliohjelman parametreista puuttuu tyypit: -1p Aliohjelman parametrien nimet eivät ole kuvaavia (esim. "x" ja "y"): -0.5p Muita mahdollisia virheitä: Puolipiste(itä) puuttuu: -0.5p Aliohjelman loppusulku puuttuu: -0.5p Aliohjelman lokaalin muuttujan esittely puuttuu: -1p Aliohjelman lokaalin muuttujan alustus puuttuu: -1p Aliohjelma tulostaa eikä palauta arvoa: -1p Aliohjelman kommenteissa puutteita: -0.5p Aliohjelman kommentit puuttuvat kokonaan: -1p Silmukan ehdossa "i < merkkijono": -1p Pääohjelmasta puuttuu esittelyrivi: -0.5p Kirjaimia a, e ja i ei ole laitettu taulukkoon/listaan, vaan silmukan sisälle on tehty if-hässäkkä: -1p Joitakin erikoistapauksia: Ohjelma ei toimi samalla tavalla kuin alkuperäinen, esim. pääohjelmassa vain yksi silmukka, jossa kysytään merkkijono ja samalla ilmoitetaan merkkien lukumäärä: 2p pääohjelmasta Aliohjelmaa ei ole kutsuttu silmukassa, vaan 3 kertaa ilman silmukkaa: 0.5p kutsuista Aliohjelmalle viedään lista merkkijonoista eikä yhtä: 0p aliohjelmasta 10/7

11 5. Teoriaa (Matias) Yleisesti tämän tehtävän asiat oli osattu hyvin. Alla mainittu yleisimpiä virheitä/kommentteja, mitä vastauksissa oli. a) -1 (1p) % on jakojäännös-operaattori, jonka tuloksena tulee 2. Siitä vähennetään / -0.5 pistettä, jos tiedettiin operaattori, mutta lasku väärin b) ika = 20 on sijoitusoperaatio. Vertailun kanssa tulisi käyttää vertailuoperaattoria == (1p) Monella oli toteamus, että if - else if - else ei toimisi tässä tapauksessa. Jos else if -lauseesta ottaisi elsen pois, niin silloin esim. arvolla 21 tulostuisia kaksi riviä. Kannattaa kokeilla itse Visual Studiolla, mitä tapahtuisi. c) Vakiomuuttujien arvoa ei voi muuttaa niiden määrittelyn jälkeen. (1p) Monella oli maininta siitä, että vakiot voidaan määritellä vain luokan alkuun. Toki näin usein tehdään, mutta mikään pakko tähän ei ole. Pieni miinus (-0.25p), jos muuten tiesi, mistä oli kyse. Myös normaaleja muuttujia voidaan määritellä luokan alkuun ja käyttää samalla tavalla aliohjelmien sisällä, toki se on eri asia, onko tämä kuinka järkevää. Asiasta lisää kevään jatkokurssilla... d) Ohjelman suoritus yleensä päättyy, mikäli poikkeusta (esim. NullPointerException) ei oteta kiinni (1p) Käyttöjärjestelmän antama virheilmoitus riippuu hieman missä sovellusta ajetaan. Konsoliin tulostuu virheilmoitus, mutta esimerkiksi Windowsin työpöytäohjelma ilmoittaa vain Ohjelma has stopped working ja Windows Phone-ohjelma taitaa palata alkuvalikkoon. Täysiin pisteisiin riitti, jos tiesi kaatumisen. Hieman miinuksia, jos oli mainittu esim. tapahtuu kauheita, mutta ei yksilöity tarkemmin, mitä tapahtuu. e) Ehdollinen keskeytyskohta on kohta, mihin suoritus debuggauksessa keskeytetään, mikäli keskeytykselle määrätty ehto täyttyy (1p) Pieni miinus (-0.25p), jos ei ollut debuggerista mainittu mitään. Monilla oli mainittu, että ajon aikana pysähdytään, mutta normaalin ajon aikana ei toki keskeytyskohta vaikuta mitenkään mikäli ei ollut mainittu ehdon täyttymisestä. f) Ikuinen silmukka on silmukka, jonka lopetusehto ei koskaan päde eli esimerkiksi whilen totuusarvo on aina true. (0.5p) Niitä käyttäessä tulee olla poistumisehto, jolla silmukasta poistutaan breakin tai returnin avulla. (0.5p) -0.25p, jos mainittu, että jollain keinolla pitää silmukasta poistua, mutta oli jäänyt mainitsematta ehto poistumiselle tai break/return keinona 6. Olioviitteet (Hannu) Kysymys 1. Ei tulostu. (1p) 11/7

12 Kyseisellä operaatiolla vertaillaan viitteitä, jotka osoittavat eri muistipaikkoihin. Vertailussa ei oteta kantaa listojen alkioiden arvoihin (1p) Kysymys 2. 1,2,3,4,8 - (1p) 1,2,3,4,8 - (1p) Kysymys 3. lista1 viittaa alkuperäiseen lista1:seen. Muistipaikassa on lista 1,2,3,4,8 (0.5p) lista2 viittaa samaan muistipaikkaan kuin lista1 1,2,3,4,8(0.5p) muokattavalista viittaa uuteen muistipaikkaan, jossa on lista 0,0,0,0(0.5p) Kysymys 4. Mikäli yksikään muuttuja ei viittaa johonkin muistipaikaan, muistipaikka muuttuu roskaksi. Automaattinen roskienkeruu vapauttaa muistipaikan muuhun käyttöön.(0.5p) 7. Yksi isompi ohjelmointitehtävä, 24p using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using Sokkelomatriisi; namespace Sokkelomatriisi /// Rakennetaan sokkelomatriisi. Matriisin alkiot ovat joko seinää tai käytävää. /// Toteutus booleaneilla, eli käytävät saavat arvon true (eli ruutuun saa mennä) /// ja seinät arvon false (eli ruutuun ei saa mennä). /// /// Sokkelo myöskin tulostetaan. public class Sokkelomatriisi private static Random rng = new Random(); //käytetään sekoituksessa. /// Pääohjelma, jossa luodaan 25 x 25 sokkelo. static void Main() bool[,] sokkelo = LuoSokkelo(25, 25); tulostasokkelo(sokkelo); /// Luo uuden korkeus * leveys -sokkelon. Jos korkeus tai leveys /// ovat parillisia, niihin lisätään 1, jotta sokkelo toimii. 12/7

13 /// <param name="korkeus">sokkelon korkeus</param> /// <param name="leveys">sokkelon leveys</param> /// <returns>vastarakennettu sokkelo.</returns> public static bool[,] LuoSokkelo(int korkeus, int leveys) //Sokkelon leveyden ja korkeuden on oltava parittomia, jotta vältytään //tuplareunoilta. Sokkelossa on siis käytäviä parittomissa //(x,y) -koordinaateissa ja seinää parillisissa. if (korkeus % 2 == 0) korkeus++; if (leveys % 2 == 0) leveys++; bool[,] sokkelo = new bool[korkeus, leveys]; KaivaKaytavat(sokkelo, 1, 1); //Luodaan sokkeloon 2 uloskäyntiä. sokkelo[0, 1] = true; sokkelo[korkeus - 2, leveys - 1] = true; return sokkelo; /// Kaivetaan parametrina tuotuun sokkeloon käytävät rekursiivisesti. /// <param name="sokkelo">sokkelo, johon käytävät kaivetaan</param> /// <param name="x">kohdan, jossa ollaan menossa x-koordinaatti</param> /// <param name="y">kohdan, jossa ollaan menossa y-koordinaatti</param> private static void KaivaKaytavat(bool[,] sokkelo, int x, int y) //Kaivetaan aloitusruutuun käytävä. sokkelo[x, y] = true; //Haetaan ruudun sokkelo[x,y] naapurit ja sekoitetaan naapurilista. List<Koordinaatti> naapurit = HaeNaapurit(sokkelo, x, y); Sekoita(naapurit); foreach (Koordinaatti naapuri in naapurit) if (!sokkelo[naapuri.x, naapuri.y]) PoistaSeina(sokkelo, x, y, naapuri.x, naapuri.y); //rekursiivinen kaivuu uudesta lähtöpisteestä. KaivaKaytavat(sokkelo, naapuri.x, naapuri.y); /// Poistetaan seinä kahden ruudun välistä 13/7

14 /// <param name="sokkelo">sokkelo, jossa ruudut ovat</param> /// <param name="x">ensimmäisen ruudun x</param> /// <param name="y">ensimmäisen ruudun y</param> /// <param name="x2">toisen ruudun x</param> /// <param name="y2">toisen ruudun y</param> private static void PoistaSeina(bool[,] sokkelo, int x, int y, int x2, int y2) //Tarkistetaan, ettei anneta "tyhmiä" parametreja. Liikutaan siis vain //sivu- tai pystysuunnassa. if (x!= x2 && y!= y2) return; //seinä oikealla: if (x2 - x == 2) sokkelo[x + 1, y] = true; //seinä alhaalla: else if (y2 - y == 2) sokkelo[x, y + 1] = true; //seinä vasemmalla: else if (x - x2 == 2) sokkelo[x - 1, y] = true; //seinä ylhäällä: else sokkelo[x, y - 1] = true; /// Haetaan sokkelon[x,y] naapuriruudut. /// Ruutujen koordinaatit palautetaan listana. /// <param name="sokkelo">sokkelo, jossa ruudut ovat</param> /// <param name="x">ruudun x-koordinaatti</param> /// <param name="y">ruudun y-koordinaatti</param> /// <returns>lista naapureita</returns> private static List<Koordinaatti> HaeNaapurit(bool[,] sokkelo, int x, int y) List<Koordinaatti> naapurit = new List<Koordinaatti>(); //Naapurit löytyy liikkumalla 2 ruutua oikealle, alas, vasemmalle tai //ylös, kunhan ei liikuta sokkelon ulkopuolelle. if (x + 2 < sokkelo.getlength(0)) naapurit.add(new Koordinaatti(x + 2, y)); if (y + 2 < sokkelo.getlength(1)) naapurit.add(new Koordinaatti(x, y + 2)); if (x - 2 > 0) naapurit.add(new Koordinaatti(x - 2, y)); if (y - 2 > 0) naapurit.add(new Koordinaatti(x, y - 2)); return naapurit; /// Aliohjelma sokkelon tulostamiseen. truen kohdalla tulostetaan välilyönti, /// falsen kohdalla X /// <param name="sokkelo">tulostettava sokkelo</param> public static void tulostasokkelo(bool[,] sokkelo) 14/7

15 for (int i = 0; i < sokkelo.getlength(0); i++) for (int j = 0; j < sokkelo.getlength(1); j++) if (sokkelo[i, j]) Console.Write(' '); else Console.Write('X'); Console.Write("\n"); /// Sekoittaa annetun listan. /// <typeparam name="t">listan alkioiden tyyppi</typeparam> /// <param name="lista">lista, joka sekoitetaan</param> public static void Sekoita<T>(List<T> lista) int n = lista.count; while (n > 1) n--; int k = rng.next(n + 1); T value = lista[k]; lista[k] = lista[n]; lista[n] = value; /// Luokka koordinaateille. public class Koordinaatti public int X get; set; public int Y get; set; /// Luo uuden (x,y)-koordinaatin /// <param name="x">x-koordinaatti</param> /// <param name="y">y-koordinaatti</param> public Koordinaatti(int x, int y) X = x; Y = y; 15/7

16 16/7

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) 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

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti Tentaattori: Antti-Jussi Lakanen 8. kesäkuuta 2018 Yleistä Tentti 1 meni pistekeskiarvon (11.2) perusteella välttävästi. Omasta tehtäväpaperista saa kopion

Lisätiedot

Ohjelmointi 2 / 2010 Välikoe / 26.3

Ohjelmointi 2 / 2010 Välikoe / 26.3 Ohjelmointi 2 / 2010 Välikoe / 26.3 Välikoe / 26.3 Vastaa neljään (4) tehtävään ja halutessa bonustehtäviin B1 ja/tai B2, (tuovat lisäpisteitä). Bonustehtävät saa tehdä vaikkei olisi tehnyt siihen tehtävään

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) 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

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 20. huhtikuuta 2018 Vastaa kaikkiin tehtäviin. Tee kukin tehtävä omalle konseptiarkille. Noudata ohjelmointitehtävissä kurssin koodauskäytänteitä.

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 12. huhtikuuta 2019 Tee kukin tehtävä omalle konseptiarkille. Noudata ohjelmointitehtävissä kurssin koodauskäytänteitä. Yksi A4-kokoinen lunttilappu

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti Tentaattori: Antti-Jussi Lakanen 20. toukokuuta 2016 Yleistä Tentti 1 oli pistekeskiarvon (11.6) perusteella vaikea. Omasta tehtäväpaperista saa kopion Antti-Jussilta,

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti Tentaattori: Antti-Jussi Lakanen 18. toukokuuta 2018 Yleistä Tentti 1 oli pistekeskiarvon (12.7) perusteella vaikeudeltaan kohtuullinen. Omasta tehtäväpaperista

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti ITKP2 Ohjelmointi 1 (6 op), arvosteluraportti Tentaattori: Antti-Jussi Lakanen 17. toukokuuta 219 Yleistä Tentti 1 oli pistekeskiarvon (14,6) perusteella hieman tavanomaista helpompi. Omasta tehtäväpaperista

Lisätiedot

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

C:\MyTemp\ohj1\ohjdemot\k2012\demot\vastaukset\demo11\PP1\TokaPisin.cs 1 using System; 2 using System.Collections.Generic; 3 using System. C:\MyTemp\ohj1\ohjdemot\k2012\demot\vastaukset\demo11\PP1\TokaPisin.cs 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 7 /// 8 /// Etsitään toiseksi

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti Tentaattori: Antti-Jussi Lakanen 7. huhtikuuta 2017 Yleistä Tentti 1 oli pistekeskiarvon (12.9) perusteella vaikeudeltaan tavallista vaikeampi. Omasta tehtäväpaperista

Lisätiedot

1. Mitä tehdään ensiksi?

1. Mitä tehdään ensiksi? 1. Mitä tehdään ensiksi? Antti Jussi i Lakanen Ohjelmointi 1, kevät 2010/ Jyväskylän yliopisto a) Etsitään Googlesta valmis algoritmi b) Mietitään miten itse tehtäisiin sama homma kynällä ja paperilla

Lisätiedot

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

Ohjelmointi 1 C#, kevät 2013, 2. tentti 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

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti Tentaattori: Antti-Jussi Lakanen 20. huhtikuuta 2018 Yleistä Tentti 1 oli pistekeskiarvon (13.8) perusteella vaikeudeltaan keskitasoa. Omasta tehtäväpaperista

Lisätiedot

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

Ohjelmointi 1 / 2009 syksy Tentti / 18.12 Tentti / 18.12 Vastaa yhteensä neljään tehtävään (huomaa että tehtävissä voi olla useita alakohtia), joista yksi on tehtävä 5. Voit siis valita kolme tehtävistä 1 4 ja tehtävä 5 on pakollinen. Vastaa JOKAISEN

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, literaalivakio, nimetty vakio Tiedon merkkipohjainen tulostaminen 1 Tunnus Java tunnus Java-kirjain Java-numero

Lisätiedot

Metodien tekeminen Javalla

Metodien tekeminen Javalla 1 Metodien tekeminen Javalla Mikä metodi on? Metodin syntaksi Metodi ja sen kutsuminen Parametreista Merkkijonot ja metodi Taulukot ja metodi 1 Mikä metodi on? Metodilla toteutetaan luokkaan toiminnallisuutta.

Lisätiedot

Ohjelmointi 1 C#, kevät 2013,

Ohjelmointi 1 C#, kevät 2013, Ohjelmointi 1 C#, kevät 2013, 19.4.2013 (English versions of the questions can be requested from the supervisor. Englanninkieliset kysymykset saa pyytämällä tentin valvojalta.) Tentti (yliopisto opiskelijat)

Lisätiedot

Ohjelmointi 1 C#, kevät 2014, tentti

Ohjelmointi 1 C#, kevät 2014, tentti ITKP102 Ohjelmointi 1 C# 11.4.2014 1 / 7 Ohjelmointi 1 C#, kevät 2014, tentti Tentaattori Antti-Jussi Lakanen Tässä tentissä saa olla mukana omia muistiinpanoja yksi A4-arkillinen. Tentin valvojalla on

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti Tentaattori: Antti-Jussi Lakanen 21. huhtikuuta 2017 Yleistä Tentti 1 oli pistekeskiarvon (14.0) perusteella vaikeudeltaan keskitasoa. Omasta tehtäväpaperista

Lisätiedot

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

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen Metodit Metodien määrittely Metodin parametrit ja paluuarvo Metodien suorittaminen eli kutsuminen Metodien kuormittaminen 1 Mikä on metodi? Metodi on luokan sisällä oleva yhteenkuuluvien toimintojen kokonaisuus

Lisätiedot

12. Javan toistorakenteet 12.1

12. Javan toistorakenteet 12.1 12. Javan toistorakenteet 12.1 Sisällys Yleistä toistorakenteista. Laskurimuuttujat. While-, do-while- ja for-lauseet. Laskuri- ja lippumuuttujat. Tyypillisiä ohjelmointivirheitä. Silmukan rajat asetettu

Lisätiedot

11. Javan toistorakenteet 11.1

11. Javan toistorakenteet 11.1 11. Javan toistorakenteet 11.1 Sisällys Laskuri- ja lippumuuttujat. Sisäkkäiset silmukat. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin

Lisätiedot

12. Javan toistorakenteet 12.1

12. Javan toistorakenteet 12.1 12. Javan toistorakenteet 12.1 Sisällys Yleistä toistorakenteista. Laskurimuuttujat. While-, do-while- ja for-lauseet. Laskuri- ja lippumuuttujat. Tyypillisiä ohjelmointivirheitä. Silmukan rajat asetettu

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti ITKP2 Ohjelmointi 1 (6 op), arvosteluraportti Tentaattori: Antti-Jussi Lakanen 12. huhtikuuta 219 Yleistä Tentti 1 oli pistekeskiarvon (13.3) perusteella vaikeudeltaan keskitasoa. Omasta tehtäväpaperista

Lisätiedot

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

Pisteytys: Eri kommentointitavat tiedetty: 0,5 pistettä, jos puuttuu niin ei voinut saada täysiä pisteitä. Ohjelmointi 1, tentti 11.4.2014. Tentaattori Antti-Jussi Lakanen. Arviointiraportti Yleistä Tentti (http://users.jyu.fi/~anlakane/ohjelmointi1/tentit/2014-04-11-tentti1.pdf) oli pistekeskiarvon (16.2)

Lisätiedot

58131 Tietorakenteet ja algoritmit (syksy 2015)

58131 Tietorakenteet ja algoritmit (syksy 2015) 58131 Tietorakenteet ja algoritmit (syksy 2015) Harjoitus 2 (14. 18.9.2015) Huom. Sinun on tehtävä vähintään kaksi tehtävää, jotta voit jatkaa kurssilla. 1. Erään algoritmin suoritus vie 1 ms, kun syötteen

Lisätiedot

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Kirjoita jokaiseen palauttamaasi konseptiin kurssin nimi, kokeen päivämäärä, oma nimi ja opiskelijanumero. Vastaa kaikkiin tehtäviin omille konsepteilleen.

Lisätiedot

Ohjelmointi 2, välikoe

Ohjelmointi 2, välikoe Ohjelmointi 2, välikoe 21.3.2014 Vastaa neljään tehtävään kuudesta siten, että jokainen tehtävä tulee omalle konseptilleen. Mikäli vastaat useampaan kuin neljään tehtävään, pisteiden laskussa huomioidaan

Lisätiedot

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

Ohjelmointi 2 / 2008 Välikoe / Pöytätestaa seuraava ohjelma. Välikoe / 20.3 Vastaa neljään (4) tehtävään. Jos vastaat 5:een, 4 huonointa arvostellaan. Kunkin tehtävän vastaus eri konseptille. 1. Pöytätesti Pöytätestaa seuraava ohjelma. Tutki ohjelman toimintaa pöytätestillä

Lisätiedot

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

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma. 2. Taulukot 2.1 Sisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.2 Yleistä

Lisätiedot

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

Ohjelmointi 1 C#, kevät 2014, 2. uusintatentti NIMI: ITKP102 Ohjelmointi 1 C# 13.6.2014 1 / 5 Ohjelmointi 1 C#, kevät 2014, 2. uusintatentti Tentaattori Antti-Jussi Lakanen Valitse neljä tehtävää ja vastaa niihin. Keväällä 2014 kurssin tehneille lasketaan

Lisätiedot

Ohjelmoinnin perusteet, syksy 2006

Ohjelmoinnin perusteet, syksy 2006 Ohjelmoinnin perusteet, syksy 2006 Esimerkkivastaukset 1. harjoituksiin. Alkuperäiset esimerkkivastaukset laati Jari Suominen. Vastauksia muokkasi Jukka Stenlund. 1. Esitä seuraavan algoritmin tila jokaisen

Lisätiedot

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

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta C++ - perusteet Java-osaajille luento 5/7: operaattoreiden ylikuormitus, oliotaulukko, parametrien oletusarvot, komentoriviparametrit, constant, inline, Operaattoreiden ylikuormitus Operaattoreiden kuormitus

Lisätiedot

Harjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Harjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: Harjoitus 7 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: class Lintu //Kentät private int _siivenpituus; protected double _aivojenkoko; private bool _osaakolentaa; //Ominaisuudet public int

Lisätiedot

1. Omat operaatiot 1.1

1. Omat operaatiot 1.1 1. Omat operaatiot 1.1 Sisällys Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma

Lisätiedot

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

Sisältö. 2. Taulukot. Yleistä. Yleistä Sisältö 2. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.1 2.2 Yleistä

Lisätiedot

Olio-ohjelmointi Javalla

Olio-ohjelmointi Javalla 1 Olio-ohjelmointi Javalla Olio-ohjelmointi Luokka Attribuutit Konstruktori Olion luominen Metodit Olion kopiointi Staattinen attribuutti ja metodi Yksinkertainen ohjelmaluokka Ohjelmaluokka 1 Olio-ohjelmointi

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 1.4.2009 T-106.1208 Ohjelmoinnin perusteet Y 1.4.2009 1 / 56 Tentti Ensimmäinen tenttimahdollisuus on pe 8.5. klo 13:00 17:00 päärakennuksessa. Tämän jälkeen

Lisätiedot

Tietorakenteet ja algoritmit syksy Laskuharjoitus 1

Tietorakenteet ja algoritmit syksy Laskuharjoitus 1 Tietorakenteet ja algoritmit syksy 2012 Laskuharjoitus 1 1. Tietojenkäsittelijä voi ajatella logaritmia usein seuraavasti: a-kantainen logaritmi log a n kertoo, kuinka monta kertaa luku n pitää jakaa a:lla,

Lisätiedot

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

Sisältö. 22. Taulukot. Yleistä. Yleistä Sisältö 22. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 22.1 22.2 Yleistä

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 30.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 30.9.2015 1 / 27 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

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

Pong-peli, vaihe Koordinaatistosta. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 2/7. Tämän vaiheen aikana Muilla kielillä: English Suomi Pong-peli, vaihe 2 Tämä on Pong-pelin tutoriaalin osa 2/7. Tämän vaiheen aikana Laitetaan pallo liikkeelle Tehdään kentälle reunat Vaihdetaan kentän taustaväri Zoomataan

Lisätiedot

Apuja ohjelmointiin» Yleisiä virheitä

Apuja ohjelmointiin» Yleisiä virheitä Apuja ohjelmointiin» Yleisiä virheitä Ohjelmaa kirjoittaessasi saattaa Visual Studio ilmoittaa monenlaisista virheistä "punakynällä". Usein tämä johtuu vain siitä, että virheitä näytetään vaikket olisi

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, Vakio Tiedon merkkipohjainen tulostaminen Ohjelmointi (ict1tx006) Tunnus (5.3) Javan tunnus Java-kirjain Java-numero

Lisätiedot

Olio-ohjelmointi Syntaksikokoelma

Olio-ohjelmointi Syntaksikokoelma C++-kielen uusia ominaisuuksia Olio-ohjelmointi Syntaksikokoelma 31.10.2008 Bool-tietotyyppi: Totuusarvo true (1), jos ehto on tosi ja false (0) jos ehto epätosi. Dynaaminen muistinvaraus: Yhden muuttuja

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti Tentaattori: Antti-Jussi Lakanen 22. huhtikuuta 2016 Yleistä Tentti 1 oli pistekeskiarvon (15.1) perusteella vaikeudeltaan keskitasoa, ehkä hitusen viime

Lisätiedot

Java-kielen perusteita

Java-kielen perusteita Java-kielen perusteita valintalauseet 1 Johdantoa kontrollirakenteisiin Tähän saakka ohjelmissa on ollut vain peräkkäisyyttä eli lauseet on suoritettu peräkkäin yksi kerrallaan Tarvitsemme myös valintaa

Lisätiedot

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

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista Sisällys 1. Omat operaatiot Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma

Lisätiedot

Ohjelmointi 2 / 2011 Välikoe / 25.3

Ohjelmointi 2 / 2011 Välikoe / 25.3 Välikoe / 25.3 Vastaa neljään (4) tehtävään ja halutessa bonustehtäviin B1 ja/tai B2, (tuovat lisäpisteitä). Bonustehtävät saa tehdä vaikkei olisi tehnyt siihen tehtävään liittyvää tehtävää. Aikaa 4 tuntia.

Lisätiedot

13. Loogiset operaatiot 13.1

13. Loogiset operaatiot 13.1 13. Loogiset operaatiot 13.1 Sisällys Loogiset operaatiot AND, OR, XOR ja NOT. Operaatioiden ehdollisuus. Bittioperaatiot. Loogiset operaatiot ohjausrakenteissa. Loogiset operaatiot ja laskentajärjestys.

Lisätiedot

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

Pong-peli, vaihe Aliohjelman tekeminen. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana Muilla kielillä: English Suomi Pong-peli, vaihe 3 Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana Jaetaan ohjelma pienempiin palasiin (aliohjelmiin) Lisätään peliin maila (jota ei voi vielä

Lisätiedot

815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset

815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset Harjoituksen aiheena ovat aliohjelmat ja abstraktit tietotyypit sekä olio-ohjelmointi. Tehtävät tehdään C-, C++- ja Java-kielillä.

Lisätiedot

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Sisällys. 14. Poikkeukset. Johdanto. Johdanto Sisällys 14. Poikkeukset Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Miten varautua poikkeukseen metodissa? Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla

Lisätiedot

8. Näppäimistöltä lukeminen 8.1

8. Näppäimistöltä lukeminen 8.1 8. Näppäimistöltä lukeminen 8.1 Sisällys Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. In-luokka, käännös ja tulkinta Scanner-luokka. 8.2 Yleistä Näppäimistöltä annettujen arvojen (syötteiden)

Lisätiedot

Tutoriaaliläsnäoloista

Tutoriaaliläsnäoloista Tutoriaaliläsnäoloista Tutoriaaliläsnäolokierroksella voi nyt täyttää anomuksen läsnäolon merkitsemisestä Esim. tagi ei toiminut, korvavaltimon leikkaus, yms. Hyväksyn näitä omaa harkintaa käyttäen Tarkoitus

Lisätiedot

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

Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista. 1 Luokka Murtoluku uudelleen Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista. Sievennettäessä tarvitaan osoittajan ja nimittäjän suurin yhteinen tekijä (syt).

Lisätiedot

7. Oliot ja viitteet 7.1

7. Oliot ja viitteet 7.1 7. Oliot ja viitteet 7.1 Sisällys Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen. Viitteiden sijoitus. Viitteiden vertailu. Varautuminen null-arvoon. Viite metodin paluuarvona. Viite metodin

Lisätiedot

14. Poikkeukset 14.1

14. Poikkeukset 14.1 14. Poikkeukset 14.1 Sisällys Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla poikkeuksella? Poikkeusten heittäminen.

Lisätiedot

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

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004 Vertailulauseet Ehtolausekkeet Ehdot, valintalausekkeet Boolean-algebra == yhtäsuuruus!= erisuuruus < pienempi suurempi >= suurempi tai yhtäsuuri Esimerkkejä: int i=7; int j=10;

Lisätiedot

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

Pong-peli, vaihe Aliohjelmakutsu laskureita varten. 2. Laskurin luominen. Muilla kielillä: English Suomi Muilla kielillä: English Suomi Pong-peli, vaihe 7 Tässä vaiheessa lisäämme peliin pistelaskun. Pong-pelissä pelaaja saa pisteen kun pallo ohittaa toisen pelaajan mailan. 1. Aliohjelmakutsu laskureita varten

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 3 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten muuttujiin liittyvät kysymykset. Tehtävä 1. Määritä muuttujien max_num, lista,

Lisätiedot

Listarakenne (ArrayList-luokka)

Listarakenne (ArrayList-luokka) Listarakenne (ArrayList-luokka) Mikä on lista? Listan määrittely ArrayList-luokan metodeita Listan läpikäynti Listan läpikäynti indeksin avulla Listan läpikäynti iteraattorin avulla Listaan lisääminen

Lisätiedot

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

Tässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ). Tehtävä 1: Metodit, listat, alkuluvut (4p) Tässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ). Alkuluvut ovat lukuja, jotka ovat suurempia kuin yksi ja jotka ovat jaollisia

Lisätiedot

Tietorakenteet (syksy 2013)

Tietorakenteet (syksy 2013) Tietorakenteet (syksy 2013) Harjoitus 1 (6.9.2013) Huom. Sinun on osallistuttava perjantain laskuharjoitustilaisuuteen ja tehtävä vähintään kaksi tehtävää, jotta voit jatkaa kurssilla. Näiden laskuharjoitusten

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print

Lisätiedot

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

Sisällys. 12. Javan toistorakenteet. Yleistä. Laskurimuuttujat Sisällys 12. Javan toistorakenteet Ylstä toistorakentsta. Laskurimuuttujat. While-, do-while- ja for-lauseet. Laskuri- ja lippumuuttujat. Tyypillisiä ohjelmointivirhtä. Silmukan rajat asetettu kierroksen

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 7.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 7.2.2011 1 / 39 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot

14. Poikkeukset 14.1

14. Poikkeukset 14.1 14. Poikkeukset 14.1 Sisällys Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Miten varautua poikkeukseen metodissa? Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla

Lisätiedot

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Sisällys. 14. Poikkeukset. Johdanto. Johdanto Sisällys 14. Poikkeukset Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla poikkeuksella? Poikkeusten heittäminen.

Lisätiedot

Java kahdessa tunnissa. Jyry Suvilehto

Java kahdessa tunnissa. Jyry Suvilehto Java kahdessa tunnissa Jyry Suvilehto Ohjelma Ohjelmointiasioita alkeista nippelitietoon n. 45 min Tauko 10 min Oliot, luokat ja muut kummajaiset n. 45 min Kysykää Sisältöä ei oikeasti ole 2x45 min täytteeksi,

Lisätiedot

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

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin. 2. Ohjausrakenteet Ohjausrakenteiden avulla ohjataan ohjelman suoritusta. peräkkäisyys valinta toisto Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet

Lisätiedot

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

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä Sisällys 11. Javan toistorakenteet Laskuri- ja lippumuuttujat.. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin lopettaminen break-lauseella.

Lisätiedot

Ohjelmointi 1 Taulukot ja merkkijonot

Ohjelmointi 1 Taulukot ja merkkijonot Ohjelmointi 1 Taulukot ja merkkijonot Jussi Pohjolainen TAMK Tieto- ja viestintäteknologia Johdanto taulukkoon Jos ohjelmassa käytössä ainoastaan perinteisiä (yksinkertaisia) muuttujia, ohjelmien teko

Lisätiedot

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

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa(); Sisällys 7. Oliot ja viitteet Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen. Viitteiden käsittelyä: sijoitus, vertailu ja varautuminen null-arvoon. Viite metodin paluuarvona.. 7.1 7.2 Olio

Lisätiedot

7/20: Paketti kasassa ensimmäistä kertaa

7/20: Paketti kasassa ensimmäistä kertaa Ohjelmointi 1 / syksy 2007 7/20: Paketti kasassa ensimmäistä kertaa Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava

Lisätiedot

1 Tehtävän kuvaus ja analysointi

1 Tehtävän kuvaus ja analysointi Olio-ohjelmoinnin harjoitustyön dokumentti Jyri Lehtonen (72039) Taneli Tuovinen (67160) 1 Tehtävän kuvaus ja analysointi 1.1 Tehtävänanto Tee luokka, jolla mallinnetaan sarjaan kytkettyjä kondensaattoreita.

Lisätiedot

C# olio-ohjelmointi perusopas

C# olio-ohjelmointi perusopas Paavo Räisänen C# olio-ohjelmointi perusopas www.ohjelmoimaan.net Tätä opasta saa vapaasti kopioida, tulostaa ja levittää ei kaupallisissa tarkoituksissa. Kuitenkaan omille nettisivuille opasta ei saa

Lisätiedot

ITKP102 Ohjelmointi 1, syksy 2007

ITKP102 Ohjelmointi 1, syksy 2007 Tenttirunko 6.11.2007: koodit, koodattava toiminnallisuus, syntaksikysymys, lukuarvot lukujärjestelmäkysymyksissä ovat eri tenttikerroilla aina erilaiset, mutta kysymysten aihepiirit ja muotoilu ovat samat.

Lisätiedot

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

// Tulostetaan double-tyyppiseen muuttujaan hinta tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf(%.1f euros. Lue kukin tehtävänanto huolellisesti ja kokonaisuudessaan ennen kuin aloitat vastaamisen. Kustakin tehtävästä voi saada 0 6 pistettä. Tentin läpipääsyraja on 12 / 24 pistettä. Ratkaisut palautetaan WETO-järjestelmään

Lisätiedot

Jypelin käyttöohjeet» Ruutukentän luominen

Jypelin käyttöohjeet» Ruutukentän luominen Jypelin käyttöohjeet» Ruutukentän luominen Pelissä kentän (Level) voi luoda tekstitiedostoon "piirretyn" mallin mukaisesti. Tällöin puhutaan, että tehdään ns. ruutukenttä, sillä tekstitiedostossa jokainen

Lisätiedot

11. Javan valintarakenteet 11.1

11. Javan valintarakenteet 11.1 11. Javan valintarakenteet 11.1 Sisällys If- ja if--lauseet. Orpo. Valintaa toisin: switch-lause. 11.2 Valintarakenteet Valintarakenteilla ilmaistaan formaalisti, kuinka algoritmin suoritus voi haarautua

Lisätiedot

Rajapinta (interface)

Rajapinta (interface) 1 Rajapinta (interface) Mikä rajapinta on? Rajapinta ja siitä toteutettu luokka Monimuotoisuus ja dynaaminen sidonta Rajapinta vs periytyminen 1 Mikä rajapinta on? Rajapintoja käytetään, kun halutaan määritellä

Lisätiedot

8. Näppäimistöltä lukeminen 8.1

8. Näppäimistöltä lukeminen 8.1 8. Näppäimistöltä lukeminen 8.1 Sisällys Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. In-luokka, käännös ja tulkinta Scanner-luokka. 8.2 Yleistä Näppäimistöltä annettujen arvojen (syötteiden)

Lisätiedot

Ohjelmointiharjoituksia Arduino-ympäristössä

Ohjelmointiharjoituksia Arduino-ympäristössä Ohjelmointiharjoituksia Arduino-ympäristössä Yleistä Arduino-sovelluksen rakenne Syntaksi ja käytännöt Esimerkki ohjelman rakenteesta Muuttujat ja tietotyypit Tietotyypit Esimerkkejä tietotyypeistä Ehtolauseet

Lisätiedot

5/20: Algoritmirakenteita III

5/20: Algoritmirakenteita III Ohjelmointi 1 / syksy 2007 5/20: Algoritmirakenteita III Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/17 Tämän

Lisätiedot

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

Lohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 15.3 15. Lohkot 15.1 Sisällys Tutustutaan lohkoihin. Muuttujien ja vakioiden näkyvyys sekä elinikä erityisesti operaation lohkossa. Nimikonfliktit. Muuttujat operaation alussa vai myöhemmin? 15.2 Lohkot Aaltosulkeet

Lisätiedot

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia.

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia. Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-ympäristö Java-ohjelma ja ohjelmaluokka

Lisätiedot

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

// Tulostetaan double-tyyppiseen muuttujaan hinta tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf(%.1f euros. Lue kukin tehtävänanto huolellisesti ja kokonaisuudessaan ennen kuin aloitat vastaamisen. Kustakin tehtävästä voi saada 0 6 pistettä. Tentin läpipääsyraja on 12 / 24 pistettä. Ratkaisut palautetaan WETO-järjestelmään

Lisätiedot

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä 12.1 12.2 12.3 12.4

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä 12.1 12.2 12.3 12.4 Sisällys 12. Näppäimistöltä lukeminen Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä.. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit. Scanner-luokka.

Lisätiedot

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

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5) Alkuarvot ja tyyppimuunnokset (1/5) Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int luku = 123; Alkuarvon on oltava muuttujan tietotyypin mukainen, esimerkiksi int-muuttujilla kokonaisluku,

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 21.1.2009 T-106.1208 Ohjelmoinnin perusteet Y 21.1.2009 1 / 32 Tyypeistä Monissa muissa ohjelmointikielissä (esim. Java ja C) muuttujat on määriteltävä ennen

Lisätiedot

12. Näppäimistöltä lukeminen 12.1

12. Näppäimistöltä lukeminen 12.1 12. Näppäimistöltä lukeminen 12.1 Sisällys Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit.

Lisätiedot

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

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A. Tehtävä. Tämä tehtävä on aineistotehtävä, jossa esitetään ensin tehtävän teoria. Sen jälkeen esitetään neljä kysymystä, joissa tätä teoriaa pitää soveltaa. Mitään aikaisempaa tehtävän aihepiirin tuntemusta

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 16.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 16.2.2010 1 / 41 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot

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

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen Ohjelmointitaito (ict1td002, 12 op) Kevät 2009 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-kehitysympäristö Java-ohjelma ja luokka

Lisätiedot

Harjoitustyö: virtuaalikone

Harjoitustyö: virtuaalikone Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman

Lisätiedot

815338A Ohjelmointikielten periaatteet 2014-2015. Harjoitus 7 Vastaukset

815338A Ohjelmointikielten periaatteet 2014-2015. Harjoitus 7 Vastaukset 815338A Ohjelmointikielten periaatteet 2014-2015. Harjoitus 7 Vastaukset Harjoituksen aiheena on funktionaalinen ohjelmointi Scheme- ja Haskell-kielillä. Voit suorittaa ohjelmat osoitteessa https://ideone.com/

Lisätiedot

Luokan sisällä on lista

Luokan sisällä on lista 1 Luokan sisällä on lista Luokan sisällä lista Listan sisältävä luokka Konstruktorit get-metodi Lista muissa metodeissa addxx-metodi Yksinkertainen pääohjelma Kertauksen List-luokan metodeja 1 Luokan sisällä

Lisätiedot