Tietotyypit ja lausekkeet. Lewis & Loftus & Jukka Juslin 1

Koko: px
Aloita esitys sivulta:

Download "Tietotyypit ja lausekkeet. Lewis & Loftus & Jukka Juslin 1"

Transkriptio

1 Tietotyypit ja lausekkeet Lewis & Loftus & Jukka Juslin 1

2 Tietotyypit Perustavaa laatua olevia ohjelmoinnin käsitteitä Luku 2 käsittelee seuraavia: Merkkijonot Primitiivitietotyypit (eli alkeistietotyypit) Muuttujien esittely ja käyttös Ilmaisut ja operaattoreiden presedenssi Tiedon muuttaminen tyypistä toiseen Syötteen lukeminen käyttäjältä Lewis & Loftus & Jukka Juslin 2

3 Missä ollaan? Merkkijonot Muuttujat ja sijoittaminen Primitiivitietotyypit Ilmaisut Tiedon konvertointi (kastaus) Interaktiiviset ohjelmat Lewis & Loftus & Jukka Juslin 3

4 Merkkijono eli String String on merkkijono: tälläinen jono esitetään laittamalla lainausmerkit tekstin ympärille: Esimerkkejä: Tämä on String literaali." Ratapihantie 13" Y" Jokainen String on olio, joka määritellään Javassa String luokassa Jokainen String literaali esittää String oliota Lewis & Loftus & Jukka Juslin 4

