Ohjelmoinnin perusteet (Java)

Koko: px
Aloita esitys sivulta:

Download "Ohjelmoinnin perusteet (Java)"

Transkriptio

1 Ohjelmoinnin perusteet (Java) HARJOITUKSIA Syksy 2012 / Auvo Häkkinen Jos et ehdi tehdä viikon tehtäviä labra-aikana, tee ne valmiiksi ennen seuraavaa kokoontumista. Tehtävät tulee kirjauttaa tehdyiksi viimeistään kutakin harjoituskertaa seuraavalla kokoontumiskerralla. Kurssikaravaani kulkee, eikä jälkeenjääviä odotella. Tee heti, ettei jää heti tekemättä! Huom: Lue tehtävä aina aluksi kokonaan ajatuksella, ja ohjelmoi vasta siten toiminta täsmälleen niin kuin asiakas on pyytänyt. Kysy tarvittaessa ohjeita harj NETBEANSIIN TUTUSTUMINEN Tutustu T:-levyltä kurssin hakemistosta löytyviin NetBeans-ohjeisiin (NetBeans-harj.pdf) ja tee ohjeessa annetut 3 Java-ohjelmaa. Toimi jatkossakin tuon ohjeen mukaan. 4 SYÖTTÖ JA TULOSTUS (Kirjan tehtävä 4, s. 99) Kirjoita ohjelma, joka pyytää sinua arvaamaan luvun ja joka toimii seuraavan kaavan mukaan Esimerkki 1: Arvaa luku: 7 Minun lukuni on 8, hävisit niukasti. Esimerkki 2: Arvaa luku: 120 Minun lukuni on 121, hävisit niukasti. PS. Halutessasi voit käyttää lukemiseen myös Scanner-luokan metodeja (ks. kalvot s. 2-17). Huomaa: Javassa + voi tarkoittaa merkkijonojen katenointia tai yhteenlaskua harj 2 5 PAINOINDEKSI Tee ohjelma, joka kysyy käyttäjältä painon kiloina ja pituuden metreissä, ja laskee niiden perusteella painoindeksin (BMI, Body Mass Index). Painoindeksi on luku, joka saadaan jakamalla paino pituuden neliöllä (tulos pitäisi olla arvoltaan n ). Kun pyydät tietoja käyttäjältä, on aina syytä kertoa millaisia arvoja odotat saavasi (esim. senttimetrejä vai metrejä). 1) Mitä lähtö- ja syöttötietoja saat? 2) Mitä tulostietoja haluat? 3) Mitä muuttujia tarvitset syötteiden, välitulosten ja tulosteiden tallettamiseksi? Varaa kutakin tarkoitusta varten oma muuttuja. Valitse muuttujan tyyppi sen käyttötarkoituksen mukaan. 4) Mitä arvoja joudut antamaan sijoituksella, mitä saat suoraan syötteistä?

2 6 ARVON MEKIN ANSAITSEMME (Kirjan tehtävä 5, s. 99) Kirjoita ohjelma, joka pyytää käyttäjältä kolme kokonaislukua ja ilmoittaa niiden summan, tulon ja keskiarvon. Varmista, että ohjelmasi laskee keskiarvonkin oikein (esim. lukujen 1, 3 ja 3 keskiarvo on 2.33)! Kokeile vielä lopuksi kuinka keskiarvon saa tulostettua kahden desimaalin tarkkuudella (vihje: printf. Ks. kirja s. 48 kalvot s. 2-24). Huomaa: Javassa jakolaskun tuloksen tyyppi määräytyy operandien tyyppien mukaan: tuloksen tyyppi on sama kuin "laajimman" operandin tyyppi. Ts. jos jakaja ja jaettava ovat kokonaislukuja, niin myös tulos on tyypiltään kokonaisluku. Jos jaettava tai jakaja on tyypiltään liukuluku, on myös tulos tyypiltään liukuluku. Esim: (2 + 3) / 2 tuottaa tulokseksi 2, mutta (2 + 3) / 2.0 tuottaa tulokseksi VAIHTELU VIRKISTÄÄ Tee ohjelma, joka ensin lukee käyttäjältä kaksi lukua muuttujien eka ja toka arvoiksi, ja vaihtaa sitten näiden kahden muuttujan arvoja keskenään. Esimerkiksi jos muuttuja eka saa arvoksi 1 ja muuttuja toka 22, niin vaihdon jälkeen muuttujan eka arvona on 22 ja muuttujan toka arvona on 1. Tulosta muuttujien arvot heti lukemisen jälkeen System.out.println( eka = + eka +, toka = + toka); sekä sen jälkeen, kun ohjelma on vaihtanut niiden arvot keskenään System.out.println( eka = + eka +, toka = + toka); Vihje: tarvitset ns. apumuuttujan. 8 HYPOTENUUSA (Kirjan tehtävä 6, s. 99) Hae tietoa www:stä haulla Java 7 API Math ja tutustu Javan Mathluokan staattisiin metodeihin double pow(double x, double y) ja double sqrt(double x). Kirjoita sitten ohjelma, joka laskee niitä käyttäen suorakulmaisen kolmion hypotenuusan pituuden, kun käyttäjältä kysytään kateettien pituudet harj 3 9 PAINOINDEKSI METODINA Toteuta tehtävän 5 toiminnallisuus metodina, jonka nimi on laskebmi(). Tällä kertaa siis pääohjelma, eli metodi nimeltä main() vain kutsuu metodia, ja kaikki muu toiminnallisuus (syöttö, tulostus, laskenta) on metodissa laskebmi(). 10 PAINOINDEKSI USEAMPANA METODINA Toteuta seuraavaksi painoindeksin laskeminen käyttäen kolmea metodia seuraavasti metodi double annapituus() kysyy käyttäjän pituuden senttimetreinä ja palauttaa arvonaan pituuden metreissä metodi int annapaino() kysyy käyttäjän painon kiloina ja palauttaa sen arvonaan metodi double laskeindeksi(double pituus, int paino) saa parametreina pituuden metreissä ja painon kiloina, ja palauttaa arvonaan laskemansa painoindeksin.

