Kierros Kuva, Deadline Ti klo 23:59

Koko: px
Aloita esitys sivulta:

Download "Kierros Kuva, Deadline Ti klo 23:59"

Transkriptio

1 Kierros Kuva, Deadline Ti klo 23:59 Tässä tehtävässä tutustutaan kuvien muokkaamiseen. Tulet toteuttamaan kuvankäsittelyalgoritmeja ohjelmaan jolla voit muokata kuvia. Ohjelmointi 1-kurssilta apua on tarjolla erityisesti luvuista: Luku 5.5: Silmukoita, vektoreita ja vaalit Luku 5.6: Taulukoita ja sisäkkäisyyttä Luku 7.3: Funktiot parametreina VALMISTELU Lataa valmis projektipaketti MyCourses-sivustolta ja tutustu sen dokumentaatioon. Toteutettavat luokat ja metodit löytyvät pääosin paketista s1.image.filters. COLOR-LUOKKA JA SEN KUMPPANIOLIO Color-apuluokan tarkoitus on helpottaa värien luomista ja muokkausta kuvaa käsiteltäessä. Käytännössä kuvat, joita käsittelemme ovat vain suuria taulukoita, joissa jokainen kuvapikseli on yksi Color-olio. Luokassa on konstruktori joka ottaa värin kolmena värikomponenttina sekä alpha-kanavana, joka kuvaa läpinäkyvyyttä. Kukin komponentti on arvoltaan 0 ja 255 välillä, missä 255 on kirkkain mahdollinen arvo. Emme vielä tällä kierroksella tarvitse läpinäkyvyyttä, mutta palaamme siihen videokierroksella. Tällä kierroksella voit asettaa tämän parametrin arvoksi aina 255, jolloin kuva ei näy lainkaan läpi. def this(red: Int, green: Int, blue: Int, alpha: Int) TEHTÄVÄ 1 COLOR-LUOKAN CLAMP-METODI Colorin kumppaniolion metodi clamp rajoittaa sille parametrina välitetyn arvon välille [0, 255] ja palauttaa tuloksen. Jos metodille välitetään esimerkiksi arvo 78, palauttaa metodi 78. Mikäli metodille välitetty arvo on alle 0, palautetaan 0 ja mikäli metodille välitetty arvo on enemmän kuin 255, palautetaan 255. Tätä metodia ei käytetä Color-olioita luotaessa automaattisesti. Color-luokasta löytyy kuitenkin samalla tavoin nimetty metodi clamp, joka kutsuttaessa palauttaa uuden Color-olion, jonka värit on rajattu välille Toteuta tämä metodi itse. Koska Color:in clamp-metodi ei rajoita arvoa kuin pyydettäessä, voit käyttää Color-luokan *, - ja + metodeja värien yhdistelyyn omissa suotimissasi ja vasta lopuksi rajoittaa värikomponentit tietylle alueelle. Käytännössä tämä mahdollistaa joissain algoritmeissa sen, että voit käsitellä kaikkia värikomponentteja kerralla. VÄRIEN KÄSITTELYSTÄ (KIINNOSTUNEILLE) Jos tutkit Color luokkaa tarkemmin, voit löytää arvon argb sekä sen vastinparin, kumppaniolion applymetodista. Nämä metodit käsittelevät kokonaislukuja bittitasolla. Voit tutustua erilaisiin bittioperaatioihin esimerkiksi täältä Käytännössä niissä muutetaan väri muotoon, jossa yksittäinen väriarvo voidaan tallentaa yhtenä 32-bittisenä arvona. Argb-muuttujassa luodaan värikomponenteista 32-bittinen esitys käyttäen muuttujien a, r, g ja b kahdeksaa (8) ensimmäistä bittiä. Saat scalassa (ja monessa muussakin kielessä) siirrettyä bittejä sopivaan sijaintiin << - operaattorilla ja yhdistettyjä näitä lukuja -operaattorilla.

2 FILTER-LUOKAN YKSINKERTAISET SUOTIMET Tässä vaiheessa tulet: Toteuttamaan suotimen, jolla voidaan muokata kuva harmaasävyiseksi. Toteuttamaan suotimen, jolla kuvan värit voidaan kääntää vastaväreiksi. Toteuttamaan suotimen, jolla voidaan muokata kuvan valoisuutta. Toteuttamaan kolme suodinta, joilla kullakin voidaan säätää yhtä kuvan värikomponenttia HARMAASÄVY JA VASTAVÄRIT Tutustu aluksi s1.image.image -luokkaan ja sen dokumentaatioon. Image-luokan pikselit on tätä tehtävää varten laitettu tarjolle kaksiulotteiseen Color-alkioita sisältävään taulukkoon, johon on viittaus Image-luokan ilmentymämuuttujassa data. Tietokoneen muistissa kuvapisteet ovat tyypillisesti yhdessä yhtenäisessä muistialueessa tavallaan yksiulotteisessa taulukossa. Tässä tehtävässä on tarkoitus kasata omia suotimia, jotka ottavat parametrinaan kuvan ja tuottavat tuloksena uuden, muunnellun version. Voit itse luoda uusia Image-olioita luomalla kaksiulotteisen Color-taulukon ja antamalla taulukon Image:lle parametriksi. Luokkatiedostossa SimpleFilters on annettu esimerkkinä yksi suodin, Uglify, joka vaihtaa värikomponenttien paikkaa saaden aikaan psykedeelisen kuvan. Tutustu tämän yksittäisolion koodiin ennen muiden suotimien aloittamista. Voit myös kokeilla sitä käyttöliittymässä. object Uglify extends BasicFilter { val name = "Uglify" def filter(image: Image) = { val original = image.data val filtered = Array.ofDim[Color](image.height, image.width) for { y <- 0 until image.height x <- 0 until image.width } { val pixel = original(y)(x) val changed = Color(pixel.g, pixel.b, pixel.r) filtered(y)(x) = changed } } } new Image(filtered) Muuttujassa name on suotimen nimi, joka myös tulee näkyviin ohjelman käyttöliittymässä olevaan nappiin. Metodi filter taas ottaa parametrinaan kuvan ja tuottaa sen perustella uuden kuvan. Filter-metodissa noudetaan ensin alkuperäisen kuvan pikselitaulukko sekä luodaan uusi taulukko tuotettavan kuvan pikseleille. Tämän jälkeen käymme for-silmukalla läpi kaikki kuvan pikselit ja luodaan vasta luomaamme taulukkoon uudet värioliot jokaiseen taulukon kohtaan. Lopuksi luodaan uusi kuva. Esimerkissä on käytetty for-silmukan muotoa, jossa voidaan kirjoittaa useampi sisäkkäinen silmukka samojen aaltosulkujen sisään. Se toimii taysin samalla tavalla kuin kaksi sisäkkäistä for-silmukkaa mutta on helpompi lukea (etenkin jos sisäkkäisiä silmukoita on paljon). Huomaa, että uuden taulukon olisi voinut tuottaa myös map-funktioilla.

