A09-17Kuvanrekisteröinti indosyaniinivihreä videoangiografiaan

Koko: px
Aloita esitys sivulta:

Download "A09-17Kuvanrekisteröinti indosyaniinivihreä videoangiografiaan"

Transkriptio

1 AS A09-17Kuvanrekisteröinti indosyaniinivihreä videoangiografiaan Projektityö Marianna Kontulainen 12/9/2009

2 Sisällysluettelo 1 Projektin tavoite ITK-kirjasto Kuvanrekisteröintiprosessi Intensiteettiin perustuva rekisteröinti Piirteisiin perustuva rekisteröinti Projektin kulku Ajankäyttö Toteutuneet riskit Python-rajapinta Asennus Koodi Toteutunut ohjelma ITK:n asennus ja kääntäminen Videomateriaali Valitut funktiot Ohjelman rakenne Käytetyt keinot suorituksen nopeuttamiseksi Suorituskyky Kehitysehdotuksia Käytettyä kirjallisuutta... 9

3 1 Projektin tavoite Projektityön tavoitteena oli tehdä kuvanreksteröintiohjelma indosyaniinivihreä (ICG, indocyanine green) videoangiografiaan. Angiografiassa potilaan verisuoneen ruiskutetaan varjoainetta, jonka jälkeen aineen etenemistä voidaan kuvata mm. röntgenillä tai infrapunakameralla. Indosyaniinivihreä lääketieteessä yleisesti käytetty varjoaine. Aine fluoresoi lähi-infrapuna-alueella, joten yksinkertaisimmillaan infrapunakamerana voidaan käyttää tavallista digikameraa. Kuvanrekisteröinnissä peräkkäiset videoframet kohdistetaan päällekkäin, jolloin kuvauslaitteen liikkumisesta aiheutuva häiriö poistuu. Rekisteröitävä videokuva on peräisin aivoleikkauksesta. Rekisteröinnistä oli tarkoituksena tehdä nopeaa, jotta sitä voitaisiin käyttää onlinekuvanrekisteröinnissä. Reaaliaikaisessa kuvanrekisteröinnissä rekisteröinti pitäisi pystyä suorittamaan kertaa sekunnissa. Valmiissa ohjelmassa tulisi myös olla mahdollisuus seurata rekisteröinnin etenemistä ja onnistumista suorituksen aikana. Tavoitteena oli käyttää valmista ITK-kirjastoa (Insight Segmentation and Registration Toolkit) apuna ohjelman toteuttamisessa. ITK-kirjasto on toteutettu C++-kielellä, mutta siitä on olemassa rajapinnat Pythonille, Javalle sekä Matlabille. Projektityön aluksi suunnitelmana oli käyttää Python-rajapintaa, jotta ohjelmointi sujuisi helpommin. 2 ITK-kirjasto 2.1 Kuvanrekisteröintiprosessi ITK:n kuvanrekisteröintiprosessi on kuvan 1 mukainen. Sisääntulona prosessiin syötetään kaksi kuvaa, joista toinen on paikallaan oleva kuva ja toinen liikkuva kuva. Iteraatiosyklin mitta-osiossa lasketaan mitta, joka kuvaa paikallaan olevan ja liikkuvan kuvan välistä eroa. Optimointi-osiossa lasketaan edelliseltä iteraatiokierrokselta saadun mitan perusteella uudet transformaatioparametrit. Transformaatio kohdassa tehdään varsinainen mäppäys kahden kuvan pisteiden välillä käyttäen optimointi-osiossa laskettuja transformaatioparametreja. Interpolointia tarvitaan, koska pisteet eivät aina mäppäydy suoraan gridille vaan hieman ohi siitä. Iterointisykliä toistetaan kunnes liikkuva kuva on saatu kohdistettua riittävän hyvin paikallaan olevan kuvan päälle. Kuva 1. Kuvanrekisteröintiprosessi

4 2.2 Intensiteettiin perustuva rekisteröinti Intensiteettiin perustuvassa rekisteröintimenetelmässä käytetään koko kuvadataa. Tämän ansiosta rekisteröintiprosessi on automaattinen, mutta laskennallisesti se voi olla hidas erityisesti käytettäessä suuren resoluution kuvia tai tarkkoja 3D-kuvia. Tarkoituksena on minimoida kustannusfunktiota, joka mittaa kuvien intensiteettiien samankaltaisuutta. Tässä projektityössä tehdyssä ohjelmassa rekisteröintimenetelmä on intensiteettiin perustuva, joten tästä menetelmästä kerrotaan tarkemmin luvussa Piirteisiin perustuva rekisteröinti Piirteisiin perustuvassa rekisteröinnissä kuvasta valitaan tiettyjä tunnistettavia piirteitä, kuten pisteitä, viivoja tai muotoja. Tämä menetelmän on nopeampi verrattuna intensiteettiin perustuvaan menetelmään, koska rekisteröinnin tekemiseen ei tarvita koko kuvadataa. Ennen rekisteröintiprosessin aloittamista käyttäjän on yleensä valittava piirteet, joiden mukaan rekisteröinti tehdään. Näin ollen rekisteröintiprosessi ei ole täysin automaattinen eikä tapauksesta riippumaton. Angiografiakuvissa piirteinä voisi käyttää esimerkiksi suonien risteyskohtia. Eri leikkauksissa sngiografiassa näkyy kuitenkin erilaisia risteyksiä, jolloin käyttäjän olisi aina osoitettava risteyskohdat. Lisäksi osa piirteistä saattaa olla osan aikaa poissa näkyvistä (kuvan ulkopuolella tai leikkausinstrumentin alla), joka aiheuttaa lisävaikeuksia rekisteröintiin. Piirteiden löytäminen ja tunnistaminen kuvasta ei ole helppo tehtävä. ITK-kirjastossa on funktioita liittyen piirteisiin perustuvaan rekisteröintiin. Yksinkertaisimillaan piirteinä voi siis olla yksittäisiä pisteitä. Minimoidaan kahden kuvan pistejoukkojen etäisyyttä. Ensimmäinen skenaaroi soveltuu jäykkään tai affiini transformaatioon. Siinä kahdessa pistejoukossa on sama määrä pisteitä ja tietyllä pisteellä yhdessä joukossa tiedetään olevan täsmälleen yksi vastaava piste toisessa pistejoukossa. Toisessa skenaariossa pisteiden välistä vastaavuutta ei tunneta eikä pistejoukot ole välttämättä saman kokoisia. Ensimmäisen skenaarion mukaiseen rekisteröintiongelmaa voidaan yrittää ratkaista ITK:n funktiolla LandmarkBasedTransformInitializer. Jos kyseessä on deformaation rekisteröinti, voidaan käyttää ITK:n KernelTransform-funktioita. 3 Projektin kulku 3.1 Ajankäyttö Ajankäyttö on esitetty tarkemmin alla olevassa taulukossa. Projektityöhön käytetty aika vastaa vajaata viittä opintopistettä (127,5h/27h=4,72 op). Projektin aluksi asetin omaksi tavoitteekseni 5 opintopistettä. Viikko Käytetty tuntimäärä: 37 Aiheiden jako, alustavaa tutustumista rekisteröintiin 4 38 Tarkennusta työhön ohjaajalta, suunnittelua työparin kanssa 3,5 Kirjallisuuden lukemista (mm. Insight into Images) 6 39 Tapaaminen ohjaajan ja työparin kanssa 1,5 Työsuunnitelman teko ja esittely 6 Kirjallisuuden lukemista (mm. ITK software guide) 9