3 Pääohjelman main() idea: kutsu metodia annapituus(), ota paluuarvo talteen kutsu metodia annapaino(), ota paluuarvo talteen kutsu metodia laskeindeksi(), vie parametreina mukaan edellä saadut luvut, ota paluuarvo talteen tulosta saatu painoindeksi 11 AIKAA SEKUNTEINA Tee metodi double sekunteina(int tunnit, int minuutit, int sekunnit), joka saa parametrina ajan annettuna tunteina, minuutteina ja sekunteina, sekä palauttaa arvonaan tuon ajan muutettuna sekunneiksi. Huom: metodi ei itse lue eikä tulosta mitään. Kirjoita myös metodia käyttävä pääohjelma main(), jossa kutsut metodia ensin kiinteillä parametreilla (esim. 1 h, 1 min, 1 s) ja tulostat metodin palauttaman arvon, ja sitten kutsut metodia käyttäjältä pyytämilläsi arvoilla ja tulostat metodin palauttaman arvon. Testaa sopivasti valitsemillasi syötteillä, että kirjoittamasi ohjelma toimii oikein. 12 KOEN ELÄMÄNI TUNTEINA Lisää edelliseen ohjelmaan metodi double aikaero(int tun1, int min1, int sek1, int tun2, int min2, int sek2). Se saa kutsun parametrina kaksi aikaa (siis peräti kuusi parametria), laskee näiden aikojen välisen eron sekunneissa sekä palauttaa laskemansa tuloksen kutsujalleen. Käytä apuna edellisen tehtävän metodia. ts. kutsu metodissa aikaero() ensin kummallakin ajalla edellisen tehtävän metodia sekunteina(), ja laske sitten saatujen sekuntimäärien erotus sekä palauta se kutsujalle. Pääohjelman tehtävänä on pyytää ja lukea käyttäjältä nuo kaksi aikaa (eli kuusi lukua), kutsua metodia aikaero(), ottaa vastaan tulos ja tulostaa se. Annettujen aikojen järkevyyttä ei tällä kertaa tarvitse tarkistaa harj 4 13 KAHDEN JÄRJESTYS (Vrt. kirjan tehtävä 12, s. 100) Kirjoita ohjelma, joka lukee pääohjelmassa kaksi kokonaislukua, ja kutsuu metodia, joka a) saa nuo luvut parametrina ja b) ilmoittaa (tulostaa) suuruusjärjestyksen tilanteen mukaan muodossa luvut ovat yhtä suuria ensimmäinen luku on suurempi ensimmäinen luku on pienempi 14 PIENEMMÄN ARVO (Kirja tehtävä 2, s. 123) Kirjoita metodi, joka saa parametrina kaksi reaalilukua ja palauttaa arvonaan niistä pienemmän arvon. Huom: metodi ei itse lue eikä tulosta mitään. Testaa metodin toiminta. 15 ONKO JAOLLINEN?

4 Kirjoita ohjelma, joka pyytää käyttäjältä kaksi kokonaislukua ja ilmoittaa onko ensimmäinen luku jaollinen toisella vai ei. Tee jaollisuustarkistuksen tekevästä osasta metodi. Muista varoa nollallajakoa! Vihje: %-operaattoria käyttämällä saat jakojäännöksen. 16 BMI SANALLISESTI Jatka painoindeksin kanssa painivaa ohjelmakokonaisuutta, eli tehtävää 10. Lisää nyt mukaan uusi metodi, joka saa parametrina tehtävässä 10 lasketun painoindeksin, ja kertoo sen merkityksen sanallisesti. Sanallinen lausahdus valitaan painoindeksin arvon perusteella seuraavasti Normaalia alhaisempi paino: alle 18,5 Normaali paino: 18,5 - alle 25 Lievä lihavuus: 25 - alle 30 Merkittävä lihavuus: 30 - alle 35 Vaikea lihavuus: 35 - alle 40 Sairaalloinen lihavuus: yli 40 Ks. myös 17 HAASTE: KOLMEN JÄRJESTYS Tee ohjelma, joka lukee kolme kokonaislukua, ja kutsuu sitten metodia, joka tulostaa ne suuruusjärjestyksessä. Apumuuttujista voi olla hyötyä (ts. vertaile ja laita luvut järjestykseen vaihtelemalla muuttujien arvoja keskenään), vaikka ilman niitäkin selviää miettimällä if-lauseiden ehdot sopiviksi harj 5 18 SANALLINEN ARVOSANA (Vrt. kirjan tehtävä 11, s. 100) Kirjoita metodi, joka saa parametriksi numerona annetun arvosanan ja tulostaa sitä vastaavan sanallisen kuvauksen. Mikäli parametri ei ole välillä 0-5, metodi tulostaa virheilmoituksen. Numeerisia arvosanoja vastaavat sanalliset arviot ovat 0 = hylätty 1 = tyydyttävä 2 = erittäin tyydyttävä 3 = hyvä 4 = erittäin hyvä 5 = kiitettävä Käytä switch-lausetta. 19 ARVOSANOJA TOISTELLEN Täydennä edellisen tehtävän ratkaisua siten, että lisäät kutsuvaan osaan toistorakenteen, jonka lauseosassa luet käyttäjän antaman yhden arvosanan ja kutsut edellisen tehtävän metodia. Siten voit testata kaikki vaihtoehdot yhdellä ohjelman käynnistyskerralla. Muista testata myös kuinka käyttäytyy virheellisillä syötteillä. Ohjelmoi toisto päättymään esimerkiksi silloin, kun käyttäjä antaa syötteeksi negatiivisen luvun.