3 TEHTÄVÄ 2 - INVERT Ensimmäinen oma suotimesi on samasta tiedostosta löytyvä Invert. Kuten Uglify:ssä, tässäkin riittää totuettaa metodi filter. def filter(image: Image) : Image joka kääntää kuvan värin negatiiviseksi. Jokaiselle kuvapisteelle lasketaan uusi arvo, jossa värikomponenttien (RGB) uusi arvo määräytyy erotuslaskulla "värikomponentin arvo" ja läpinäkyvyyskomponentti Alpha pysyy ennallaan. TEHTÄVÄ 3 - GRAYSCALE Seuraava suodin on yksittäisoliossa GrayScale. Sen filter-metodi muuttaa kuvan harmaasävyiseksi. Jokaiselle kuvapisteelle lasketaan uusi arvo, jossa värikomponenttien (RGB) uudeksi arvoksi tulee kaikkien värikomponenttien (RGB) keskiarvo ja läpinäkyvyyskomponentti Alpha pysyy ennallaan. Bonus: Ihmissilmä havainnoi eri värejä eri tavoin, minkä vuoksi voit päästä parempaan lopputulokseen painottamalla komponentteja eri arvoilla. Voit halutessasi tutustua artikkeliin Wikipediassa ja valita osaväreille paremmat kertoimet: Vinkki: Voit haluttaessa lisätä tämän ominaisuuden Color-luokkaan TEHTÄVÄ 4: LIGHTNESS Tässä tehtävässä säädetään kuvan kirkkautta. Nyt suodin löytyy tiedostosta parametricfilters.java. Tässä tiedostossa olevat suotimet saavat yhden säädettävän parametrin joka löytyy suotimen ilmentymämuuttujasta value. Kukin suodin voi itse valita välin, jolla muuttujan value arvo voi vaihdella, antamalla yliluokan AdjustableFilter parametreille minimum ja maximum haluamansa arvot. Arvo base asettaa suotimen alkuperäisen arvon. Lightness-suotimessa value säätää kuvan kirkkautta. Kun kuvapisteitä kerrotaan ykköstä (1) pienemmillä arvoilla, kuva tummenee ja vastaavasti yhtä (1) suuremmat arvot vaalentavat kuvaa. Tulkitse valuen arvoa niin, että sen sisältämä arvo on prosentuaalinen muutos kuvan kirkkauteen. Arvo 100 kaksinkertaistaa kuvan kirkkauden, kun taas -100 laskee kirkkauden nollaan. TEHTÄVÄ 5: VÄRIKOMPONENTTIEN MUOKKAUS Seuraavaksi toteutetaan kolme suodinta, joiden toiminta on periaatteiltaan keskenään hyvin samankaltainen. Luomme metodit, jotka muokkaavat kuvan väriä komponentti kerrallaan. Toteutettavat suotimet ovat Redness, Greenness ja Blueness. Kukin suodin muuttaa nimensä mukaisesti vain yhtä värikomponenttia muuttujan value mukaan kun muut komponentit pysyvät samoina. Value:n arvo vaihtelee välillä [- 100, 100]. Tämä arvo voidaan suoraan lisätä komponentin arvoon.

4 FILTER-LUOKAN MONIMUTKAISEMMAT SUOTIMET Seuraavassa vaiheessa tulet: Toteuttamaan metodin, jonka avulla voidaan sumentaa kuvaa. Toteuttamaan metodin, jonka avulla voidaan tarkentaa kuvaa. Toteuttamaan näiden metodien hyödyntämät apumetodit (ja suotimet). Seuraavaksi toteutettavat suotimet eroavat edellisen osatehtävän suotimista siinä, että pikselien uusi arvo ei muodostu pelkästään alkuperäisen arvon ja jonkin operaation pohjalta, vaan uuteen arvoon vaikuttaa pikselin naapurusto. Sekä blur että sharpen suotimet tuottavat kunkin pikselin arvon perustuen alkuperäisiin pikseleihin, mutta kertoimena käytetään yksittäisen arvon sijaan taulukkoa. Suodintaulukot ovat kaksiulotteisia taulukoita, joilla pituus ja leveys ovat yhtä suuret ja parittomat (esim. 3x3 tai 7x7). Taulukon alkiot ovat kokonaislukuja. Blur-suotimen sumentava toiminnallisuus saadaan keskiarvoistamalla pikselien arvoja. Jokaisen pikselin arvo muodostuu siis sen ympäristön keskiarvosta. Sharpen-suotimen tarkentava toiminnallisuus taas korostaa kunkin pikselin alkuperäistä väriä suhteessa naapurustoonsa. Kummallekin metodille parametrina välitetään kokonaisluku value, joka kertoo, kuinka suuri alue pikselin ympäriltä tulee ottaa huomioon. Parittomilla luvuilla suodintaulukossa jokainen alkio on nollasta poikkeava (neliskulmainen suodin) ja parillisille luvuille suodintaulukossa taulukon kulmat jätetään nollaksi, jolloin saadaan kulmallaan seisovan neliön muotoisia suotimia. Alla esimerkit. Arvolla 1 suodin ei tee mitään. Amount = amount = Amount = amount = 5 APUMETODI CREATEFILTER Äsken esitettyjen suotimien aikaansaamiseksi toteuta yksittäisolioon s1.image.filters.tools metodi: def createfilter(size: Int, value: int) :Array[Array[Int]] Ensimmäinen parametri size määrittää suotimen muodon ja koon, ja toinen parametri value on nollasta eroavien alkioiden sisältämä arvo (käytännössä tämä on lähes aina 1). Metodi palauttaa ylläolevan kaltaisen kaksiulotteisen taulukon, jota käytetään suotimena.

