Peliohjelmointirajapinnoista
|
|
- Jalmari Järvinen
- 6 vuotta sitten
- Katselukertoja:
Transkriptio
1 Peliohjelmointi: Peliohjelmointirajapinnoista Teppo Soininen & Antti Puhakka Lähteet: OpenGL-spesifikaatio, Tietokonegrafiikka luentomoniste, MSDN, Introduction to 3D Game Programming with DirectX 9.0
2 Open Graphics Library Open Graphics Library (OpenGL) sai alkunsa 1992 SGI:n esittelemästä 3D rajapinnasta nimeltä IRIS GL OpenGL oli alkuaikoina tähdätty ammattikäyttöön tehovaatimustensa takia Windows NT 4.0:ssa oli OpenGL jo mukana (muistanette screensaverit joissa pyöri esim. kellonaika?) Grafiikkaraudan kehittyessä myös halvemmat viihdekäyttöön tarkoitetut laitteet kykenivät vastaamaan OpenGL:n tehovaatimuksiin Nykyään yksi eniten käytetty grafiikka API 2
3 OpenGL on alustariippumaton grafiikka API Sisältää ~150 funktiota Ei sisällä mitään toiminnallisuutta ikkunoinin tai syötteidenkäsittelyn toteuttamiseksi OpenGL:ää standardoi OpenGL Architecture Review Board (ARB) 3DLabs, Apple, ATI, NVIDIA, IBM, Intel, SGI, Sun Microsystems, HP OpenGL rajapinta löytyy muutamalle eri kielelle (C/C++, ADA, Fortran ja Java) OpenGL on käytännössä iso tilakone Yli sata globaalia tilamuuttujaa (on/off) 3
4 OpenGL 1.1:n tilakone 4
5 Ohjelmointinäkökulmasta OpenGL on kokoelma funktiota joiden avulla voi: Määritellä geometrisia 2D/3D objekteja jotka koostuvat kymmenestä perusprimitiivistä GL_POINTS GL_LINES, GL_LINESTRIP, GL_LINE_LOOP GL_TRIANGLES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN GL_QUADS, GL_QUAD_STRIP GL_POLYGON Hallita määriteltyjen objektien piirtämistä frame bufferiin (transforamaatiot, valaistukset jne) glrotate(), gltranslate(), glscale()... 5
6 OpenGL:stä ei löydy funktioita monimutkaisten primitiivien (pallot, kuutiot jne) piirtämiseen Monimutkaisempien primitiivien piirtämiseen tehdään usein omat Mesh luokat Jotkut korkeammantason rajapinnat tarjoavat apuja monimutkaisempien muotojen piirtämiseen (yleensä hyödyttömiä testaamisen ulkopuolella) 6
7 OpenGL hoitaa piirtämisen moniosaisella pipelinella Jokaisessa osassa tehdään yksi primitiivien esittämiseen tarvittava vaihe OpenGL Visualization Programming Pipeline 7
8 OpenGL v1.5 ( ) Yksi merkittävimmistä uudistuksista tässä versiossa olivat BufferObjektit OpenGL v2.0 ( ) OpenGL Shader Language vakiona (aikaisemmin erillinen) Textuureja, joiden koko ei ole 2:n potenssissa, voidaan käyttää (virheettömästi!) 8
9 OpenGL tukikirjastot SGI pitää kirjaa OpenGL:ään tehdyistä kirjastoista ARB:n speksaamia kirjastoja n. 40 Muita kirjastoja tässä listassa on 300+ Käyttöjärjestelmien mukanan tulee kirjastoja ikkunoinnin hoitamiseen OpenGL:n kanssa GLX (Unix) WGL (Windows) AGL (Apple) 9
10 GL Utility Toolkit (GLUT) Tarjoaa tominnallisuutta mm. ikkunoinnille, menuille, syöttölaitteille ja joillekkin perus muodoille (esim. pallo ja kuutio) Soveltuu lähinnä pieniin OpenGL sovelluksiin Rutiinit cross-platform ominaisuuksiensa takia liian hitaita todelliseen tehokäytöön (esim. peleihin) -> yleensä käytetetään käyttöjärjestelmän omia ikkunointi menetelmiä (GLX, WGL) GLUT ei ole avointa lähdekoodia (Mark Kilgard omistaa oikeudet GLUT:iin) Uusin versio
11 Simple Directmedia Layer (SDL) Alustariippumaton grafiikka- ja multimediarajapinta, toimii Windowsissa, Linuxissa, Macissa, Solariksessa jne. jne. Toiminnallisuutta mm. 2D- ja 3D-grafiikka, audio, syötelaitteet (hiiri, näppis ja joystick), tapahtumat, timerit,... SDL on ohut wrapperikerros, joka kutsuu esim. OpenGLrutiineja Kirjoitettu alunperin C:llä Bindingeja löytyy ainakin seuraaville kielille: Ada, Eiffel, Java, Lua, ML, Perl, PHP, Pike, Python, Ruby 11
12 Bindingit lisäävät käytännössä kuitenkin yhden kerroksen lisää raudan ja koodin väliin josta seuraa hidastaa koodia (ei usein käytetä tehoa vaativissa sovelluksissa, kuten peleissä) Käytännössä SDL on (kuuleman mukaan) melko hyvä ja yksinkertainen Suosiota lisännyt SDL:n open source -lisenssi Uusin versio
13 Microsoft DirectX DirectX-rajapinnan kehittäminen aloitettiin Microsoftilla joskus 90-luvun alussa OpenGL:n tehovaatimuksiin pystyttiin vastaamaan ainoastaan kallilla ammattilais laitteistoilla Ideana kehittää viihdekäyttöön tarkoitettu vatine OpenGL:lle Microsoftin aloitti DOS:in hyllyttämisen Piti saada pelien kehittäjät siirtymään Windows ympäristöön Tarvittiin rajapinta jonka avulla pelejä voitiin tehdä 13
14 Pelikoodaajat olivat aluksi haluttomia siirtymään Windowsiin DOS:ssa koodaajat pääsivät käsiksi suoraan "rautaan" ja tämän ansiosta saatiin aikaan tehokasta koodia Windowsissa pääsi "rautaan" käsiksi vain WinAPI:n kautta (ei tehokasta) Microsoft yritti korjata tämän ongelman WinG rajapinnan avulla Rajapinta oli vaikea käyttää ja melko tehoton Civilization ja Civilization 2 tiettävästi kuitenkin käyttivät WinG API:a DirectX:n ensimmäisen verion kehittely aloitettiin 1994 ja sitä tuettiin Windows 95:stä eteenpäin 14
15 DirectX:n ensimmäiset versiot olivat erittäin kokeellisia ja hankalia käyttää OpenGL:n tehovaatimuksiin pystyttiin nyt vastaamaan kuluttajille sopivan hintaisilla 3D kalustolla ja tämä aiheutti vastarintaa; "miksi käyttää DX:ää kun hyvä vaihtoehto on jo olemassa?" DirectX 5 oli ensimmäinen joka saavutti enemmän hyväksyntää Nykyään DirectX:ää käytetään erittäin paljon viihteeseen suunnattujen sovellusten ohjelmoinnissa Laitteistovalmistajat tukevat todella hyvin XBox käyttää modifioitua DirectX 8 rajapintaa Pelejä: FarCry, Doom 3 15
16 Viimeisin versio on DirectX 9.0 DirectX on kokoelma ohjelmointirajapintoja pelien ja multimedian ohjelmointiin 1) DirectGraphics - 2D/3D piirtämiseen (yhdistetty DirectDraw ja Direct3D) 2) DirectInput - syöttölaitteiden käsittelyyn (tuki mm. force feedbackille) 3) DirectPlay - rajapinta verkkopelaamista varten o Ei saavuttanut koskaan erityisen suurta suosiota 4) DirectSound - äänenkäsittelyyn (waveform) 5) DirectMusic - pakatun musiikin toistamiseen (MIDI, DMusic Producer) o Toimii DirectSound:in päällä 6) DirectShow - multimedian toistoon, tallentamiseen ja käsittelyyn (mm. videostreamit) 16
17 o Perustuu erilaisten filtterien yhdistelemiseen 7) DirectSetup - DirectX:n asentamisen hoitava API 8) DirectX Media Objects - streamattavat mediaobjektit (enkooderit, dekooderit ja efektit) o Yksinkertaisempi käyttää kuin DirectShow DirectX:stä käytetään eniten Direct3D:tä Useimmat em. rajapinnoista aiotaan korvata Windows Vistan julkaisemisen jälkeen XInput, XACT, Media Foundation... Lisää tukea suojatulle sisällölle jne. 17
18 Direct3D Direct3D toiminta perustuu Hardware Abstraction Layeriin (HAL) Grafiikkakorttien valmistajat toteuttavat oman HAL:n DirectX:ää varten Direct3D Hardware Abstraction Layer 18
19 Kaikki mitä on nahdollista tehdä, tehdään "raudalla" Mikäli grafiikkakortti ei tue jotain toiminnallisuutta, sitä voidaan mahdollisesti simuloida ohjelmistollisesti Direct3D:n kautta voidaan kysellä tukea eri toiminnallisuuksille (erityisen tärkeää silloin jos jotain toiminnallisuutte ei voi simuloida ohjelmistollisesti) Direct3D on toimintaperiaatteeltaan hyvin samantapainen kuin OpenGL Piirrellään vertexeistä koottuja perusprimitiivejä ruudulle (TriangleFan, TriangleStrip, TriangleList, LineStrip, LineList, PointList) 19
20 Direct3D Fixed Function and Programmable Transformation and Lighting Pipeline Direct3D ei ole alustariippumaton joten sen rutiinit on tehty ainoastaan Winows mielessä Tästä johtuen Direct3D:ssä on joitain erikoisen tuntuisia piirteitä 20
21 Windows-ohjelmoinnista Käytettäessä suoraan Windows API:a grafiikkaohjelmointiin täytyy huolehtia itse ikkunoiden luomisesta, viestien käsittelystä jne. Jo pelkän Hello World -tyyppisen sovelluksen aikaansaamiseksi tarvitaan paljon koodia Perus-Windows-sovellus sisältää WinMain-pääohjelman, joka on muotoa int APIENTRY WinMain( HINSTANCE hinstance, HINSTANCE hprevinstance, LPSTR lpcmdline, int ncmdshow ) 21
22 Pääohjelma tekee yleensä ainakin seuraavat asiat: 1. Rekisteröi ikkunaluokan 2. Luo tähän luokkaan kuuluvan ikkunan 3. Tekee ikkunan näkyväksi ja asettaa sen päivittymään 4. Pyörii silmukassa, joka lukee viestejä sovelluksen viestijonosta, ja ohjaa viestit eteenpäin ikkunoiden viestinkäsittelijöille 5. Lopettaa ohjelman saatuaan WM_QUIT-viestin Ikkunaluokan ominaisuudet määrätään sijoittamalla arvoja WNDCLASS- tai WNDCLASSEX-tyyppisen struktin kenttiin 22
23 Strukti annetaan parametriksi RegisterClass- tai RegisterClassEx-funktiolle, joka rekisteröi luokan: // Create a WNDCLASSEX struct and fill its memory area with zeros WNDCLASSEX wc; ZeroMemory( &wc, sizeof( WNDCLASSEX ) ); // Fill in the needed members of the struct created above wc.cbsize = sizeof( WNDCLASSEX ); // size of the window struct in bytes wc.style = CS_HREDRAW CS_VREDRAW CS_OWNDC; // window styles to use wc.lpfnwndproc = MsgProc; // function name of event handler wc.hinstance = hinstance; // handle to this apps instance wc.hbrbackground = ( HBRUSH )GetStockObject( GRAY_BRUSH ); // background colour of window wc.hicon = LoadIcon( NULL, IDI_APPLICATION ); // icon for the app window wc.hiconsm = LoadIcon( NULL, IDI_APPLICATION ); // icon when minimized to taskbar wc.hcursor = LoadCursor( NULL, NULL ); wc.lpszclassname = strappname; // name for this class // Register the window class RegisterClassEx( &wc ); Itse ikkuna luodaan CreateWindow tai CreateWindowExfunktiolla, jolle annetaan ikkunaluokan nimi g_hwnd = CreateWindow( strappname, strappname, WS_OVERLAPPEDWINDOW, 10, 10, g_d3dsettings.m_ndevicewidth, g_d3dsettings.m_ndeviceheight, NULL, NULL, wc.hinstance, NULL ); ShowWindow( g_hwnd, ncmdshow ); UpdateWindow( g_hwnd ); 23
24 Funktio palauttaa HWND-tyyppisen kahvan luotuun ikkunaan o Samasta luokasta voi halutessaan luoda useamman ikkunan Pääsilmukka lukee viestejä PeekMessage-funktiolla o Vastaava GetMessage-funktio jää odottamaan että viestejä on jonossa // Create a MSG struct for the widows messages MSG msg; ZeroMemory( &msg, sizeof( msg ) ); // The windows message loop while ( msg.message!= WM_QUIT ) { // If messages need to be processed do it, otherwise enter game loop if ( PeekMessage( &msg, NULL, 0U, 0U, PM_REMOVE ) ) { } else { TranslateMessage( &msg ); DispatchMessage( &msg ); GameLoop(); } } 24
25 DispatchMessage-funktio välittää viestit asianmukaisille ikkunoille o TranslateMessage muuttaa mm. ASCII-merkkeihin liittyviä näppäintapahtumaviestejä WM_CHAR-viesteiksi Jokaiselle ikkunaluokalle määritellään oma viestinkäsittelyfunktio, joka käsittelee ko. luokan ikkunoita koskevat viestit: LRESULT WINAPI MsgProc( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam ) Viesti voi olla esimerkiksi näppäimistöviesti tai WM_PAINT, joka tarkoittaa että ikkuna kaipaa päivittämistä 25
26 Käytettäessä perinteistä Windows GDI:tä (Graphics Device Interface) piirto ikkunaan tapahtuu siihen liittyvän Device Context:in (DC) kautta Device context sisältää tiedon kyseiseen ikkunaan tai laitteeseen liittyvistä parametreistä: o käytettävissä olevat grafiikkaobjektit, kuten kynät, bittikartat, fontit, värit o tausta, skaalaaminen, koordinaatistomuunnokset, leikkausalue (clipping region) jne. Kutsumalla BeginPaint-funktiota ikkunafunktio saa ikkunaan liittyvän device context:in sekä PAINTSTRUCT-tyyppisen struktin 26
27 tämän yksi kenttä on RECT-tyyppinen strukti, joka sisältää päivitettävän alueen vasemman yläkulman ja oikean alakulman koordinaatit hdc = BeginPaint( hwnd, &PaintStruct );... EndPaint( hwnd, &PaintStruct ); DC:n koko ikkunaan saa myös GetDC-kutsulla, ja piirtoalueen GetClientRect-kutsulla OpenGL-ohjelmoinnissa tarvitaan lisäksi DC:hen läheisesti liittyvä Rendering Context, johon piirtäminen tapahtuu o Tämän saa wglcreatecontext(hdc) -kutsulla, ja se aktivoidaan wglmakecurrent(hdc,hrc) -kutsulla DirectX toimii kuitenkin hieman eri tavalla, koska se perustuu Microsoftin COM-komponenttimalliin 27
28 DirectX ja COM DirectX perustuu Microsoftin Component Object Model:iin (COM) COM komponenteissa kantava idea on luoda komponentteja (olioita) jolta komponenttien käyttäjä pyytää jotain tiettyä interfacea käyttöönsä Yksi komponentti sisältää usein monta erillistä interfacea Komponenttien erilliset interfacet eivät pääse toistensa sisältämään tietoon tai toiminnallisuuteen käsiksi (muuten kuin normaaleja reittejä) Interfacet eivät muutu niiden julkaisun jälkeen 28
29 Kaikki COM komponenttien interfacet periytetään IUnknown interfacesta jolla on ainoastaan metodit: AddRef(), QueryInterface() ja Release() Object ja Interface käsitteet sekavia MS:n omassa jopa dokumentaatiossa In casual usage, an object may sometimes be referred to by the name of its principle interface. However, strictly speaking, the two terms are not interchangeable IUnknown Interface1 Interface2 COM Object 29
30 Toimintaperiaate: 1) Käyttäjä pyytää interfacen joltain COM komponentilta 2) Komponentti antaa pyydetyn interfacen käyttäjälle ja lisää omaa reference counttia AddRef() -metodilla jotta tietää montako interfacea siitä on tehty 3) Käyttäjä tekee saamallaan interfacella mitä haluaa 4) Käyttäjä ei tarvitse interfacea ja tuhoaa sen kaikille COM interfaceille yhteisellä metodilla Release() 5) Release() -metodin seurauksenä COM komponentti (jolta interface oli pyydetty) vähentää reference counttiaan, mikäli interface oli viimeinen käytössä oleva interface tästä komponentista, komponentti tuhotaan. Muuten siltä voi edelleen käyttää olemassaolevien osoittimien kautta. 30
31 Release() ja AddRef() metodien taustalla on muistinkulutuksen tehostaminen ja hallittavuuden parantaminen Tavallisimpia ongelmia peleissä on muistin vuotamisesta aiheutuva pelin kaatuminen (peleissä toistetaan usein samoja rutiineja erittäin usein) COM interfacen metodien paluuarvot ovat usein HREF tyyppisiä Kertovat boolean tyyppisesti (tosin moniarvoisesti) tuloksen laadusta Tyypillisiä arvoja ovat: S_OK, E_FAIL (S -> Success, E -> Error) DirectX:n funktiot ottavat tyypillisesti parametrikseen jonkin DX:n määrittelemän struktin, jonka jäseniä täytetään tarpeen mukaan 31
32 Esimerkki: luodaan IDirect3D9 interface ja pyydetään siltä IDirect3DDevice9 g_pd3d = Direct3DCreate9( D3D_SDK_VERSION );... result = g_pd3d->createdevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hwndtarget, D3DCREATE_HARDWARE_VERTEXPROCESSING, &d3dpp, g_pdevice ); LPDIRECT3D9 g_pd3dcopy = g_pd3d; g_pd3dcopy->addref();... g_pdevice->release(); g_pd3dcopy->release();... g_pd3d->release(); 32
Peliohjelmointirajapinnoista
Peliohjelmointi: Peliohjelmointirajapinnoista Teppo Soininen & Antti Puhakka Lähteet: www.opengl.org, OpenGL-spesifikaatio, Tietokonegrafiikka luentomoniste, MSDN, Introduction to 3D Game Programming with
LisätiedotWindowsin sanomanvälitys. Juha Järvensivu 2007
Windowsin sanomanvälitys Juha Järvensivu juha.jarvensivu@tut.fi 2007 Sisällys Windowsin sanomat Sanomanvälitysmekanismi Ikkunan kahva Sanomien lähettäminen Esimerkki winamp Tapahtumapohjainen toiminta
LisätiedotWindowsin sanomanvälitys. Juha Järvensivu juha.jarvensivu@tut.fi 2008
Windowsin sanomanvälitys Juha Järvensivu juha.jarvensivu@tut.fi 2008 Sisällys Windowsin sanomat ja Sanomanvälitysmekanismi Ikkunan kahva ja Sanomien lähettäminen Windows API ohjelmointi Resurssit Sanomat
LisätiedotOpenGL:n perusteet - Osa 1: Ikkunan luominen
OpenGL:n perusteet - Osa 1: Ikkunan luominen OpenGL on käyttöjärjestelmäriippumaton kirjasto 2D- ja 3D-grafiikan piirtoon. Tämä artikkelisarja opettaa sinulle 3D-grafiikan perusteet OpenGL:ää käyttäen.
LisätiedotWinapi. Juha Järvensivu 2007
Winapi Juha Järvensivu juha.jarvensivu@tut.fi 2007 Sisällys Osa 1 Ikkunan päivittäminen Resurssikuvaustiedosto Valikot Dialogien luonti Osa 2 Winapi ja olio-ohjelmointi (esimerkki) Yksinkertainen winapi-sovellus
LisätiedotKontrollilaitteet. Arsenaali
Arsenaali Kontrollilaitteet Tietokonepeleissä käytettäviä kontrollilaitteita on valtava määrä Kaikilla alustoilla, joilla pelejä pelataan on jokin vakio kontrolleri PC: Hiiri ja näppäimistö Konsolit: Controller
LisätiedotPeliohjelmointi: Kontrollilaitteet. Teppo Soininen
Peliohjelmointi: Kontrollilaitteet Teppo Soininen Lähteet: Core Techniques and Algorithms in Game Programming, MSDN, www.xbox.com, www.playstation.com Arsenaali Tietokonepeleissä käytettäviä kontrollilaitteita
LisätiedotTapahtumapohjainen ohjelmointi. Juha Järvensivu juha.jarvensivu@tut.fi 2007
Tapahtumapohjainen ohjelmointi Juha Järvensivu juha.jarvensivu@tut.fi 2007 Sisältö Tapahtumapohjainen ohjelmointi Käyttöliittymän rakenne Pääikkuna (top-level window) Lapsi-ikkuna (child window) Dialogit
LisätiedotSisällys. T-111.4300 Tietokonegrafiikan perusteet. OpenGL-ohjelmointi 11/2007. Mikä on OpenGL?
T-111.4300 Tietokonegrafiikan perusteet OpenGL-ohjelmointi 11/2007 Sisällys Mikä on OpenGL? historia nykytilanne OpenGL:n toiminta Piirtäminen ja matriisit Muuta hyödyllistä kameran sijoittaminen valaistus
LisätiedotOpenGL:n perusteet - Osa 2: 3D grafiikka
OpenGL:n perusteet - Osa 2: 3D grafiikka OpenGL on käyttöjärjestelmäriippumaton kirjasto 2D- ja 3D-grafiikan piirtoon. Tämä artikkelisarja opettaa sinulle 3D-grafiikan perusteet OpenGL:ää käyttäen. Esimerkeissä
LisätiedotGraafisen käyttöliittymän ohjelmointi Syksy 2013
TIE-11300 Tietotekniikan vaihtuva-alainen kurssi Graafisen käyttöliittymän ohjelmointi Syksy 2013 Luento 5 Qt: Grafiikan piirto Juha-Matti Vanhatupa Sisältö GDI Qt paint system Koordinaatisto-operaatioita
LisätiedotGraafisen käyttöliittymän ohjelmointi
TIE-11300 Tietotekniikan vaihtuva-alainen kurssi Graafisen käyttöliittymän ohjelmointi Luento 2 Tapahtumapohjainen ohjelmointi Juha-Matti Vanhatupa Sisältö Tapahtumapohjainen ohjelmointi Tapahtumakuuntelijoiden
LisätiedotT Tietokonegrafiikan perusteet. OpenGL-ohjelmointi
T-111.4300 Tietokonegrafiikan perusteet OpenGL-ohjelmointi Id Softwaren huhtikuussa 2004 julkaisema Doom 3 -peli käyttää OpenGL-kirjastoa. Sisällys Mikä on OpenGL? historia nykytilanne OpenGL:n toiminta
LisätiedotOhjelmointikielet ja -paradigmat 5op. Markus Norrena
Ohjelmointikielet ja -paradigmat 5op Markus Norrena Ko#tehtävä 4 Viimeistele "alkeellinen kuvagalleria". Käytännössä kaksi sivua Yksi jolla voi ladata kuvia palvelimelle (file upload) Toinen jolla ladattuja
LisätiedotCODEONLINE. Monni Oo- ja Java-harjoituksia. Version 1.0
CODEONLINE Monni Oo- ja Java-harjoituksia Version 1.0 Revision History Date Version Description Author 25.10.2000 1.0 Initial version Juha Johansson Inspection History Date Version Inspectors Approved
LisätiedotTIES471 Reaaliaikainen renderöinti
TIES471 Reaaliaikainen renderöinti Kotitehtävä 2.3.3 Muistin kaistanleveys Koko kaistanleveyden kustannus: B = d * Zr + o(d) * (Z w + C w + T r ) Lisätään vielä tekstuuri välimuisti (texture cache) vaikutus
LisätiedotRajapinta (interface)
1 Rajapinta (interface) Mikä rajapinta on? Rajapinta ja siitä toteutettu luokka Monimuotoisuus ja dynaaminen sidonta Rajapinta vs periytyminen 1 Mikä rajapinta on? Rajapintoja käytetään, kun halutaan määritellä
LisätiedotTapahtumapohjainen ohjelmointi. Juha Järvensivu 2008
Tapahtumapohjainen ohjelmointi Juha Järvensivu juha.jarvensivu@tut.fi 2008 Sisältö Tapahtumapohjainen ohjelmointi Käyttöliittymän rakenne Pääikkuna (top-level window) Lapsi-ikkuna (child window) Dialogit
Lisätiedot1 of
http:people.cc.jyu.fi/~minurmin/gko/materiaali/esimerkit/... http:people.cc.jyu.fi/~minurmin/gko/materiaali/esimerkit/... /* PROGRAM: Mhello.c PURPOSE: "Pienin Windows-ohjelma". Tulostaa näyttöön tekstin
LisätiedotCUDA. 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ätiedotJWT 2016 luento 11. to 21.4.2016 klo 14-15. Aulikki Hyrskykari. PinniB 1097. Aulikki Hyrskykari
JWT 2016 luento 11 to 21.4.2016 klo 14-15 Aulikki Hyrskykari PinniB 1097 1 Viime luennolla o AJAX ja JSON, harjoitustyön tehtävänanto, vierailuluento avoimesta datasta Tänään o APIt rajapinnoista yleisesti
LisätiedotKiertokysely. Sulautetut järjestelmät Luku 2 Sivu 1 (??)
Sulautetut järjestelmät Luku 2 Sivu 1 (??) Kiertokysely Perinteiset ohjelmointikielet kuten C tukevat hyvin sekventiaalista ohjelmointia, jossa herätteisiin reagointi on helppoa toteuttaa pollauksella
LisätiedotJAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?
JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 10: Aliohjelmat, foreign function interface Riku Saikkonen (osa kalvoista on suoraan ei-laajan kurssin luennoista) 25. 3. 2013 Sisältö 1 Aliohjelmien käyttäminen
LisätiedotTIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö
TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö Tekijät: Eemeli Honkonen Joni Metsälä Työ palautettu: SISÄLLYSLUETTELO: 1 SEMINAARITYÖN KUVAUS... 3 2 TIETOKANTA... 3 2.1 MITÄ TIETOKANNAT SITTEN OVAT?... 3
LisätiedotTIE PRINCIPLES OF PROGRAMMING LANGUAGES Eiffel-ohjelmointikieli
TIE-20306 PRINCIPLES OF PROGRAMMING LANGUAGES Eiffel-ohjelmointikieli Seminaariesitelmä ryhmä 24 Markku Ahokas Jani Kuitti i SISÄLLYSLUETTELO 1. YLEISTÄ EIFFELISTÄ... 1 1.1 Historia ja tausta... 1 1.2
LisätiedotAndroid ohjelmointi. Mobiiliohjelmointi 2-3T5245
Android ohjelmointi Mobiiliohjelmointi 2-3T5245 Mikä on Android? Linux kernelin päälle rakennettu, Googlen kehittämä sovelluspino mobiilisovelluksiin Erillinen versio puhelimelle ja taulutietokoneille
LisätiedotSolidity älysopimus ohjelmointi. Sopimus suuntautunut ohjelmointi
Solidity älysopimus ohjelmointi Sopimus suuntautunut ohjelmointi Merkle puu Kertausta eiliseltä Solidity on korkean tason älysopimus ohjelmointikieli Muistuttaa olio-ohjelmointia Javalla Sopimuskoodi on
LisätiedotJava-kielen perusteet
Java-kielen perusteet String-merkkijonoluokka 1 Ohjelmointikielten merkkijonot Merkkijonot ja niiden käsittely on välttämätöntä ohjelmoinnissa Valitettavasti ohjelmointikielten tekijät eivät tätä ole ottaneet
LisätiedotTapahtumat. Johdanto Ikkunointi Ikkunatapahtumat Päätapahtumasilmukka Tapahtumien käsittely Olioiden välinen kommunikointi.
Tapahtumat Johdanto Ikkunointi Ikkunatapahtumat Päätapahtumasilmukka Tapahtumien käsittely Olioiden välinen kommunikointi Petri Vuorimaa 1 Johdanto Tapahtumien käsittely muodostaa vuorovaikutteisen käyttöliittymän
LisätiedotOHJELMOINTIA MONIPUOLISESTI MATEMATIIKAN OPETUKSESSA LUMA-PÄIVÄT, TAMPERE
OHJELMOINTIA MONIPUOLISESTI MATEMATIIKAN OPETUKSESSA LUMA-PÄIVÄT, TAMPERE Tuomo Riekkinen Pyhäselän koulu, Joensuu MIKSI OHJELMOINTIA MATEMATIIKKAAN? Joensuun kaupunki päätti hankkia kaikille 7. luokkalaisille
LisätiedotSisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki
Sisällys JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta Abstrakti luokka ja metodi Rajapintamäärittely (interface) Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 13.10.2000 E.
LisätiedotSisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen
Sisällys 6. Metodit Oliot viestivät metodeja kutsuen. Kuormittaminen. Luokkametodit (ja -attribuutit).. Metodien ja muun luokan sisällön järjestäminen. 6.1 6.2 Oliot viestivät metodeja kutsuen Oliot viestivät
LisätiedotELM GROUP 04. Teemu Laakso Henrik Talarmo
ELM GROUP 04 Teemu Laakso Henrik Talarmo 23. marraskuuta 2017 Sisältö 1 Johdanto 1 2 Ominaisuuksia 2 2.1 Muuttujat ja tietorakenteet...................... 2 2.2 Funktiot................................
LisätiedotApuja ohjelmointiin» Yleisiä virheitä
Apuja ohjelmointiin» Yleisiä virheitä Ohjelmaa kirjoittaessasi saattaa Visual Studio ilmoittaa monenlaisista virheistä "punakynällä". Usein tämä johtuu vain siitä, että virheitä näytetään vaikket olisi
LisätiedotOhjelmoinnin 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ätiedotMicrosoft Visual J++ ohjelmointiympäristö
Microsoft Visual J++ ohjelmointiympäristö Ohjelmistotuotantovälineet seminaarin alustus Raine Lehto Helsingin yliopisto Tietojenkäsittelytieteen laitos 08.11.2000 Helsinki Sisällys 1 Johdanto...2 2 Sovelluskehys
LisätiedotSovellusarkkitehtuurit
HELIA TiKo-05 1 (9) Sovellusarkkitehtuurit ODBC (Open Database Connectivity)... 2 JDBC (Java Database Connectivity)... 5 Middleware... 6 Middleware luokittelu... 7 Tietokanta -middleware... 8 Tapahtumamonitorit
LisätiedotTIE Principles of Programming Languages. Seminaariesityksen essee. Ryhmä 18: Heidi Vulli, Joni Heikkilä
TIE-20306 Principles of Programming Languages Seminaariesityksen essee Ryhmä 18: Heidi Vulli, Joni Heikkilä SISÄLLYSLUETTELO 1. Johdanto... 1 2. Ohjelmointikielen perusperiaatteet... 1 2.1 Paradigmat...
LisätiedotWINE API ja Virtualisointiohjelmistot
WINE API ja Virtualisointiohjelmistot Yleistä Winestä Ohjelmisto, joka mahdollistaa Windows -pohjaisten ohjelmien käytön kuissa käyttöjärjestelmissä Toimii yhteensopivuuskerroksena ohjelman ja käyttöjärjestelmän
Lisätiedot815338A Ohjelmointikielten periaatteet
815338A Ohjelmointikielten periaatteet 2015-2016 VIII Poikkeusten ja tapahtumien käsittely Sisältö 1. Poikkeusten käsittelyn käsitteitä ja suunnittelukriteerejä 2. Poikkeusten käsittely C++:ssa 3. Poikkeusten
LisätiedotHarjoitus 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ätiedot7/20: Paketti kasassa ensimmäistä kertaa
Ohjelmointi 1 / syksy 2007 7/20: Paketti kasassa ensimmäistä kertaa Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007
LisätiedotSisältö. 22. Taulukot. Yleistä. Yleistä
Sisältö 22. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 22.1 22.2 Yleistä
LisätiedotSisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2
4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä muuttujia ja vakioita. Esittely
LisätiedotXPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy
IBM Collaboration Forum ٨.٣.٢٠١١ XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy ٢٠١١ IBM Corporation Domino-sovelluskehitys Nopea kehitysympäristö (Rapid application development,
LisätiedotSisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2
4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä
LisätiedotJava-API, rajapinnat, poikkeukset, UML,...
Java-API, rajapinnat, r poikkeukset, UML,... Janne Käki 12.10.2006 Keskeisimmät Java-API:n pakkaukset API = Application Programming Interface eli sovellusohjelmointirajapinta (!) pakkaus (engl. package)
LisätiedotDelegaatit ja tapahtumakäsittelijät
14 Delegaatit ja tapahtumakäsittelijät Toinen käyttökelpoinen keksintö C#-kielessä ovat delegaatit. Periaatteessa ne palvelevat samaa tarkoitusta kuin C++:n funktio-osoittimet. Delegaatit ovat kuitenkin
LisätiedotOhjelmointi 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ätiedotJava ja grafiikka. Ville Sundberg 12.12.2007
Java ja grafiikka Ville Sundberg 12.12.2007 What happen Viritetty JPanel Graphics ja Graphics2D ImageIO ja BufferedImage Animaatio ja ajastus Optimoinnista Kehykset import javax.swing.jframe; public class
Lisätiedot7. Näytölle tulostaminen 7.1
7. Näytölle tulostaminen 7.1 Sisällys System.out.println- ja System.out.print-operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden muotoilua. 7.2 Tulostusoperaatiot System.out.println-operaatio
Lisätiedot13/20: Kierrätys kannattaa koodaamisessakin
Ohjelmointi 1 / syksy 2007 13/20: Kierrätys kannattaa koodaamisessakin Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy
LisätiedotJavan perusteita. Janne Käki
Javan perusteita Janne Käki 20.9.2006 Muutama perusasia Tietokone tekee juuri (ja vain) sen, mitä käsketään. Tietokone ymmärtää vain syntaksia (sanojen kirjoitusasua), ei semantiikkaa (sanojen merkitystä).
LisätiedotYou can check above like this: Start->Control Panel->Programs->find if Microsoft Lync or Microsoft Lync Attendeed is listed
Online Meeting Guest Online Meeting for Guest Participant Lync Attendee Installation Online kokous vierailevalle osallistujalle Lync Attendee Asennus www.ruukki.com Overview Before you can join to Ruukki
LisätiedotOliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä
Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Matti Luukkainen 10.12.2009 Tässä esitetty esimerkki on mukaelma ja lyhennelmä Robert Martinin kirjasta Agile and Iterative Development löytyvästä
Lisätiedot15. 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ätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 5: Sijoituslause, SICP-oliot, tietorakenteen muuttaminen (mm. SICP 33.1.3, 3.33.3.2) Riku Saikkonen 6. 11. 2012 Sisältö 1 Muuttujan arvon muuttaminen:
Lisätiedot15. 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ätiedotHarjoitus 2: Oppijan aktivointi (15.3.2016)
Harjoitus 2: Oppijan aktivointi (15.3.2016) Tietokoneavusteinen opetus -kurssilla opetetaan Adobe Flash CS6:n käyttämistä neljänä kertana: 11.3.2016, 15.3.2016, 18.3.2016 ja 1.4.2016. Harjoituskerroilla
Lisätiedot20. Javan omat luokat 20.1
20. Javan omat luokat 20.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.2 Java API Java-kielen Application Programming Interface (API)
LisätiedotVHDL/Verilog/SystemC. Jukka Jokelainen 20.10.2009
VHDL/Verilog/SystemC Jukka Jokelainen 20.10.2009 Sisältö Mitä ihmettä on hardwaren ohjelmointi? VHDL Verilog SystemC Analogiaelektroniikan yhdistäminen digitaaliseen maailmaan Yhteenveto ja pohdintaa Hardwaren
LisätiedotSisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang
Sisällys 20. Javan omat luokat Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.1 20.2 Java API Java-kielen Application Programming Interface (API)
Lisätiedot17. Javan omat luokat 17.1
17. Javan omat luokat 17.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 17.2 Java API Java-kielen Application Programming Interface (API)
LisätiedotOlio-ohjelmointi Javalla
1 Olio-ohjelmointi Javalla Olio-ohjelmointi Luokka Attribuutit Konstruktori Olion luominen Metodit Olion kopiointi Staattinen attribuutti ja metodi Yksinkertainen ohjelmaluokka Ohjelmaluokka 1 Olio-ohjelmointi
LisätiedotSisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista
Sisällys 1. Omat operaatiot Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma
LisätiedotASCII-taidetta. Intro: Python
Python 1 ASCII-taidetta All Code Clubs must be registered. Registered clubs appear on the map at codeclubworld.org - if your club is not on the map then visit jumpto.cc/18cplpy to find out what to do.
Lisätiedot12. Näppäimistöltä lukeminen 12.1
12. Näppäimistöltä lukeminen 12.1 Sisällys Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit.
Lisätiedot1. Omat operaatiot 1.1
1. Omat operaatiot 1.1 Sisällys Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma
LisätiedotConcurrency - 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ätiedotTestiraportti Android virtuaalikone vs. natiivikoodi Ville Laine, Delta 23
Testiraportti Android virtuaalikone vs. natiivikoodi Ville Laine, Delta 23 1 Sisällys 1. Johdanto...3 2. Testiohjelma...3 2.1. Testi 1: Raaka funktiokutsu...3 2.2. Testi 2: Yhteenlaskutesti...3 2.3. Testi
Lisätiedot1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä
OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 811122P (5 op.) 12.12.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan
LisätiedotJReleaser Yksikkötestaus ja JUnit. Mikko Mäkelä 6.11.2002
JReleaser Yksikkötestaus ja JUnit Mikko Mäkelä 6.11.2002 Sisältö Johdanto yksikkötestaukseen JUnit yleisesti JUnit Framework API (TestCase, TestSuite) Testien suorittaminen eri työkaluilla Teknisiä käytäntöjä
LisätiedotSovelmat. Janne Käki
Sovelmat Janne Käki 24.11.2006 Sovellus extends JFrame public static void main(string[] args), joka tyypillisesti vain luo kehysluokan ilmentymän luontimetodi Sovelma extends JApplet ei main-metodia, ei
LisätiedotLyhyt kertaus osoittimista
, syksy 2007 Kertausta Luento 10 12.10.2007 Syksy 2007 1 Lyhyt kertaus osoittimista char *p; /* char, int, jne ilmoittavat, minkä tyyppisiä */ Keskusmuisti int *q; /* olioita sisältäviin muistilohkoihin
Lisätiedot17. Javan omat luokat 17.1
17. Javan omat luokat 17.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 17.2 Java API Java-kielen Application Programming Interface (API)
LisätiedotJohdatus ohjelmointiin
Johdatus ohjelmointiin Ohjelmistot tietokonejärjestelmissä Jaana Holvikivi Ohjelmistojen tehtävät Sovellusohjelmat tekstinkäsittely ja muut toimistosovellukset kirjanpito, tuotannonohjaus selaimet, mediaohjelmat
LisätiedotSe 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ätiedotSisältö. 2. Taulukot. Yleistä. Yleistä
Sisältö 2. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.1 2.2 Yleistä
LisätiedotVisual Basic -sovelluskehitin Juha Vitikka
Visual Basic -sovelluskehitin Helsinki 30.10.2000 Seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Visual Basic sovelluskehitin Seminaari: Ohjelmistotuotantovälineet Tietojenkäsittelytieteen
LisätiedotMuutamia peruskäsitteitä
Muutamia peruskäsitteitä Huom. 1: nämä peruskäsitteet eivät muodosta hyvin määriteltyä keskenään yhteensopivien käsitteiden joukkoa, vaan käsitteet ovat osittain päällekkäisiä ja eri yhteyksissä niillä
LisätiedotLuokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista.
1 Luokka Murtoluku uudelleen Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista. Sievennettäessä tarvitaan osoittajan ja nimittäjän suurin yhteinen tekijä (syt).
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Keskeneräinen luento 3: Listat (mm. SICP 22.2.3) Riku Saikkonen 31. 10. 2011 Sisältö 1 Linkitetyt listat 2 Linkitetyt listat (SICP 2.1.1, 2.2.1) funktionaalinen
LisätiedotAlkuun HTML5 peliohjelmoinnissa
Paavo Räisänen Alkuun HTML5 peliohjelmoinnissa www.ohjelmoimaan.net Tätä opasta saa vapaasti kopioida ja levittää ei kaupallisissa tarkoituksissa. Sisällysluettelo 1: Alkusanat 2: Alkuun 3: Pelinäkymä
LisätiedotTIE Principles of Programming Languages CEYLON
TIE-20306 Principles of Programming Languages CEYLON SISÄLLYSLUETTELO 1. YLEISTIETOA KIELESTÄ JA SEN KEHITTÄMISESTÄ... 1 2. CEYLONIN OMINAISUUKSIA... 2 2.1 Modulaarisuus... 2 2.2 Tyypit... 2 2.3 Muita
LisätiedotYleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.
2. Taulukot 2.1 Sisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.2 Yleistä
LisätiedotRuby. Tampere University of Technology Department of Pervasive Computing TIE Principles of Programming Languages
Tampere University of Technology Department of Pervasive Computing TIE-20306 Principles of Programming Languages Ruby Ryhmä 8 Juho Rintala Sami Paukku Sisällysluettelo 1 Johdanto... 3 2 Paradigma... 3
LisätiedotLohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 16.3
16. Lohkot 16.1 Sisällys Tutustutaan lohkoihin. Muuttujien ja vakioiden näkyvyys sekä elinikä erityisesti operaation lohkossa. Nimikonfliktit. Muuttujat operaation alussa vai myöhemmin? 16.2 Lohkot Kaarisulut
LisätiedotSisällys. 16. Lohkot. Lohkot. Lohkot
Sisällys 16. ohkot Tutustutaan lohkoihin. Muuttujien ja vakioiden näkyvyys sekä elinikä erityisesti operaation lohkossa. Nimikonfliktit. Muuttujat operaation alussa vai myöhemmin? 16.1 16.2 ohkot aarisulut
LisätiedotLohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 15.3
15. Lohkot 15.1 Sisällys Tutustutaan lohkoihin. Muuttujien ja vakioiden näkyvyys sekä elinikä erityisesti operaation lohkossa. Nimikonfliktit. Muuttujat operaation alussa vai myöhemmin? 15.2 Lohkot Aaltosulkeet
LisätiedotÄlypuhelimet. Sisällysluettelo
Älypuhelimet Jussi Huhtala Sisällysluettelo Älypuhelimen määritelmä Historia Laitteistoarkkitehtuuri Käyttöjörjestelmät Android Symbian ios Yhteenveto 1 Älypuhelin Puhelin joka sisältää normaalit puhelimen
Lisätiedot1. Olio-ohjelmointi 1.1
1. Olio-ohjelmointi 1.1 Sisällys Olio-ohjelmointi on eräs ohjelmointiparadigma. Olio-ohjelmoinnin muotoja. Ohjelmiston analyysi ja suunnittelu. Olioparadigman etuja ja kritiikkiä. 1.2 Ohjelmointiparadigmoja
LisätiedotT Ohjelmistotekniikan seminaari
T-106.5800 Ohjelmistotekniikan seminaari Scala-lukupiiri, kevät 2013 Teemu Sirkiä teemu.sirkia@aalto.fi 31.1.2013 Kenelle tämä lukupiiri on suunnattu? Scalasta kiinnostuneille Erityisesti heille, joita
LisätiedotRajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi.
11. Rajapinnat 11.1 Sisällys Johdanto. Abstrakti luokka vai rajapinta? Rajapintojen hyötyjä. Kuinka rajapinnat määritellään ja otetaan käyttöön? Eläin, nisäkäs, kissa ja rajapinta. Moniperiytyminen rajapintojen
LisätiedotPong-peli, vaihe Aliohjelmakutsu laskureita varten. 2. Laskurin luominen. Muilla kielillä: English Suomi
Muilla kielillä: English Suomi Pong-peli, vaihe 7 Tässä vaiheessa lisäämme peliin pistelaskun. Pong-pelissä pelaaja saa pisteen kun pallo ohittaa toisen pelaajan mailan. 1. Aliohjelmakutsu laskureita varten
Lisätiedot4. Lausekielinen ohjelmointi 4.1
4. Lausekielinen ohjelmointi 4.1 Sisällys Konekieli, symbolinen konekieli ja lausekieli. Lausekielestä konekieleksi: - Lähdekoodi, tekstitiedosto ja tekstieditorit. - Kääntäminen ja tulkinta. - Kääntäminen,
LisätiedotS11-09 Control System for an. Autonomous Household Robot Platform
S11-09 Control System for an Autonomous Household Robot Platform Projektisuunnitelma AS-0.3200 Automaatio- ja systeemitekniikan projektityöt Quang Doan Lauri T. Mäkelä 1 Kuvaus Projektin tavoitteena on
LisätiedotTietotekniikan 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.NET ja C# Virtuaalikone. Common Language Infrastructure (CLI) Periaate. Etuja. Haittoja. Mikä on CLI. CLI standardin merkitys (CLS, Ecma)
.NET ja C# Virtuaalikone Periaate Virtuaalikone on tapa abstrahoida allaoleva toteutus yhteisen rajapinnan taakse. Virtuaalikoneet muodostavat hierarkian. Hierarkiassa ylempänä oleva käyttää alemman tarjoamaa
LisätiedotLoppukurssin järjestelyt C:n edistyneet piirteet
C! Loppukurssin järjestelyt C:n edistyneet piirteet 30.3.2017 Ohjelmassa Ohjelmontitehtävän järjestelyt Tietokonetentin järjestelyt Esikääntäjä Parametrilistat Funktio-osoittimet Kunniamainintoja Kuura
Lisätiedot