5 20 KESKIARVOT: NOLLAKO VAI EIKÖ NOLLA? Laadi ohjelma, joka laskee ja tulostaa satunnaisessa järjestyksessä syötteeksi saatavien positiivisten lukujen keskiarvon sekä negatiivisten lukujen keskiarvon (kumpikin erikseen). Luku 0 päättää syötön. Vihje: ks. kalvo 1-20 Kokeile ohjelmasi toimintaa siten, että annat heti ensimmäiseksi luvuksi luvun 0. Varo nollalla jakoa: jos positiivisia tai negatiivisia lukuja ei ole, et voi laskea keskiarvoa! 21 YHTÄ TIREHTÖÖRIN SIRKUSTA Sirkus on tullut kaupunkiin! Lastenlippu maksaa 12 rahaa ja aikuisen lippu maksaa 24 rahaa (final int LAPSIHINTA = 12; final int AIKUISHINTA = 24). Tirehtööri tahtoo selvittää paljonko miehiä, naisia ja lapsia käy seuraamassa esityksiä ja montako rahaa esitys tuottaa. Tee tirehtöörin avuksi ohjelma, jolle syötetään 1 kun mies ostaa lipun 2 kun nainen ostaa lipun 3 kun lapsi ostaa lipun 0 kun lippujen myynti loppuu ja esitys alkaa. Jos syötteeksi annetaan joku muu merkki, ohjelma tulostaa virheilmoituksen. Kun lippujen myynti loppuu, ohjelma tulostaa tiedot tirehtöörille. Voit koodata kaiken toiminnallisuuden pääohjelmaan. Jos käytät metodeja, niin esittele tarvittavat laskurimuuttujat luokan alussa kaikkien metodien ulkopuolella (ns. luokkamuuttujat). Laita esittelyn eteen määre static (esim. static int lkm=0;). Ps. Voit käyttää myös switch-lausetta harj 6 22 AJATTELE POSITIIVISESTI - OTA VIIDESTI LUKUA (Vrt. kirjan tehtävä 20, s. 101) Kirjoita ohjelma, joka laskee for- toistorakenteessa täsmälleen 5 positiivisen kokonaisluvun summan ja tulostaa sen toiston jälkeen. Tee yhden luvun lukevasta ja tarkastavasta osasta oma metodi int luejatarkasta(), joka pyytää käyttäjältä yhden positiivisen luvun. Jos saatu syöte on virheellinen, metodi tulostaa siitä ilmoituksen, ja pyytää uutta syötettä. Uutta lukua pitää pyytää niin kauan, kunnes käyttäjä todella syöttää kelvollisen luvun. Lopuksi metodi palauttaa arvonaan käyttäjän syöttämän positiivisen luvun. 23 PARILLISTEN POSITIIVISTEN SUMMA Tee metodi, joka saa parametrina yhden kokonaisluvun ja palauttaa arvonaan ko. lukua pienempien parillisten positiivisten lukujen summan (ko. luku mukaan lukien). Metodin tulee itse tarkastaa, että parametri on positiivinen. Jos parametri on negatiivinen, metodi palauttaa arvon -99 summan sijasta. Käytä summan laskemiseen for-lausetta. Ohjelmoi toiminnan testaamista varten toistorakennetta käyttävä pääohjelma. Yhdellä ohjelman käynnistyskerralla voidaan siis kokeilla useilla eri syötteillä. Jätä syötteen oikeellisuuden tarkastus metodin huoleksi. Tutki metodin palauttamaa arvoa, ja päätä sen mukaan mitä pitää tulostaa. Ohjelman suoritus päättyy, kun käyttäjä antaa syötteeksi arvon 0. Käyttöesimerkki

6 Ohjelma laskee syötelukua pienempien parillisten positiivisten lukujen summan. Anna luku: 5 Lukua 5 pienempien parillisten positiivisten lukujen summa on 6. Anna luku: 10 Lukua 10 pienempien parillisten positiivisten lukujen summa on 20. Anna luku: -5 Luku -5 on negatiivinen, sitä pienempiä positiivia lukuja ei ole. Anna luku: 0 Ohjelman suoritus päättyi. Vrt. edellinen tehtävä. Tässä käytetään negatiivista paluuarvoa kertomaan kutsuvalle ohjelmanosalle, että eteen osui virhetilanne. Nyt kutsuva ohjelmanosa voi itse päättää miten se jatkaa suoritusta: tulostaako se virheilmoituksen vai kutsuuko kenties uudelleen erilaisella parametrilla. 24 TÄHDISSÄ MARS (Vrt. kirja tehtävä 30 ja 31, s. 102) Tehtäväsi on laatia ohjelma, joka tulostaa tähtikolmion, jonka korkeus kysytään käyttäjältä (vrt. kalvo 2-6). Käyttöesimerkki Kuinka korkean kolmion haluat? 7 * ** *** **** ***** ****** ******* a) Laadi ensin pääohjelma main(), joka kysyy käyttäjältä tulostettavan kolmion korkeuden kutsuu tämän jälkeen kutakin riviä varten metodia tulostarivi(), jolle se antaa parametrina riville tulostettavien tähtien lukumäärän. b) Tee sitten metodi void tulostarivi(int lkm), joka tulostaa yhden rivin tähtiä, kun tähtien lukumäärä annetaan parametrina. Esim. kutsu tulostarivi(5) tuottaa rivin ***** Käytä kummassakin kohdassa toiston toteutukseen for-lausetta harj 7 25, 26, 27 ASTEITTAIN TARKENNUS: PALINDROMI Tee ohjelma, joka tarkastaa muodostaako syötteeksi annettu merkkijono palindromin, eli onko se sama luettuna alusta loppuun kuin lopusta alkuun. Oleta lisäksi, että palindromiksi kelpuutettavassa jonossa saa olla vain kirjaimia, ja ohjelman tulee tulkita isot ja pienet kirjaimet samoiksi.