5 40 Python rajapinnan asennus 6,5 Esimerkkien koodausta Pythonilla Esimerkkien koodausta Pythonilla 2 42 ITK:n kääntäminen (C++-kieleen siirtyminen) 7 43 Alkeellisen rekisteröintiohjelman koodaus C++:lla 7,5 44 Koeviikko, sain työssä käytettävän videomateriaalin Kahden kuvan kaappaus videomateriaalista ja käyttö tehdyssä ohjelmassa 2 Kuvasarjan teko videomateriaalista kaapatusta kuvasta 4 45 Väliraportin teko ja esittely 5 46 Koodausta (multi resolution menetelmä) 3 47 Koodausta (multi resolution menetelmä) 3,5 48 Lopullisen ohjelman koodaus: Ohjelman perusrakenne, tulosteet 14 Eri funktioiden kokeilua 6 49 Parametrien säätöä ja ohjelman suorituskyvyn arviointia 8 50 Loppudemon esittely ja kalvojen teko 4 Loppudokumentin kirjoitus 12 Yhteensä: 127,5 3.2 Toteutuneet riskit Projektin alussa suurimmaksi riskiksi luokiteltiin epäilys siitä, että ITK-kirjaston ei välttämättä sovellu nopeaan kuvanrekisteröintiin. Erityisesti deformaation rekisteröinti nopeasti aiheutti huolta. Projektin aikana tämä epäilys osoittautui todeksi ja toteutetussa ohjelmassa jäätiin kauaksi tavoitellusta rekisteröintinopeudesta huolimatta erilaisista yrityksistä nopeuttaa suoritusta. Ohjelmointikielen epäiltiin myös aiheuttavan ongelmia. Pythonilla ohjelmointi olisi sopinut minulle paremmin ja työtä aloitettiinkin tekemään Python-rajapinnan avulla. Opettelin ITK-kirjaston käyttöä Pythonilla. Ohjelmoin esimerkkiohjelmia ja kokeilin erilaisten funktioiden toimintaa. Selvisi kuitenkin, että rajapinnan kautta ei ole kaikkia tarvittavia funktioita käytettävissä, joten jouduin vaihtamaan C++-kieleen. Osa Pythonilla ohjelmointiin käytetty aika meni hukkaan ja ohjelmointi C++-kielellä oli hitaampaa, koska minulla ei ollut paljoa kokemusta sillä ohjelmoimisesta. Aloitin tekemään työtä parin kanssa ja hän oli mukana vielä väliraportin aikaan. Myöhemmin selvisi kuitenkin, että parini ei suoritakaan kurssia. Kaikki kurssiin liittyvät tuotokset ovat minun tekemiäni. Odotin kuitenkin saavani apua erityisesti loppudokumentin kirjoittamiseen ja siksi en pysynyt täysin aikataulussa. 4 Python-rajapinta Aloitin tekemään projektityötäni Python-rajapinnan kautta. Ajattelin, että Pythonilla ohjelmoiminen olisi nopeampaa ja itselleni helpompaa. ITK:n ohjelmointikieli on siis C++. Itselläni ei ollut aiempaa kokemusta kyseisestä ohjelmointikielestä, joten työtä nopeuttaakseni päätin käyttää Pythonrajapintaa.

6 4.1 Asennus Python-rajapinnan käyttöönottoa varten asensin seuraavat ohjelmat: Python 2.16 wrapitk (binäärit) ITK Koodi Opettelin ITK:n käyttöä Pythonilla ja ohjelmoin ITK:n esimerkkejä Pythonilla, jotka oli aiemmin toteutettu C++:lla. Lopputuloksena tästä työstä on muutamia ohjelmia, joissa tehdään yksinkertainen rekisteröinti kahdelle kuvalle. Kaikki funktiot eivät kuitenkaan ole käytössä Pythonrajapinnan kautta. Päätös ohjelmointikielenvaihdosta syntyi, kun selvisi, että esimerkiksi käyttämäni CenteredRigid2DTransform-funktio ei ollut käytettävissä rajapinnan kautta. Lopullisen toteutuksessa en voinut käyttää Pythonilla tekemääni koodia. 5 Toteutunut ohjelma 5.1 ITK:n asennus ja kääntäminen ITK:n kääntämistä ja asennusta varten tarvitsin seuraavat ohjelmat: MinGW MSYS Cmake ITK ITK Software Guiden luvussa kaksi on selkeät ohjeet kirjaston asennukseen ja tein asennuksen sen mukaan. 5.2 Videomateriaali Alkuperäisenä suunnitelmana oli tehdä ohjelma, joka pilkkoo videomateriaalin ensin yksittäisiin kuviin, suorittaa rekisteröinnin kuville ja yhdistää sitten yksittäiset kuvat takaisin videoksi. Ennen kuin sain videomateriaalin käsiini, etsin valmiita ohjelmia ja muita ratkaisuja, joilla videokuvan saisi helposti jaettua yksittäisiin kuviin. ITK:ssa ei ollut valmiita funktioita tämän tekemiseen. Saadessani lopulta videomateriaalin jouduin muuttamaan suunnitelmiani. Videomateriaalissa kirurgi paineli kudosta leikkaustyökalulla, jolloin verisuonten muoto muuttui. Aikaisemmin oli todettu, että ITK:n rekisteröintifunktiot, jotka ottivat deformaation huomioon olivat liian raskaita reaaliaikaiseen rekisteröintiin. Videomateriaalia oli ilmeisesti käytetty opetustarkoitukseen ja kuvan päälle oli lisätty selventäviä tekstejä. Myös nämä tekstit todettiin ongelmallisiksi rekisteröinnin kannalta. Näistä syistä päätin olla käyttämättä saatua videota sellaisenaan. Sen sijaan kaappasin videomateriaalista yhden kuvan ja liikuttelemalla tätä yhtä kuvaa sain muodostettua sarjan kuvia, jotka syötin ohjelmaani. Käytin apuna vidonkäsittelyohjelmaa. Tekemässäni kuvasarjassa kuvat ovat resoluutioltaan 256x256, ne siirtyvät sekä kiertyvät ja ne on tallennettu png-formaatissa.

7 5.2 Valitut funktiot Projektityön aikana kokeilin useita rekisteröintifunktioita ja luin ITK Software Guidea sekä dokumentaatiota. Tärkeimpänä valintakriteerinä oli nopeus. Esittelen tässä lyhyesti rekisteröintiprosessin eri osiin liittyvät funktiot. Muitakin funktioita toki käytettiin, mutta nämä ovat rekisteröinnin kannalta tärkeimmät. Transformaatiofunktioksi valitsin CenteredRigid2Dtransformfunktion. Funktio on tarkoitettu jäykkien kappaleiden 2D-kuvien rekisteröintiin. Iteraatioprosessin aikana kuvaa kierretään keskipisteen ympäri, kun normaalisti kierto tehdään kuvan kulmassa olevan pisteen ympäri. Mittana käytin MeanSquaresImageToImageMetric-funktiota, jossa lasketaan keskineliöllinen pikselikohtainen ero intensiteetissä kahden kuvan välillä. Mitan optimaalinen arvo on nolla. Interpolaattorifunktioksi valitsin LinearInterpolateImageFunction-funktion, jossa oletetaan, että intensiteetti muuttuu lineaarisesti grid-sijaintien välillä. Optimointi funktiona käytin RegularStepGradientDescentOptimizer-funktiota. Funktiossa parametreja muutetaan gradientin suuntaan. 5.3 Ohjelman rakenne Ohjelma ajetaan komentoriviltä ja se ottaa komentoriviparametreinä rekisteröitävän kuvasarjan sijainnin ja formaatin, kuvasarjan viimeisen kuvan numeron sekä sijainnin ja formaatin, jolla rekisteröity kuvasarja tallennetaan. Komento, jolla ohjelma käynnistetään on seuraavanlainen Registration1 input/img%03d.png 49 output/out%03d.png Kuvien tiedostoformaatti on png ja tässä esimerkissä rekisteröitävät kuvat löytyvät input-kansiosta ja rekisteröidyt kuvat laitetaan output-kansioon. Kuvien tiedostonimet ovat img000.ong, img001.png, img002.png jne. Toteutetussa ohjelmassa paikallaan oleva kuva on koko ajan kuvasarjan ensimmäinen kuva. Rekisteröintiprosessi tehdään for-loopissa, jossa kuvasarjan jokainen kuva käydään läpi ja asetetaan liikkuvaksi kuvaksi. Rekisteröinti tehdään aina yhdelle kuvaparille kerrallaan. Lopuksi rekisteröity kuvasarja siis palautetaan tiedostoon. 5.4 Käytetyt keinot suorituksen nopeuttamiseksi Kuvamateriaalista tehtiin useita oletuksia, joiden odotettiin nopeuttavan rekisteröintiä. Ensimmäinen oletus oli, että kuvassa ei tapahdu deformaatiota. Tämä oletus tehtiin, koska ITK:n deformaation huomioon ottavien funktioiden suoritus kesti useita minuutteja. Vertasin funktioiden suoritusaikoja ajamalla ITK:n valmiita esimerkkiohjelmia. Projektityössä käytettävä kuvamateriaalissa ei siis tapahdu muodon muutosta, se ainoastaan siirtyy ja kiertyy. Oletettiin myös, että videokuva on pieniresoluutioista eli tässä tapauksessa 256x256. Lisäksi maksimikiertymä ja -siirtymä oletettiin melko pieniksi. Kuvasarja, joka tehtiin tätä projektityötä varten oli kaikkien näiden oletusten mukainen. Kaikki edellä mainituista oletuksista eivät todennäköisesti pätisi oikealle videomateriaalille verisuonikartoituksesta. Kirurgin leikkaustyökalut saattavat olla kohteen edessä ja kirurgi saattaa koskea kudosta niin, että kohteen muoto muuttuu. Resoluutio ja oletus siitä, että kuva liikkuu vain vähän eri framejen välillä voi pitää paikkansa oikeassakin tilanteessa. Eräs keino, jolla ohjelman suoritusta pyrittiin nopeuttamaan oli Multi Resolution menetelmän käyttäminen. Tässä menetelmässä paikallaan olevasta ja liikkuvasta kuvasta muodostetaan