5 println metodi ja String Olemme jo aikaisemmin kutsuneet println metodia tulostaaksemme Stringin System.out olio esittää kohdetta, jonne voimme Stringin lähettää System.out.println ( Ole mikä tähansa, mutta ole hyvä."); olio metodin nimi informaatio metodille (parametrit), tässä tapauksessa String Lewis & Loftus & Jukka Juslin 5

6 print metodi System.out oliossa oli myös tapa tulostaa Stringejä toisella tavalla print metodi on sama kuin println metodi, mutta tulostus ei vaihda riviä \n merkin avulla lopuksi (ns. Backslash merkit tulosteen ohjauksessa) Lewis & Loftus & Jukka Juslin 6

7 Stringien konkatenointi String konkatenointioperaattori plusssaa (+) käytetään liittämään yhteen Stringiin toinen Yksi kahvi " + ja maitoa" Plus-operaattoria voidaan myös käyttää liittämään numero Stringiin Yhtä String literaalia ei voi voi hajoittaa kahdelle riville ohjelmassa Lewis & Loftus & Jukka Juslin 7

8 Stringien konkatenointi + operaattoria käytetään myös aritmeettiseen summaukseen (vrt ) Mikä funktio toimii missäkin yhteydessä riippuu siitä minkälaisella tiedolla sitä kutsutaan (tämä liittyy myös ylikuormitukseen, jota käsittelemme myöhemmin) Jos molemmat operandit ovat Stringejä tai jos yksi operandi on String ja toinen esim. Int + suorittaa String konkatenaation Jos molemmat operandit ovat numeerisia, Java lisää ne toisiinsa (esim. 1+1) + operaattori evaluoidaan vasemmalta oikealle, mutta sulkeita voidaan käyttää muuntelemaan evaluointijärjestystä (pakottaa muutos) Lewis & Loftus & Jukka Juslin 8

9 Escapet merkkijonoissa Mitä jos haluamme tulostaa lainausmerkin? Seuraava rivi hämäisi kääntäjää, sillä toinen lainausmerkki tulkittaisiiin Stringin lopuksi: System.out.println ( Sanoin Moro" sinulle."); Escape komento ilmaisee jonon merkkejä, jotka esittävät erikoismerkkejä Eskape komento aloitetaan aina kenoviivalla (backslash vrt. slash, vrt. usa näppäimistö) System.out.println ( Sanoin \ Moro\" sinulle."); Lewis & Loftus & Jukka Juslin 9

10 Escape merkit Joitain Java escape merkkejä: Escape merkit \b \t \n \r \" \' \\ Tarkoitus backspace tab uusi rivi rivin vaihto (carriage return) double quote single quote backslash Lewis & Loftus & Jukka Juslin 10

11 Missä ollaan? Merkkijonot Muuttujat ja sijoittaminen Primitiivitietotyypit Ilmaisut Tiedon muuttaminen (kastaus) Interaktiiviset ohjelmat Grafiikka Lewis & Loftus & Jukka Juslin 11

12 Muuttujat muuttuja (tästä käytetään joskus myös nimikettä attribuutti) on muistissa olevan muistipaikan nimi Muuttuja pitää esitellä määrittelemällä muuttujan nimi ja minkätyyppistä tietoa se tulee sisältämään tietotyyppi Muuttujan nimi int summa; int laskuri, temp, tulos; Useita muuttujia voidaan luoda yhdellä esittelyllä. (vrt. taulukot ja hashit myöhemmin) Lewis & Loftus & Jukka Juslin 12

13 Muuttujan alustus Muuttujien esittelyn yhteydessä muuttujalle voidaan antaa lähtöarvo int summa = 0; int aloitusarvo = 32, max = 149; Kun muuttujaan viitateen ohjelmasta, sen senhetkistä arvoa käytetään Lewis & Loftus & Jukka Juslin 13

14 Sijoitus sijoitusoperaatio muuttaa muuttujan arvoa Sijoitusoperaattori on = merkki (huomaa epäjohdonmukaisuus matematiikan kanssa, vrt. == myöhemmin) yht = 55; Ilmaisu oikealla evaluoidaan ja tulos talletetaan vasemman puolen muuttujaan Arvo, joka oli yht muuttujassa ylikirjoitetaan Voit sijoittaa muuttujaan vain sellaisia arvoja, jotka ovat samaa tyyppiä kuin muuttuja Lewis & Loftus & Jukka Juslin 14

15 Vakiot Vakio on tavallinen muuttuja muuten, paitsi että se sisältää saman arvon koko olemassaolonsa ajan Kuten nimi ilmoittaa, kyseessä on vakio ei muuttuja Kääntäjä antaa virheilmoituksen, jos koitat muuttaa vakion arvoa Javassa käytämme final sanaa esitellessämme vakion: final int MIN_HEIGHT = 69; Lewis & Loftus & Jukka Juslin 15

16 Vakiot Vakiot ovat tärkeitä kolmen syyn takia Ensinnäkin, ne antavat merkityksen muuten maagisille numeroille Esimerkiksi, MAX_LOAD kertoo enemmän kuin vain luvun 250 esiintyminen koodissa Toiseksi, vakiot helpottavat ohjelman ylläpidettävyyttä Vakion arvo täytyy päivittää vain yhteen kohtaan ohjelmaa, vaikka sitä käytettäisiinkin monesta eri paikasta käsin Kolmanneksi, vakiot formaalisti kertovat että ko. Muuttujan arvo ei saa muuttua: näin vältetään toisten ohjelmoijien tekemiä virheitä hekin ymmärtävät että ko. Arvo on tarkoitus pitää vakiona Lewis & Loftus & Jukka Juslin 16

17 Missä ollaan? Merkkijonot Muuttujat ja sijoittaminen Primitiivitietotyypit Ilmaisut Tiedon konvertointi (kastaus) Interaktiiviset ohjelmat Lewis & Loftus & Jukka Juslin 17

18 Alkeistietotyypit (primitiivityypit) Javassa on kahdeksan primitiivitietotyyppiä Neljä näistä esittää kokonaislukuja: byte, short, int, long Kaksi näistä esittää desimaalilukuja: float, double (erottimena. merkki pääsääntöisesti) Yksi esittää merkkejä: char Ja yksi esittää boolean arvoja (true/false): boolean Lewis & Loftus & Jukka Juslin 18

19 Numeerinen primitiivitieto Eri numeeristen pirimitiivityyppien välinen ero on koko ja siksi ne pystyvät tallettamaan erisuuruisia lukuja: Tyyppi Koko Minimiarvo Maksimiarvo byte short int long 8 bits 16 bits 32 bits 64 bits ,768-2,147,483,648 < -9 x ,767 2,147,483,647 > 9 x float double 32 bits 64 bits +/- 3.4 x ja 7 desimaalia +/- 1.7 x ja 15 desimaalia Lewis & Loftus & Jukka Juslin 19

20 Merkit char muuttujaan talletetaan yksi merkki Merkit esitetään alaspäin osoittavissa hipsuissa (single quotes): Esimerkkejä: 'a' 'X' '7' '$' ',' '\n' char topgrade = 'A'; char terminator = ';', separator = ' '; Huomaa ero primitiivi char-muuttujan, joka tallettaa vain yhden merkin, ja String olion, joka tallettaa useita merkkejä, välillä Lewis & Loftus & Jukka Juslin 20

21 Merkistöt merkistö on järjestetty lista merkkejä, jossa jokainen merkki vastaa uniikkia numeroa char muuttuja Javassa voi periaatteessa tallettaa minkä tahansa merkin Unicode merkistötä (ko. Merkin näyttäminen ja syöttäminen ei silti ole välttämättä niin helppoa ) Unicode merkistö käyttää kunkin merkin tallentamiseen 16 bittiä, joten kullekin merkille on mahdollista 65,536 erilaista arvoa Unicode on kansainvälinen merkistö, sisältäen symboleja ja merkkejä monista maailman kielistä Lewis & Loftus & Jukka Juslin 21

22 Merkit ASCII merkistö ion vanhempi ja pienempi kuin Unicode, mutta on silti melko suosittu (ASCII 7-bit vs. ASCII 8-bit) esim. Windowsissa ASCII merkit ovat osajoukko Unicode merkistöstä, kuten: isot kirjaimet A, B, C, pienet kirjaimet a, b, c, pisteet Piste, puolipiste, numerot 0, 1, 2, erikoissymbolit &,, \, kontrollimerkit car. return, rivinvaihto, tab,... Lewis & Loftus & Jukka Juslin 22

23 Boolean boolean arvo esittää true tai false tilannetta Varatut sanat true ja false ovat ainoat validit arvot boolean tyypille boolean tehty = false; boolean muuttujaa voidaan myös käyttää esittämään mitä tahansa kahta tilaa: kuten esimerkiksi onko hehkulamppu päällä vai pois päältä Lewis & Loftus & Jukka Juslin 23

24 Missä ollaan? Merkkijonot Muuttujat ja sijoittaminen Primitiivitietotyypit Ilmaisut Tiedon muuttaminen (kastaus) Interaktiiviset ohjelmat Lewis & Loftus & Jukka Juslin 24

25 Ilmaisut (laskutoimitukset) ilmaisu koostuu yhdestä tai monista operaattoreista ja operandeista Aritmeettinen ilmaisu laskee numeeriset tulokset ja käyttää hyväkseen aritmeettisia operaattoreita: summa erotus kertolasku jako jakojäännös + - * / % Jos jompikumpi tai molemmat operandeista ovat desimaalilukuja -> myös tulos on desimaaliluku Lewis & Loftus & Jukka Juslin 25

26 Jako ja jakojäännös Jos kummatkin operandit ovat jakolaskussa ovat kokonaislukuja -> tulos on myös kokonaisluku (desimaalit dropataan pois, ei pyöristetä) 14 / 3 on 8 / 12 on 4 0 Jakojäännös operaattori (%) palauttaa palauttaa jakojäännöksen koitettuaan laittaa toisen operandin ensimmäiseen operandiin 14 % 3 on 2 8 % 12 on 8 Lewis & Loftus & Jukka Juslin 26

27 Operaattorien presedenssi Operaattoreita voidaan yhdistellä monimutkaisemman funktion aikaansaamiseksi: result = total + count / max - offset; Operaattoreilla on presedenssi, mikä määrää missä järjestyksessä laskutoimitus evaluoidaan Kertolasku, jakolasku ja jakojäännös evaluoidaan ennen summaa, erotusta ja Stringien konkatenaatiota Aritmeettiset operaattorit, joilla on sama presedenssi evaluoidaan vasemmalta oikella, mutta sulkeita voidaan käyttää (edelleen kuten matematiikassa) pakottamaan evaluointijärjestys toisin (huom. Älä käytä hakasulkeita tässä yhteydessä) Lewis & Loftus & Jukka Juslin 27

28 Operaattorien presedenssi Mikä on seuraavien funktioiden evaluointijärjestys? a + b + c + d + e a + b * c - d / e a / (b + c) - d % e a / (b * (c + (d - e))) Lewis & Loftus & Jukka Juslin 28

29 Funktiopuut Puut ovat ohjelmoijalle tärkeät: hakemistopuut, tietorakenteet yms. Tietyn funktion evaluointi voidaan näyttää puun avulla Operaattoreilla alempana puussa on korkeampi presedenssi ko. Lauseessa. Puun purkaminen aloitettaisiin siis alarivistä + a + (b c) / d a / - d b c Lewis & Loftus & Jukka Juslin 29

30 Sijoituslauseet Sijoituslauseella on alempi presedenssi kuin aritmeettisilla operaattoreilla Ensin lause = operaattorin oikealla puolella evaluoidaan vast = sum / 4 + MAX * lowest; Lopuksi tulos talletetaan muuttujaan vasemmalla puolella Lewis & Loftus & Jukka Juslin 30

31 Sijoituslauseet Sijoituslauseen oikealle ja vasemmalla puolella voi olla sama muuttuja (HUOMAA, sijoituslause on aivan eri asia kuin matematiikan yhtäsuurikuin merkki -> Javassa vastaava on ==) Ensin, yksi lisätään luku-muuttujan alkuperäiseen arvoon luku = luku + 1; Lopuksi tulos talletetaan takaisin lukuun (alkuperäinen arvo ylikirjoitetaan) Lewis & Loftus & Jukka Juslin 31

32 Inkrementointi ja dekrementointi Inkrementointi ja dekrementointi operaattorit käyttävät vain yhtä operandia Inkrementointi operaattori (++) lisää yhden operandiinsa dekrementointi operaattori (--) vähentää yhden operandistaan Lause luku++; on siis aivan sama kuin (mutta lyhyempi kirjoittaa) luku = luku + 1; Lewis & Loftus & Jukka Juslin 32

33 Inkrementointi ja dekrementointi Inkrementointi ja dekrementointi operaattoreita voidaan käyttää joko postfix muodossa: tai prefix muodossa: count++ ++count Kun nämä ovat osana laajempaa lausetta, näillä kahdella voi olla erilaiset vaikutukset (postfix suorittaa laskutoimitukset ennen, ennenkuin tekee esim. Inkrementaation, muussa tapauksessa inkrementaatio tehdään heti -> for-silmukka myöhemmin) Koska inkrementointi ja dekrementointi operaattoreilla on omat erikoiset käyttäytymisensä niiden käytössä tulee olla aluksi kohtuullisen varovainen Lewis & Loftus & Jukka Juslin 33

34 Sijoitusoperaattorit Usein teemme operaation muuttujalle ja sitten talletamme ko. muuttuneen arvon muuttujan vanhan arvon päälle Java tarjoaa sijoitusoperaattorit yksinkertaistamaan tätä prosessia (lyhyempi kirjoittaa ) Esimerkiksi lause on sama kuin num += count; num = num + count; Lewis & Loftus & Jukka Juslin 34

35 Sijoitusoperaattorit Javassa on monia sijoitusoperaattoreita, mukaanlukien seuraavat: Operaattori += -= *= /= %= Esimerkki x += y x -= y x *= y x /= y x %= y On sama kuin x = x + y x = x - y x = x * y x = x / y x = x % y Lewis & Loftus & Jukka Juslin 35

36 Sijoitusoperaattorit Sijoitusoperaattorin oikea puoli voi olla monimutkainen lause Oikean puolen lause kokonaisudessaan evaluoidaan ensin, sitten tulos yhdistetään alkuperäiseen muuttujaan Siksi result /= (total-min) % num; on sama kuin result = result / ((total-min) % num); Lewis & Loftus & Jukka Juslin 36

37 Sijoitusoperaattorit Joiden sijoitusoperaattoreiden käyttäytyminen riippuu operandien tyypistä Jos += operaattorit operandit ovat Stringejä, sijoitusoperaatio suorittaa Stringien konkatenaation Sijoitusoperaation käyttäytyminen (+=) on aina konsistentti sitä vastaavaan operaattorin kanssa (+) Lewis & Loftus & Jukka Juslin 37

38 Missä ollaan? Merkkijonot Muuttujat ja sijoittaminen Primitiivitietotyypit Ilmaisut Tiedon konvertointi (kastaus) Interaktiiviset ohjelmat Lewis & Loftus & Jukka Juslin 38

39 Tiedon muuntaminen Joskus on tarpeen muuntaa tietoa tyypistä toiseen Esimerkiksi, tietyssä tilanteessa voimme haluta käsitellä kokonaislukua (integer) desimaalilukuna (floating point) Nämä konversiot eivät muuta muuttujan tyyppiä tai siinä pidettyä arvoa ne ainoastaan muuntavat arvon osana laskutoimitusta Lewis & Loftus & Jukka Juslin 39

40 Tiedon konversio Konversiotilanteissa pitää olla varovainen, jotta vältyttäisiin tiedon hukkaamiselta Avartavia konversiot ovat turvallisia, sillä niissä tarkennetaan pienen tietotyypin esitystä suuremmaksi (kuten short:sta int:iin) Kaventavissa konversioissa voidaan hukata informaatiota, sillä niissä mennään suuremmasta tietotyypistä pienempään (kuten int:stä short:iin) Javassa konversiot voivat tapahtua jollakin seuraavasta kolmesta tavasta: sijoituksen tyyppimuunnos promootio kastaus (tyyppimuunnos) Lewis & Loftus & Jukka Juslin 40

41 Sijoituksen tyyppimuunnos Sijoituksen tyyppimuunnos tapahtuu kun yhden tyyppienn muuttuja sijoitetaan toisentyyppiseen muuttujaan Jos money on float muuttuja ja dollars on int muuttuja, seuraava sijoituslause muuntaa dollars muuttujassa olevan arvon float:ksi. money = dollars Vain avartavia muunnoksia voi tapahtua sijoituksessa Huomaa, että dollars muuttujassa olevan arvon tyyppi ei muuttunut Lewis & Loftus & Jukka Juslin 41

42 Tiedon muuntaminen Promootio tapahtuu automaattisesti, kun operaattorit muuntavat operandinsa Esimerkiksi, jos sum on float ja count on int, count:n arvo muutetaan automaattisesti desimaaliluvuksi (float), jotta seuraava laskutoimitus voidaan suorittaa: result = sum / count; Lewis & Loftus & Jukka Juslin 42

43 Kastaus (casting, eli tyyppimuunnos) Kastaus on voimakkain, ja vaarallisiin muunnoskeino Sekä laajentavia että supistavia tyyppimuunnoksia voisaan tehdä kastauksen avulla Kastaus tapahtuu laittamalla haluttu tyyppi sulkeisiin muutettavaksi halutun arvon eteen Esimerkiksi, jos total ja count ovat kokonaislukuja, mutta haluamme vastauksen desimaalilukuna, voimme kastata total muuttujan: result = (float) total / count; Lewis & Loftus & Jukka Juslin 43

44 Missä ollaan? Merkkijonot Muuttujat ja sijoittaminen Primitiivitietotyypit Ilmaisut Tiedon muuttaminen (kastaus) Interaktiiviset ohjelmat Lewis & Loftus & Jukka Juslin 44

45 Interaktiivinen ohjelma Ohjelmat tarvitsevat syötettä (inputtia), jonka perusteella toimia Scanner luokka tarjoaa helppokäyttöiset metodit lukea erityyppisiä syötteitä (numeroita tai tekstiä yms.) Scanner olio voidaan asettaa lukemaan syötettä useista lähteistä, mukaanlukien käyttäjän mahdollisuus syöttää tietoa näppäimistöltä Näppäimistön syöte esitetään System.in olion avulla Lewis & Loftus & Jukka Juslin 45

46 Syötteen lukeminen Seuraava rivi luo Scanner olion, joka ottaa syötettä vastaan näppäimistöltä: Scanner scan = new Scanner (System.in); new operaattori luo Scanner olion Kun luotu, Scanner oliota voidaan käyttää kutsumaan erityyppisiä input metodeita, kuten: vastausstringi = scan.nextline(); Lewis & Loftus & Jukka Juslin 46

47 Syötteen lukeminen Scanner luokka on osa java.util luokkakirjastoa, ja ko. Luokka pitää importata ohjelmaan, jotta sitä voidaan käyttää import java.util.scanner; nextline metodi lukee kaiken syötteen, kunnes rivinvaihto havaitaan Olion luomisen ja luokkakirjastojen yksityiskohtia valotetaan luvussa Lewis & Loftus & Jukka Juslin 47

48 Sanasyöte (tokens) Jollei muuten ilmoiteta, tyhjä tila ymmärretään sanojen, elementtien (tokenien) erottimena. Huomaa, että Java ei voi ymmärtää käsitettä sana, se näkee vain erilaisia merkkijonoja Tyhjä tila voi olla välilyönte(jä), tabeja tai rivinvaihtoja next metodi Scanner luokassa lukee lukee seuravaavan input tokenin ja palauttaa sen Stringinä Metodit kuten nextint ja nextdouble lukevat ko. Tyypin mukaista tietoa (ja palauttavat ko. Tyypin mukaista tietoa) Lewis & Loftus & Jukka Juslin 48

49 Missä ollaan? Merkkijonot Muuttujat ja sijoittaminen Primitiivitietotyypit Ilmaisut Tiedon muuttaminen (kastaus) Interaktiiviset ohjelmat Lewis & Loftus & Jukka Juslin 49

50 Yhteenveto Luvussa kaksi keskityimme seuraaviin: Merkkijonot Primitiivitietotyypit Muuttujien esittely ja käyttö Lauseet ja operaattoreiden presedenssi Tiedon konversiot Syötteen vastaanottaminen käyttäjältä Lewis & Loftus & Jukka Juslin 50

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

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

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

Ehto- ja toistolauseet

Ehto- ja toistolauseet Ehto- ja toistolauseet 1 Ehto- ja toistolauseet Uutena asiana opetellaan ohjelmointilauseet / rakenteet, jotka mahdollistavat: Päätösten tekemisen ohjelman suorituksen aikana (esim. kyllä/ei) Samoja lauseiden

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

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

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

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

Sisällys. 6. Muuttujat ja Java. Muuttujien nimeäminen. Muuttujien nimeäminen. salinovi tai syntymapaiva

Sisällys. 6. Muuttujat ja Java. Muuttujien nimeäminen. Muuttujien nimeäminen. salinovi tai syntymapaiva Sisällys 6. Muuttujat ja Java Muuttujien nimeäminen. Muuttujan tyypin määritys. Javan tietotyypit: Kokonais- ja liukuluvut. boolean- ja char-tyypit. Tyyppien yhteensopivuus. Viitetietotyypit ja merkkijonotietotyyppi

Lisätiedot

6. Muuttujat ja Java 6.1

6. Muuttujat ja Java 6.1 6. Muuttujat ja Java 6.1 Sisällys Muuttujien nimeäminen. Muuttujan tyypin määritys. Javan tietotyypit: Kokonais- ja liukuluvut. boolean- ja char-tyypit. Tyyppien yhteensopivuus. Viitetietotyypit ja merkkijonotietotyyppi

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 19.1.2011 T-106.1208 Ohjelmoinnin perusteet Y 19.1.2011 1 / 39 Haluatko antaa palautetta luennoista? Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti Vast

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

1. Algoritmi 1.1 Sisällys Algoritmin määritelmä. Aiheen pariin johdatteleva esimerkki. Muuttujat ja operaatiot (sijoitus, aritmetiikka ja vertailu). Algoritmista ohjelmaksi. 1.2 Algoritmin määritelmä Ohjelmointi

Lisätiedot

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

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

Lisätiedot

Muuttujat ja kontrolli. Ville Sundberg

Muuttujat ja kontrolli. Ville Sundberg Muuttujat ja kontrolli Ville Sundberg 14.9.2007 Alkeistyyppi Alin abstraktiotaso josta tarvitsee välittää Yksittäinen, jakamaton tiedonjyvä Tavallaan kaikki alkeistyypit ovat lukuja arvojoukko vaihtelee

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 4 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 4 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 4 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten lauseisiin, lausekkeisiin ja aliohjelmiin liittyvät kysymykset. Tehtävä 1. Mitä

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

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

etunimi, sukunimi ja opiskelijanumero ja näillä

etunimi, sukunimi ja opiskelijanumero ja näillä Sisällys 1. Algoritmi Algoritmin määritelmä. Aiheen pariin johdatteleva esimerkki. ja operaatiot (sijoitus, aritmetiikka ja vertailu). Algoritmista ohjelmaksi. 1.1 1.2 Algoritmin määritelmä Ohjelmointi

Lisätiedot

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

Tyyppejä ja vähän muutakin. TIEA341 Funktio ohjelmointi 1 Syksy 2005 Tyyppejä ja vähän muutakin TIEA341 Funktio ohjelmointi 1 Syksy 2005 Viime luennolla... Haskellin alkeita pääasiassa Hello World!... ja muita tutunoloisia ohjelmia Haskellilla Haskellin voima on kuitenkin

Lisätiedot

Ohjelmointiharjoituksia Arduino-ympäristössä

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

Lisätiedot

Ohjelmointi 1 Taulukot ja merkkijonot

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

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 15.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.2.2010 1 / 46 Merkkijonot Merkkijonojen avulla ohjelmassa voi esittää tekstitietoa, esim. nimiä, osoitteita ja

Lisätiedot

1. Omat operaatiot 1.1

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

Lisätiedot

7/20: Paketti kasassa ensimmäistä kertaa

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

Lisätiedot

Ehto- ja toistolauseet

Ehto- ja toistolauseet Ehto- ja toistolauseet 1 Ehto- ja toistolauseet Uutena asiana opetellaan ohjelmointilauseet / rakenteet, jotka mahdollistavat: Päätösten tekemisen ohjelman suorituksen aikana (esim. kyllä/ei) Samoja lauseiden

Lisätiedot

Sisällys. 6. Muuttujat ja Java. Muuttujien nimeäminen. Muuttujien nimeäminen. salinovi tai syntymapaiva

Sisällys. 6. Muuttujat ja Java. Muuttujien nimeäminen. Muuttujien nimeäminen. salinovi tai syntymapaiva Sisällys 6. Muuttujat ja Java Muuttujien nimeäminen. Muuttujan tyypin määritys. Javan tietotyypit: Kokonais- ja liukuluvut, merkit, totuusarvot. Tyyppien yhteensopivuus. Viitetietotyypit ja merkkijonotietotyyppi

Lisätiedot

6. Muuttujat ja Java 6.1

6. Muuttujat ja Java 6.1 6. Muuttujat ja Java 6.1 Sisällys Muuttujien nimeäminen. Muuttujan tyypin määritys. Javan tietotyypit: Kokonais- ja liukuluvut, merkit, totuusarvot. Tyyppien yhteensopivuus. Viitetietotyypit ja merkkijonotietotyyppi

Lisätiedot

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

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

Lisätiedot

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

Ohjelmoinnin peruskurssi Y1

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

Lisätiedot

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

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

Lisätiedot

Osio2: Taulukot Jukka Juslin

Osio2: Taulukot Jukka Juslin Osio2: Taulukot Jukka Juslin Jukka Juslin 1 Taulukot Taulukot ovat olioita, jotka auttavat meitä organisoimaan suuria määriä tietoa Seuraavassa keskitymme näihin: Taulukon tekeminen ja käyttö Rajojen tarkastus

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

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

Lisätiedot

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

tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla 2.5. YDIN-HASKELL 19 tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla kirjaimilla. Jos Γ ja ovat tyyppilausekkeita, niin Γ on tyyppilauseke. Nuoli kirjoitetaan koneella

Lisätiedot

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

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

812341A Olio-ohjelmointi, 2016. Olio-ohjelmoinnin peruskäsitteet ja Java-kieli

812341A Olio-ohjelmointi, 2016. Olio-ohjelmoinnin peruskäsitteet ja Java-kieli 812341A Olio-ohjelmointi, 2016 Olio-ohjelmoinnin peruskäsitteet ja Java-kieli Sisältö 1. Java-kieli 2. Luokka 3. Luokkakaaviot 4. Lisää Javaa Javalla 2 Java-kieli n Sun Microsystems tutkimusprojekti 1991

Lisätiedot

16. Ohjelmoinnin tekniikkaa 16.1

16. Ohjelmoinnin tekniikkaa 16.1 16. Ohjelmoinnin tekniikkaa 16.1 Sisällys For-lause lyhemmin. Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely ja alustaminen yhdellä lauseella. If-else-lause vaihtoehtoisesti

Lisätiedot

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

812341A Olio-ohjelmointi Peruskäsitteet jatkoa 812341A Olio-ohjelmointi 2106 Peruskäsitteet jatkoa Luokkakohtaiset piirteet n Yhteisiä kaikille saman luokan olioille n Liittyvät luokkaan, eivät yksittäiseen olioon n Kaikki ko. luokan oliot voivat käyttää

Lisätiedot

Sisällys. 17. Ohjelmoinnin tekniikkaa. Aritmetiikkaa toisin merkiten. for-lause lyhemmin

Sisällys. 17. Ohjelmoinnin tekniikkaa. Aritmetiikkaa toisin merkiten. for-lause lyhemmin Sisällys 17. Ohjelmoinnin tekniikkaa for-lause lyhemmin. Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely ja alustaminen yhdellä lauseella. if-else-lause vaihtoehtoisesti

Lisätiedot

Groovy. Niko Jäntti Jesper Haapalinna Group 31

Groovy. Niko Jäntti Jesper Haapalinna Group 31 Groovy Niko Jäntti Jesper Haapalinna Group 31 Johdanto Groovy on Apachen kehittämä Javaan perustuva dynaaminen oliopohjainen ohjelmointikieli. Kielen kehitys alkoi vuonna 2003, versio 1.0 julkaistiin 2007

Lisätiedot

11. Javan toistorakenteet 11.1

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

Lisätiedot

Taulukot, silmukat ja muut joka koodin pikku veijarit

Taulukot, silmukat ja muut joka koodin pikku veijarit Taulukot, silmukat ja muut joka koodin pikku veijarit Janne Käki 7.9.6 MERKKI liikenne jono METRI para laku MOGARI ATRI psyki buutti ESINE pelottelu ellistäminen runsauden kuono TUNTI SARVI kusi assistentti

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

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

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

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

Python-koodaus: Muuttujat

Python-koodaus: Muuttujat Python-koodaus: Muuttujat PUNOMO NETWORKS OY 24.7 && 4.8.2016 pva Oletus Sinulla on Raspin Geany-IDE konfiguroituna toimimaan SSH-etäkäytössä. Tämä on Punomon Python koodikoulun toinen oppitunti. Käynnistä

Lisätiedot

Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan.

Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan. Osoittimet Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan. Muistilohkon koko riippuu muuttujan tyypistä, eli kuinka suuria arvoja muuttujan

Lisätiedot

19. Olio-ohjelmointia Javalla 19.1

19. Olio-ohjelmointia Javalla 19.1 19. Olio-ohjelmointia Javalla 19.1 Sisällys Olioiden esittely ja alustus. Metodit Yleistä metodeista. Mihin metodeja tarvitaan? Metodien määrittely. Omat metodit: nimeäminen, paikka, kutsuminen, parametrit

Lisätiedot

Johdatus ohjelmointiin / Lausekielinen ohjelmointi 1 & 2

Johdatus ohjelmointiin / Lausekielinen ohjelmointi 1 & 2 Johdatus ohjelmointiin / Lausekielinen ohjelmointi 1 & 2 Syntaksilomake (22.4.2007) C-kielen standardikirjaston funktioita gets(merkkijono); scanf("formaatti", &muuttuja1,..., &muuttujan); sscanf(merkkijono,

Lisätiedot

Osoittimet. Mikä on osoitin?

Osoittimet. Mikä on osoitin? Osoittimet 7 Osoittimet On aika siirtyä käsittelemään osoittimia, C++:lle elintärkeätä ominaisuutta. Osoittimet ovat tärkeitä, koska ne luovat perustan muistin dynaamiselle varaukselle ja käytölle. Ne

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 23.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 23.2.2009 1 / 44 Debuggeri Tyypillinen tilanne: ohjelma on kirjoitettu, Python-tulkki ei valita virheistä, mutta

Lisätiedot

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen Sisällys 6. Metodit Oliot viestivät metodeja kutsuen. Kuormittaminen. Luokkametodit (ja -attribuutit).. Metodien ja muun luokan sisällön järjestäminen. 6.1 6.2 Oliot viestivät metodeja kutsuen Oliot viestivät

Lisätiedot

13. Loogiset operaatiot 13.1

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

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 16.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 16.3.2009 1 / 40 Kertausta: tiedostosta lukeminen Aluksi käsiteltävä tiedosto pitää avata: tiedostomuuttuja = open("teksti.txt","r")

Lisätiedot

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

Ohjelmointi 1 C#, kevät 2013, 2. tentti ITKP102 Ohjelmointi 1 C# 15.5.2013 1 / 6 Ohjelmointi 1 C#, kevät 2013, 2. tentti Tentaattori Antti-Jussi Lakanen Tässä tentissä saa olla mukana omia muistiinpanoja yhden arkin verran. Tentin valvojalla

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 26.2

Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 26.2 26. Tiedostot 26.1 Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 26.2 Johdanto Tiedostoja on käsitelty uudelleenohjattujen standardisyöte- ja tulostusvirtojen avulla. Tiedostoja

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 4 Jatkuvuus Jatkuvan funktion määritelmä Tarkastellaan funktiota f x) jossakin tietyssä pisteessä x 0. Tämä funktio on tässä pisteessä joko jatkuva tai epäjatkuva. Jatkuvuuden

Lisätiedot

Digitaalisen median tekniikat JavaScript Harri Laine 1

Digitaalisen median tekniikat JavaScript Harri Laine 1 Digitaalisen median tekniikat JavaScript 5.4.2004 Harri Laine 1 JavaScript ent. LiveScript (Netscape), muunnelma JScript (Microsoft) yhteensopivat yksinkertaisissa asioissa, aiemmin yhteensopimattomat

Lisätiedot

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

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

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman

Lisätiedot

Poikkeustenkäsittely

Poikkeustenkäsittely 1 Poikkeustenkäsittely Mitä poikkeustenkäsittely tarkoittaa? Poikkeuksen käsitteleminen Poikkeusluokkien hierarkia Poikkeuksen heittäminen 1 Mitä poikkeustenkäsittely tarkoittaa? Poikkeus (Exception) on

Lisätiedot

Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus)

Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus) VISUAL BASIC OHJEITA Kutsuttava ohjelma alkaa kometoparilla Sub... End Sub Sub ohjelmanimi()...koodia... End Sub Muuttujat Muuttujan esittely Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency,