5 APUMETODI MULTIPLYWITHFILTER Toteuta samaan olioon metodi: def multiplywithfilter( x: Int, y: Int, image: Image, filter: Array[Array[Int]], divisor: Int): Color joka kertoo kuvan image yksittäisen pikselin (x, y) parametrina välitetyllä suotimella (filter) ja lopuksi jakaa tuloksen parametrin divisor arvolla, jotta kuva ei muutu kirkkaammaksi. Käytännössä tämä jakaja on suotimessa olevien lukujen summa. Metodi palauttaa koordinaateissa (x, y) olevan pikselin uuden arvon. Parametrina annettu pikseli kerrotaan suotimen keskikohdalla. Käy läpi parametrina annetun pikselin (x, y) ympäristö kertoen arvot suotimessa olevilla kertoimilla ja laske laske uusi arvo näiden summasta. Kun suodin on kooltaan 3*3, osuu pikseli (x, y) suotimen kohtaan (1, 1), tällöin pikselin (x, y) uusi arvo muodostuu kun kerrotaan pikseli kohdassa (x-1, y-1) suotimen kohdalla (0,0), pikseli kohdassa (x-1, y) suotimen kohdalla (0, 1), pikseli kohdassa (x-1, y+1) suotimen kohdalla (0, 2) jne. ja lasketaan näiden arvojen summa. Voit käsitellä kunkin värikomponentin erikseen jättäen läpinäkyvyyskomponentin Alpha koskemattomaksi. Huomaa että jotkin luokan Color-metodit voivat tehdä työstä paljon helpompaa koska kaikki komponentit voi myös hoitaa kerralla. Entäs reunat? Kuvan reunoilla suodin ei enää mahdu kokonaisuudessaan kuvan alueelle (esimerkiksi pikseli (0,0) tulisi kertoa vain yhdellä kulmalla). Onneksi tähänkin on ratkaisu APUMETODI PAD No, mitä sitten teemme näille reunapikseleille? Käytännössä mahdollisia tapoja käsitellä ne on useita: Voidaan asettaa ne nolliksi Voidaan peilata reunapikselit Voidaan monistaa reunapikseliä Viereisessä kuvassa on esimerkki viimeisestä yllämainituista vaihtoehdoista. Esimerkissämme keskimmäinen 3x3 neliö on alkuperäinen kuva ja sen ympärille on monistettu jokaista pikseliä reunasta ulospäin niin että jokaisella pisteellä on arvo. Pikselin A-arvo leviää täyttämään lopulta koko kulman. A A A B C C C A A A B C C C A A A B C C C D D D E F F f G G G H J J j G G G H J J J G G G H J J J Kun tämä operaatio suoritetaan suodatettavalle kuvalle ennen suodatusta, ei kuvan koko muutu ja reunapikselit voidaan käsitellä samalla tavoin kuin muutkin. If-lauseita ei tarvita tässä vaiheessa enää tarvita. Toteuta siis seuraava apumetodi: def pad(data: Array[Array[Color]], border: Int): Array[Array[Color]] Ensimmäinen parametri on taulukko jonka ympärille lisätään väripikseleitä, toinen parametri kertoo kuinka monta pikseliä lisätään. Riittää että metodi tukee arvoja 1-3, joskin se ei muutu yhtään monimutkaisemmaksi tämänkään jälkeen.

6 SUOTIMET BLUR JA SHARPEN Äsken toteutetut apumetodit yksinkertaistavat merkittävästi blur- ja sharpen suodinten toteutusta. Kummassakin luodaan suodin getfilter metodin avulla, laajennetaan pad-metodilla kuvaa tarvittava määrä ja konvoloidaan laajennetun kuvan pikselit multiplywithfilter metodin avulla. Lopuksi vain luodaan taulukosta uusi kuva. TEHTÄVÄ 6: BLUR Sumentaminen on käytännössä keskiarvottamista, eli jokaisella naapuruston pikselillä on samanlainen painoarvo. Jotta kuvan valoisuus ei muuttuisi, on pidettävä huolta siitä, että suodintaulukon alkioiden summa ei ylitä yhtä. TEHTÄVÄ 7: SHARPEN Samoin kuin sumentavissa suotimissa myös tarkentavien suodintaulukoiden alkioiden summan tulisi olla yksi. Koska tarkentava suodin korostaa pikselin alkuperäistä arvoa, voidaan laatia getfilter metodilla tarvittava suodin, käyttäen parametrin seed arvona lukua -1. Tämän jälkeen tulee suotimen keskimmäinen arvo korvata sellaisella positiivisella kokonaisluvulla, että suotimen alkioiden summaksi tulee 1. Alla esimerkki muutamasta suotimesta. amount = amount =