8 kuvapyramidit, joissa alkuperäisistä kuvista on muodostettu annetujen kutistustekijöiden mukaan pienempiresoluutioisia kuvia. Rekisteröinti tehdään ensin pienimmän resoluution kuville ja iteraatiokierrosten edetessä resoluutiota kasvatetaan. Lisäksi suoritusta voidaan nopeuttaa tekemällä rekisteröinti vain joka toiselle kuvalle. 5.5 Suorituskyky Multi resolution -menetelmä ei nopeuttanut ohjelman suoritusta kuten odotettiin; eroa tuskin huomasi. Menetelmästä on apua, jos rekisteröitävät kuvat ovat kaukana toisistaan. Projektityössä toteutetussa ohjelmassa kuvan oletettiin liikkuvan todella vähän, joten menetelmä ei vähentänyt iteraatiokertoja merkittävästi. Ohjelman suoritukseen kului omalla koneellani kuusi minuuttia. Ohjelman suoritusnopeus riippuu hyvin paljon käytettävän PC:n tehokkuudesta. Kokeilin ohjelman suoritusta myös toisella, tehokkaammalla koneella ja suoritusaika oli 50 sekuntia. Myös sillä oli merkitystä, millä alustalla ohjelma käännettiin. Parhaimmillaan pääsin 40 sekunnin suoritusaikaan. Suoritusaika puolittuu, jos rekisteröinnissä käytetään vain joka toista kuvaa. Jätettäessä joka toinen kuva huomioimatta, suorituksen tarkkuus kärsii ja mitan arvo kasvaa. Ohjelman suoritusajassa jäätiin kauaksi tavoitellusta, mutta optimoimalla ohjelmaa edelleen ja käyttämällä riittävän tehokasta PC:tä voidaan päästä reaaliaikaisen rekisteröinnin tavoitteisiin. Liitteenä on taulukko rekisteröintituloksista. Niistä nähdään, että mitan arvo on yhtä rekisteröintikierrosta lukunnottamatta alle yhden. Ero alkuperäisestä kuvasarjasta laskettujen arvojen ja rekisteröinnin tuloksena saatavien arvojen välillä on todella pieni kierron ja y-suuntaisen translaation kohdalla. X-suunnassa ero on hieman suurempi. Tämä johtuu todennäköisesti vain siitä, että alkuperäisessä kuvasarjassa kuva liikkuu x-suunnassa enemmän, jolloin eroa on jäljellä enemmän myös rekisteröinnin jälkeen. Katsottaessa rekisteröinnin tuloksena saatavaa kuvasarjaa rekisteröinti näyttää onnistuneen hyvin; kuva pysyy paikallaan ja se on riittävän tarkka. 6 Kehitysehdotuksia Toteutettu ohjelma ottaa 50 kuvaa, tekee kaikille rekisteröinnin ja palauttaa 50 rekisteröityä kuvaa. Jos rekisteröintiohjelmaa käytettäisi online-rekisteröinnissä, pitäisi ohjelma toteuttaa niin, että se ottaa yhden kuvaparin eli kaksi peräkkäistä kuvaa, joista ensimmäinen asetetaan paikallaan olevaksi kuvaksi ja toinen liikkuvaksi kuvaksi. Ohjelma tekee tälle kuvaparille rekisteröinnin ja palauttaa yhden rekisteröidyn kuvan. Kuvaparin jälkimmäinen kuva siirtyy seuraavaksi paikallaan olevaksi kuvaksi ja videovirrasta otetaan uusi kuva liikkuvaksi kuvaksi. Jos kuva liikkuu hitaasti kauaksi alkuperäisestä kohteesta ja rekisteröinti tehdään aina kahdelle peräkkäiselle kuvalle, myös rekisteröity kuva alkaa liikkua eikä pysy paikallaan kuten oli tarkoitus. Tästä syystä rekisteröinnissä tulee ottaa huomioon myös ensimmäisen kuvan koordinaatit ja laskea jäljessä tulevien kuvien koordinaatit ensimmäisen kuvan suhteen. Vaikka kuva siirtyisi kokonaan pois ensimmäisen kuvan määrittämältä kohdealueelta, ohjelma säilyttää kuitenkin tiedon liikkuvan kuvan sijainnista, mutta rekisteröity kuva pysyy paikallaan. Koordinaattien selvittämiseksi on tutkittava tarkemmin ITK:n tapaa tehdä rekisteröinti. Mikäli rekisteröinti halutaan tehdä FPGA:lla, on ITK näkemykseni mukaan liian raskas kirjasto siihen tarkoitukseen. Jos rekisteröintiohjelmaa suoritetaan PC:ssä, on ITK:n käyttäminen mahdollista myös

9 online-rekisteröinnin tapauksessa. Toinen kirjasto, jonka sopivuutta kuvanrekisteröintiin voisi tutkia on OpenCV-kirjasto. OpenCV (Open Source Computer Vision) on konenäkösovelluksia varten tehty avoimen lähdekoodin kirjasto, joka on tarkoitettu erityisesti reaaliaikaiseen kuvaprosessointiin. Kirjaston funktioita voisi soveltaa piirteisiin perustuvaan rekisteröintiin. Lisäksi kirjastosta löytyy valmis funktio still-kuvien kaappaamiseen videokuvasta. 7 Käytettyä kirjallisuutta [1] Tuomas Seppälä; Indosyaniinivihreä silmän optisessa verisuonikartoituksessa; Kandidaatintyö; [2] Luis Ibáñez, Will Schroeder, Lydia Ng, Josh Cates, Insight Software Consortium; The ITK Software Guide; ; [3]Terry S. Yoo; Insight into Images: Principles and Practice for Segmentation, Registration, and Image Analysis; 2004; ISBN: [4] ITK Documentation;