Lisätiedot

Sisältö. Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2

Sisältö. Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2 6. Tiedostot 6.1 Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2 Johdanto Tiedostoja on käsitelty uudelleenohjattujen standardisyöte- ja tulostusvirtojen avulla. Tiedostoja voidaan

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

Mitä poikkeuskäsittely tarkoittaa?

Mitä poikkeuskäsittely tarkoittaa? Poikkeuskäsittely Mitä poikkeuskäsittely tarkoittaa? Poikkeuskäsittelyluokkien hierakkia Poikkeuksen sieppaaminen Mihin järjestykseen try-catch-lauseen ExceptionType-poikkeukset laitetaan? Poikkeuksen

Lisätiedot

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

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

7. Oliot ja viitteet 7.1

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

Lisätiedot

Merkkien ja merkkijonojen käsittelyä Javalla

Merkkien ja merkkijonojen käsittelyä Javalla 1 Merkkien ja merkkijonojen käsittelyä Javalla char String Merkkijonon lukeminen käyttäjältä String-luokan metodeja matches-metodi ja esimerkkejä säännöllisistä lausekkeista (engl. regular expressions)

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

Sisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä

Sisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä Sisällys 9. Periytyminen Javassa Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Metodien korvaaminen ja super-attribuutti. Attribuutin peittäminen periytymisen kautta. Rakentajat