7 TEHTÄVÄ 8 SEAM CARVING Tässä viimeisessä tehtävässä toteutetaan luennolla nähty seam carving algoritmi. Pohja suotimelle löytyy luokasta RemoveVerticalSeam. Algoritmissa on kolme vaihetta: 1. Pikselien energioiden laskeminen 2. Saumojen energioiden laskeminen 3. Pienimmän energian sauman valinta ja poistaminen Jos et ollut luennolla, voit tutustua algoritmiin katsomalla tämän videon: ja lukemalla tämän Wikipedia-sivun: Kysymys on algoritmista, jolla kuvasta voidaan poistaa mahdollisimman huomaamattomasti pisteitä, jolloin kuvaa voidaan kaventaa. Algoritmia voidaan käyttää myös kuvien venyttämiseen tai valittujen kohteiden poistamiseen, mutta tässä tehtävässä toteutamme vain perusversion kaventamisesta. ENERGIAT Ensimmäisessä vaiheessa lasketaan pikselien energiat. Voit käyttää apuna monia aiemmin tehtyjä metodeja. Pikselin energian voi periaatteessa laskea monella eri tavalla, mutta yksi parhaista on käyttää kuvan gradienttia pisteessä. Yksinkertaisimmillaan ensimmäinen vaihe muistuttaa sharpen suotimen käyttöä. Suodattamalla kuva alla esitetyillä kahdella eri suotimella saadaan laskettua kuvan gradientti x ja y suunnissa. Meitä kiinnostaa vain gradientin suuruus, joten allaolevien suodinten tuottamat kuvat voi ensin muuntaa harmaasävykuviksi ja liittää sitten niiden arvot yhteen pythagoraan lauseen mukaisesti. grad = funktiona math.sqrt ) x " + y " (scalassa neliöjuurifunktio löytyy Kuva: Yksinkertaiset vaaka ja pystygradientin laskevat suotimet. Hienomman lopputuloksen saa Sobel-operaattoreilla. PISTEIDEN ENERGIOISTA SAUMOJEN ENERGIOIHIN Lue algoritmia kuvaava artikkeli wikipediasta. Se selittää asian hyvin esimerkkien kautta. Käytännössä seuraavassa vaiheessa lasketaan dynaamisella ohjelmoinnilla pienimmän energian omaava sauma yhtenäinen pisteiden jono joka kulkee kuvan läpi ylhäältä alas (tai mahdollisesti vasemmalta oikealle). Tässä riittää jos teet ylhäältä alas laskevan version algoritmista. Algoritmi alkaa laskemalla kuvan ylimmän rivin yhden pikselin mittaisten saumojen energiat. Nämä arvot ovat pisteiden energiat, joten itse asiassa meidän ei tarvitse tehdä mitään. Seuraavaksi katsotaan riviä 2. Tällä rivillä oleviin pisteisiin päättyvät saumat joilla on pienin energia ovat kulkevat edellisellä rivillä laskemiemme saumojen kautta. Valitaan siis joka pikselin kohdalla kolmesta sen

8 yläpuolella olevasta summasta pienin ja summataan siihen pisteen oma energia. Tästä tulee tähän pisteeseen loppuvan sauman energia. Toistamalla prosessia rivi kerrallaan saadaan alimmalle riville pienimmät k.o. pisteisiin päättyvät saumojen energiat. PIENIMMÄN SAUMAN VALINTA JA POISTAMINEN KUVASTA Nyt tarvitsee vain valita pienin luku alimmalta riviltä. Siihen päättyvällä saumalla on pienin energia. Poistetaan vastaava pikseli kuvasta. Valitaan seuraavaksi tämän kohdan yläpuolella olevista pikseleistä (saumoista) se, jolla on pienin energia ja poistetaan se kuvasta. Jatketaan tätä kunnes koko kuva on käyty läpi. VIIMEISET VINKIT Jos haluat tehdä myös vaakasaumoja poistavan version, kierrä tai transponoi kuvan x-ja y-koordinaatit keskenään, poista haluamasi saumat ja palauta lopputulos alkuperäiseen asentoon. Tekemällä pad-metodia muistuttavan apumetodin joka lisää reunoille energioiltaan ylisuuria pisteitä (esim 10 * erotuksen maksimiarvo), ei saumoja laskiessa tai niitä poistaessa tarvitse käsitellä reunoja poikkeavalla tavalla PALAUTUS Testaa vielä lopuksi kaikkien tekemiesi luokkien toiminta ja varmista, että kaikki toimii toivomallasi tavalla. Viimeistään tässä vaiheessa kommentoi koodisi ne pätkät, jotka saattavat olla vaikeaselkoisia. Pakkaa projektisi totuttuun tapaan.zip-paketiksi ja anna sille nimeksi opiskelijanumerosi_image.zip. Kuvatiedostoja tai bin-kansiota ei tule palauttaa joten ruksi ne pois kun luot paketin. Lisää mukaan halutessasi readme.txt tiedosto jossa voit antaa palautetta tehtävästä ja pohtia mikä oli helppoa tai erityisen haastava. Palauta projekti mycoursesissa olevien ohjeiden mukaan. VIELÄ KÄYTTÖLIITTYMÄSTÄ Ohjelman käyttöliittymässä näkyy vasemmalla alkuperäinen kuva, oikealla muokattu. Klikkaamalla suodinten nappeja tai raahaamalla liukusäätimiä voit nähdä niiden vaikutuksen kuvaan. Jos haluat kokeilla useampaa suodinta samaan kuvaan, paina nappia Apply-to-Original, jolloin suodatettu kuva kopioidaan muokattavaksi.

Tehtävä 3 Kuva, Deadline klo 18:00

Tehtävä 3 Kuva, Deadline klo 18:00 Tehtävä 3 Kuva, Deadline 25.11. klo 18:00 Tässä tehtävässä tutustutaan kuvien muokkaamiseen, ulkoisten scala-kirjastojen käyttöön sekä verkkopalveluiden rajapintoihin. Tulet toteuttamaan ohjelman jolla

Lisätiedot

Toinen harjoitustyö. ASCII-grafiikkaa

Toinen harjoitustyö. ASCII-grafiikkaa Toinen harjoitustyö ASCII-grafiikkaa Yleistä Tehtävä: tee Javalla ASCII-merkkeinä esitettyä grafiikkaa käsittelevä ASCIIArt-ohjelma omia operaatioita ja taulukoita käyttäen. Työ tehdään pääosin itse. Ideoita

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

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

Sokkelon sisältö säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei.

Sokkelon sisältö säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei. Harjoitustyö 1 Harjoitustyö Tehtävä: ohjelmoi olioperustainen sokkeloseikkailu peli Javakielellä. Sokkelon sisältö säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti yhden hengen

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

Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla

Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla ALKUHARJOITUS Kynän ja paperin avulla peilaaminen koordinaatistossa a) Peilaa pisteen (0,0) suhteen koordinaatistossa sijaitseva - neliö, jonka

Lisätiedot

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

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

Lisätiedot

Toinen harjoitustyö. ASCII-grafiikkaa 2017

