Sve 1.5. Iikka Hauhio 18. tammikuuta 2015

Koko: px
Aloita esitys sivulta:

Download "Sve 1.5. Iikka Hauhio 18. tammikuuta 2015"

Transkriptio

1 Sve 1.5 Iikka Hauhio 18. tammikuuta 2015

2 Sisältö 1 Suorituksenaikainen ympäristö Oliot ja niiden rakenne Hajautustaulut Muuttujat ja muuttujaympäristöt Leksikaalinen rakenne 3 3 Kielioppi Lauseet Lohkolause Ehtolause While-silmukkalause Do-silmukkalause For-silmukkalause Hyppylause Palautuslause Lausekelause Funktiolause Lausekkeet Binäärioperaattorilauske Taululausekkeet Funktiokutsulauseke Vastalukulauseke EI-lauseke Ehtolauseke Muuttujalausekkeet Listalauseke Taululauseke Funktiolauseke Sanalauseke

3 1 Suorituksenaikainen ympäristö Ennen varsinaisen kieliopin esittelemistä lienee parasta selostaa Sve-kielen suorituksenaikainen ympäristö, jonka ymmärtäminen on oleellista kieliopillisten lauseiden toiminnan käsittämiseksi. 1.1 Oliot ja niiden rakenne Olio on Sven tärkein käsite. Ohjelman käyttämä muisti on aina järjestelty oliohin. Kaikki oliot voidaan jakaa kahteen osaan: kangastusarvoon ja hajautustauluun. Nämä kaksi osaa ovat toisistaan erottamattomat. Kangastusarvo on luonteeltaan arvo ja hajautusarvo viittaus. Kangastusarvoluokat on lueteltu alla. Luku IEEE 754 -standardin mukainen liukulukuarvo. Merkkijono Totuusarvo Unicode-standardia tukeva merkkijonoarvo. Totuusarvo: tosi tai epätosi. Nil Arvo, jota käytetään ilmaisemaan kangastusarvon puuttumista tai olemattomuutta. Huomaa, että nil-tyyppisillä olioilla on silti hajautustaulu. Funktio Viittaus svefunktioon ja sen määritelleeseen ympäristöön. Natiivifunktio Viittaus funktioon, jota ei ole kirjoitettu Svellä. Taulu Oliota, jolla ei ole kangastusarvoa, sanotaan tauluolioksi. Käytetään, jos halutaan korostaa olion hajautustaulua Hajautustaulut Hajautustaulut ovat Sven monimutkaisin ominaisuus. Jokainen hajautustaulu sisältää viittauksia paitsi tavallisiin olioihin, myös kahteen muuhun hajautustauluun ja yhteen funktioon. Taulujen idea on yksinkertainen: ne yhdistävät avaimina toimivat merkkijonot niitä vastaaviin olioihin. Taulut ovat monikäyttöisijä ja lähes jokainen sveohjelma käyttää niitä. Hajautustaulujen tärkein osa on niiden sisältämä lista avain-olio-pareista. Jos taululle tehdään kysyly tiettyyn avaimeen liitetystä arvosta, palautetaan ensisijaisesti taulun omasta listasta löytyvä olio. Jos tästä listasta ei kuitenkaan oliota löydy, sitä yritetään etsiä ylitaulusta, mikäli sellaiseen on viittaus. Ylitaulu on tavallinen hajautustaulu ja jos siitäkään ei löydy ko. avaimella oliota, etsitään sitä taas sen ylitaulusta, jne. Jos ylitaulukysely ei tuota tulosta, etsitään arvoa prototyyppitaulusta. Prototyyppitaulu käyttäytyy kuin ylitaulu. Jos prototyyppitaulukin palautti kieltävän vastauksen, kutsutaan vielä prototyyppifunktiota avaimella. Prototyyppifunktion palauttama arvo palautetaan. Kysylyprosessi vielä pseudokoodina: 1