Lisätiedot

Ohjelmointi 2. Jussi Pohjolainen. TAMK» Tieto- ja viestintäteknologia , Jussi Pohjolainen TAMPEREEN AMMATTIKORKEAKOULU

Ohjelmointi 2. Jussi Pohjolainen. TAMK» Tieto- ja viestintäteknologia , Jussi Pohjolainen TAMPEREEN AMMATTIKORKEAKOULU Ohjelmointi 2 Jussi Pohjolainen TAMK» Tieto- ja viestintäteknologia Tietotyypeistä C++ - kielessä useita tietotyyppejä Kirjaimet: char, wchar_t Kokonaisluvut: short, int, long Liukuluvut: float, double

Lisätiedot

4/20: Algoritmirakenteita II

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

Lisätiedot

18. Abstraktit tietotyypit 18.1

18. Abstraktit tietotyypit 18.1 18. Abstraktit tietotyypit 18.1 Sisällys Johdanto abstrakteihin tietotyyppeihin. Pino ja jono. Linkitetty lista. Pino linkitetyllä listalla toteutettuna. 18.2 Johdanto Javan omat tietotyypit ovat jo tuttuja:

Lisätiedot

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

Maahan on pudonnut omenoita, ja Uolevi aikoo poimia niitä. Tiedät jokaisesta omenasta, kuinka painava se on. Datatähti 2015 A: Omenat Aikaraja: 2 s Maahan on pudonnut omenoita, ja Uolevi aikoo poimia niitä. Tiedät jokaisesta omenasta, kuinka painava se on. Uolevi haluaa saada mahdollisimman monta omenaa, mutta

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