Toinen harjoitustyö. ASCII-grafiikkaa 2017 Toinen harjoitustyö ASCII-grafiikkaa 2017 Yleistä Tehtävä: tee Javalla ASCII-merkkeinä esitettyä grafiikkaa käsittelevä ASCIIArt17-ohjelma omia operaatioita ja taulukoita käyttäen. Työ tehdään pääosin

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

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014

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

Lisätiedot

KUVANKÄSITTELY THE GIMP FOR WINDOWS OHJELMASSA

KUVANKÄSITTELY THE GIMP FOR WINDOWS OHJELMASSA KUVANKÄSITTELY THE GIMP FOR WINDOWS OHJELMASSA Ohjeistuksessa käydään läpi kuvan koon ja kuvan kankaan koon muuntaminen esimerkin avulla. Ohjeistus on laadittu auttamaan kuvien muokkaamista kuvakommunikaatiota

Lisätiedot

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

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

Lisätiedot

Datatähti 2019 loppu

Datatähti 2019 loppu Datatähti 2019 loppu task type time limit memory limit A Summa standard 1.00 s 512 MB B Bittijono standard 1.00 s 512 MB C Auringonlasku standard 1.00 s 512 MB D Binääripuu standard 1.00 s 512 MB E Funktio

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

15. Ohjelmoinnin tekniikkaa 15.1

15. Ohjelmoinnin tekniikkaa 15.1 15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Lueteltu tyyppi enum. Override-annotaatio. Geneerinen ohjelmointi. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien

Lisätiedot

S-114.3812 Laskennallinen Neurotiede

S-114.3812 Laskennallinen Neurotiede S-114.3812 Laskennallinen Neurotiede Laskuharjoitus 2 4.12.2006 Heikki Hyyti 60451P Tehtävä 1 Tehtävässä 1 piti tehdä lineaarista suodatusta kuvalle. Lähtötietoina käytettiin kuvassa 1 näkyvää harmaasävyistä

Lisätiedot

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

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

Lisätiedot

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

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

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

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

Lisätiedot

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

Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei.

Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei. Harjoitustyö 1 Harjoitustyö Tehtävä: ohjelmoi lötköjen kansoittamaa alkulimaa simuloiva olioperustainen ohjelma Java-kielellä. Lötköt säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti

Lisätiedot

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9.

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9. Python linkit: Python tutoriaali: http://docs.python.org/2/tutorial/ Numpy&Scipy ohjeet: http://docs.scipy.org/doc/ Matlabin alkeet (Pääasiassa Deni Seitzin tekstiä) Matriisit ovat matlabin perustietotyyppejä.

Lisätiedot

Nuorten hyvinvointi tilastotietokannan käyttöohjeet Tieke 18.5 2015

Nuorten hyvinvointi tilastotietokannan käyttöohjeet Tieke 18.5 2015 Nuorten hyvinvointi tilastotietokannan käyttöohjeet Tieke 18.5 2015 Taulukon valinta Valitse vasemmalta kansioita, kunnes saat taulukkoluettelon näkyviin. Jos etsit tietoa jostain tietystä aiheesta, voit

Lisätiedot

OKLV120 Demo 7. Marika Peltonen

OKLV120 Demo 7. Marika Peltonen OKLV120 Demo 7 Marika Peltonen 0504432380 marika.p.peltonen@jyu.fi Tekstin sanat allekkain Kirjoita teksti Wordiin tai kopioi teksti, laitetaan teksti joka sana eri riville Valitse Muokkaa > Etsi ja korvaa

Lisätiedot

HELSINGIN YLIOPISTO TIEDEKASVATUS. helsinki.fi/tiedekasvatus v 1.2

HELSINGIN YLIOPISTO TIEDEKASVATUS. helsinki.fi/tiedekasvatus v 1.2 Tässä harjoituksessa opit laatimaan luokitellun teemakartan maastossa aiemmin keräämästäsi aineistosta. Käytämme Esrin ArcGis-palvelun ilmaisia ominaisuuksia. Kartan tekoa voi harjoitella kokonaan ilman

Lisätiedot

Vektoreiden virittämä aliavaruus

Vektoreiden virittämä aliavaruus Vektoreiden virittämä aliavaruus Määritelmä Oletetaan, että v 1, v 2,... v k R n. Näiden vektoreiden virittämä aliavaruus span( v 1, v 2,... v k ) tarkoittaa kyseisten vektoreiden kaikkien lineaarikombinaatioiden

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

Mitä on konvoluutio? Tutustu kuvankäsittelyyn

Mitä on konvoluutio? Tutustu kuvankäsittelyyn Mitä on konvoluutio? Tutustu kuvankäsittelyyn Tieteenpäivät 2015, Työohje Sami Varjo Johdanto Digitaalinen signaalienkäsittely on tullut osaksi arkipäiväämme niin, ettemme yleensä edes huomaa sen olemassa

Lisätiedot

1 Funktiot, suurin (max), pienin (min) ja keskiarvo

1 Funktiot, suurin (max), pienin (min) ja keskiarvo 1 Funktiot, suurin (max), pienin (min) ja keskiarvo 1. Avaa uusi työkirja 2. Tallenna työkirja nimellä perusfunktiot. 3. Kirjoita seuraava taulukko 4. Muista taulukon kirjoitusjärjestys - Ensin kirjoitetaan

Lisätiedot

Hyvästä kuvasta hyvään kollaasiin. Siilinjärvi 17.5. ja 21.5.2010 Hannu Räisänen

Hyvästä kuvasta hyvään kollaasiin. Siilinjärvi 17.5. ja 21.5.2010 Hannu Räisänen Hyvästä kuvasta hyvään kollaasiin Siilinjärvi 17.5. ja 21.5.2010 Hannu Räisänen Copyright Hannu Räisänen 2010 1 Kuvankäsittely Copyright Hannu Räisänen 2010 2 Kuvankäsittelyn työskentelyjärjestys Kopioi

Lisätiedot

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

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

Lisätiedot

Mainoksen taittaminen Wordilla

Mainoksen taittaminen Wordilla Mainoksen taittaminen Wordilla Word soveltuu parhaiten standardimittaisten (A4 jne) word-tiedostojen (.docx) tai pdf-tiedostojen taittoon, mutta sillä pystyy tallentamaan pienellä kikkailulla myös kuvaformaattiin