4 Funktio HaeArvo ( taulu, avain ) Jos avain Listassa taulu. l i s t a Palauta taulu. l i s t a [ avain ] Muulloin Jos taulu. y l i t a u l u On Olemassa tmp := HaeArvo ( taulu. y l i t a u l u ) Jos tmp On Olemassa Palauta tmp Muulloin Jos taulu. p r o t o t y y p p i t a u l u On Olemassa tmp := HaeArvo ( taulu. p r o t o t y y p p i t a u l u ) Jos tmp On Olemassa Palauta tmp Muulloin Jos taulu. p r o t o t y y p p i f u n k t i o On Olemassa Palauta taulu. p r o t o t y y p p i f u n k t i o ( avain ) Palauta Epä t o s i Lopeta Funktio Hajautustaulun arvojen asettaminen on verrattavissa edellä kuvattuun prosessiin. Ensiksi tutkitaan onko ylitaulussa tai sen missään ylitaulussa ko. avaimeen yhdistetty oliota. Jos on, kysely ohjataan ylitaululle. Jos ylitaulusta ei löytynyt avainta, lisätään avain ja olio uutena parina olion omaan listaan. Funktio Tarkista ( taulu, avain ) Jos avain Listassa taulu. l i s t a Palauta Tosi Muulloin Jos taulu. y l i t a u l u On Olemassa Palauta Tarkista ( taulu. y l i t a u l u, avain ) Palauta Epä t o s i Lopeta Funktio Funktio AsetaArvo ( taulu, avain, arvo ) Jos Tarkista ( taulu. y l i t a u l u, avain ) Palauta AsetaArvo ( taulu. y l i t a u l u, avain, arvo ) Muulloin Palauta taulu. l i s t a [ avain ] := arvo Lopeta Funktio Hajautustaululla ei ole pakko olla yli- tai prototyyppitauluja tai prototyyppifunktiota. 2

5 1.2 Muuttujat ja muuttujaympäristöt Svessä muuttujat säilötään muuttujaympäristöihin, jotka ovat tavallisia tauluolioita. Nykyinen muuttujaympäristö säilötään muuttujaan nimeltä $$ ja ylätason muuttujaympäristö, jonka aliympäristöjä kaikki muut ympäristöt ovat, muuttujaan $. Vain kaksi kieliopillista rakennetta voivat esitellä uuden muuttujaympäristön: lohko ja funktiokutsu (ks. Lohkolause ja Funktiokutsulauseke ). 2 Leksikaalinen rakenne Tokeneiksi lasketaan kaikki sellaiset osat lähdekooditiedostoa, jotka eivät sisällä merkkejä väli, sarkain, rivinvaihto, rivinpalautus, ;, <, >, (, ),,, :, +, -, *, /, %, =, &,, {, },.,!, [ ja ] ja edellä mainitut merkit. Merkkiyhdistelmät ->, =>, ==,!=, &&,, <=, >=, ++, -- ja :: lasketaan omiksi tokeneikseen. Merkkijonot alkavat " -merkistä ja päättyvät sellaiseen. Merkkijonot voivat sisältää mitä tahansa merkkejä mukaanlukien uudet rivit, merkki nro. 0 ja kaikki Unicode-merkit. Merkkijonot tukevat seuraavia ohituskoodeja: \" = ", \t = sarkain, \n = uusi rivi, \r = rivinpalautus, \\ = \. 3 Kielioppi 3.1 Lauseet Svetulkki suorittaa svelauseita yksitellen. Kaikki lauseet ja niiden merkityksen on lueteltu tässä luvussa. Ohjelma := { Lause } Lause := Lohkolause Ehtolause While silmukkalause Do silmukkalause For silmukkalause Hyppylause P a l a u t u s l a u s e Lausekelause Funktiolause NOP l a u s e NOP l a u s e := ; Lohkolause Lohkolause := { { Lause } } Svetulkki suorittaa lohkolauseen suorittamalla kaikki sen sisällä olevat lauseet järjestyksessä uudessa muuttujaympäristössä. 3