Sinulle on annettu bittijono, ja tehtäväsi on muuttaa jonoa niin, että jokainen bitti on 0.

Sinulle on annettu bittijono, ja tehtäväsi on muuttaa jonoa niin, että jokainen bitti on 0. A Bittien nollaus Sinulle on annettu bittijono, ja tehtäväsi on muuttaa jonoa niin, että jokainen bitti on 0. Saat käyttää seuraavia operaatioita: muuta jokin bitti vastakkaiseksi (0 1 tai 1 0) muuta kaikki

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

on ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä

on ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä LUOKAN MÄÄRITTELY Luokka, mitä se sisältää Luokan määrittely Olion ominaisuudet eli attribuutit Olion metodit Olion muodostimet ja luonti Olion tuhoutuminen Metodin kutsu luokan ulkopuolelta Olion kopioiminen

Lisätiedot

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

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

Lisätiedot

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely Poikkeukset Poikkeuksella tarkoitetaan yllättävää ajonaikaista tilannetta, joka

Lisätiedot

1. Taustatietoa näppäimistönkuuntelusta

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

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100 Tiedonsiirtokäskyt LOAD LOAD-käsky toimii jälkimmäisestä operandista ensimmäiseen. Ensimmäisen operandin pitää olla rekisteri, toinen voi olla rekisteri, vakio tai muistiosoite (myös muuttujat ovat muistiosoitteita).