7 Esim: SaippuakiviKauppias on palindromi Kukin tutkittava merkkijono annetaan omalla syöterivillään. Ohjelman tulee tutkia syötteeksi annettuja merkkijonoja kunnes käyttäjä haluaa lopettaa. Tarvitset tehtävässä String-luokan metodeja, joten käypä aluksi kurkistamassa osoitteessa docs.oracle.com/javase/7/docs/api/ mitä metodeja on tarjolla (tai googlaa java 7 api String). Tutustu myös luokan Character staattisten metodien API-kuvauksiin. Tarvitset tehtävän kohdassa 4 ainakin metodeja Character.isLetter() ja Character.isWhiteSpace(). Eräs ratkaisun asteittain tarkennus on annettu kurssin kalvolärpäkkeissä. Tutustu ajatuksella. Lue sen jälkeen tämä tehtäväteksti kokonaan, ja etene sitten ohjeiden mukaan yksi numeroitu vaihe kerrallaan! 25 PALINDROMI, vaiheet 1 1) Laadi ensin pääohjelma main(), joka kutsuu toistorakenteessa metodeja luejatarkasta() ja onkopalindromi() sekä ilmoittaa tarkastuksen tuloksen. a) mieti metodien luejatarkasta() ja onkopalindromi() parametrinvälitys kuntoon o mitä tietoja pääohjelma antaa metodille o mitä paluuarvoja pääohjelma saa metodilta b) esittele metodien luejatarkasta() ja onkopalindromi() otsakkeet, mutta jätä niiden lauseosat aluksi tyhjäksi (=tynkä, stub) o tällä kertaa lauseosassa riittää sopiva return-lause c) kääntämisen pitäisi nyt onnistua Nyt voit jo testata ainakin pääohjelman toimintaa, esim. miten ohjelman suoritus lopetetaan. 26 PALINDROMI vaiheet 2 ja 3 2) Ohjelmoi (tarkenna) sitten metodin String luejatarkasta() lauseosa o Tee ensin minimitoiminnan sisältävä karvalakkimalli syötteen lukemisesta, eli metodi vain lukee ja palauttaa syötemerkkijonon sellaisenaan 3) Ohjelmoi (tarkenna) sitten metodin boolean onkopalindromi(string mjono) lauseosa o ks. tarkennettu toiminta kalvolärpäkkeistä o testaa 27 PALINDROMI, vaiheet 4 ja 5 4) Ohjelmoi (tarkenna) sitten metodin String luejatarkasta() muut ominaisuudet ja testaa o seuraava versio palauttaa merkkijonon isoiksi tai pieniksi muutettuina o seuraava versio sallii tutkittavaan jonoon vain kirjaimet o jne... 5) Kun olet ohjelmoinut kaikki osat, testaa lopuksi vielä koko kokonaisuus huolellisesti valitsemillasi testitapauksilla a) kelvollisia syötteitä: on palindromi / ei ole palindromi, sisältää isoja / pieniä kirjaimia b) virheellisiä syötteitä: huomaako? kertooko? miten käsittelee tilanteet? Vapaaehtoinen ekstrapähkinä Muuta ratkaisua siten, että merkkijonossa saa olla myös välilyöntejä ja ääkkösten käsittelykin menee oikein, eli tällöin esimerkiksi merkkijono Säkylän Oili on älykäs

8 hyväksytään palindromiksi harj 8 28 KUUKAUSITAULUKKO a) Tee metodi, joka saa parametrina kuukauden numeron, ja palauttaa arvonaan sitä vastaavan sanallisen vastineen merkkijonona. Jos parametrina saadaan esim. arvo 2, metodi palauttaa arvonaan merkkijonon Helmikuu. Jos parametrin arvo ei kelpaa kuukaudeksi, metodin pitää palauttaa arvo null (ts. merkkijonojen nolla-arvo ) Määrittele kuukausien nimet metodin paikallisena merkkijonotaulukkona, ja alusta se esittelyn yhteydessä. Poimi sitten oikea merkkijono käyttämällä kuukauden numeroa indeksinä. Vihje: laita alkioon 0 arvo null. b) Laadi pääohjelma, jolla voit helposti testata metodisi toiminnan. Käytännössä tämä tarkoittaa, että ohjelmoit pääohjelmaan syötteitä lukevan toistosilmukan, josta sitten voit kutsua metodia sekä kelvollisilla että kelvottomilla parametrien arvoilla. Huomaa: Tässä metodi tarkistaa itse saamansa parametrin oikeellisuuden, ei kutsuva osa. Metodiahan voi kutsua monesta eri kohdasta ohjelmaa, ja jos kutsujan pitäisi varmistaa parametrin oikeellisuus, niin sama tarkistus pitäisi tietysti kirjoittaa jokaisen kutsun yhteyteen. Nyt metodi palauttaa tiedon parametrin epäkelpoisuudesta kutsujalle (arvo null), ja kutsuva osa voi käsitellä tilanteen itse haluamallaan tavalla (vaikka eri kerroilla eri tavalla). 29 ARVOSANAJAKAUMA (Kirjan tehtävä 36, s.103) Kirjoita ohjelma, joka pyytää käyttäjältä luokan opiskelijoiden kurssiarvosanat ja tulostaa arvosanajakauman käyttäen tähtiä seuraavasti 0: 1: ** 2: **** 3: ******** 4: ***** 5: ********** Arvosanat syötetään ohjelmalle yksitellen (jossain järjestyksessä). Syötteiden loppumisen voi ilmaista vaikkapa antamalla lopuksi negatiivisen luvun. Käytä taulukkoa, jonne lasket kunkin arvosanan esiintymiskertojen lukumäärät (esim. lkm[4] kertoo moniko saanut arvosanan 4. vrt. kalvolärpäkkeissä oleva Satunnaislukutesti-esimerkki). 30 ONKO TYYLIÄ? Tee ohjelma, joka laskee ja tulostaa mäkihypyn tyylipisteiden summaa. Mäkihypyssä on 5 tuomaria, joista kukin voi antaa hypystä pisteitä Tyylipisteiden summaa laskettaessa jätetään kuitenkin huomioimatta pienin ja suurin arvo. Käytä toteutuksessasi metodeja seuraavasti: Tee metodi, joka lukee ja palauttaa arvonaan yhden tuomarin antamat pisteet. Metodin tulee tarkistaa, että annettu syöte on muodollisesti oikein. Tarvittaessa metodi pyytää syötettä uudestaan niin kauan kunnes se saa kelvollisen pistemäärän.