6 mj := nykyisen muuttujaympä r i s t ön aliymp ä r i s t ö S u o r i t a ( k a i k k i l a u s e e t, mj ) Ehtolause Ehtolause := i f : ehto=lauseke s i l l o i n=lause [ e l s e : muulloin=lause ] Ehtolauseen silloin-osa suoritetaan, jos ehto on tosi. Muulloin suoritetaan muulloin-osa, mikäli sellainen on. Jos S u o r i t a ( ehto, nykyinen ympä r i s t ö ) = Tosi S u o r i t a ( s i l l o i n, nykyinen ympä r i s t ö ) Muulloin S u o r i t a ( muulloin, nykyinen ympä r i s t ö ) While-silmukkalause While silmukkalause := while : ehto=lauseke v a r t a l o=lause Silmukan sisällä olevaa lausetta suoritetaan uudestaan ja uudestaan niin kauan, kun ehto on tosi. Kun S u o r i t a ( ehto, nykyinen ympä r i s t ö ) = Tosi S u o r i t a ( vartalo, nykyinen ympä r i s t ö ) Lopeta Kun BREAK: Do-silmukkalause Do silmukkalause := do : v a r t a l o=lause while : ehto=lauseke Do-silmukan sisällä oleva lause suoritetaan kerran, minkä jälkeen sitä suoritetaan uudestaan niin kauan, kun ehto on tosi. S u o r i t a ( vartalo, nykyinen ympä r i s t ö ) Kun S u o r i t a ( ehto, nykyinen ympä r i s t ö ) = Tosi S u o r i t a ( vartalo, nykyinen ympä r i s t ö ) Lopeta Kun BREAK: For-silmukkalause For silmukkalause := f o r : a l u s t u s=lauseke, ehto=lauseke, kasvatus=lauseke v a r t a l o=lause For-silmukan alustusosa suoritetaan kerran, minkä jälkeen suoritetaan vartaloa ja kasvatus-lausetta vuorotellen niin kauan, kun ehto on tosi. 4

7 S u o r i t a ( a l u s t u s, nykyinen ympä r i s t ö ) Kun S u o r i t a ( ehto, nykyinen ympä r i s t ö ) = Tosi S u o r i t a ( vartalo, nykyinen ympä r i s t ö ) S u o r i t a ( kasvatus, nykyinen ympä r i s t ö ) Lopeta Kun BREAK: Hyppylause Hyppylause hyppää ulos sisimmästä silmukasta. Pseudokoodeissa uloshyppykohtaa merkitään BREAK: -lauseella. Hyppylause := break Palautuslause Palautuslause määrittää lopettaa funktion suorittamisen ja palauttaa sisällään olevan lausekkeen arvon. P a l a u t u s l a u s e := r eturn Lauseke Lausekelause Lausekelauseen sisällä oleva lauseke suoritetaan. Lausekelause := Lauseke Funktiolause Funktiolause := def : fnimi=nimi [ ( [ NIMI {, NIMI } ] ) ] v a r t a l o=lause Funktiolause määrittelee muuttujan fnimi arvoksi funktion annetuilla parametreilla ja vartalolla nykyiseen muuttujaympäristöön. nykyinen muuttujaympä r i s t ö. l i s t a [ fnimi ] = Funktioarvo ( fnimi, parametrit, v a r t a l o ) 3.2 Lausekkeet Kaikki unääri- ja binäärioperaattorit tauluoperaattoreita lukuunottamatta luovat uuden olion, eivät muunna annettua. Lauseke := T o t u u s o p eraatiolauseke Binäärioperaattorilauske Sve tukee rajoitettua määrää binäärioperaatioita. && Boolen algebran JA-operaatio. Palauttaa toisen operandin, jos ensimmäinen on arvoltaan nil tai epätosi, muulloin ensimmäisen. Ei suorita toista lauseketta, jos sille ei ole tarvetta. 5

8 Boolen algebran TAI-operaatio. Palauttaa ensimmäisen operandin, jos se ei ole arvoltaan nil tai epätosi, muulloin toisen. Ei suorita toista lauseketta, jos sille ei ole tarvetta. == Yhtäsuuri kuin. Jos molemmat operandit ovat lukuja, vertailee niitä IEEE 754 -standardin mukaan. Muissa tapauksissa operandit muutetaan merkkijonoiksi, joita vertaillaan.!= Erisuuri kuin. Vertailee lukuja IEEE 754 -standardin mukaan ja muita tyyppejä merkkijonoina. Käänteinen ==-operaatio. < Pienempi kuin. Vertailee lukuja IEEE 754 -standardin mukaan. Hyväksyy vain luvut. > Suurempi kuin. Vertailee lukuja IEEE 754 -standardin mukaan. Hyväksyy vain luvut. <= Pienempi tai yhtäsuuri kuin. Vertailee lukuja IEEE 754 -standardin mukaan. Hyväksyy vain luvut. >= Suurempi tai yhtäsuuri kuin. Vertailee lukuja IEEE 754 -standardin mukaan. Hyväksyy vain luvut. + Jos molemmat operandit ovat lukuja, suorittaa IEEE 754 -standardin mukaisen yhteenlaskun, muissa tapauksissa muuntaa operandit merkkijonoiksi ja liittää ne yhteen. - IEEE 754 -standardin mukainen vähennyslasku. Hyväksyy vain luvut. * IEEE 754 -standardin mukainen kertolasku. Hyväksyy vain luvut. / IEEE 754 -standardin mukainen jakolasku. Hyväksyy vain luvut. % IEEE 754 -standardin mukainen jakojäännös. Hyväksyy vain luvut. T o t u u s o p e r a a t i o l a u s eke := Totuusoperaatiolauseke ( && ) V e r t a i l u l a u s e k e V e r t a i l u l a u s e k e V e r t a i l u l a u s e k e := V e r t a i l u l a u s e k e ( ==!= < > <= >= ) Summalauseke Summalauseke Summalauseke := Summalauseke ( + ) Tulolauseke Tulolauseke Tulolauseke := Tulolauseke 6