Lisätiedot

Oliot viestivät metodeja kutsuen

Oliot viestivät metodeja kutsuen 6. Metodit 6.1 Sisällys Oliot viestivät metodeja kutsuen. Kuormittaminen. Luokkametodit (ja -attribuutit). Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2 Oliot viestivät metodeja kutsuen

Lisätiedot

C++11 Syntaksi. Jari-Pekka Voutilainen Jari-Pekka Voutilainen: C++11 Syntaksi

C++11 Syntaksi. Jari-Pekka Voutilainen Jari-Pekka Voutilainen: C++11 Syntaksi 1 C++11 Syntaksi Jari-Pekka Voutilainen 13.4.2012 2 Range-for Iteroi säiliön kaikki alkiot for-silmukassa. Säiliöltä vaaditaan begin- ja end-iteraattorit. Pätee kaikille C++11 STL-säiliöille, taulukoille,

Lisätiedot

9/20: Puhu mun stdinille

9/20: Puhu mun stdinille Ohjelmointi 1 / syksy 2007 9/20: Puhu mun stdinille Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/12 Tällä luennolla

Lisätiedot

TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 27. lokakuuta 2009

TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 27. lokakuuta 2009 TIE448 Kääntäjätekniikka, syksy 2009 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 27. lokakuuta 2009 Sisällys Sisällys Seuraava deadline Vaihe D tiistai 10.11. klo 10 välikielen generointi Kääntäjän rakenne

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

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

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