Lisätiedot

Harjoitus 4 (viikko 47)

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

Lisätiedot

Chapel. TIE Ryhmä 91. Joonas Eloranta Lari Valtonen

Chapel. TIE Ryhmä 91. Joonas Eloranta Lari Valtonen Chapel TIE-20306 Ryhmä 91 Joonas Eloranta Lari Valtonen Johdanto Chapel on Amerikkalaisen Cray Inc. yrityksen kehittämä avoimen lähdekoodin ohjelmointikieli. Chapel on rinnakkainen ohjelmointikieli, joka

Lisätiedot

TL5503 DSK, laboraatiot (1.5 op) Kuvasignaalit. Jyrki Laitinen

TL5503 DSK, laboraatiot (1.5 op) Kuvasignaalit. Jyrki Laitinen TL553 DSK, laboraatiot (.5 op) Kuvasignaalit Jyrki Laitinen TL553 DSK, laboraatiot (.5 op), K25 Suorita oheisten ohjeiden mukaiset tehtävät Matlab- ja VCDemo-ohjelmistoja käyttäen. Kokoa erilliseen mittauspöytäkirjaan

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

15. Ohjelmoinnin tekniikkaa 15.1

15. Ohjelmoinnin tekniikkaa 15.1 15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Geneerinen ohjelmointi. Lueteltu tyyppi enum. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien silmukoimiseen:

Lisätiedot

KUVAMUOKKAUS HARJOITUS

KUVAMUOKKAUS HARJOITUS KUVAMUOKKAUS HARJOITUS VÄRI, PARANNUS, KUVAKOKO, KEHYKSET Kuvan väri- ja valoisuusarvot ovat sidoksissa kuvanottohetken valaistukseen. Harjoituksen kuva on kuvattu loistevaloissa ja värisävy ei ole kohdallaan.

Lisätiedot

Juha Haataja 4.10.2011

Juha Haataja 4.10.2011 METROPOLIA Taulukkolaskenta Perusteita Juha Haataja 4.10.2011 Lisätty SUMMA.JOS funktion käyttö (lopussa). Tavoite ja sisältö Tavoite Taulukkolaskennan peruskäytön hallinta Sisältö Työtila Omat kaavat,

Lisätiedot

3.3 Paraabeli toisen asteen polynomifunktion kuvaajana. Toisen asteen epäyhtälö

3.3 Paraabeli toisen asteen polynomifunktion kuvaajana. Toisen asteen epäyhtälö 3.3 Paraabeli toisen asteen polynomifunktion kuvaajana. Toisen asteen epäyhtälö Yhtälön (tai funktion) y = a + b + c, missä a 0, kuvaaja ei ole suora, mutta ei ole yhtälökään ensimmäistä astetta. Funktioiden

Lisätiedot

Yhtälöryhmä matriisimuodossa. MS-A0007 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

Yhtälöryhmä matriisimuodossa. MS-A0007 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5. 2. MS-A000 Matriisilaskenta 2. Nuutti Hyvönen, c Riikka Kangaslampi Matematiikan ja systeemianalyysin laitos Aalto-yliopisto 2..205 Tarkastellaan esimerkkinä lineaarista yhtälöparia { 2x x 2 = x x 2 =

Lisätiedot

Ohjelmoinnin peruskurssi Y1

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

Lisätiedot

811312A Tietorakenteet ja algoritmit , Harjoitus 2 ratkaisu

811312A Tietorakenteet ja algoritmit , Harjoitus 2 ratkaisu 811312A Tietorakenteet ja algoritmit 2017-2018, Harjoitus 2 ratkaisu Harjoituksen aiheena on algoritmien oikeellisuus. Tehtävä 2.1 Kahvipurkkiongelma. Kahvipurkissa P on valkoisia ja mustia kahvipapuja,

Lisätiedot

Public Account-tili on pysyvä, joten kannattaa käyttää mieluummin sitä kuin kaupallisen tilin kokeiluversiota.

Public Account-tili on pysyvä, joten kannattaa käyttää mieluummin sitä kuin kaupallisen tilin kokeiluversiota. 1.1 Tässä harjoituksessa opit laatimaan luokitellun teemakartan maastossa aiemmin keräämistäsi pisteistä. Käytämme Esrin ArcGis-palvelun ilmaisia ominaisuuksia. Kartan tekoa voi harjoitella kokonaan ilman

Lisätiedot

GeoGebra-harjoituksia malu-opettajille

GeoGebra-harjoituksia malu-opettajille GeoGebra-harjoituksia malu-opettajille 1. Ohjelman kielen vaihtaminen Mikäli ohjelma ei syystä tai toisesta avaudu toivomallasi kielellä, voit vaihtaa ohjelman käyttöliittymän kielen seuraavasti: 2. Fonttikoon

Lisätiedot

Yhtälöryhmä matriisimuodossa. MS-A0004/A0006 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

Yhtälöryhmä matriisimuodossa. MS-A0004/A0006 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5. 2. MS-A4/A6 Matriisilaskenta 2. Nuutti Hyvönen, c Riikka Kangaslampi Matematiikan ja systeemianalyysin laitos Aalto-yliopisto 5.9.25 Tarkastellaan esimerkkinä lineaarista yhtälöparia { 2x x 2 = x + x 2

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

Johdatus lukuteoriaan Harjoitus 2 syksy 2008 Eemeli Blåsten. Ratkaisuehdotelma

Johdatus lukuteoriaan Harjoitus 2 syksy 2008 Eemeli Blåsten. Ratkaisuehdotelma Johdatus lukuteoriaan Harjoitus 2 syksy 2008 Eemeli Blåsten Ratkaisuehdotelma Tehtävä 1 1. Etsi lukujen 4655 ja 12075 suurin yhteinen tekijä ja lausu se kyseisten lukujen lineaarikombinaationa ilman laskimen

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

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

VSP webmail palvelun ka yttö öhje

VSP webmail palvelun ka yttö öhje VSP webmail palvelun ka yttö öhje Kirjaudu webmailiin osoitteessa https://webmail.net.vsp.fi Webmailin kirjautumissivu, kirjoita sähköpostiosoitteesi ja salasanasi: Sähköpostin päänäkymä: 1: Kansiolistaus

Lisätiedot

Ohjelmoinnin perusteet, syksy 2006

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

Lisätiedot

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

6.6. Tasoitus ja terävöinti

6.6. Tasoitus ja terävöinti 6.6. Tasoitus ja terävöinti Seuraavassa muutetaan pikselin arvoa perustuen mpäristön pikselien ominaisuuksiin. Kuvan 6.18.a nojalla ja Lukujen 3.4. ja 3.5. harmaasävjen käsittelssä esitellillä menetelmillä

Lisätiedot

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

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

Lisätiedot

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

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

Lisätiedot

Sivuston muokkaus WordPressin kanssa

Sivuston muokkaus WordPressin kanssa Sivuston muokkaus WordPressin kanssa Sivuston muokkaus WordPress-hallintajärjestelmän kanssa on hyvin helppoa. Sitä vähän tutkimalla ja tätä ohjetta lukemalla sen käyttö tulee nopeasti tutuksi. Olen myös

Lisätiedot

Ohjelmointi 1 C#, kevät 2014, tentti

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

Lisätiedot

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2 TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos TKT-3200 Tietokonetekniikka I Harjoitustyö 4: Cache, osa 2.. 2010 Ryhmä Nimi Op.num. 1 Valmistautuminen Cache-työn toisessa osassa

Lisätiedot

Opiskelijalistojen tulostaminen, opiskelijoiden hallinta ja sähköpostin lähettäminen

Opiskelijalistojen tulostaminen, opiskelijoiden hallinta ja sähköpostin lähettäminen 1 Opiskelijalistojen tulostaminen, opiskelijoiden hallinta ja sähköpostin lähettäminen Sisällysluettelo Opetustapahtuman opiskelijalistan tulostaminen... 2 Tenttien opiskelijalistojen tulostaminen... 3

Lisätiedot

Harjoitus 5. Esimerkki ohjelman toiminnasta: Lausekielinen ohjelmointi I Kesä 2018 Avoin yliopisto 1 / 5

Harjoitus 5. Esimerkki ohjelman toiminnasta: Lausekielinen ohjelmointi I Kesä 2018 Avoin yliopisto 1 / 5 Kysy Karilta tai Kimmolta, jos tehtävissä on jotain epäselvää. Kerro WETOon liittyvät tekniset ongelmat suoraan Jormalle sähköpostitse (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida

Lisätiedot

2 Pistejoukko koordinaatistossa

2 Pistejoukko koordinaatistossa Pistejoukko koordinaatistossa Ennakkotehtävät 1. a) Esimerkiksi: b) Pisteet sijaitsevat pystysuoralla suoralla, joka leikkaa x-akselin kohdassa x =. c) Yhtälö on x =. d) Sijoitetaan joitain ehdon toteuttavia