9 Tee metodi, joka saa parametrina taulukon, jossa on 5 tuomarin antamat tyylipisteet. Metodi palauttaa tyylipisteiden summan, joka saadaan siten, että kaikkien tuomareiden pisteiden yhteissummasta vähennetään suurin ja pienin arvo. Kaiken muun voit ohjelmoida pääohjelmaan harj 9 31 TAULUKON TULOSTUS Kirjoita main()-metodiin esittelyt final int MAX = 15; int [] cuadro = { 9, 2, 2, 7, 8, 1, 1, 0, 8, 9 }; int [] viistoista = new int[max]; a) Tee metodi void tulostataulukko(int[ ] luvut, int ala, int ylä), joka saa parametrina kokonaislukutaulukon sekä kokonaisluvut ala ja ylä. Metodi tulostaa taulukossa indeksivälillä ala...ylä olevat luvut yhdelle riville. Esimerkiksi kutsu tulostataulukko(cuadro, 2, 4) tulostaisi taulukosta cuadro luvut 2, 7 ja 8. Koko taulukon voi tulostaa kutsumalla esim. tulostataulukko(cuadro, 0, cuadro.length-1) Lisää pääohjelmaan lauseet, joilla voit testata metodisi toimivuuden. 32 ARVO TAULUKON LUVUT Jatka edellisen tehtävän ohjelmaa (eli lisää samaan tiedostoon) b) Tee metodi void arvotaulukkoon(int[ ] luvut), joka täyttää parametrina annetun taulukon arpomillaan kokonaisluvuilla. Käytä arpomiseen metodia Math.random() ja skaalaa luvut osavälille 0..luvut.length-1 (ts. siten, että ne olisivat myös kelvollisia taulukon indekseiksi). Sama luku saa esiintyä useampiakin kertoja. Esimerkiksi kutsu arvotaulukoon(viistoista) arpoisi taulukkoon, jonka nimi on viistoista, 15 kokonaislukua, joiden arvot ovat väliltä Lisää pääohjelmaan testaamisessa tarvittavat lauseet: määritettele uusi taulukko, täytä se kutsumalla tämän tehtävän metodia ja tulosta kutsumalla edellisen tehtävän metodia. 33 LASKE OSASUMMA Jatka edellisten tehtävien ohjelmaa (samaan tiedostoon) c) Tee metodi int laskeosasumma(int[ ] luvut, int ala, int ylä), joka saa parametrina kokonaislukutaulukon sekä kokonaisluvut ala ja ylä. Metodi laskee taulukossa indekseillä ala...ylä olevien lukujen summan, ja palauttaa sen arvonaan. Esim. kutsu osasumma(cuadro, 2, 4) palauttaisi arvon 17 (ks. tehtävä 31). Testaa metodisi toiminta. Kokeile myös miten ohjelmasi toimii, jos käyttäjän antamat indeksirajat eivät ole kelvollisia indekseiksi? Entä, jos annettu yläraja on pienempi kuin annettu alaraja? Korjaa tarvittaessa toteutusta! Koska tällä kertaa taulukossa on varmasti vain positiivisia lukuja, voisivat metodit palauttaa kutsujalle vaikkapa arvon -1 merkiksi virhetilanteesta.

10 34 ETSII, ETSII JA SOISI LÖYTÄVÄNSÄ Jatka edellisten tehtävien ohjelmaa lisäämällä d) metodi void monikoonsama(int[ ] taulu), joka tutkii ja tulostaa, kuinka moni parametrina saadun taulukon alkion arvo on yhtä suuri kuin alkion indeksi. Esimerkiksi tehtävän 31 taulukossa on kaksi tällaista lukua (cuadro[2]==2 ja cuadro[8]==8), joten metodi tulostaisi arvon 2. Lisää pääohjelmaan testaamisessa tarvittavat lauseet. 35 ETSII JÄLLEEN Jatka edellisten tehtävien ohjelmaa lisäämällä e) metodi void etsijatulostapieninluku(int[ ] taulu), joka etsii ja tulostaa parametrina saamansa järjestämättömän taulukon pienimmän alkion arvon ja sen indeksin. Jos samaa pienintä arvoa on useassa alkiossa, metodin tulee tulostaa vain se indeksi, joka on pienin. Esimerkiksi kutsu etsijatulostapieninluku(cuadro) tulostaisi Taulukon pienin luku on 0, ja se sijaitsee indeksillä 7. Lisää pääohjelmaan testaamisessa tarvittavat lauseet harj HIIHTOJÄRJESTYKSEN SEKOITTAMINEN (Kirjan tehtävä 40, s. 104) Laadi ohjelma, joka arpoo ja tulostaa hiihtokilpailun lähtöjärjestyksen, kun kisaan osallistuu 45 hiihtäjää. Hiihtäjillä on rinnassaan etukäteen jaetut numerolaput, joissa on kilpailijanumero Hiihtäjän kilpailijanumero ei tällä kertaa siis kerro suoraan lähtöjärjestystä. Eräs tapa: Sijoita lähtijät ensin kilpailijanumeronsa mukaisessa järjestyksessä lähtöjärjestyksen sisältävään taulukkoon. Sekoita sitten taulukon sisältöä: arvo kaksi lähtönumeroa ja vaihda ko. lokeroissa olevat arvot keskenään. Toista riittävän monta kertaa. 37 SEKAISEN JÄRJESTÄMINEN Taulukon voi järjestää kasvavaan suuruusjärjestykseen monella tavalla. Tässä yksi tapa - etsi koko taulukon pienin arvo, ja vaihda se taulukon indeksillä 0 olevan arvon kanssa - etsi sitten indeksistä 1 alkaen loppuosan pienin arvo, ja vaihda se indeksillä 1 olevan arvon kanssa - etsi indeksistä 2 alkaen loppuosan pienin arvo, ja vaihda indeksillä 2 olevan arvon kanssa - jatka vastaavasti, kunnes taulukon loppuosaan kuuluu enää vain viimeinen alkio Algoritmimme runko näyttää siis tältä Missä for (int i=0; i < taulu.length; i++) { min = etsipienimmänindeksi(taulu, i); vaihda(taulu, i, min); }

11 - metodi int etsipienimmänindeksi(int[ ] taulu,int i) etsii alkaen indeksistä i taulukon loppuosan pienimmän arvon, ja palauttaa ko. alkion indeksin. - metodi void vaihda(int[ ] taulu,int i,int j) vaihtaa taulukon indekseillä i ja j olevat arvot keskenään. f) Lisää tehtävän 31 ohjelmaan metodi void järjestätaulukko(int[ ] luvut), joka järjestää parametrina annetun taulukon yllä mainittua algoritmia käyttäen. Tulosta taulukon luvut ennen järjestämistä ja sen jälkeen. Huomaa, että voit käyttää taulukon täyttämisessä ja tulostuksessa aiempien tehtävien metodeja (tehtävät 31 ja 32). 38 ETSINTÄ (eli HAKU) JÄRJESTETYSTÄ TAULUKOSTA g) Lisää tehtävään 31 metodi boolean etsijärjestetystätaulukosta(int[ ] taulu, int arvo), joka peräkkäishakua käyttäen tutkii esiintyykö parametrina annettu arvo parametrina annetussa järjestetyssä taulukossa. Etsinnän voi lopettaa heti, kun kohdataan parametria suurempi arvo. 39 BINÄÄRIHAULLA ARVATENKIN Valitse mielessäsi joku kokonaisluku väliltä Tee ohjelma, joka "arvaa" ajattelemasi luvun. Kuhunkin ohjelman arvaukseen sinun tulee vastata 1 = liian pieni arvaus, 2 = oikein arvattu ja 3 = liian suuri arvaus. Ohjelma tekee arvauksen ns. puolitushaulla seuraavasti - alussa alaraja=1 ja yläraja=100 ja ohjelman arvaus=(alaraja+yläraja)/2 - jos vastaat 1 eli liian pieni arvaus, ohjelma kasvattaa alarajaa edellisen arvauksen yli - jos vastaat 3 eli liian suuri arvaus, ohjelma pienentää ylärajaa edellisen arvauksen alle - seuraava arvaus on jälleen kohdassa (alaraja+yläraja)/2 - jne. Ohjelma toistaa tuota silmukassa, kunnes arvaus osuu kohdalleen. PS. Jos ohjelmasi ei kuudenkaan vihjeen jälkeen ole keksinyt lukuasi, ei ohjelmasi ole kovin fiksu, tai sitten sinä huijaat! o-o-o-o-o Tehtävä 39 on kurssin viimeinen tehtävä. Muista täyttää kurssipalaute, Tuubissa!

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

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