10 Translaatio x-suunta Alkuperäinen Rekisteröity Ero Translaatio y-suunta Alkuperäinen Rekisteröity Ero -0,4327-0, , ,03 0, , ,8629-0, ,0178 0,0955 0, , ,2868-1, , ,1944 0, , ,7013-1, , ,3254 0, , ,1035-2,0692-0,0343 0,4877 0,4781 0,0096-2,4905-2,4484-0,0421 0,6809 0, , ,8595-2, , ,905 0, , ,2076-3, , ,1605 1, , ,5315-3, , ,4483 1, , ,8259-3, , ,7674 1, , ,0849-4, , ,1151 2, , ,304-4, , ,4882 2, , ,4799-5, , ,8826 2, , ,6109-5, , ,2941 3, , ,6967-5, , ,718 3, , ,7384-5, , ,1498 4, , ,7384-5, , ,5848 4,5439 0,0409-4,6999-5, , ,0188 4, , ,3923-1, , ,2478 7, , ,8283 2, , ,0024 6, , ,7663 4,8955-0,1292 3,9643 3, , ,3002 4, , ,224 3, , ,7226 4, , ,576 2, , ,0392 3, , ,0483 2, , ,2687 3, , ,6546 1, , ,442 2, , ,3923 1, , ,5862 1, , ,2419 1, , ,2801 0, , ,1786 1, , ,1453-0, , ,1782 1, , ,0096-0, , ,2198 1, , ,8745-1, , ,2859 1, , ,7416-2, , ,3601 1, , ,6116-3, , ,4244 1,399 0,0254-5,4834-3, , ,4565 1, , ,3528-4, , ,4254 1, , ,2104-5, , ,2843 1, , ,0154-6, , ,967 0, , ,6824-7, , ,4223 0, , ,1378-8, , ,3182-0, , ,4806-6, , ,7562-3, , ,1227-2, , ,2938-5, , ,0546 1, , ,8953-3, ,01532

11 2,5059 2, , ,1344-3, , ,8339 2, , ,3191-2, , ,9049 2, , ,4455-1, , ,4982 2, , ,6835-0, , ,7378 1, , ,2512-0, , ,878 0, , ,0617-0, , Kierto (astetta) Alkuperäinen Rekisteröity Ero Mitta -0,0242-0, , , ,0638-0, , , ,1057-0, , , ,1457-0, , , ,1812-0, , , ,2096-0, , , ,2281-0, , , ,2321-0, , , ,2142-0, , , ,1573-0, , , , , , ,3048 1, , , ,8872 2, , , ,998 0,002 0, ,5451 3, , , ,9392 2, , , ,2756 2, , , ,581 1, , , ,8678 0, , , ,1438 0,1498-0,006 0, ,5854-0, , , ,3145-1, , , ,0375-2, , , ,7453-2, , , ,42-3, , , , , , ,4146-4, , , ,7874-4, , , ,1372-5, , , ,4683-5, , , ,7818-5, , , ,0769-6, , , ,3513-6, , , ,6009-6,6027 0,0018 0, ,8186-6, , ,785109

12 -6,9909-6, , , ,0875-7, , , ,9972-0,0028 0, ,6982-4, , , ,7528-1, , , ,6622 0, , , ,9183 0, ,9E-05 0, ,9179 0, ,7E-05 0, ,8284 0, , , ,6907 0, , , ,5237 0, , , ,34 0, ,0008 0, ,153 0, , ,524027

Ohjelmointi 1. Kumppanit

Ohjelmointi 1. Kumppanit Ohjelmointi 1 Kumppanit November 20, 2012 2 Contents 1 Mitä ohjelmointi on 7 2 Ensimmäinen C#-ohjelma 9 2.1 Ohjelman kirjoittaminen......................... 9 A Liite 11 3 4 CONTENTS Esipuhe Esipuhe 5

Lisätiedot

S09 04 Kohteiden tunnistaminen 3D datasta

S09 04 Kohteiden tunnistaminen 3D datasta AS 0.3200 Automaatio ja systeemitekniikan projektityöt S09 04 Kohteiden tunnistaminen 3D datasta Loppuraportti 22.5.2009 Akseli Korhonen 1. Projektin esittely Projektin tavoitteena oli algoritmin kehittäminen

Lisätiedot

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo Concurrency - Rinnakkaisuus Group: 9 Joni Laine Juho Vähätalo Sisällysluettelo 1. Johdanto... 3 2. C++ thread... 4 3. Python multiprocessing... 6 4. Java ExecutorService... 8 5. Yhteenveto... 9 6. Lähteet...

Lisätiedot

Zeon PDF Driver Trial

Zeon PDF Driver Trial Matlab-harjoitus 2: Kuvaajien piirto, skriptit ja funktiot. Matlabohjelmoinnin perusteita Numeerinen integrointi trapezoidaalimenetelmällä voidaan tehdä komennolla trapz. Esimerkki: Vaimenevan eksponentiaalin

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

CUDA. Moniydinohjelmointi 17.4.2012 Mikko Honkonen

CUDA. Moniydinohjelmointi 17.4.2012 Mikko Honkonen CUDA Moniydinohjelmointi 17.4.2012 Mikko Honkonen Yleisesti Compute Unified Device Architecture Ideana GPGPU eli grafiikkaprosessorin käyttö yleiseen laskentaan. Nvidian täysin suljetusti kehittämä. Vuoden

Lisätiedot

811312A Tietorakenteet ja algoritmit, , Harjoitus 3, Ratkaisu

811312A Tietorakenteet ja algoritmit, , Harjoitus 3, Ratkaisu 811312A Tietorakenteet ja algoritmit, 2018-2019, Harjoitus 3, Ratkaisu Harjoituksessa käsitellään algoritmien aikakompleksisuutta. Tehtävä 3.1 Kuvitteelliset algoritmit A ja B lajittelevat syötteenään

Lisätiedot

Videon tallentaminen Virtual Mapista

Videon tallentaminen Virtual Mapista Videon tallentaminen Virtual Mapista Kamera-ajon tekeminen Karkean kamera ajon teko onnistuu nopeammin Katseluohjelmassa (Navigointi > Näkymät > Tallenna polku). Liikeradan ja nopeuden tarkka hallinta

Lisätiedot

Harjoitustyön testaus. Juha Taina

Harjoitustyön testaus. Juha Taina Harjoitustyön testaus Juha Taina 1. Johdanto Ohjelman teko on muutakin kuin koodausta. Oleellinen osa on selvittää, että ohjelma toimii oikein. Tätä sanotaan ohjelman validoinniksi. Eräs keino validoida

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

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

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

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

Opi kuvin: By Choice v.1.4 asennus Asennus järjestelmänvalvojan oikeuksin

Opi kuvin: By Choice v.1.4 asennus Asennus järjestelmänvalvojan oikeuksin Opi kuvin: By Choice v.1.4 asennus Asennus järjestelmänvalvojan oikeuksin Opi kuvin: By Choice 1.4 sisältää ilmaisen, yli 3000 symbolia sisältävän symbolipäivityksen. Uudet kuvasymbolit löytyvät erillisistä

Lisätiedot

Matopeli C#:lla. Aram Abdulla Hassan. Ammattiopisto Tavastia. Opinnäytetyö

Matopeli C#:lla. Aram Abdulla Hassan. Ammattiopisto Tavastia. Opinnäytetyö Matopeli C#:lla Aram Abdulla Hassan Ammattiopisto Tavastia Opinnäytetyö Syksy 2014 1 Sisällysluettelo 1. Johdanto... 3 2. Projektin aihe: Matopeli C#:lla... 3 3. Projektissa käytetyt menetelmät ja työkalut

Lisätiedot

ANVIA ONLINE BACKUP ASENNUSOPAS 1(7) ANVIA ONLINE BACKUP ASENNUSOPAS 1.0

ANVIA ONLINE BACKUP ASENNUSOPAS 1(7) ANVIA ONLINE BACKUP ASENNUSOPAS 1.0 1(7) ANVIA ONLINE BACKUP Asioita, jotka tulee huomioida ennen asennusta! Koska palvelu sisältää myös sharing-ominaisuuden, on asiakas itse vastuussa millaisia tiedostoja palvelimelle varmuuskopioi ja kenelle

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

11/20: Konepelti auki

11/20: Konepelti auki Ohjelmointi 1 / syksy 2007 11/20: Konepelti auki Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/11 Tämän luennon

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

PRINCIPLES OF PROGRAMMING LANGUAGES - DEBUGGER

PRINCIPLES OF PROGRAMMING LANGUAGES - DEBUGGER PRINCIPLES OF PROGRAMMING LANGUAGES - DEBUGGER Group 16 Ville Laatu Henri Myllyoja - i SISÄLLYSLUETTELO 1. DEBUGGERI YLEISESTI... II 1.1 Debuggerin käyttämien... ii 1.2 Debuggerin käynnistäminen... ii

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