9 ( / % ) Taulu t a i f u n k t i o l a u s e k e Taulu t a i f u n k t i o l a u s e k e Taulu t a i f u n k t i o l a u s e k e := Taulu t a i f u n k t i o l a u s e k e ( ( [ Lauseke {, Lauseke } ] ) : : Lauseke > Primää r i l a u s e k e [ ( [ Lauseke {, Lauseke } ] ) ] ) Primää r i l a u s e k e Primää r i l a u s e k e := Vastalukulauseke EI l a u s e k e Ehtolauseke Muuttujalauseke L i s t a l a u s e k e Taululauseke Funktiolauseke Sanalauseke Merkkijonolauseke Lukulauseke Taululausekkeet Arvonhakulauseke Hakee arvon taulukosta (ks. luku Hajautustaulut ). Arvonsijoituslauseke Hajautustaulut ). Sijoittaa arvon tietyllä avaimella tauluun (ks. luku Funktiokutsulauseke Luo uuden funktion määrittely-ympäristön aliympäristön ja suorittaa funktion vartalon siinä. Ympäristöön asetetaan ennen suoritusta parametreja vastaavien argumenttilausekkeiden arvot. Toimittamattomat argumentit korvataan nil-arvoilla. Ympäristöön asetetaan myös muuttujat $freturn = nil, $parent = ympäristö, josta funktiota kutsuttiin, $self = viittaus funktioon itseensä ja $args = lista argumenteista. Palauttaa funktion palautuslauseen arvon, tai, jos sellaista ei ole, $freturn -muuttujan arvon Vastalukulauseke Palauttaa olion, joka vastaa luvun vastalukua IEEE 754 -standardin mukaan. Vastalukulauseke := Taulu t a i f u n k t i o l a u s e k e EI-lauseke Palauttaa totuusarvon EI-arvon Boolen algebrassa. EI l a u s e k e :=! Taulu t a i f u n k t i o l a u s e k e 7

10 3.2.6 Ehtolauseke Jos ehtolausekkeen arvo on tosi, palauttaa silloin-lausekkeen arvon, muulloin muulloin-lausekkeen arvon. Suorittaa vain palautettavan lausekkeen. Ehtolauseke := i f : ehto=lauseke s i l l o i n=lauseke e l s e : muulloin=lauseke Muuttujalausekkeet Muuttujalausekkeet muistuttavat taululausekkeita, mutta koskevat paikallisen muuttujaympäristön taulua erikseen määritellyn sijaan. Muuttujalauseke := ++ NIMI NIMI NIMI ++ NIMI l o c a l NIMI = Lauseke NIMI = Lauseke NIMI ++NIMI Sama kuin (NIMI=NIMI+1), asettaa muuttujan arvoksi luvun seuraajan ja palauttaa sen. Hyväksyy vain luku-tyyppisiä muuttujia. Palauta AsetaArvo ( nykyinen muuttujaympä r i s t ö, NIMI, HaeArvo ( nykyinen muuttujaympä r i s t ö ). kangastus +1) --NIMI Sama kuin (NIMI=NIMI-1), asettaa muuttujan arvoksi luvun edeltäjän ja palauttaa sen. Hyväksyy vain luku-tyyppisiä muuttujia. Palauta AsetaArvo ( nykyinen muuttujaympä r i s t ö, NIMI, HaeArvo ( nykyinen muuttujaympä r i s t ö ). kangastus 1) NIMI++ Asettaa muuttujan arvoksi luvun seuraajan ja palauttaa alkuperäisen arvon. Hyväksyy vain luku-tyyppisiä muuttujia. arvo := HaeArvo ( nykyinen muuttujaympä r i s t ö ) AsetaArvo ( nykyinen muuttujaympä r i s t ö, NIMI, arvo. kangastus +1) Palauta arvo NIMI-- Asettaa muuttujan arvoksi luvun edeltäjän ja palauttaa alkuperäisen arvon. Hyväksyy vain luku-tyyppisiä muuttujia. arvo := HaeArvo ( nykyinen muuttujaympä r i s t ö ) AsetaArvo ( nykyinen muuttujaympä r i s t ö, NIMI, arvo. kangastus 1) Palauta arvo 8

11 Asettaa paikallisen muuttujaympäristön listaan muut- local NIMI = Lauseke tujalle NIMI arvon. Palauta nykyinen muuttujaympä r i s t ö. l i s t a [ NIMI ] = S u o r i t a ( Lauseke, nykyinen muuttujaympä r i s t ö ) NIMI = Lauseke Asettaa muuttujan arvon. Palauta AsetaArvo ( nykyinen muuttujaympä r i s t ö, NIMI, S u o r i t a ( Lauseke, nykyinen muuttujaympä r i s t ö ) ) NIMI Jos NIMI on luku tai merkkijono, palauttaa uuden luku- tai merkkijonoolion. Muulloin palauttaa muuttujan arvon. Luvuiksi tulkitaan kaikki numeroista koostuvat nimet ja vakiot Infinity ja NaN. Numeroista koostuvat luvut voivat sisältää yhden pisteen desimaalierottimena. Pisteen on oltava vähintään kahden numeron välissä. Jos Luku (NIMI) Palauta Lukuarvo ( NIMI) Muulloin Jos Merkkijono ( NIMI) Palauta Merkkijonoarvo (NIMI) Muulloin Palauta HaeArvo ( nykyinen muuttujaympä r i s t ö, NIMI) Listalauseke Lista on taulu, jonka avaimet ovat numeerisia. Avaimet alkavat nollasta. L i s t a l a u s e k e := [ [ Lauseke {, Lauseke } ] ] Taululauseke Taululauseke, kuten listalauseke, luo uuden hajautustaulun. Taululauseke := { [ NIMI = Lauseke {, NIMI = Lauseke } ] } Funktiolauseke Luo uuden funktio-olion. Funktiolauseke := def [ ( [ NIMI {, NIMI } ] ) ] v a r t a l o=lause Sanalauseke Yhden sanan pituinen merkkijonoliteraali. :NIMI == "NIMI". Sanalauseke := : NIMI 9

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

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

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

Lisätiedot

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

Luento 5. Timo Savola. 28. huhtikuuta 2006

Luento 5. Timo Savola. 28. huhtikuuta 2006 UNIX-käyttöjärjestelmä Luento 5 Timo Savola 28. huhtikuuta 2006 Osa I Shell-ohjelmointi Ehtolause Lausekkeet suoritetaan jos ehtolausekkeen paluuarvo on 0 if ehtolauseke then lauseke

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

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

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

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

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

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

Tutoriaaliläsnäoloista

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

Lisätiedot

PERL. TIE Principles of Programming Languages. Ryhmä 4: Joonas Lång & Jasmin Laitamäki

PERL. TIE Principles of Programming Languages. Ryhmä 4: Joonas Lång & Jasmin Laitamäki PERL TIE-20306 Principles of Programming Languages Ryhmä 4: Joonas Lång & Jasmin Laitamäki 1. Johdanto Perl on ohjelmointikielten perhe, johon kuuluu Perl 5 ja Perl 6. Kielet ovat kuitenkin erilliset ohjelmointikielet

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

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

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 25.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 25.2.2009 1 / 34 Syötteessä useita lukuja samalla rivillä Seuraavassa esimerkissä käyttäjä antaa useita lukuja samalla

Lisätiedot

Tietotyypit ja operaattorit

Tietotyypit ja operaattorit Tietotyypit ja operaattorit Luennossa tarkastellaan yksinkertaisten tietotyyppien int, double ja char muunnoksia tyypistä toiseen sekä esitellään uusia operaatioita. Numeeriset tietotyypit ja muunnos Merkkitieto

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 25.1.2010 T-106.1208 Ohjelmoinnin perusteet Y 25.1.2010 1 / 41 Valintakäsky if Tähänastiset ohjelmat ovat toimineen aina samalla tavalla. Usein ohjelman pitäisi

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

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

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

5/20: Algoritmirakenteita III

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

Lisätiedot

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

Ohjausrakenteet. Valinta:

Ohjausrakenteet. Valinta: Ohjausrakenteet Luento antaa yleiskuvan siitä kuinka ohjelmassa suorittaan vaihtoehtoisia tehtäviä valintarakenteiden avulla ja kuinka samanlaisia ohjelma-askeleita toistetaan toistorakenteiden avulla

Lisätiedot

Java kahdessa tunnissa. Jyry Suvilehto

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

Lisätiedot

815338A Ohjelmointikielten periaatteet 2014-2015. Harjoitus 7 Vastaukset

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

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 22. huhtikuuta 2016 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille! Kirjoittamasi luokat, funktiot ja aliohjelmat

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 7. huhtikuuta 2017 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille. Kirjoittamasi luokat, funktiot ja aliohjelmat

Lisätiedot

Ohjelmoinnin perusteet Pythonilla. Teemu Sirkiä, 2015

Ohjelmoinnin perusteet Pythonilla. Teemu Sirkiä, 2015 Ohjelmoinnin perusteet Pythonilla Teemu Sirkiä, 2015 Päivitetty 16.9.2015 Yleistä Materiaali sisältää lähinnä Aalto-yliopiston Ohjelmoinnin peruskurssi Y1:n harjoitustehtävissä tarvittavia keskeisiä asioita

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

12. Javan toistorakenteet 12.1

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

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

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

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

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

Palvelinpuolen ohjelmointi

Palvelinpuolen ohjelmointi Palvelinpuolen ohjelmointi Staattiset ja dynaamiset web-sivut Staattiset web-sivut ovat valmiissa muodossaan palvelimella (tai paikallisesti omalla koneella). Javascript mahdollistaa paikalliset dynaamiset

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

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

Palautetta viime luennosta

Palautetta viime luennosta Palautetta viime luennosta Kuka saa ja kenen täytyy suorittaa 5op kokonaisuus? Sivuaineopiskelijat suorittavat jos heidän sivuainekokonaisuuteen on merkitty niin Kokonaisuuksia on useita eri tiedekunnittain,

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

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

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

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

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

Laskentakaavojen luominen

Laskentakaavojen luominen Laskentakaavojen luominen 1. Luo laskentakaava Laskentakaava luodaan aina valintaryhmälle tai hakukohteelle, jolloin se on käytettävissä kyseisessä valintaryhmässä ja siihen sisältyvissä kohteissa. Valitse

Lisätiedot

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit IDL - proseduurit 25. huhtikuuta 2017 Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

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

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014 18. syyskuuta 2014 IDL - proseduurit Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

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

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

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti C! Perusteet 19.1.2017 Palautteesta (1. kierros toistaiseksi) Toistaiseksi helppoa Miksi vain puolet pisteistä? Vaikeinta oli ohjelmointiympäristön asennus ja käyttö Vaikeaa eroavuudet Pythonin ja C:n

Lisätiedot

Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b

Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b Pythonin Kertaus Cse-a1130 Tietotekniikka Sovelluksissa Versio 0.01b Listat 1/2 esimerkkejä listan peruskäytöstä. > lista=['kala','kukko','kissa','koira'] ['kala','kukko','kissa','koira'] >lista.append('kana')

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

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

Lisää laskentoa. TIEA341 Funktio ohjelmointi 1 Syksy 2005

Lisää laskentoa. TIEA341 Funktio ohjelmointi 1 Syksy 2005 Lisää laskentoa TIEA341 Funktio ohjelmointi 1 Syksy 2005 Kertausta: Laajennettu aritmetiikka Lasketaan rationaaliluvuilla vakiot yhteen, vähennys, kerto ja jakolasku Laajennetaan sitä määrittelyillä: vakio

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

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti C! Perusteet 19.1.2017 Palautteesta (1. kierros toistaiseksi) (Erittäin) helppoa Miksi vain puolet pisteistä? Vaikeinta oli ohjelmointiympäristön asennus ja käyttö Ei selvää että main funktion pitikin

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

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

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 4 Supremum ja inmum Tarkastellaan aluksi avointa väliä, Tämä on joukko, johon kuuluvat kaikki reaaliluvut miinus yhdestä yhteen Kuitenkaan päätepisteet eli luvut ja

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

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

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

Lisätiedot

05/04/2004. Digitaalisen median tekniikat, k2004 HY/TKTL, javascript_1. Harri Laine 1. JavaScript

05/04/2004. Digitaalisen median tekniikat, k2004 HY/TKTL, javascript_1. Harri Laine 1. JavaScript Digitaalisen median tekniikat ent. LiveScript (Netscape), muunnelma JScript (Microsoft) yhteensopivat yksinkertaisissa asioissa, aiemmin yhteensopimattomat hiemankin edistyneemmissä nyk. ECMAScript (standardi)

Lisätiedot

Digitaalisen median tekniikat JavaScript

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

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

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

Algoritmit 2. Luento 8 To Timo Männikkö

Algoritmit 2. Luento 8 To Timo Männikkö Algoritmit 2 Luento 8 To 4.4.2019 Timo Männikkö Luento 8 Algoritmien analysointi Algoritmien suunnittelu Rekursio Osittaminen Rekursioyhtälöt Rekursioyhtälön ratkaiseminen Master-lause Algoritmit 2 Kevät

Lisätiedot

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin peruskurssien laaja oppimäärä Ohjelmoinnin peruskurssien laaja oppimäärä Luento 2: SICP kohdat 22.2.3 Riku Saikkonen 2. 11. 2010 Sisältö 1 Linkitetyt listat 2 Listaoperaatioita 3 Listarakenteet 4 Gambit-C:n Scheme-debuggeri Linkitetyt

Lisätiedot

SELECT-lauseen perusmuoto

SELECT-lauseen perusmuoto SQL: Tiedonhaku SELECT-lauseen perusmuoto SELECT FROM WHERE ; määrittää ne sarakkeet, joiden halutaan näkyvän kyselyn vastauksessa sisältää

Lisätiedot

Javascript 2: Ohjelmointikielen ominaisuudet. Jaana Holvikivi Metropolia

Javascript 2: Ohjelmointikielen ominaisuudet. Jaana Holvikivi Metropolia Javascript 2: Ohjelmointikielen ominaisuudet Jaana Holvikivi Metropolia HTML - sivun rakenne ja osiot HTML HEAD STYLE SCRIPT STYLEsheet Javascript file BODY Javascript

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

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 24.1.2011 T-106.1208 Ohjelmoinnin perusteet Y 24.1.2011 1 / 36 Luentopalaute kännykällä alkaa tänään! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti Vast

Lisätiedot

Opiskelijan pikaopas STACK-tehtäviin. Lassi Korhonen, Oulun yliopisto

Opiskelijan pikaopas STACK-tehtäviin. Lassi Korhonen, Oulun yliopisto Opiskelijan pikaopas STACK-tehtäviin Lassi Korhonen, Oulun yliopisto 21.3.2016 SISÄLLYSLUETTELO Oppaan käyttäminen... 2 Vastauksen syöttämisen perusteet... 2 Operaatiot... 2 Luvut ja vakiot... 3 Funktiot...

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

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

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

Lohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 16.3 16. Lohkot 16.1 Sisällys Tutustutaan lohkoihin. Muuttujien ja vakioiden näkyvyys sekä elinikä erityisesti operaation lohkossa. Nimikonfliktit. Muuttujat operaation alussa vai myöhemmin? 16.2 Lohkot Kaarisulut

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

Tentti erilaiset kysymystyypit

Tentti erilaiset kysymystyypit Tentti erilaiset kysymystyypit Kysymystyyppien kanssa kannatta huomioida, että ne ovat yhteydessä tentin asetuksiin ja erityisesti Kysymysten toimintatapa-kohtaan, jossa määritellään arvioidaanko kysymykset

Lisätiedot

Algoritmit 1. Luento 3 Ti Timo Männikkö

Algoritmit 1. Luento 3 Ti Timo Männikkö Algoritmit 1 Luento 3 Ti 17.1.2017 Timo Männikkö Luento 3 Algoritmin analysointi Rekursio Lomituslajittelu Aikavaativuus Tietorakenteet Pino Algoritmit 1 Kevät 2017 Luento 3 Ti 17.1.2017 2/27 Algoritmien

Lisätiedot

Ohjelmoinnin peruskurssi Y1

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

Lisätiedot

OPPITUNTI 5 Ohjelman kulku

OPPITUNTI 5 Ohjelman kulku 5. Ohjelman kulku 67 OPPITUNTI 5 Ohjelman kulku Viime tunnilla luomamme skriptit olivat suoraviivaisia. Ohjelmalauseet suoritettiin aina samassa järjestyksessä, joten ohjelmissamme ei ollut lainkaan joustavuutta.

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

Tietueet. Tietueiden määrittely

Tietueet. Tietueiden määrittely Tietueet Tietueiden määrittely Tietue on tietorakenne, joka kokoaa yhteen eri tyyppistä tietoa yhdeksi asiakokonaisuudeksi. Tähän kokonaisuuteen voidaan viitata yhteisellä nimellä. Auttaa ohjelmoijaa järjestelemään

Lisätiedot

58131 Tietorakenteet ja algoritmit (kevät 2013) Kurssikoe 1, , vastauksia

58131 Tietorakenteet ja algoritmit (kevät 2013) Kurssikoe 1, , vastauksia 58131 Tietorakenteet ja algoritmit (kevät 2013) Kurssikoe 1, 25.2.2013, vastauksia 1. (a) O-merkintä Ω-merkintä: Kyseessä on (aika- ja tila-) vaativuuksien kertalukumerkinnästä. O-merkintää käytetään ylärajan

Lisätiedot

Muistutus aikatauluista

Muistutus aikatauluista Muistutus aikatauluista (Nämä eivät välttämättä koske avoimen yo:n opiskelijoita Erkki Kailan rinnakkaisella kurssilla) Luento 1: kotitehtävät sulkeutuvat 20.9 12:00, ennen tutoriaalia Tutoriaali 1 sulkeutuu

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

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

Datatähti 2019 alku. task type time limit memory limit. A Kolikot standard 1.00 s 512 MB. B Leimasin standard 1.00 s 512 MB

Datatähti 2019 alku. task type time limit memory limit. A Kolikot standard 1.00 s 512 MB. B Leimasin standard 1.00 s 512 MB Datatähti 2019 alku task type time limit memory limit A Kolikot standard 1.00 s 512 MB B Leimasin standard 1.00 s 512 MB C Taulukko standard 1.00 s 512 MB D Ruudukko standard 1.00 s 512 MB E Sanalista

Lisätiedot

Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään

Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään Ohjelmointi Ohjelmoinnissa koneelle annetaan tarkkoja käskyjä siitä, mitä koneen tulisi tehdä. Ohjelmointikieliä on olemassa useita satoja. Ohjelmoinnissa on oleellista asioiden hyvä suunnittelu etukäteen.

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

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python 31. tammikuuta 2009 Ohjelmointi Perusteet Pythonin alkeet Esittely Esimerkkejä Muuttujat Peruskäsitteitä Käsittely

Lisätiedot

SQL:N PERUSTEET MARKKU SUNI

SQL:N PERUSTEET MARKKU SUNI SQL:N PERUSTEET MARKKU SUNI Relaatiomallisen tietokannan käsittely Tietojen saanti, talletus ja päivitys tapahtuu SQL-kielellä Yhtä operaatiota sanotaan kyselyksi (query) Kyselyjä voidaan laittaa peräkkäin

Lisätiedot

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet )

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet ) T-79144 Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet 11-22) 26 29102004 1 Ilmaise seuraavat lauseet predikaattilogiikalla: a) Jokin porteista on viallinen