Ohjelmassa on käytettävä funktiota laskeparkkimaksu laskemaan kunkin asiakkaan maksu. Funktio floor pyöristää luvun lähimmäksi kokonaisluvuksi. Tehtävä 24. Kallioparkki veloittaa 2 euroa kolmelta ensimmäiseltä pysäköintitunnilta. Yli kolmen tunnin pysäköinnistä veloitetaan lisäksi 0.5 euroa jokaiselta yli menevältä tunnilta. Kuitenkin maksimiveloitus

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

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

Java-kielen perusteet

Java-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ätiedot

Metropolia ammattikorkeakoulu 05.02.2015 TI00AA43-3004: Ohjelmointi Kotitehtävät 3

Metropolia ammattikorkeakoulu 05.02.2015 TI00AA43-3004: Ohjelmointi Kotitehtävät 3 : http://users.metropolia.fi/~pasitr/2014-2015/ti00aa43-3004/kt/03/ratkaisut/ Tehtävä 1. (1 piste) Tee ohjelma K03T01.cpp, jossa ohjelmalle syötetään kokonaisluku. Jos kokonaisluku on positiivinen, niin

Lisätiedot

Tietuetyypin määrittely toteutetaan C-kielessä struct-rakenteena seuraavalla tavalla:

Tietuetyypin määrittely toteutetaan C-kielessä struct-rakenteena seuraavalla tavalla: KERTAUSTEHTÄVIÄ Tietue Tietuetyypin määrittely toteutetaan C-kielessä struct-rakenteena seuraavalla tavalla: struct henkilotiedot char nimi [20]; int ika; char puh [10]; ; Edellä esitetty kuvaus määrittelee

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

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

Ohjelmassa 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ä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

Metropolia ammattikorkeakoulu TI00AA : Ohjelmointi Kotitehtävät 3 opettaja: Pasi Ranne

Metropolia ammattikorkeakoulu TI00AA : Ohjelmointi Kotitehtävät 3 opettaja: Pasi Ranne Seuraavista tehtävistä saatu yhteispistemäärä (max 7 pistettä) jaetaan luvulla 3.5 ja näin saadaan varsinainen kurssipisteisiin laskettava pistemäärä. Bonustehtävien pisteet jaetaan luvulla 4 eli niistä

Lisätiedot

7. Näytölle tulostaminen 7.1

7. 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ätiedot

Kirjoita, tallenna, käännä ja suorita alla esitelty ohjelma, joka tervehtii käyttäjäänsä.

Kirjoita, tallenna, käännä ja suorita alla esitelty ohjelma, joka tervehtii käyttäjäänsä. Tehtävä 1. Kirjoita, tallenna, käännä ja suorita alla esitelty ohjelma, joka tervehtii käyttäjäänsä. #include /* mm. I/O-funktiot */ #include /* mm. EXIT_SUCCESS */ /*main-funktio,

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

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

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

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla Tietojen syöttäminen ohjelmalle Tähän mennessä on käsitelty Javan tulostuslauseet System.out.print ja System.out.println sekä ohjelman perusrakenneosat (muuttujat, vakiot, lauseet). Jotta päästään tekemään

Lisätiedot

Harjoitus 3 (viikko 39)

Harjoitus 3 (viikko 39) Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja sisentää koodisi. Vältä liian pitkiä rivejä. Ohjelmointitehtävien

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

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

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

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

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

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

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4) 2. Lisää Java-ohjelmoinnin alkeita Muuttuja ja viittausmuuttuja Vakio ja literaalivakio Sijoituslause Syötteen lukeminen ja Scanner-luokka 1 Muuttuja ja viittausmuuttuja (1/4) Edellä mainittiin, että String-tietotyyppi

Lisätiedot

Taulukot. Taulukon käsittely. Tämän osan sisältö. Esimerkki. Taulukon esittely ja luonti. Taulukon alustaminen. Taulukon koko

Taulukot. Taulukon käsittely. Tämän osan sisältö. Esimerkki. Taulukon esittely ja luonti. Taulukon alustaminen. Taulukon koko 5 Taulukot Tämän osan sisältö Taulukon esittely ja luonti Taulukon alustaminen Taulukon koko Taulukon käsittely indeksointi peräkkäiskäsittely hajakäsittely harva taulukko Taulukon järjestäminen Kaksiulotteinen

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin 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ätiedot

Taulukot. 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 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ätiedot

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

System.out.printf(%d / %d = %.2f%n, ekaluku, tokaluku, osamaara); Kysy Karilta tai Kimmolta, jos tehtävissä on jotain epäselvää. Kerro WETOon liittyvät ongelmat suoraan Jormalle sähköpostitse (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja

Lisätiedot

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)

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

Taulukot. Jukka Harju, Jukka Juslin 2006 1

Taulukot. Jukka Harju, Jukka Juslin 2006 1 Taulukot Jukka Harju, Jukka Juslin 2006 1 Taulukot Taulukot ovat olioita, jotka auttavat organisoimaan suuria määriä tietoa. Käsittelylistalla on: Taulukon tekeminen ja käyttö Rajojen tarkastus ja kapasiteetti

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

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