Nexetic Shield Unlimited

Nexetic Shield Unlimited Nexetic Shield Unlimited Käyttöohje 1. Asennus ja käyttöönotto 2. Ohjelman käyttäminen 3. Lisäasetukset 4. Tietojen palautus 1. Asennus ja käyttöönotto Asiakasohjelman asennus Tehtyäsi tilauksen varmistusohjelmasta

Lisätiedot

JOHDATUS TEKOÄLYYN TEEMU ROOS

JOHDATUS TEKOÄLYYN TEEMU ROOS JOHDATUS TEKOÄLYYN TEEMU ROOS TERMINATOR SIGNAALINKÄSITTELY KUVA VOIDAAN TULKITA KOORDINAATTIEN (X,Y) FUNKTIONA. LÄHDE: S. SEITZ VÄRIKUVA KOOSTUU KOLMESTA KOMPONENTISTA (R,G,B). ÄÄNI VASTAAVASTI MUUTTUJAN

Lisätiedot

f(n) = Ω(g(n)) jos ja vain jos g(n) = O(f(n))

f(n) = Ω(g(n)) jos ja vain jos g(n) = O(f(n)) Määritelmä: on O(g(n)), jos on olemassa vakioarvot n 0 > 0 ja c > 0 siten, että c g(n) kun n > n 0 O eli iso-o tai ordo ilmaisee asymptoottisen ylärajan resurssivaatimusten kasvun suuruusluokalle Samankaltaisia

Lisätiedot

P6SLite ohjaus- ja zoom komennot

P6SLite ohjaus- ja zoom komennot 1, Ohjaus zoom -toiminnot P6SLite ohjaus- ja zoom komennot Osa 1 pikanäppäintoiminnon Valitse APP-käyttöliittymää ja APP ilmestyy toimintopainikkeeseen. Paina + = ZOOM +, paina - = ZOOM-. 2, Manuaalinen

Lisätiedot

811312A Tietorakenteet ja algoritmit 2015-2016. I Johdanto

811312A Tietorakenteet ja algoritmit 2015-2016. I Johdanto 811312A Tietorakenteet ja algoritmit 2015-2016 I Johdanto Sisältö 1. Algoritmeista ja tietorakenteista 2. Algoritmien analyysistä 811312A TRA, Johdanto 2 I.1. Algoritmeista ja tietorakenteista I.1.1. Algoritmien

Lisätiedot

Ohjeissa pyydetään toisinaan katsomaan koodia esimerkkiprojekteista (esim. Liikkuva_Tausta1). Saat esimerkkiprojektit opettajalta.

Ohjeissa pyydetään toisinaan katsomaan koodia esimerkkiprojekteista (esim. Liikkuva_Tausta1). Saat esimerkkiprojektit opettajalta. Ohjeissa pyydetään toisinaan katsomaan koodia esimerkkiprojekteista (esim. Liikkuva_Tausta1). Saat esimerkkiprojektit opettajalta. Vastauksia kysymyksiin Miten hahmon saa hyppäämään? Yksinkertaisen hypyn

Lisätiedot

Kon Mekanismiopin perusteet

Kon Mekanismiopin perusteet Kon-16.4001 Mekanismiopin perusteet Kari Tammi Tommi Lintilä Kurssin osasuoritteet Viikkoharjoitukset: 6 kpl 1/3 arvosanasta Harjoitustyö: 2/3 arvosanasta - Molemmat suoritetaan itsenäisesti! Hyväksyttyyn

Lisätiedot

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla Viimeksi muokattu 5. toukokuuta 2012 Maastotietokannan torrent-jakeluun sisältyy yli 5000 zip-arkistoa,

Lisätiedot

S14 09 Sisäpeltorobotti AS Automaatio ja systeemitekniikan projektityöt. Antti Kulpakko, Mikko Ikonen

S14 09 Sisäpeltorobotti AS Automaatio ja systeemitekniikan projektityöt. Antti Kulpakko, Mikko Ikonen S14 09 Sisäpeltorobotti AS 0.3200 Automaatio ja systeemitekniikan projektityöt Antti Kulpakko, Mikko Ikonen 1. Projektin tavoitteet Projektin tavoitteena on toteuttaa ohjelmisto sisäpeltorobottiin seuraavien

Lisätiedot

Valppaan asennus- ja käyttöohje

Valppaan asennus- ja käyttöohje Versio Päiväys Muokkaaja Kuvaus 0.9 16.2.2006 Tuukka Laakso Korjattu versio 0.1 Antti Kettunen Alustava versio Sisällysluettelo 1 Johdanto...2 2 Valppaan asennus...3 2.1 Valppaan kääntäminen...3 2.2 Valmiiksi

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

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä Rekursiolause Laskennan teorian opintopiiri Sebastian Björkqvist 23. helmikuuta 2014 Tiivistelmä Työssä käydään läpi itsereplikoituvien ohjelmien toimintaa sekä esitetään ja todistetaan rekursiolause,

Lisätiedot

erasmartcardkortinlukijaohjelmiston

erasmartcardkortinlukijaohjelmiston erasmartcardkortinlukijaohjelmiston asennusohje Sisällysluettelo 1. erasmartcard... 2 2. erasmartcard-ohjelmiston normaali asennus... 3 2.1. Ennen asennusta... 3 2.2. Asennus... 3 3. Muut asennustavat...

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

Johdatus ohjelmointiin

Johdatus ohjelmointiin Johdatus ohjelmointiin EXAM tentin liitetiedostojen lataaminen, käyttäminen ja palauttaminen Kerro mahdolliset puutteet tai parannusehdotukset: pietari.heino@tut.fi Tällä sivulla on selitetty lyhyesti

Lisätiedot

Lue käyttöohje huolellisesti läpi ennen tuotteen käyttöönottoa.

Lue käyttöohje huolellisesti läpi ennen tuotteen käyttöönottoa. KÄYTTÖOHJE 1 (5) VAROITUKSET Lue käyttöohje huolellisesti läpi ennen tuotteen käyttöönottoa. HUOMIO! Laite ei sovellu alle 3-vuotiaille lapsille. Sisältää pieniä osia - Tukehtumisvaara. Pidä huoli ettei

Lisätiedot

Kanta ja Kannan-vaihto