Lisätiedot

Automaatit. Muodolliset kielet

Automaatit. Muodolliset kielet Automaatit Automaatit ovat teoreettisia koneita, jotka käsittelevät muodollisia sanoja. Automaatti lukee muodollisen sanan kirjain kerrallaan, vasemmalta oikealle, ja joko hyväksyy tai hylkää sanan. Täten

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 3 Supremum ja infimum Tarkastellaan aluksi avointa väliä, ) = { : < < }. Tämä on joukko, johon kuuluvat kaikki reaaliluvut miinus yhdestä yhteen. Kuitenkaan päätepisteet

Lisätiedot

Perinteiset tietokoneohjelmat alkavat pääohjelmasta, c:ssä main(), jossa edetään rivi riviltä ja käsky käskyltä.

Perinteiset tietokoneohjelmat alkavat pääohjelmasta, c:ssä main(), jossa edetään rivi riviltä ja käsky käskyltä. TIETOKONEOHJELMIEN RAKENNE Perinteiset tietokoneohjelmat alkavat pääohjelmasta, c:ssä main(), jossa edetään rivi riviltä ja käsky käskyltä. Teollisuusautomaation ohjelmiin on lainattu runsaasti perinteisen

Lisätiedot

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin peruskurssien laaja oppimäärä Ohjelmoinnin peruskurssien laaja oppimäärä Luento 4: Symbolit, derivojaesimerkki, kierroksen 1 ratkaisut (mm. SICP 2.32.3.2) Riku Saikkonen 1. 11. 2011 Sisältö 1 Symbolit ja sulkulausekkeet 2 Lisää Schemestä:

Lisätiedot