Merkitse kertolasku 3 3 3 3 potenssin avulla ja laske sen arvo.

Merkitse kertolasku 3 3 3 3 potenssin avulla ja laske sen arvo. 13 Luvun potenssi Kertolasku, jonka kaikki tekijät ovat samoja, voidaan merkitä lyhyemmin potenssin avulla. Potenssimerkinnässä eksponentti ilmaisee, kuinka monta kertaa kantaluku esiintyy tulossa. Potenssin

Lisätiedot

PERUSLASKUJA. Kirjoita muuten sama, mutta ota välilyönti 4:n jälkeen 3/4 +5^2 3

PERUSLASKUJA. Kirjoita muuten sama, mutta ota välilyönti 4:n jälkeen 3/4 +5^2 3 PERUSLASKUJA Matemaattisten lausekkeiden syöttäminen: Kirjoita ilman välilyöntejä 3/+^ 3 Kirjoita muuten sama, mutta ota välilyönti :n jälkeen 3/ +^ 3 Liiku matematiikka alueella nuolinäppäimin. Kokeile

Lisätiedot

Algebralliset tietotyypit ym. TIEA341 Funktio ohjelmointi 1 Syksy 2005

Algebralliset tietotyypit ym. TIEA341 Funktio ohjelmointi 1 Syksy 2005 Algebralliset tietotyypit ym. TIEA341 Funktio ohjelmointi 1 Syksy 2005 Tällä luennolla Algebralliset tietotyypit Hahmonsovitus (pattern matching) Primitiivirekursio Esimerkkinä binäärinen hakupuu Muistattehan...

Lisätiedot

Luokan muodostimet (Constructors)

Luokan muodostimet (Constructors) Mikä on muodostin? Luokan muodostimet (Constructors) Millaisia muodostimia on? Oletusmuodostin (Default Constructor) Parametrillinen muodostin Kopiointimuodostin (Copy Constructor) this-muuttuja Miten

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 10.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 10.2.2010 1 / 43 Kertausta: listat Tyhjä uusi lista luodaan kirjoittamalla esimerkiksi lampotilat = [] (jolloin

Lisätiedot