System.out.printf(%d / %d = %.2f%n, ekaluku, tokaluku, osamaara); Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja sisentää koodisi. Ohjelmointitehtävien osalta palautetaan

Lisätiedot

Java-kielen perusteita

Java-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ätiedot

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo 15.2.2006

Informaatioteknologian 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ätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2018-2019 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen

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

Harjoitus 5 (viikko 48)

Harjoitus 5 (viikko 48) Moni tämän harjoituksen tehtävistä liittyy joko suoraan tai epäsuorasti kurssin toiseen harjoitustyöhön. Harjoitustyö edistyy sitä paremmin, mitä enemmän tehtäviä ratkaiset. Mikäli tehtävissä on jotain

Lisätiedot

Harjoitus 2 (viikko 45)

Harjoitus 2 (viikko 45) Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista lisätä static-määre operaatioidesi otsikoihin, jotta ohjelmasi kääntyvät. Muista noudattaa hyvän

Lisätiedot

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta. Tehtävä 63. Kirjoita oma versio funktiosta strcmp(),joka saa parametrinaan kaksi merkkiosoitinta. Tee ohjelma, jossa luetaan kaksi merkkijonoa, joita sitten verrataan ko. funktiolla. Tehtävä 64. Kirjoita

Lisätiedot

Ohjelmoinnin perusteet, 1. välikoe

Ohjelmoinnin perusteet, 1. välikoe Ohjelmoinnin perusteet,. välikoe Nimi: Opiskelijanumero:.. 3. 4. Yhteensä Ohje: Ratkaise kaikki tehtävät. Lähdemateriaalia ja tietokonetta ei saa käyttää. Noudata ohjelmointitehtävissä Java-kielen vakiintuneita

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

Algoritmit 1. Demot Timo Männikkö

Algoritmit 1. Demot Timo Männikkö Algoritmit 1 Demot 1 31.1.-1.2.2018 Timo Männikkö Tehtävä 1 (a) Algoritmi, joka tutkii onko kokonaisluku tasan jaollinen jollain toisella kokonaisluvulla siten, että ei käytetä lainkaan jakolaskuja Jaettava

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

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ä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

Seuraavassa on esimerkki for-, while- ja do-while -lauseesta:

Seuraavassa on esimerkki for-, while- ja do-while -lauseesta: Ilkka Kiistala 30.9.2004 tehtävät: http://www.cs.helsinki.fi/u/wikla/johdohj/ohpe/harjs04/3/ kurssisivu http://www.cs.helsinki.fi/u/wikla/johdohj/ohpe/indexs04.html materiaali: http://www.cs.helsinki.fi/u/wikla/johdohj/sisalto/index.htm

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

Harjoitus 4 (viikko 47)

Harjoitus 4 (viikko 47) Kaikki tämän harjoituksen tehtävät liittyvät joko suoraan tai epäsuorasti kurssin toiseen harjoitustyöhön. Saa hyvän alun harjoitustyön tekoon, kun ratkaiset mahdollisimman monta tehtävää. Mikäli tehtävissä

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

Sisällys. 3. Pseudokoodi. Johdanto. Johdanto. Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen.

Sisällys. 3. Pseudokoodi. Johdanto. Johdanto. Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen. Sisällys 3. Pseudokoodi Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen. Ohjausrakenteet: Valinta if- ja if--rakenteilla. oisto while-, do-while- ja for-rakenteilla. 3.1 3.2 Johdanto

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

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

C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa. Taulukot C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa. Taulukon muuttujilla (muistipaikoilla) on yhteinen nimi. Jokaiseen yksittäiseen

Lisätiedot

Ohjelmoinnin perusteet, kurssikoe

Ohjelmoinnin 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ä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

Sisällys. 3. Muuttujat ja operaatiot. Muuttujat ja operaatiot. Muuttujat. Operaatiot. Imperatiivinen laskenta. Muuttujat. Esimerkkejä: Operaattorit.

Sisällys. 3. Muuttujat ja operaatiot. Muuttujat ja operaatiot. Muuttujat. Operaatiot. Imperatiivinen laskenta. Muuttujat. Esimerkkejä: Operaattorit. 3. Muuttujat ja operaatiot Sisällys Imperatiivinen laskenta. Muuttujat. Nimi ja arvo. Muuttujan nimeäminen. Muuttujan tyyppi.. Operandit. Arvon sijoitus muuttujaan. Aritmeettiset operaattorit. Arvojen

Lisätiedot

1. Kun käyttäjä antaa nollan, niin ei tulosteta enää tuloa 2. Hyväksy käyttäjältä luku vain joltain tietyltä väliltä (esim tai )

1. Kun käyttäjä antaa nollan, niin ei tulosteta enää tuloa 2. Hyväksy käyttäjältä luku vain joltain tietyltä väliltä (esim tai ) 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ätiedot

3. Muuttujat ja operaatiot 3.1

3. Muuttujat ja operaatiot 3.1 3. Muuttujat ja operaatiot 3.1 Sisällys Imperatiivinen laskenta. Muuttujat. Nimi ja arvo. Muuttujan nimeäminen. Muuttujan tyyppi. Operaattorit. Operandit. Arvon sijoitus muuttujaan. Aritmeettiset operaattorit.

Lisätiedot

Kerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta 5. 1. Toteuta Pythonilla seuraava ohjelma:

Kerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta 5. 1. Toteuta Pythonilla seuraava ohjelma: Kerta 2 Kerta 3 Kerta 4 Kerta 5 Kerta 2 1. Toteuta Pythonilla seuraava ohjelma: 2. Tulosta Pythonilla seuraavat luvut allekkain a. 0 10 (eli, näyttää tältä: 0 1 2 3 4 5 6 7 8 9 10 b. 0 100 c. 50 100 3.

Lisätiedot

Lauseet. Ehdollinen lause. Tämän osan sisältö. Ehdollinen lause. Esimerkkejä. Yksinkertainen ehto. Lohkosulut ja sisennys. Ehdollinen lause if

Lauseet. Ehdollinen lause. Tämän osan sisältö. Ehdollinen lause. Esimerkkejä. Yksinkertainen ehto. Lohkosulut ja sisennys. Ehdollinen lause if 3 Lauseet Lue kirjasta s. 54-84 Tämän osan sisältö Ehdollinen lause if Looginen lauseke vertailut AND-operaattori &&, & OR-operaattori, NOT-operaattori! Valintalause switch Toistolauseet while for do while

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

Taulukoiden käsittely Javalla

Taulukoiden 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ätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 27.1.2010 T-106.1208 Ohjelmoinnin perusteet Y 27.1.2010 1 / 37 If-käsky toistokäskyn sisällä def main(): HELLERAJA = 25.0 print "Anna lampotiloja, lopeta -300:lla."

Lisätiedot

1 2 x2 + 1 dx. (2p) x + 2dx. Kummankin integraalin laskeminen oikein (vastaukset 12 ja 20 ) antaa erikseen (2p) (integraalifunktiot

1 2 x2 + 1 dx. (2p) x + 2dx. Kummankin integraalin laskeminen oikein (vastaukset 12 ja 20 ) antaa erikseen (2p) (integraalifunktiot Helsingin yliopisto, Itä-Suomen yliopisto, Jyväskylän yliopisto, Oulun yliopisto, Tampereen yliopisto ja Turun yliopisto Matematiikan valintakoe (Ratkaisut ja pisteytys) 500 Kustakin tehtävästä saa maksimissaan

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

2 Konekieli, aliohjelmat, keskeytykset

2 Konekieli, aliohjelmat, keskeytykset ITK145 Käyttöjärjestelmät, kesä 2005 Tenttitärppejä Tässä on lueteltu suurin piirtein kaikki vuosina 2003-2005 kurssin tenteissä kysytyt kysymykset, ja mukana on myös muutama uusi. Jokaisessa kysymyksessä

Lisätiedot

Johdatus Ohjelmointiin

Johdatus Ohjelmointiin Johdatus Ohjelmointiin Syksy 2006 Viikko 2 13.9. - 14.9. Tällä viikolla käsiteltävät asiat Peruskäsitteitä Kiintoarvot Tiedon tulostus Yksinkertaiset laskutoimitukset Muuttujat Tiedon syöttäminen Hyvin

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

17. Javan omat luokat 17.1

17. 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ä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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 26.1.2009 T-106.1208 Ohjelmoinnin perusteet Y 26.1.2009 1 / 33 Valintakäsky if syote = raw_input("kerro tenttipisteesi.\n") pisteet = int(syote) if pisteet >=

Lisätiedot

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti Luku 6 Dynaaminen ohjelmointi Dynaamisessa ohjelmoinnissa on ideana jakaa ongelman ratkaisu pienempiin osaongelmiin, jotka voidaan ratkaista toisistaan riippumattomasti. Jokaisen osaongelman ratkaisu tallennetaan

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

17. Javan omat luokat 17.1

17. 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ätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 20.1.2010 T-106.1208 Ohjelmoinnin perusteet Y 20.1.2010 1 / 40 Arvon pyytäminen käyttäjältä Käyttäjän antaman arvon voi lukea raw_input-käskyllä. Käskyn sulkujen

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2016-2017 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen

Lisätiedot

Ohjelmoinnin peruskurssi Y1

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

Lisätiedot

20. Javan omat luokat 20.1

20. 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ätiedot

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

Sisä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ä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

Ohjelmointi Tunnilla 1 (5) 13.10.2014. Viikko 7 tuntitehtäviä: metodien tekeminen Javalla

Ohjelmointi Tunnilla 1 (5) 13.10.2014. Viikko 7 tuntitehtäviä: metodien tekeminen Javalla 1 (5) Viikko 7 tuntitehtäviä: metodien tekeminen Javalla 1. Tee ohjelma (kalvoesimerkkinä), joka kysyy asunnon myyntihinnan ja laskee asunnon myynnistä maksettavan välityspalkkion. Välityspalkkion on 3,44%

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

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

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

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

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

Kaavioiden rakenne. Kaavioiden piirto symboleita yhdistelemällä. Kaavion osan toistaminen silmukalla. Esimerkkejä:

Kaavioiden rakenne. Kaavioiden piirto symboleita yhdistelemällä. Kaavion osan toistaminen silmukalla. Esimerkkejä: 2. Vuokaaviot 2.1 Sisällys Kaavioiden rakenne. Kaavioiden piirto symbolta yhdistelemällä. Kaavion osan toistaminen silmukalla. Esimerkkejä: algoritmi oven avaamiseen vuokaaviona, keskiarvon laskeminen

Lisätiedot

Harjoitus 5 (viikko 41)

Harjoitus 5 (viikko 41) Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja sisentää koodisi. Vältä liian pitkiä rivejä, käytä

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 14.9.2016 CS-A1111 Ohjelmoinnin peruskurssi Y1 14.9.2016 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,

Lisätiedot

Javan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi

Javan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi 1 Javan perusteet Ohjelmointi IPO-malli Java lähdekoodista suoritettavaksi ohjelmaksi Vakio Muuttuja Miten Javalla näytetään tietoa käyttäjälle, miten Javalla luetaan käyttäjän antama syöte Miten Javalla

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

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes)

Kää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ätiedot

Python-ohjelmointi Harjoitus 2

Python-ohjelmointi Harjoitus 2 Python-ohjelmointi Harjoitus 2 TAVOITTEET Kerrataan tulostuskomento ja lukumuotoisen muuttujan muuttaminen merkkijonoksi. Opitaan jakojäännös eli modulus, vertailuoperaattorit, ehtorakenne jos, input-komento

Lisätiedot

Javan perusteita. Janne Käki

Javan 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ätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 3.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 3.2.2010 1 / 36 Esimerkki: asunnon välityspalkkio Kirjoitetaan ohjelma, joka laskee kiinteistönvälittäjän asunnon

Lisätiedot

Kirjoita ohjelma jossa luetaan kokonaislukuja taulukkoon (saat itse päättää taulun koon, kunhan koko on vähintään 10)

Kirjoita ohjelma jossa luetaan kokonaislukuja taulukkoon (saat itse päättää taulun koon, kunhan koko on vähintään 10) Tehtävä 40. Kirjoita ohjelma, jossa luetaan 20 lukua, joiden arvot ovat välillä 10 100. Kun taulukko on täytetty, ohjelma tulostaa vain ne taulukon arvot, jotka esiintyvät taulukossa vain kerran. Tehtävä

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

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

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