Lisätiedot

Gimp+Karttapaikan 1:40 000 => 1:50 000. Pika ohje versio 0.5 09042007

Gimp+Karttapaikan 1:40 000 => 1:50 000. Pika ohje versio 0.5 09042007 Gimp+Karttapaikan 1:40 000 => 1:50 000 Pika ohje versio 0.5 09042007 1:50 000 kartan teko karttapaikan materiaalia & GIMP:iä hyväksikäyttäen 1. Tallenna karttapaikasta 1:40 000 kartta 2. Avaa se Gimpillä

Lisätiedot

Google-dokumentit. Opetusteknologiakeskus Mediamylly

Google-dokumentit. Opetusteknologiakeskus Mediamylly Google-dokumentit 1 2 3 Yleistä 1.1 Tilin luominen 4 1.2 Docs-päävalikkoon siirtyminen 7 Dokumentit-päävalikko 2.1 Kirjaudu Dokumentteihin 9 2.2 Lähetä tiedosto Google-dokumentteihin 11 2.3 Uuden asiakirjan

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

Algoritmit 1. Demot Timo Männikkö

Algoritmit 1. Demot Timo Männikkö Algoritmit 1 Demot 1 25.-26.1.2017 Timo Männikkö Tehtävä 1 (a) Algoritmi, joka laskee kahden kokonaisluvun välisen jakojäännöksen käyttämättä lainkaan jakolaskuja Jaettava m, jakaja n Vähennetään luku

Lisätiedot

Harjoitus 3 (viikko 39)

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

Lisätiedot

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

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

Kohdissa 2 ja 3 jos lukujen valintaan on useita vaihtoehtoja, valitaan sellaiset luvut, jotka ovat mahdollisimman lähellä listan alkua.

Kohdissa 2 ja 3 jos lukujen valintaan on useita vaihtoehtoja, valitaan sellaiset luvut, jotka ovat mahdollisimman lähellä listan alkua. A Lista Aikaraja: 1 s Uolevi sai käsiinsä listan kokonaislukuja. Hän päätti laskea listan luvuista yhden luvun käyttäen seuraavaa algoritmia: 1. Jos listalla on vain yksi luku, pysäytä algoritmi. 2. Jos

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

OpeOodi Opiskelijalistojen tulostaminen, opiskelijoiden hallinta ja sähköpostin lähettäminen

OpeOodi Opiskelijalistojen tulostaminen, opiskelijoiden hallinta ja sähköpostin lähettäminen Helsingin yliopisto WebOodi 1 OpeOodi Opiskelijalistojen tulostaminen, opiskelijoiden hallinta ja sähköpostin lähettäminen Opetustapahtuman opiskelijalistan tulostaminen Ilmoittautuneista opiskelijoista

Lisätiedot

Kirjaudu sisään palveluun klikkaamalla Omat kartat -painiketta.

Kirjaudu sisään palveluun klikkaamalla Omat kartat -painiketta. Kirjaudu sisään palveluun klikkaamalla Omat kartat -painiketta. Sisäänkirjauduttuasi näet palvelun etusivulla helppokäyttöisen hallintapaneelin. Vasemmassa reunassa on esillä viimeisimmät tehdyt muutokset

Lisätiedot

