C:\MyTemp\ohj1\ohjdemot\k2012\demot\vastaukset\demo11\PP1\TokaPisin.cs 1 using System; 2 using System.Collections.Generic; 3 using System.
|
|
- Reino Katajakoski
- 7 vuotta sitten
- Katselukertoja:
Transkriptio
1 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; /// <summary> 8 /// Etsitään toiseksi pisintä sanaa. 9 /// </summary> 10 public class TokaPisin 11 { 12 public static void Main(string[] args) 13 { 14 Console.WriteLine("Anna sanoja"); 15 List<string> sanat = new List<string>(); 16 String syote; 17 while (true) 18 { 19 syote = Console.ReadLine(); 20 if (syote == "") break; 21 sanat.add(syote); 22 } String tokapisin = EtsiToiseksiPisin(sanat); 25 } /// <summary> 28 /// Palauttaa listan toiseksi pisimmän alkion. 29 /// </summary> 30 /// <param name="sanat">lista sanoja</param> 31 /// <returns>toka pisin</returns> 32 /// <example> 33 /// <pre name="test"> 34 /// List<string> sanat = new List<string>() { "Antti", "Pekka", "Irmeli" }; 35 /// TokaPisin.EtsiToiseksiPisin(sanat) === "Antti"; 36 /// List<string> sanat2 = new List<string>() { "Irmeli", "Pekka", "Antti" }; 37 /// TokaPisin.EtsiToiseksiPisin(sanat2) === "Pekka"; 38 /// </pre> 39 /// </example> 40 public static string EtsiToiseksiPisin(List<string> sanat) 41 { 42 String pisin = sanat[0]; 43 String tokapisin = sanat[1]; 44 for (int i = 1; i < sanat.count; i++) 45 { 46 if (sanat[i].length > pisin.length) 47 { 48 tokapisin = pisin; 49 pisin = sanat[i]; 50 } 51 else if (sanat[i].length > tokapisin.length) 52 tokapisin = sanat[i]; 53 } 54 return tokapisin; 55 } 56 }
2 C:\MyTemp\ohj1\esimerkit\live\PP11\EkaJaVikaSana\Program.cs 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 /// <summary> 7 /// Etsitään ensimmäinen ja viimeinen sana. 8 /// </summary> 9 public class EkaVika 10 { 11 static void Main(string[] args) 12 { 13 String ekajavika = EkaJaVikaSana("Janne meni kauppaan ja osti maitoa."); 14 } /// <summary> 17 /// Palauttaa annetusta merkkijonosta ensimmäisen ja viimeisen sanan, 18 /// väliin välilyönti. 19 /// </summary> 20 /// <param name="jono">jono, josta eka ja vika sana otetaan.</param> 21 /// <returns>eka ja vika sana.</returns> 22 /// <example> 23 /// <pre name="test"> 24 /// EkaVika.EkaJaVikaSana("Janne meni kauppaan ja osti maitoa.") === "Janne maitoa."; 25 /// EkaVika.EkaJaVikaSana("Janne") === "Janne"; 26 /// EkaVika.EkaJaVikaSana("Janne Kalle") === "Janne Kalle"; 27 /// EkaVika.EkaJaVikaSana("") === ""; 28 /// EkaVika.EkaJaVikaSana(" ") === " "; 29 /// EkaVika.EkaJaVikaSana(" ") === " "; 30 /// EkaVika.EkaJaVikaSana(" ") === " "; 31 /// </pre> 32 /// </example> 33 public static string EkaJaVikaSana(String jono) 34 { 35 String[] sanat = jono.split(' '); 36 if (sanat.length > 1) 37 { 38 String ekajavika = sanat[0] + " " + sanat[sanat.length 1]; 39 return ekajavika; 40 } 41 return jono; 42 } 43 } 44 1
3 C:\MyTemp\ohj1\ohjdemot\k2012\demot\vastaukset\demo11\ToiseksiSuurin\ToiseksiSuurin.cs 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 Antti Jussi Lakanen /// <summary> 10 /// Ohjelma etsii ja tulostaa annetun kokonaislukutaulukon toiseksi 11 /// suurimman alkion. 12 /// </summary> 13 public class ToiseksiSuurinLuku 14 { 15 /// <summary> 16 /// Alustetaan taulukot ja tulostetaan halutut alkiot. 17 /// </summary> 18 /// <param name="args"></param> 19 public static void Main(string[] args) 20 { 21 int[] luvut = { 3, 1, 7, 9, 15, 8 }; 22 int luku = ToiseksiSuurin(luvut); 23 Console.Write("Taulukon "); 24 TulostaTaulukko(luvut); 25 Console.Write(" toiseksi suurin luku on " + luku); 26 Console.ReadKey(); 27 } /// <summary> 31 /// Tulostaa int taulukon. 32 /// </summary> 33 /// <param name="luvut">tulostettava taulukko.</param> 34 public static void TulostaTaulukko(int[] luvut) 35 { 36 foreach (int luku in luvut) 37 Console.Write(luku + " "); 38 } /// <summary> 42 /// Palauttaa kokonaislukutaulukon toiseksi suurimman alkion. 43 /// Alle 2 mittaisille taulukoille paluuarvo on int.minvalue. 44 /// Taulukon ollessa pituudeltaan 1 palautetaan ainoa alkio. 45 /// </summary> 46 /// <param name="luvut">tutkittava taulukko.</param> 47 /// <returns>toiseksi suurin alkio.</returns> /// <pre name="test"> 50 /// int[] luvut1 = {}; 51 /// ToiseksiSuurinLuku.ToiseksiSuurin(luvut1) === int.minvalue; 52 /// int[] luvut2 = {4}; 53 /// ToiseksiSuurinLuku.ToiseksiSuurin(luvut2) === int.minvalue; 54 /// int[] luvut3 = {3, 1, 7, 9, 15, 8}; 55 /// ToiseksiSuurinLuku.ToiseksiSuurin(luvut3) === 9; 56 /// int[] luvut4 = {15, 14, 10, 8, 5}; 57 /// ToiseksiSuurinLuku.ToiseksiSuurin(luvut4) === 14; 58 /// int[] luvut5 = {15, 14, 15, 15, 15}; 59 /// ToiseksiSuurinLuku.ToiseksiSuurin(luvut5) === 15; 60 /// </pre> public static int ToiseksiSuurin(int[] luvut) 63 { 64 if (luvut.length < 2) return int.minvalue; 65 int suurin = int.minvalue; 66 int toiseksisuurin = int.minvalue; 67 for (int i = 0; i < luvut.length; i++) 68 { 69 if (luvut[i] > suurin) 70 { 71 toiseksisuurin = suurin; 72 suurin = luvut[i]; 73 } 1
4 C:\MyTemp\ohj1\ohjdemot\k2012\demot\vastaukset\demo11\ToiseksiSuurin\ToiseksiSuurin.cs 74 else if (luvut[i] > toiseksisuurin) 75 { 76 toiseksisuurin = luvut[i]; 77 } 78 } 79 return toiseksisuurin; 80 } 81 } 2
5 C:\MyTemp\ohj1\ohjdemot\k2012\demot\vastaukset\demo11\NimenPalat\NimenPalat.cs 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 Antti Jussi Lakanen /// <summary> 10 /// Luetaan riveittäin käyttäjän antamaa nimitietoa muodossa 11 /// Ekaetunimi Tokaetunimi Kolmasetunimi Sukunimi 12 /// Sukunimi on aina mukana, etunimiä annetaan vähintään yksi, enintään kolme. 13 /// Syöttö lopetetaan antamalla pelkkä Enter, jolloin ohjelma 14 /// tulostaa nimet aakkostettuna muodossa 15 /// Sukunimi E.T.K. 16 /// </summary> 17 public class NimenPalat 18 { 19 /// <summary> 20 /// Luodaan lista tietorakenne, johon nimia tallennetaan. 21 /// Pyydetaan sitten kayttajan syotteet ja lopuksi tulostetaan 22 /// tulokset. 23 /// </summary> 24 /// <param name="args"></param> 25 public static void Main(string[] args) 26 { 27 Console.WriteLine("Anna nimiä muodossa Etunimet Sukunimi\nYksi nimi rivilleen, pelkkä Enter lopettaa."); 28 List<String> nimet = new List<string>(); 29 while (true) 30 { 31 Console.Write("> "); 32 String syote = Console.ReadLine(); 33 if (syote == "") break; 34 String muokattunimi = MuutaNimi(syote, 3); 35 nimet.add(muokattunimi.tostring()); 36 } nimet.sort(); // Jarjestetaan lista sukunimen ensimmaisen kirjaimen mukaan Console.WriteLine("Annoit nimet:"); 41 foreach (String nimi in nimet) 42 { 43 Console.WriteLine(nimi); 44 } 45 Console.ReadKey(); 46 } /// <summary> 50 /// Muutetaan nimi niin, että sukunimi tulee alkuun ja etunimistä on vain alkukirjaimet ja. 51 /// </summary> 52 /// <param name="nimi">muutettava nimi</param> 53 /// <param name="etunimiaenintaan">kuinka monta etunimeä enintään sallitaan.</param> 54 /// <returns>nimi muodossa sukunimi e.t.</returns> 55 /// <example> 56 /// <pre name="test"> 57 /// NimenPalat.MuutaNimi("", 3) === ""; 58 /// NimenPalat.MuutaNimi("Kaarle", 3) === "Kaarle"; 59 /// NimenPalat.MuutaNimi("Kaarle Kustaa Korkki", 3) === "Korkki K.K."; 60 /// NimenPalat.MuutaNimi("Seppo Pentti Ville Kinnunen", 3) === "Kinnunen S.P.V."; 61 /// NimenPalat.MuutaNimi("Åke Aarnio", 3) === "Aarnio Å."; 62 /// NimenPalat.MuutaNimi(" Åke Aarnio ", 3) === "Aarnio Å."; 63 /// NimenPalat.MuutaNimi("Ulla Maija Wikholm Seppänen", 3) === "Wikholm Seppänen U."; 64 /// </pre> 65 /// </example> 66 public static String MuutaNimi(String syote, int etunimiaenintaan) 67 { 68 string[] osat = syote.split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); 69 int n = osat.length; 70 if (n == 0) return ""; 71 if (n == 1) return osat[0]; // muuten tulee turha välilyönti 72 StringBuilder muokattunimi = new StringBuilder(); 1
6 C:\MyTemp\ohj1\ohjdemot\k2012\demot\vastaukset\demo11\NimenPalat\NimenPalat.cs 73 muokattunimi.append(osat[osat.length 1] + " "); 74 for (int i = 0; i < Math.Min(etunimiaEnintaan, osat.length 1); i++) // Etunimiä ei saa olla määräänsä enempää 75 { 76 muokattunimi.append(osat[i][0] + "."); 77 } 78 return muokattunimi.tostring(); 79 } 80 } 2
7 C:\MyTemp\ohj1\ohjdemot\k2012\demot\vastaukset\demo11\t4.txt 26. maaliskuuta :04 Aliohjelmakutsu =============== Olkoon meillä vaikkapa ohjelmakoodi: StringBuilder jono = new StringBuilder("Matti istuu penkillä."); String vokaalit = "aeiouyåäö"; String kolmeekaavokaalia = SiirraKirjaimet(jono,vokaalit,1+2); ja aliohjelman esittely public static String SiirraKirjaimet(StringBuilder jono, String siirrettavat, int maara) Aliohjelmakutsussa SiirraKirjaimet(jono,vokaalit,1+2); ohjelman suoritus siirtyy aliohjelman SiirraKirjaimet sisälle. Kuitenkin ennen siirtymistä lasketaan kunkin parametrina olevan lausekkeen arvot loppuun saakka. Osa lausekkeista voi olla valmiita sellaisenaan, kuten esimerkissä jono ja vokaalit. Lausekkeen 1+2 arvo lasketaan. Kutsua varten lausekkeiden arvot sijoitetaan aliohjelman vastinmuuttujiin, siis tässä tapauksessa aliohjelman jono = pääohjelman jono siirrettavat = vokaalit maara = 3 On huomattava, että oliomuuttujien tapauksessa (esimerkissä tyypit StringBuilder ja String) sijoitetaan _viite_ siihen olioon, johon pääohjelmankin vastaava viite (esim. vokaalit) osoittaa. Ei siis luoda uutta oliota. Kuitenkin jos kutsussa olisi ollut SiirraKirjaimet(jono,vokaalit+"k",1+2); olisi lausekkeesta vokaalit+"k" syntynyt uusi olio ja tämän olion viite olisi viety aliohjelman siirrettavat muuttujan arvoksi. Tämä tilapäinen olio muuttuisi roskaksi kun aliohjelmasta palataan (ellei aliohjelman sisällä ole jotakin, mistä jää pysyvämpi viite parametrina vietyyn oliooon). -1-
8 C:\MyTemp\ohj1\ohjdemot\k2012\demot\vastaukset\demo11\t4.txt 26. maaliskuuta :04 Kun sijoitukset on tehty, lähdetään suorittamaan aliohjelmaa. Suorituksen loppuessa tai return lauseen tullessa vastaan, aliohjelmasta palataan siihen kohti, josta sitä kutsuttiin. Jos aliohjelman tyyppinä on muuta kuin void, tulee aliohjelman paluuarvo kutsuneeseen ohjelman osaan ja siitä se otetaan jatkokäyttöön. Esimerkin tapauksessa muuttuja kolmeekaavokaalia saa aliohjelman palauttaman arvon. Tässä tapauksessa arvona on aliohjelman (oletettavasti) luoman olion viite, nyt siis merkkijonoon, johon poistettavat merkit on kopioitu. Esimerkin maara ja jono muuttujien välillä on sellainen ratkaiseva ero, että vaikka aliohjelman sisällä sijoitettaisiin maara muuttujaan, niin vaikutus ei näy kutsuvaan ohjelman osaan. Jos aliohjelmassa tehdään jokin muutos jono muuttujan sisältöön (ei siis luoda uutta oliota), niin silloin yhteisen viitteen takia myös kutsuneen ohjelmanosan vastaava olio (siis se sama yhteinen olio) on muuttunut. Sen sijaan jos aliohjelmassa tehtäisiin jono = new StringBuilder("kissa"); niin tämä on uusi olio, josta kutsunut ohjelmanosa ei saa tietää mitään. Tämä vastaisi täysin sijoitusta maara = 7; mikä ei tietenkään voisi muuttaa lasekkeen 2+1 arvoa mitenkään. C#:ssa aliohjelmien parametrien välitys on siis arvopohjaista ja viitteet ovat arvoja. Toki viitteitä pitkin voidaan muuttaa olioiden sisältöä. Jotkin luokat ovat arvopohjaisia (imnmutable), mikä tarkoittaa sitä, että vaikka olioita käsitelläänkin, niin silti niiden sisältöä ei voi muuttaa. Esimerkin tapauksessa C#:n String luokka on tällainen. Eli vokaalit olion sisältö on ennen ja jälkeen aliohjelman kutsun täsmälleen samanlainen, tehtiin aliohjelmassa mitä tahansa. -2-
9 C:\MyTemp\ohj1\ohjdemot\k2012\demot\vastaukset\demo11\PoistaKirjaimia\PoistaKirjain.cs 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 Antti Jussi Lakanen /// <summary> 10 /// Ohjelmassa poistetaan merkkeja merkkijonosta. 11 /// </summary> 12 public class PoistaKirjain 13 { 14 /// <summary> 15 /// Esimerkkeja. Tulostetaan tulokset. 16 /// </summary> 17 /// <param name="args">ei kaytossa.</param> 18 public static void Main(string[] args) 19 { 20 StringBuilder jono = new StringBuilder("putos ku talonmies liukkaalta katolta"); 21 Poista(jono, 't'); 22 Console.WriteLine(jono.ToString()); 23 Poista(jono, 'k'); 24 Console.WriteLine(jono.ToString()); 25 Poista(jono, 'a'); 26 Console.WriteLine(jono.ToString()); 27 Poista(jono, 'l'); 28 Console.WriteLine(jono.ToString()); 29 Poista(jono, 's'); 30 Console.WriteLine(jono.ToString()); 31 Poista(jono, 'x'); 32 Console.WriteLine(jono.ToString()); 33 Poista(jono, ' '); 34 Console.WriteLine(jono.ToString()); 35 Console.ReadKey(); 36 } /// <summary> 40 /// Aliohjelma poistaa merkkijonosta kaikki 41 /// annetun merkin esiintymat. 42 /// </summary> 43 /// <param name="jono">merkkijono, josta merkkeja poistetaan.</param> 44 /// <param name="poistettava">poistettava merkki.</param> 45 /// <returns>montako poistettavaa merkkia loytyi/poistettiin.</returns> /// <pre name="test"> 48 /// StringBuilder jono = new StringBuilder("kissa istuu puussa"); // alustetaan jono 49 /// PoistaKirjain.Poista(jono, ' ') === 2; jono.tostring() === "kissaistuupuussa"; 50 /// PoistaKirjain.Poista(jono, 'u') === 4; jono.tostring() === "kissaistpssa"; 51 /// PoistaKirjain.Poista(jono, 'k') === 1; jono.tostring() === "issaistpssa"; 52 /// PoistaKirjain.Poista(jono, 'a') === 2; jono.tostring() === "issistpss"; 53 /// PoistaKirjain.Poista(jono, 's') === 5; jono.tostring() === "iitp"; 54 /// PoistaKirjain.Poista(jono, 'x') === 0; jono.tostring() === "iitp"; 55 /// </pre> public static int Poista(StringBuilder jono, char poistettava) 58 { 59 int i = 0; 60 int loydetty = 0; 61 while (i < jono.length) 62 { 63 if (jono[i] == poistettava) 64 { 65 jono.remove(i, 1); 66 loydetty++; 67 } 68 else i++; 69 } 70 return loydetty; 71 } 72 } 1
10 C:\MyTemp\ohj1\ohjdemot\k2012\demot\vastaukset\demo11\t6.txt 26. maaliskuuta :04 Tehtävä 6 a) Miten C# ohjelma käännetään ja ajetaan komentoriviltä? Entä jos ohjelma tarvitsee jonkin kirjaston avukseen? (2 p) csc Lumiukko.cs /reference:kirjasto.dll;kirjasto2.dll b) Laske (laskutoimitukset mukaan) seuraavien binäärilukujen arvo 10 järjestelmän lukuna. Mitä oletuksia teit? (2 p): oletus: käsitellään positiivisia kokonaislukuja (i) = 2^6 + 2^2 + 2^0 = = 69 (ii) = 2^5 + 2^4 + 2^3 + 2^2 + 2^1 + 2^0 = = 63 (iii) = = 129 c) Oletetaan 8 bittisille negatiivisille kokonaisluvuille 2 komplementtiesitys. Mikä olisi luvun miinus viisi ( 5) bittiesitys tällaisessa järjestelmässä. (1 p) 5 = (+5) => (1 komplementti) => (+1 bitti eli 5) d) Binäärinen desimaaliluku järjestelmän lukuna. (1 p) _2, kokonaisosa 2^3 + 2^0 = 8+1 = 9 desimaaliosa 2^( 1) + 2^( 2) + 2^( 3) = = => 9.875_10 e) Pohdi missä mielessä List on parempi kuin tavallinen taulukko. Missä mielessä huonompi? (2 p) parempi: Tietorakenne on "dynaaminen", eli koko muuttuu automaattisesti kun alkioita poistetaan / lisätään => kokoa ei tarvitse tietää etukäteen. Muistitilan rajoissa voidaan siis lisätä aina uusia alkioita. huonompi: koon automaattisessa muuttumisessa on myös haittapuolensa, eli jossain tapauksessa saatetaan varata turhan paljon tilaa listalle, jolloin muistia menee "hukkaan". samoja ominaisuuksia: Sekä Listia etta taulukkoa voidaan mennä läpi indeksoidusti (lista[0], lista[1],..., vastaavasti taulukko[0], -1-
11 C:\MyTemp\ohj1\ohjdemot\k2012\demot\vastaukset\demo11\t6.txt 26. maaliskuuta :04 taulukko[1]), ja molempia voidaan iteroida (foreach silmukka). f) Mikä ero on String ja StringBuilder luokilla? (1 p) String on muuttamaton (immutable), StringBuilder oliota (sisältöä) voidaan muuttaa vielä olion luomisen jälkeenkin. Mitä hyötyä Stringin muuttamattomuudesta on? Sen ansiosta merkkijonojen kopiointi saadaan nopeaksi, koska itse asiassa kopiontia ei tarvita, vaan riittää laittaa toinen viite samaan olioon. Muuttumattomuuden ansiosta kaikki viitteen omistajat voivat olla varmoja, että sisältö ei muutu esimerkiksi aliohjelmakutsun aikana. Vastaavasti jos itse sisältöä pitää muuttaa, tarvitaan StringBuilder luokan olioita. Jos jonoon tulee paljon muutoksia, kannattaa ensin muutokset tehdä StringBuilder luokan olioon ja sitten jos tarvitaan String olio, lopuksi pyydetään sellainen StringBuilder luokan oliolta ToString() metodilla. g) Paljonko on 34/7 C#:ssa. Paljonko on 34%7 C#:ssa. (1 p) 34/7 = 4, sillä molemmat luvut (34 ja 7) ovat int tyyppisiä, ja niinpä laskutoimituksen tuloskin on int tyyppiä ja "oikeasta" tuloksesta otettu mukaan vain kokonaisosa. 34%7 = 6 (jakojäännösoperaattori % palauttaa jakolaskun jakojäännöksen) h) Mitä tarkoittaa että olio "muuttuu roskaksi"? (1 p) Kun olioon ei ole enää yhtään viitettä, ei olioon päästä mistään kautta käsiksi. Tällöin olio muuttuu "roskaksi", ja kielen automaattinen roskienkeruu mahdollisesti aikanaan vapauttaa olion viemän muistitilan muiden olioiden käyttöön. Olion viite voi kadota esimerkiksi, kun viitteelle annetaan uusi arvo: StringBuilder jono = new StringBuilder("kissa");... jono = new StringBuilder("koira"); // nyt ei kukaan enää osoita ensin luotuun "kissa" jonoon // joten sitä edustava olio muuttuu roskaksi. -2-
12 C:\MyTemp\ohj1\ohjdemot\k2012\demot\vastaukset\demo11\t6.txt 26. maaliskuuta :04-3-
13 C:\MyTemp\ohj1\ohjdemot\k2012\demot\vastaukset\demo11\Salakirjoita\Salakirjoita\Salakirjoita.cs 1 using System; 2 using System.Collections.Generic; 3 using Jypeli; 4 using Jypeli.Assets; 5 using Jypeli.Controls; 6 using Jypeli.Effects; 7 using Jypeli.Widgets; 8 9 Vesa Lappalainen 10 syksy Antti Jussi Lakanen /// <summary> 15 /// Salakirjoitetaan teksti kuvaan 16 /// </summary> 17 public class Salakirjoita : PhysicsGame 18 { 19 /// <summary> 20 /// Ominaisuus johon voi valmiiksi sijoittaa nimen jota käytetään 21 /// </summary> 22 public string Nimi { get; set; } /// <summary> 25 /// Luodaan kaksi kuvaa joista toiseen salakirjoitetaan teksti 26 /// </summary> 27 public override void Begin() 28 { 29 string kuvannimi = "viivat"; Image kuva = LoadImage(kuvannimi); 32 AddKuva(kuva, 0, 0); string nimi = "Antti Jussi Lakanen"; // Nimi pitäisi oikeassa elämässä kysyä dialogilla, tässä tehty näin yksinkertaisuuden vuoksi 35 if (Nimi!= null) nimi = Nimi; Image kuva2 = kuva.clone(); 38 uint[,] bmp2 = kuva2.getdatauint(); 39 SalakirjoitaKuvaan(bmp2, nimi, 20, 0); kuva2.setdata(bmp2); 42 AddKuva(kuva2, 1, 0); 43 } /// <summary> 47 /// Lisää kuvan näyttöön valittuun "ruutuun" 48 /// </summary> 49 /// <param name="kuva">lisättävä kuva</param> 50 /// <param name="nx">ruudun x paikka</param> 51 /// <param name="ny">ruudun y paikka</param> 52 private void AddKuva(Image kuva, int nx = 0, int ny = 0) 53 { 54 GameObject k = new GameObject(kuva); 55 k.position = new Vector(Level.Left + k.width / 2 + k.width * nx, Level.Top k.height / 2 k. Height * ny); 56 Add(k); 57 } /// <summary> 61 /// "Salakirjoitetaan" nimi kuvaan sijoittamalla nimen kirjainten ASCII koodi 62 /// paikasta aix,aiy alkaen sinisen värin tilalle. Jos "teksti" menee 63 /// kuvan laitaan, aloitetaan seuravaalta riviltä. Jos rivit tulee täyteen, 64 /// jatketaan paikasta 0,0 65 /// </summary> 66 /// <param name="kuva">bittimatriisi, johon nimi sijoitetaan</param> 67 /// <param name="nimi">joka "salakirjoitetaan"</param> 68 /// <param name="aiy">aloitusindeksi y koordinaatille</param> 69 /// <param name="aix">aloitusindeksi x koordinaatille</param> 70 /// <example> 71 /// <pre name="test"> 1
14 C:\MyTemp\ohj1\ohjdemot\k2012\demot\vastaukset\demo11\Salakirjoita\Salakirjoita\Salakirjoita.cs 72 /// uint[,] kuva = { { 0x010101,0x020202,0x030303,0x }, 73 /// { 0x010101,0x020202,0x030803,0x }, 74 /// { 0x010101,0x090909,0x030303,0x } }; 75 /// Salakirjoita.SalakirjoitaKuvaan(kuva,"Kissa",0,0); 76 /// kuva[0,0].tostring("x") === "1014B"; 77 /// kuva[0,1].tostring("x") === "20269"; 78 /// kuva[0,2].tostring("x") === "30373"; 79 /// kuva[0,3].tostring("x") === "40473"; 80 /// kuva[1,0].tostring("x") === "10161"; 81 /// kuva[1,1].tostring("x") === "20202"; 82 /// 83 /// Salakirjoita.SalakirjoitaKuvaan(kuva,"Kissa",2,2); 84 /// kuva[2,2].tostring("x") === "3034B"; 85 /// kuva[2,3].tostring("x") === "60669"; 86 /// kuva[0,0].tostring("x") === "10173"; 87 /// </pre> 88 /// </example> 89 public static void SalakirjoitaKuvaan(uint[,] kuva, String nimi, int aiy, int aix) 90 { 91 int ix = aix, iy = aiy; 92 for (int i = 0; i < nimi.length; i++) 93 { 94 if (iy >= kuva.getlength(0)) iy = 0; 95 if (ix >= kuva.getlength(1)) { iy++; ix = 0; if (iy >= kuva.getlength(0)) iy = 0; } 96 uint pxl = kuva[iy, ix]; 97 pxl = Color.PackRGB(Color.GetRed(pxl), Color.GetGreen(pxl), (byte)nimi[i], Color.GetAlpha (pxl)); 98 kuva[iy, ix++] = pxl; 99 } 100 } 101 } 102 2
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ätiedotITKP102 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ätiedotITKP102 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ätiedotITKP102 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ätiedotITKP102 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ätiedotOhjelmointi 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ätiedotListarakenne (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ätiedotOhjelmointi 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ätiedot1. 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ätiedotITKP102 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ätiedotMetodien 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ätiedotITKP102 Ohjelmointi 1 Tentti
ITKP102 Ohjelmointi 1 Tentti 4.12.2013 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
LisätiedotITKP102 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ätiedotHarjoitus 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ätiedotMikä yhteyssuhde on?
1 Yhteyssuhde Mikä yhteyssuhde on? Yhteyssuhde Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä yhteyssuhde on? Tili - : String - : double * 1 Asiakas - hetu: String - : String
Lisätiedot7. 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ätiedotMetodit. 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ätiedot4. Luokan testaus ja käyttö olion kautta 4.1
4. Luokan testaus ja käyttö olion kautta 4.1 Olion luominen luokasta Java-kielessä olio määritellään joko luokan edustajaksi tai taulukoksi. Olio on joukko keskusmuistissa olevia tietoja. Oliota käsitellään
LisätiedotSisä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ätiedotOhjelmointi 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ätiedotKompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma
1 Kompositio Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä kompositio on? Tili - : String - : double 1 1 Kayttoraja
LisätiedotITKP102 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ätiedotYleistä. 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ätiedotOlion 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ätiedotOhjelmointi 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ätiedotPong-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ätiedot1. Miten tehdään peliin toinen maila?
Muilla kielillä: English Suomi Pong-peli, vaihe 4 Tässä oppaassa teemme toisenkin mailan. 1. Miten tehdään peliin toinen maila? Maila tehtiin edellisessä vaiheessa, aliohjelmassa LuoKentta, seuraavasti:
LisätiedotOhjelmoinnin 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ätiedotOhjelmointitaito (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ätiedotOhjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:
1 (7) Tiedon lukeminen näppäimistöltä Scanner-luokan avulla Miten ohjelma saa käyttöönsä käyttäjän kirjoittamaa tekstiä? Järjestelmässä on olemassa ns. syöttöpuskuri näppäimistöä varten. Syöttöpuskuri
LisätiedotOhjelmointi 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ätiedotSisällys. 7. Oliot ja viitteet. Olion luominen. Olio Java-kielessä
Sisälls 7. Oliot ja viitteet Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen.. Viitteiden vertailu. Varautuminen null-arvoon. Viite metodin paluuarvona.. Muuttumattomat ja muuttuvat merkkijonot.
Lisätiedot1. 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ätiedotSisä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ätiedotOlio-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ätiedotITKP102 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ätiedotSisä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ätiedotInformaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo 15.2.2006
TURUN YLIOPISTO DEMO III Informaatioteknologian laitos tehtävät Olio-ohjelmoinnin perusteet / Salo 15.2.2006 1. Tässä tehtävässä tarkastellaan erääntyviä laskuja. Lasku muodostaa oman luokkansa. Laskussa
Lisätiedot815338A 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ätiedotLuokka 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ätiedotPong-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ätiedotTaulukoiden käsittely Javalla
1 Taulukoiden käsittely Javalla Mikä taulukko on? Taulukon syntaksi Merkkijonotaulukko Lukutaulukko Taulukon kopiointi 1 Mikä taulukko on? Taulukko on rakenne, minne saadaan talteen usea saman tyyppinen
LisätiedotJava-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ätiedotPisteytys: 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ätiedot17. Javan omat luokat 17.1
17. Javan omat luokat 17.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 17.2 Java API Java-kielen Application Programming Interface (API)
Lisätiedot1. Taustatietoa näppäimistönkuuntelusta
Muilla kielillä: English Suomi Pong-peli, vaihe 5 Tämä on Pong-pelin tutoriaalin osa 5/7. Tämän vaiheen aikana Lisäämme peliin näppäimet Laitetaan mailat liikkumaan pelaajien ohjaamina Näin ohjelmaamme
LisätiedotOpintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen Taulukot: Array Taulukko Javassa pitää aina perustaa (new) Yksinkertaisessa tilanteessa taulukon koko tiedetään etukäteen ja
LisätiedotRajapinta (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ätiedotList-luokan soveltamista. Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen
1 List-luokan soveltamista List-luokan metodeja Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen 1 List-luokan metodeja List-luokan
LisätiedotITKP102 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ätiedotOhjelmointitaito (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ätiedotTietorakenteet. JAVA-OHJELMOINTI Osa 5: Tietorakenteita. Sisällys. Merkkijonot (String) Luokka String. Metodeja (public)
Tietorakenteet JAVA-OHJELMOINTI Osa 5: Tietorakenteita Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto Olioita ja tietoja voidaan organisoida määrämuotoisiksi tietorakenteiksi Hyödyllisiä
Lisätiedot20. Javan omat luokat 20.1
20. Javan omat luokat 20.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.2 Java API Java-kielen Application Programming Interface (API)
LisätiedotSisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang
Sisällys 20. Javan omat luokat Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.1 20.2 Java API Java-kielen Application Programming Interface (API)
LisätiedotJAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?
JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,
LisätiedotSisä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ätiedotTaulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu
Taulukot Taulukon määrittely ja käyttö Taulukko metodin parametrina Taulukon sisällön kopiointi toiseen taulukkoon Taulukon lajittelu esimerkki 2-ulottoisesta taulukosta 1 Mikä on taulukko? Taulukko on
LisätiedotSisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2
4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä muuttujia ja vakioita. Esittely
LisätiedotITKP102 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ätiedot1. 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 )
Tehtävä do while + Viikko 1 Tehtävä 27. Salasana (MOOC) Viikko 1 Tehtävä 28. Lämpötilat (MOOC) Tehdään ohjelma, joka kysyy käyttäjältä lukua. Luku kerrotaan aina seuraavalla käyttäjän antamalla luvulla
LisätiedotOhjelmointi 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ätiedot8. 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ätiedotJava 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ätiedot8. 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ätiedotJavan perusteita. Janne Käki
Javan perusteita Janne Käki 20.9.2006 Muutama perusasia Tietokone tekee juuri (ja vain) sen, mitä käsketään. Tietokone ymmärtää vain syntaksia (sanojen kirjoitusasua), ei semantiikkaa (sanojen merkitystä).
LisätiedotOhjelmointi 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ätiedotLista luokan sisällä
Lista luokan sisällä Luokan sisällä on lista Joukkue-luokka, joka sisältää listän joukkueen pelaajista Pelaaja Joukkueen metodit, jotka käyttävät listaa Ohjelmaluokka Luokan sisällä on lista Tarkoitta
LisätiedotOhjelmoinnin perusteet, kurssikoe
Ohjelmoinnin perusteet, kurssikoe 18.6.2014 Kirjoita jokaiseen konseptiin kurssin nimi, kokeen päivämäärä, nimi, TMC-tunnus ja opiskelijanumero tai henkilötunnus. Vastaukset palautetaan tehtäväkohtaisiin
LisätiedotPeriytyminen (inheritance)
1 Periytyminen (inheritance) Mitä periytyminen on? Yli- ja aliluokka Konstruktorit Get- ja set-metodi Muut metodit tostring Yksinkertainen pääohjelma 1 Mitä periytyminen on? Periytymisen avulla olemassa
LisätiedotLuokan 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ätiedot12. 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ätiedotOperaattoreiden 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ätiedotPong-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ätiedotOhjelmoinnin 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ätiedot7/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ätiedotOhjelmoinnin 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ätiedotOhjelmointi 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ätiedotSe 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ätiedotYHTEYSSUHDE (assosiation)
YHTEYSSUHDE (assosiation) -Mikä on yhteyssuhde? -Miten toteutan yhteyssuhteen? 1 Mikä on yhteyssuhde? Yhteyssuhde kuvaa kahden olion välistä suhdetta: Esim. Auto Henkilö, omistussuhde Tili Asiakas, omistussuhde
LisätiedotJava-kielen perusteet
Java-kielen perusteet String-merkkijonoluokka 1 Ohjelmointikielten merkkijonot Merkkijonot ja niiden käsittely on välttämätöntä ohjelmoinnissa Valitettavasti ohjelmointikielten tekijät eivät tätä ole ottaneet
LisätiedotJypelin 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ätiedotTehtävä 1. Tehtävä 2. Arvosteluperusteet Koherentti selitys Koherentti esimerkki
Tehtävä 1 Koherentti selitys Koherentti esimerkki ½p ½p Tehtävä 2 Täysiin pisteisiin edellytetään pelaajien tulostamista esimerkin järjestyksessä. Jos ohjelmasi tulostaa pelaajat jossain muussa järjestyksessä,
LisätiedotJava-kielen perusteita
Java-kielen perusteita Käyttäjän kanssa keskusteleva ohjelma 1 Kirjoittaminen konsolinäkymään //Java ohjelma, joka tulostaa konsoli-ikkunaan public class HeiMaailma { public void aja() { // kirjoitus ja
LisätiedotJypelin käyttöohjeet» Miten saan peliin pistelaskurin?
Jypelin käyttöohjeet» Miten saan peliin pistelaskurin? Pistelaskurin saamiseksi tarvitaan kaksi osaa: Laskuri, joka laskee pisteitä Olio, joka näyttää pisteet ruudulla Laskuri voi olla esimerkiksi tyyppiä
Lisätiedot7. Näytölle tulostaminen 7.1
7. Näytölle tulostaminen 7.1 Sisällys System.out.println- ja System.out.print-operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden muotoilua. 7.2 Tulostusoperaatiot System.out.println-operaatio
LisätiedotSisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2
4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä
LisätiedotITKP102 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ätiedotOhjelmointi 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ätiedotLuokat ja oliot. Ville Sundberg
Luokat ja oliot Ville Sundberg 12.9.2007 Maailma on täynnä olioita Myös tietokoneohjelmat koostuvat olioista Σ Ο ω Μ ς υ φ Ϊ Φ Θ ψ Љ Є Ύ χ Й Mikä on olio? Tietokoneohjelman rakennuspalikka Oliolla on kaksi
Lisätiedot815338A 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ätiedot14. 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// 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ätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 9.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 9.2.2009 1 / 35 Listat Esimerkki: halutaan kirjoittaa ohjelma, joka lukee käyttäjältä 30 lämpötilaa. Kun lämpötilat
LisätiedotKääreluokat (oppikirjan luku 9.4) (Wrapper-classes)
Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes) Kääreluokista Javan alkeistietotyypit ja vastaavat kääreluokat Autoboxing Integer-luokka Double-luokka Kääreluokista Alkeistietotyyppiset muuttujat (esimerkiksi
LisätiedotOhjelmoinnin 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ätiedotInteraktiivinen tarinankerronta
Interaktiivinen tarinankerronta Tehtävä 1: Tarinan alku pääohjelmaan Main. java ei tehdä muutoksia tulostusrivit tiedostoon Kayttoliittyma.java tulostus lyhyesti sout + tab komennolla Tiedoston Kayttoliittyma.java
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 17.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 17.2.2010 1 / 41 Sanakirja Monissa sovelluksissa on tallennettava rakenteeseen avain arvo-pareja. Myöhemmin rakenteesta
LisätiedotTIETORAKENTEET JA ALGORITMIT
TIETORAKENTEET JA ALGORITMIT Timo Harju 1999-2004 1 typedef link List; /* Vaihtoehtoisia nimiä */ typedef link Stack; /* nodepointterille */ typedef link Queue typedef struct node Node; /* itse nodelle
LisätiedotSisä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ätiedotMetodien 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