Kanta ja Kannan-vaihto ja Kannan-vaihto 1 Olkoon L vektoriavaruus. Äärellinen joukko L:n vektoreita V = { v 1, v 2,..., v n } on kanta, jos (1) Jokainen L:n vektori voidaan lausua v-vektoreiden lineaarikombinaationa. (Ts. Span(V

Lisätiedot

erasmartcard-kortinlukijaohjelmiston asennusohje (mpollux jää toiseksi kortinlukijaohjelmistoksi)

erasmartcard-kortinlukijaohjelmiston asennusohje (mpollux jää toiseksi kortinlukijaohjelmistoksi) erasmartcard-kortinlukijaohjelmiston asennusohje (mpollux jää toiseksi kortinlukijaohjelmistoksi) Sisällysluettelo 1 erasmartcard 3 2 erasmartcard-ohjelmiston normaali asennus 4 2.1 Ennen asennusta 4 2.2

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

Rahastosalkun faktorimallin rakentaminen

Rahastosalkun faktorimallin rakentaminen Teknillinen korkeakoulu Mat 2.177 Operaatiotutkimuksen projektityöseminaari Kevät 2007 Evli Pankki Oyj Väliraportti 28.3.2007 Kristian Nikinmaa Markus Ehrnrooth Matti Ollila Richard Nordström Ville Niskanen

Lisätiedot

Vektorien pistetulo on aina reaaliluku. Esimerkiksi vektorien v = (3, 2, 0) ja w = (1, 2, 3) pistetulo on

Vektorien pistetulo on aina reaaliluku. Esimerkiksi vektorien v = (3, 2, 0) ja w = (1, 2, 3) pistetulo on 13 Pistetulo Avaruuksissa R 2 ja R 3 on totuttu puhumaan vektorien pituuksista ja vektoreiden välisistä kulmista. Kuten tavallista, näiden käsitteiden yleistäminen korkeampiulotteisiin avaruuksiin ei onnistu

Lisätiedot

CTRL+F Android-sovellus

CTRL+F Android-sovellus CTRL+F Android-sovellus Vili-Robert Hietala Opinnäytteen raportointi Sähköosasto Toukokuu 2015 KUVAILULEHTI 14.04.2015 Tekijä(t) Vili-Robert Hietala Työn laji Opinnäytteen raportointi Sivumäärä 7 Luottamuksellisuus

Lisätiedot

Tieverkon kunnon stokastinen ennustemalli ja sen soveltaminen riskienhallintaan

Tieverkon kunnon stokastinen ennustemalli ja sen soveltaminen riskienhallintaan Mat 2.4177Operaatiotutkimuksenprojektityöseminaari Tieverkonkunnonstokastinenennustemallija sensoveltaminenriskienhallintaan Väliraportti 3/4/2009 Toimeksiantajat: PöyryInfraOy(PekkaMild) Tiehallinto(VesaMännistö)

Lisätiedot

Kuvaruudun striimaus tai nauhoitus. Open Broadcaster Software V.20. Tero Keso, Atso Arat & Niina Järvinen (muokattu )

Kuvaruudun striimaus tai nauhoitus. Open Broadcaster Software V.20. Tero Keso, Atso Arat & Niina Järvinen (muokattu ) Kuvaruudun striimaus tai nauhoitus Open Broadcaster Software V.20 Tero Keso, Atso Arat & Niina Järvinen (muokattu 28.11.2017) OBS 1 (12) Sisällysluettelo Mikä on OBS... 2 Ohjelman perusasetukset... 2 Tarvittavat

Lisätiedot

Algoritmit 2. Luento 13 Ti Timo Männikkö

Algoritmit 2. Luento 13 Ti Timo Männikkö Algoritmit 2 Luento 13 Ti 30.4.2019 Timo Männikkö Luento 13 Simuloitu jäähdytys Merkkijonon sovitus Horspoolin algoritmi Ositus ja rekursio Rekursion toteutus Algoritmit 2 Kevät 2019 Luento 13 Ti 30.4.2019

Lisätiedot

Yhtälönratkaisusta. Johanna Rämö, Helsingin yliopisto. 22. syyskuuta 2014

Yhtälönratkaisusta. Johanna Rämö, Helsingin yliopisto. 22. syyskuuta 2014 Yhtälönratkaisusta Johanna Rämö, Helsingin yliopisto 22. syyskuuta 2014 Yhtälönratkaisu on koulusta tuttua, mutta usein sitä tehdään mekaanisesti sen kummempia ajattelematta. Jotta pystytään ratkaisemaan

Lisätiedot

Kieliversiointityökalu Java-ohjelmistoon. Ohje

Kieliversiointityökalu Java-ohjelmistoon. Ohje Kieliversiointityökalu Java-ohjelmistoon Ohje 2/6 SISÄLLYSLUETTELO 1 YLEISTÄ OHJELMASTA... 3 2 PÄÄ-IKKUNA...4 3 YLÄVALIKKO... 4 3.1 TIEDOSTO... 4 3.2 TOIMINTO... 4 3.3 ASETUKSET... 5 3.4 OHJE... 5 4 VÄLILEHDET...5

Lisätiedot

Kopioi cd-levyt kiintolevylle, niin fyysiset levyt joutavat eläkkeelle.

Kopioi cd-levyt kiintolevylle, niin fyysiset levyt joutavat eläkkeelle. TEE KONEESTA CD-VARASTO: Kopioi cd-levyt kiintolevylle, niin fyysiset levyt joutavat eläkkeelle. Siirrä cd-levysi TIETOJA Kopioi cd-levyt kiintolevylle levykuviksi, niin pääset sisältöön nopeasti käsiksi

Lisätiedot

ELOKUVATYÖKALUN KÄYTTÖ ANIMAATION LEIKKAAMISESSA. Kun aloitetaan uusi projekti, on se ensimmäisenä syytä tallentaa.

ELOKUVATYÖKALUN KÄYTTÖ ANIMAATION LEIKKAAMISESSA. Kun aloitetaan uusi projekti, on se ensimmäisenä syytä tallentaa. ELOKUVATYÖKALUN KÄYTTÖ ANIMAATION LEIKKAAMISESSA Kun aloitetaan uusi projekti, on se ensimmäisenä syytä tallentaa. Projekti kannattaa tallentaa muutenkin aina sillöin tällöin, jos käy niin ikävästi että

Lisätiedot

Kuvaruudun striimaus tai nauhoitus. Open Broadcaster Software V.20. Tero Keso, Atso Arat, Niina Järvinen & Valtteri Virtanen (muokattu 20.2.

Kuvaruudun striimaus tai nauhoitus. Open Broadcaster Software V.20. Tero Keso, Atso Arat, Niina Järvinen & Valtteri Virtanen (muokattu 20.2. Kuvaruudun striimaus tai nauhoitus Open Broadcaster Software V.20 Tero Keso, Atso Arat, Niina Järvinen & Valtteri Virtanen (muokattu 20.2.2019) Sivu 1 / 14 Sisällysluettelo Mikä on OBS... 2 Ohjelman perusasetukset...

Lisätiedot

Nexetic Shield Unlimited

Nexetic Shield Unlimited Nexetic Shield Unlimited Käyttöohje 1. Asennus ja käyttöönotto 2. Ohjelman käyttäminen 3. Lisäasetukset 4. Tietojen palautus 1. Asennus ja käyttöönotto Asiakasohjelman asennus Tehtyäsi tilauksen varmistusohjelmasta

Lisätiedot

Fluoresenssitomografian simulointia Loppudokumentti

Fluoresenssitomografian simulointia Loppudokumentti AS-0.3200 Fluoresenssitomografian simulointia Loppudokumentti Marianna Kontulainen 5/5/2010 1 Projektin tavoite Projektin tavoitteena oli simuloida fluoresenssitomografiaa Matlabilla. Fluoresenssitomografialla

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

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset

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

Lisätiedot

ax + y + 2z = 0 2x + y + az = b 2. Kuvassa alla on esitetty nesteen virtaus eräässä putkistossa.

ax + y + 2z = 0 2x + y + az = b 2. Kuvassa alla on esitetty nesteen virtaus eräässä putkistossa. BM20A5800 Funktiot, lineaarialgebra ja vektorit Harjoitus 7, Syksy 206 Tutkitaan yhtälöryhmää x + y + z 0 2x + y + az b ax + y + 2z 0 (a) Jos a 0 ja b 0 niin mikä on yhtälöryhmän ratkaisu? Tulkitse ratkaisu

Lisätiedot

z 1+i (a) f (z) = 3z 4 5z 3 + 2z (b) f (z) = z 4z + 1 f (z) = 12z 3 15z 2 + 2

z 1+i (a) f (z) = 3z 4 5z 3 + 2z (b) f (z) = z 4z + 1 f (z) = 12z 3 15z 2 + 2 BM20A5700 - Integraauunnokset Harjoitus 2 1. Laske seuraavat raja-arvot. -kohta ratkeaa, kun pistät sekä yläkerran että alakerran muotoon (z z 1 )(z z 2 ), missä siis z 1 ja z 2 ovat näiden lausekkeiden

Lisätiedot

Kerro kuvin: InPrint 2.8 asennus Asennus järjestelmänvalvojan oikeuksin

Kerro kuvin: InPrint 2.8 asennus Asennus järjestelmänvalvojan oikeuksin Kerro kuvin: InPrint 2.8 asennus Asennus järjestelmänvalvojan oikeuksin Kerro kuvin: InPrint 2.8 sisältää ilmaisen, yli 3000 symbolia sisältävän symbolipäivityksen. Uudet kuvasymbolit löytyvät erillisistä

Lisätiedot

Hellä ensikosketus. Tomi Kiviniemi

Hellä ensikosketus. Tomi Kiviniemi Hellä ensikosketus Tomi Kiviniemi Asialista Vähän debuggauksen filosofiaa. GDB:n peruskäyttö Netbeansissä. GDB:n peruskäyttö komentoriviympäristössä. Hieman edistyneempää sähellystä komentoriviympäristössä.

Lisätiedot

Suoran yhtälöt. Suoran ratkaistu ja yleinen muoto: Suoran yhtälö ratkaistussa, eli eksplisiittisessä muodossa, on

Suoran yhtälöt. Suoran ratkaistu ja yleinen muoto: Suoran yhtälö ratkaistussa, eli eksplisiittisessä muodossa, on Suoran htälöt Suoran ratkaistu ja leinen muoto: Suoran htälö ratkaistussa, eli eksplisiittisessä muodossa, on ANALYYTTINEN GEOMETRIA MAA5 = k + b, tai = a missä vakiotermi b ilmoittaa suoran ja -akselin

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

GPS Miten opin käyttämään? Mihin käytän?

GPS Miten opin käyttämään? Mihin käytän? GPS Miten opin käyttämään? Mihin käytän? Perusohjeita GPS-reitin siirtämisestä kartalle, Vinkkejä oman suunnistustekniikan analysoimiseen GPS-tiedon avulla Kuvat alla: o-training.net ja worldofo.com GPS-viiva

Lisätiedot

Picasa 3 -kuvankäsittelyopas, osa 2, käytä tehokkaasti

Picasa 3 -kuvankäsittelyopas, osa 2, käytä tehokkaasti Picasa 3 -kuvankäsittelyopas, osa 2, käytä tehokkaasti Tämä on ensimmäisen kuvankäsittelyoppaan jatko-osa. Tässä jatko-osassa opimme käyttämään Picasan mainioita ominaisuuksia tehokkaasti ja monipuolisesti.

Lisätiedot

4.3. Matemaattinen induktio

4.3. Matemaattinen induktio 4.3. Matemaattinen induktio Matemaattinen induktio: Deduktion laji Soveltuu, kun ominaisuus on osoitettava olevan voimassa luonnollisilla luvuilla. Suppea muoto P(n) : Ominaisuus, joka joka riippuu luvusta

Lisätiedot

Telecrane F24 Käyttö-ohje

Telecrane F24 Käyttö-ohje 1 Telecrane F24 Käyttö-ohje Sisällysluettelo - F24 Takuu & turvallisuusohjeet 3 - Käyttöönotto / paristot / vastaanottimen virtalähde 4 - Tunnistuskoodin vaihto 6 - Vastaanottimen virtalähteen jännitteen

Lisätiedot

Kimppu-suodatus-menetelmä

Kimppu-suodatus-menetelmä Kimppu-suodatus-menetelmä 2. toukokuuta 2016 Kimppu-suodatus-menetelmä on kehitetty epäsileiden optimointitehtävien ratkaisemista varten. Menetelmässä approksimoidaan epäsileitä funktioita aligradienttikimpulla.

Lisätiedot

Videon tallentaminen Virtual Mapista

Videon tallentaminen Virtual Mapista Videon tallentaminen Virtual Mapista Kamera-ajon tekeminen Karkean kamera ajon teko onnistuu nopeimmin Katseluohjelmassa (Navigointi > Näkymät > Tallenna polku). Liikeradan ja nopeuden tarkka hallinta

Lisätiedot

Sääasema Probyte JUNIOR

Sääasema Probyte JUNIOR Sääasema Probyte JUNIOR JUNIOR sääanturi COM1 12VDC RS-232 signaali PC W9x Excel-tiedosto PROBYTE JUNIOR sääanturin toimintaperiaate Yleistä Probyte SÄÄASEMA JUNIOR1 on sään mittaukseen tarkoitettu ulkoanturi,

Lisätiedot

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus:

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus: Dokumentaatio, osa 1 Tehtävämäärittely Kirjoitetaan lyhyt kuvaus toteutettavasta ohjelmasta. Kuvaus tarkentuu myöhemmin, aluksi dokumentoidaan vain ideat, joiden pohjalta työtä lähdetään tekemään. Kuvaus

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

2 Konekieli, aliohjelmat, keskeytykset

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

Lisätiedot

AS-0.3200 Automaatio- ja systeemitekniikan projektityöt

AS-0.3200 Automaatio- ja systeemitekniikan projektityöt AS-0.3200 Automaatio- ja systeemitekniikan projektityöt A11-03 USB-käyttöinen syvyysanturi 5op 13.9.2011-29.11.2011 Johan Backlund Ohjaaja: Johan Grönholm Johdanto Projektin tavoitteena oli suunnitella

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

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A. Tehtävä. Tämä tehtävä on aineistotehtävä, jossa esitetään ensin tehtävän teoria. Sen jälkeen esitetään neljä kysymystä, joissa tätä teoriaa pitää soveltaa. Mitään aikaisempaa tehtävän aihepiirin tuntemusta

Lisätiedot

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari Alkuraportti Avoimen lähdekoodin käyttö WWW-sovelluspalvelujen toteutuksessa Lappeenranta, 30.3.2008,

Lisätiedot

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä Edistymisraportti v. T4 (Toteutus 4) Päivitetty 15.3.2001 klo 18:13 2 (8) Sisällys 1 PROJEKTIN TILA...3 2 SUORITETUT TEHTÄVÄT...6 3 KÄYTETYT MENETELMÄT...7 4 ONGELMAT...8 EDISTYMISRAPORTTI 2 3 (8) 1. Projektin

Lisätiedot

TTY TKT-1110 Mikroprosessorit TKT. HEW-ohjeet ver 1.0

TTY TKT-1110 Mikroprosessorit TKT. HEW-ohjeet ver 1.0 Johdanto Nämä ohjeet opastavat sinut tekemään kurssiin TKT-1110 Mikroprosessorit liittyvät harjoitustyöt. Ohjeet sisältävät kolme osiota. Ensimmäisenä esitellään projektin luonti, mikä tehdään ainoastaan

Lisätiedot

MAA4 Abittikokeen vastaukset ja perusteluja 1. Määritä kuvassa olevien suorien s ja t yhtälöt. Suoran s yhtälö on = ja suoran t yhtälö on = + 2. Onko väittämä oikein vai väärin? 2.1 Suorat =5 +2 ja =5

Lisätiedot

2009 Mat-2.4177 Operaatiotutkimuksen Projektityöseminaari L

2009 Mat-2.4177 Operaatiotutkimuksen Projektityöseminaari L 2009 Mat-2.4177 Operaatiotutkimuksen Projektityöseminaari L Väliraportti 25.2.2009 Puustokuvioiden korjuukelpoisuus- ja saavutettavuusanalyysi Juha Valvanne Juho Matikainen Joni Nurmentaus Lasse Östring

Lisätiedot

4. Funktion arvioimisesta eli approksimoimisesta

4. Funktion arvioimisesta eli approksimoimisesta 4. Funktion arvioimisesta eli approksimoimisesta Vaikka nykyaikaiset laskimet osaavatkin melkein kaiken muun välttämättömän paitsi kahvinkeiton, niin joskus, milloin mistäkin syystä, löytää itsensä tilanteessa,

Lisätiedot

GIS-automatisointi ja ohjelmointi/skriptaus. Harri Antikainen

GIS-automatisointi ja ohjelmointi/skriptaus. Harri Antikainen GIS-automatisointi ja ohjelmointi/skriptaus Harri Antikainen Mistä nyt puhutaan? Automatisointi: Mikä tahansa tapa teettää tietokoneella asioita ilman että käyttäjän tarvitsee tehdä muuta kuin laittaa

Lisätiedot

Lauseen erikoistapaus on ollut kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa seuraavassa muodossa:

Lauseen erikoistapaus on ollut kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa seuraavassa muodossa: Simo K. Kivelä, 13.7.004 Frégier'n lause Toisen asteen käyrillä ellipseillä, paraabeleilla, hyperbeleillä ja niiden erikoistapauksilla on melkoinen määrä yksinkertaisia säännöllisyysominaisuuksia. Eräs

Lisätiedot

Tietokanta.java Luokka tarjoaa välineet tietokannan lukemiseen. Haetuista tiedoista muodostetaan kurssi- ja opetus-olioita.

Tietokanta.java Luokka tarjoaa välineet tietokannan lukemiseen. Haetuista tiedoista muodostetaan kurssi- ja opetus-olioita. Arkkitehtuurikuvaus Käytössä olevat java-luokat: Kansio: /WEB_INF/classes/ - käännetyt luokat Kansio: /WEB_INF/src/ - lähdekoodi custom_pojos: Kurssi.java Java-luokka, jonka sisältö vastaa tietokannassa

Lisätiedot

Automaattinen arviointi ja pika-arviointi EXAM-tenteissä. Marjut Anderson

Automaattinen arviointi ja pika-arviointi EXAM-tenteissä. Marjut Anderson Automaattinen arviointi ja pika-arviointi EXAM-tenteissä Marjut Anderson Yleistä automaattisesta arvioinnista Opettaja voi valita tentilleen automaattisen arvioinnin, jos tentti sisältää vain automaattisesti

Lisätiedot

Verkkotietopalvelu Käyttöopas osiot koskien Green Card suoritusten vastaanottajien sekä suorittajien tietojen lisäämistä

Verkkotietopalvelu Käyttöopas osiot koskien Green Card suoritusten vastaanottajien sekä suorittajien tietojen lisäämistä Verkkotietopalvelu Käyttöopas osiot koskien Green Card suoritusten vastaanottajien sekä suorittajien tietojen lisäämistä Seurakäyttäjille Pähkinänkuoressa: 1. Kirjaudu järjestelmään admin.golf.fi seurakohtaisilla

Lisätiedot

Käännös, linkitys ja lataus

Käännös, linkitys ja lataus Luento 10 (verkkoluento 10) Käännös, linkitys ja lataus Ohjelmasta prosessiin Käännösyksikkö Kääntämisen vaiheet Makrot, literaalit Staattinen ja dynaaminen linkitys Nimien sidonta Lausekielestä suoritukseen

Lisätiedot

Tentin asetukset. Tentin lisääminen. Tentin asetukset

Tentin asetukset. Tentin lisääminen. Tentin asetukset Tentin asetukset Moodlen tentti-aktiviteetin perusasetukset käydään läpi tällä sivulla. Jos etsit ohjetta kysymysten luomiseen, katso erillinen ohjesivu kysymyspanki sta. Tentti soveltuu "perinteisen tenttimisen"

Lisätiedot

Käyttöliittymän muokkaus

Käyttöliittymän muokkaus Käyttöliittymän muokkaus Ohjelman pitkän kehityshistorian takia asetukset ovat jakaantuneet useampaan eri kohtaan ohjelmassa. Ohessa yhteenveto nykyisistä asetuksista (versio 6.4.1, 2/2018). Ylä- ja sivupalkkien

Lisätiedot

Pika-asennusohjeet Suomeksi

Pika-asennusohjeet Suomeksi Pika-asennusohjeet Suomeksi (Virallinen ohje löytyy asennuslevyltä Englanninkielisenä) Tulosta tämä ohje asennuksen avuksi. Ensiksi asennetaan itse ohjelma, sitten rekisteröidytään testerin käyttäjäksi

Lisätiedot

TEEMU ROOS (KALVOT MUOKATTU PATRIK HOYERIN LUENTOMATERIAALISTA)

TEEMU ROOS (KALVOT MUOKATTU PATRIK HOYERIN LUENTOMATERIAALISTA) JOHDATUS TEKOÄLYYN TEEMU ROOS (KALVOT MUOKATTU PATRIK HOYERIN LUENTOMATERIAALISTA) KONEOPPIMISEN LAJIT OHJATTU OPPIMINEN: - ESIMERKIT OVAT PAREJA (X, Y), TAVOITTEENA ON OPPIA ENNUSTAMAAN Y ANNETTUNA X.

Lisätiedot

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } } Yksikkötestauksella tarkoitetaan lähdekoodiin kuuluvien yksittäisten osien testaamista. Termi yksikkö viittaa ohjelman pienimpiin mahdollisiin testattaviin toiminnallisuuksiin, kuten olion tarjoamiin metodeihin.

Lisätiedot

TEHTÄVÄ 4: Microsoft Windows Deployment Services asennus ja hallinta

TEHTÄVÄ 4: Microsoft Windows Deployment Services asennus ja hallinta TEHTÄVÄ 4: Microsoft Windows Deployment Services asennus ja hallinta Windows Deployment Services, WDS Käyttöjärjestelmän asennus työasemalle Dynamic Host Configuration Protocol, DHCP * Domain Name System,

Lisätiedot

Käyttöohje. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Käyttöohje. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Käyttöohje Boa Open Access Helsinki 5.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Ilmari Heikkinen

Lisätiedot

Hannu Mäkiö. kertolasku * jakolasku / potenssiin korotus ^ Syöte Geogebran vastaus

Hannu Mäkiö. kertolasku * jakolasku / potenssiin korotus ^ Syöte Geogebran vastaus Perusohjeita, symbolista laskentaa Geogebralla Kielen vaihtaminen. Jos Geogebrasi kieli on vielä englanti, niin muuta se Options välilehdestä kohdasta Language suomeksi (finnish). Esittelen tässä muutaman

Lisätiedot

EMVHost Online SUBJECT: EMVHOST ONLINE CLIENT - AUTOMAATTISIIRROT COMPANY: EMVHost Online Client sovelluksen käyttöohje AUTHOR: DATE: 15.03.

EMVHost Online SUBJECT: EMVHOST ONLINE CLIENT - AUTOMAATTISIIRROT COMPANY: EMVHost Online Client sovelluksen käyttöohje AUTHOR: DATE: 15.03. EMVHost Online SUBJECT: COMPANY: COMMENTS: AUTHOR: EMVHOST ONLINE CLIENT - AUTOMAATTISIIRROT NETS OY EMVHost Online Client sovelluksen käyttöohje NETS OY DATE: 15.03.2011 VERSION: 1.0 1 SISÄLLYS SISÄLLYS...

Lisätiedot

Nosturirobotti. robotin tarkoitus. mikä on robotin tehtävä. Kurssin robottiohjelmointi, kesä 2011 harjoitustyö

Nosturirobotti. robotin tarkoitus. mikä on robotin tehtävä. Kurssin robottiohjelmointi, kesä 2011 harjoitustyö Kurssin robottiohjelmointi, kesä 2011 harjoitustyö Juha Hämäläinen (juha.h.hamalainen@jyu.fi) Jussi Jokinen (jussi.p.p.jokinen@jyu.fi) Videoita robotin toiminnasta: http://www.youtube.com/user/hamismies

Lisätiedot

JOHDATUS TEKOÄLYYN TEEMU ROOS

JOHDATUS TEKOÄLYYN TEEMU ROOS JOHDATUS TEKOÄLYYN TEEMU ROOS TERMINATOR SIGNAALINKÄSITTELY KUVA VOIDAAN TULKITA KOORDINAATTIEN (X,Y) FUNKTIONA. LÄHDE: S. SEITZ VÄRIKUVA KOOSTUU KOLMESTA KOMPONENTISTA (R,G,B). ÄÄNI VASTAAVASTI MUUTTUJAN

Lisätiedot

NEX-3/NEX-5/NEX-5C A-DTS-100-12(1) 2010 Sony Corporation

NEX-3/NEX-5/NEX-5C A-DTS-100-12(1) 2010 Sony Corporation NEX-3/NEX-5/NEX-5C Tämän laiteohjelmistopäivityksen uudet toiminnot ja niiden toiminta on kuvattu tässä. Käyttöopas ja mukana toimitetulla CD-ROM-levyllä oleva α-käsikirja sisältävät lisätietoja. 2010

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

TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD)

TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD) TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD) Ohjelmointikäytännöt 21/3/11 Mikko Vuorinen Metropolia Ammattikorkeakoulu 1 Sisältö 1) Mitä on hyvä koodi? 2) Ohjelmointikäytäntöjen merkitys? 3) Koodin asettelu

Lisätiedot