S: siirtää listan ensimmäisen luvun viimeiseksi V: vaihtaa keskenään listan kaksi ensimmäistä lukua

S: siirtää listan ensimmäisen luvun viimeiseksi V: vaihtaa keskenään listan kaksi ensimmäistä lukua A Lista Sinulle on annettu lista, joka sisältää kokonaisluvut 1, 2,, n jossakin järjestyksessä. Tehtäväsi on järjestää luvut pienimmästä suurimpaan käyttäen seuraavia operaatioita: S: siirtää listan ensimmäisen

Lisätiedot

Opiskelun ja työelämän tietotekniikka (DTEK1043)

Opiskelun ja työelämän tietotekniikka (DTEK1043) Opiskelun ja työelämän tietotekniikka (DTEK1043) pääaine- ja sivuaineopiskelijat Taulukkolaskennan perusteet Yleistä Tämä harjoitus käsittelee taulukkolaskentaohjelman perustoimintoja. Harjoituksissa opetellaan

Lisätiedot

Ohjelmointi 1 C#, kevät 2013,

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

Lisätiedot

c) 22a 21b x + a 2 3a x 1 = a,

c) 22a 21b x + a 2 3a x 1 = a, Tehtäviä on kahdella sivulla; kuusi ensimmäistä tehtävää on monivalintatehtäviä, joissa on 0 4 oikeata vastausta. 1. Lukion A ja lukion B oppilasmäärien suhde oli a/b vuoden 2017 lopussa. Vuoden 2017 aikana

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

Racket ohjelmointia II. Tiina Partanen 2015

Racket ohjelmointia II. Tiina Partanen 2015 Racket ohjelmointia II Tiina Partanen 2015 Sisältö 1) Peli I Yksinkertainen peli, jossa kerätään kohteita ja väistellään vaaroja Pitkälle viety koodi, johon täydennetään vain puuttuvat palat Ei tarvita

Lisätiedot

Venekilpailu! Esteiden väistely ja hahmon ohjaaminen

Venekilpailu! Esteiden väistely ja hahmon ohjaaminen Venekilpailu! Esteiden väistely ja hahmon ohjaaminen 1 Vaihe 1 Valmistelu Lataa Boat Race eli Venekisa -niminen projekti seuraavasta linkistä ja avaa Scratchissa (Online- tai Offline-versiossa): http://jumpto.cc/boat-get

Lisätiedot

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

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

Lisätiedot

Jypelin käyttöohjeet» Miten saan peliin pistelaskurin?

Jypelin käyttöohjeet» Miten saan peliin pistelaskurin? Jypelin käyttöohjeet» Miten saan peliin pistelaskurin? Pistelaskurin saamiseksi tarvitaan kaksi osaa: Laskuri, joka laskee pisteitä Olio, joka näyttää pisteet ruudulla Laskuri voi olla esimerkiksi tyyppiä

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

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

Harjoitus 5 (viikko 41)

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

Lisätiedot

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

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

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

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

Harjoitus 5 (viikko 48)

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

Lisätiedot

LUKUJA, DATAA KÄSITTELEVÄT FUNKTIOT JA NIIDEN KÄYTTÖ LOGIIKKAOHJAUKSESSA

LUKUJA, DATAA KÄSITTELEVÄT FUNKTIOT JA NIIDEN KÄYTTÖ LOGIIKKAOHJAUKSESSA LUKUJA, DATAA KÄSITTELEVÄT FUNKTIOT JA NIIDEN KÄYTTÖ LOGIIKKAOHJAUKSESSA Tavallisimmin lukuja käsittelevien datasanojen tyypiksi kannattaa asettaa kokonaisluku 16 bitin INT, jonka vaihtelualueeksi tulee

Lisätiedot

Tietotekniikan valintakoe

Tietotekniikan valintakoe Jyväskylän yliopisto Tietotekniikan laitos Tietotekniikan valintakoe 2..22 Vastaa kahteen seuraavista kolmesta tehtävästä. Kukin tehtävä arvostellaan kokonaislukuasteikolla - 25. Jos vastaat useampaan

Lisätiedot

Ohjelmoinnin peruskurssi Y1

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

Lisätiedot

Ohjeet Libre Officen käyttöön

Ohjeet Libre Officen käyttöön 1 Ohjeet Libre Officen käyttöön Toisinaan Libre Officen kanssa sama asia on koitettava tehdä kolme kertaa ennen kuin se onnistuu. Kannattaa ottaa rauhallisesti. 1. Pylväsdiagrammi ohje Askel 1 Klikkaa

Lisätiedot

Collector for ArcGIS. Ohje /

Collector for ArcGIS. Ohje / Collector for ArcGIS Ohje / 10.5.2019 2 (11) Sisältö 1. Collector for ArcGIS... 3 2. Kartan luominen ArcGIS Onlinessa... 3 2.1 Karttatason luominen... 3 2.2 Ominaisuustietotaulun kenttien määrittäminen...

Lisätiedot

Ratkaisut Summa on nolla, sillä luvut muodostavat vastalukuparit: ( 10) + 10 = 0, ( 9) + 9 = 0,...

Ratkaisut Summa on nolla, sillä luvut muodostavat vastalukuparit: ( 10) + 10 = 0, ( 9) + 9 = 0,... Ratkaisut 1 1. Summa on nolla, sillä luvut muodostavat vastalukuparit: ( 10) + 10 = 0, ( 9) + 9 = 0,.... Nolla, koska kerrotaan nollalla. 3. 16 15 50 = ( 8) 15 50 = (8 15) ( 50) = 1000 500 = 500 000. 4.

Lisätiedot

GEOS 1. Ilmastodiagrammi Libre Office Calc ohjelmalla

GEOS 1. Ilmastodiagrammi Libre Office Calc ohjelmalla GEOS 1 Ilmastodiagrammi Libre Office Calc ohjelmalla Libre Office Calc ohjelman saat ladattua ilmaiseksi osoitteesta: https://fi.libreoffice.org/ Tässä ohjeessa on käytetty Libre Office Calc 5.0 versiota

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

Ohjelmointi 2 / 2010 Välikoe / 26.3

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

Lisätiedot