PÄÄTTÖTYÖ YKSINKERTAISEN C-KIELISEN GRAAFISEN KÄYTTÖLIITTYMÄN LUONTI

Koko: px
Aloita esitys sivulta:

Download "PÄÄTTÖTYÖ YKSINKERTAISEN C-KIELISEN GRAAFISEN KÄYTTÖLIITTYMÄN LUONTI"

Transkriptio

1 OMNIA AMMATTIOPISTO PÄÄTTÖTYÖ YKSINKERTAISEN C-KIELISEN GRAAFISEN KÄYTTÖLIITTYMÄN LUONTI Nro 2010-SLE06L OMNIAN AMMATTIOPISTO KOULUTUSALA Sähkö, elektroniikka- ja tietoliikennetekniikka OPISKELIJA Riki Uusoksa OHJAAJA Erkki Viiala VUOSI 2010

2 3 OMNIAN AMMATTIOPISTO TIIVISTELMÄ Ala Sähköala Tekijä Riki Uusoksa Koulutusohjelma Elektroniikka ja tietoliikennetekniikka Työn nimi Yksinkertaisen C-kielisen graafisen käyttöliittymän luonti Sivumäärä 21 Työn nro 2010-SLE06L Vuosi 2010 Ohjaaja Erkki Viiala Työ sisältää johdannot C-kieleen ja graafisiin ympäristöihin, joiden jälkeen selvitän tavan luoda yksinkertaisen graafisen käyttöliittymän C-kielellä. Hakusana Ohjelmointi, C, grafiikka

3 4 SISÄLLYSLUETTELO Johdanto Johdanto C-kieleen C-kielen vaikuttajat ja mihin C-kieli on vaikuttanut C-kielen toiminta C-kielen standardikirjastot Johdanto graafiseen ulkoasuun Graafisen käyttöliittymän historia Yksinkertaisen graafisen käyttöliittymän ohjelmointi C-kielellä WIN32 API-pohjalta Ikkunan luominen Window Classin rekisteröinti Ikkunan luominen Viesti-loop Ikkunan ohjausprosessit Ajonaikaisen menun luominen Dialogi-ikkunat Mooditon dialogi-ikkuna Muokattava tekstikenttä Lähteet...21

4 5 JOHDANTO Työn tarkoitus on johdattaa lukija C-kieleen ja graafisiin käyttöympäristöihin, jonka jälkeen esitän tavan jolla voit C-kielellä luoda yksinkertaisen graafisen käyttöliittymän.

5 6 1 JOHDANTO C-KIELEEN C on perustavanlaatuinen ohjelmointikieli joka kehitettiin vuonna 1972 Dennis Ritchien toimesta käytettäväksi Unix-käyttöjärjestelmässä. Vaikka C kehitettiin järjestelmäohjelmointiin, sitä käytetään usein myös sovellusohjelmointiin. C on yksi yleisimmin käytetyistä ohjelmointikielistä ja on hyvin vähän järjestelmiä, joista C-kääntäjää ei löydy. 1.1 C-KIELEN VAIKUTTAJAT JA MIHIN C-KIELI ON VAIKUTTANUT C-kieli on ottanut vaikutteita esimerkiksi semmoisista ohjelmointikielistä kuin B (BCPL, CPL), ALGOL 68, Assembly, PL/I, FORTRAN ja itse vaikuttanut senkaltaisten ohjelmointikielien syntyyn kuin AWK, csh, C++, C--, C#, Objective-C, BitC, D, Go, Java, JavaScript, Limbo, Perl, PHP, Pike, Processing ja Python. 1.2 C-KIELEN TOIMINTA C on proseduraalinen järjestelmätoteutuksiin tarkoitettu kieli. Se luotiin käännettäväksi suhteellisen yksinkertaisella kääntäjällä, jolla mahdollistetaan matalan tason muistinkäyttö, kielirakenteet jotka kartoittavat tehokkaasti laitteen antamat ohjeet ja joka vaatii minimaalisen määrän suoritustukea. (kts. ohjelman kirjoittamisen jälkeistä tukea c-kääntäjältä) Huolimatta sen matalan tason mahdollisuuksista, kieli tarkoitettiin rohkaisemaan järjestelmäriippumatonta ohjelmointia. C-kielen standardisoidut kirjastot mahdollistavat käytön laajassa valikoimassa laitteistoja ja käyttöjärjestelmiä vaatien vähän tai olemattoman määrän muutoksia sen lähdekoodiin. Kieltä käytetään nykyään melkein kaikkialla, sulautetuista mikrokontrollereista supertietokoneisiin. C-kieli mahdollistaa osoitettujen objektien (kts. esim. muistiin tallennettujen laitehallintarekisterien) helpon ja suoran käytön. C-kieli myös mahdollistaa argumenttien osoittamisen (esim. int p; joka tekee argumentista p int-tyyppisen muuttujan.) C-kieli tukee suurta määrää operaattoreita, jotka ovat symboleja joita käytetään lausekkeessa määrittelemään suoritteet arvioidessa kyseistä lauseketta. C käsittää operaattorit: * aritmaattiset (+, -, *, /, %)

6 7 * samanarvoisuuden testaus (==,!=) * arvosuhteet (<, <=, >, >=) * Boolean loogiset (!, &&, ) * bittiloogiset (~, &,, ^) * bittien siirrot (<<, >>) * tehtävät (=, +=, -=, *=, /=, %=, &=, =, ^=, <<=, >>=) * lisäys ja vähennys (++, --) * suhteellisuus ja vertaus (&, *, [ ]) * määrittelyn arviointi (? :) * jäsenvalinta (., ->) * tyyppimuunnos (( )) * objektin koko (sizeof) * function argumenttien kokoelma (( )) * listaaminen (,) * lausekkeen jäsentely (( )) C:llä on muodolline C-standardin mukainen kielirakenne. 1.3 C-KIELEN STANDARDIKIRJASTOT, SEKÄ YLEISIMMIN KÄYTETYT EI-STANDARDIT KIRJASTOT JA NIIDEN SISÄLTÄMÄT FUNKTIOT assert.h assert-makro complex.h cabs, cacos, cacosh, carg, casin, casinh, catan, catanh, ccos, ccosh, cexp, cimag, cis, clog, conj, cpow, cproj, creal, csin, csinh, csqrt, ctan, ctanh ctype.h digittoint, isalnum, isalpha, isascii, isblank, iscntrl, isdigit, isgraph, islower, isprint, ispunct, isspace, isupper, isxdigit, toascii, tolower, toupper errno.h, float.h, iso646.h, limits.h ei funktioita inttypes.h imaxabs, imaxdiv, strtoimax, strtoumax, wcstoimax, wcstoumax locale.h localeconv, setlocale math.h acos, asin, atan, atan2, atof, ceil, cos, cosh, exp, fabs, floor, frexp, ldexp, log, log10, modf, pow, sin, sinh, sqrt, tan, tanh netdb.h getaddrinfo, getnameinfo

7 8 setjmp.h longjmp, setjmp signal.h raise stdarg.h va_arg, va_copy, va_end, va_start-makrot stddef.h offsetof-makro stdio.h clearer, fclose, feof, ferror, fflush, fgetc, fgetpos, fgets, fopen (myös freopen, fdopen), printf (myös fprintf, sprintf, snprintf), fputc, fputs, fread, fscanf, fseek, fsetpos, ftell, fwrite, getc-makro, getchar-makro, gets, perror, putc-makro, putchar ja fputchar-makrot, puts, remove, rename, rewind, scanf (myös fscanf, sscanf, vfscanf, vscanf, vsscanf), setbuf, setvbuf, tmpfile, tmpnam, ungetc, vprintf (myös vfprintf, vsprintf) stdlib.h abort, abs (myös labs), atexit, atof, atoi, atol, bsearch, div (myös ldiv), exit, free, itoa, getenv, ltoa, malloc (myös calloc, realloc), qsort, rand, srand, strtod, strtol, strtoul, system string.h memchr, memcmp, memcpy, memmove, memset, strcat (myös strncat), strchr, strcmp (myös strncmp), strcoll, strcpy (myös strncopy), strcspn, sterror, strlen, strpbrk, strrchar, strspn, strstr, strtok, strxfrm time.h asctime, clock, ctime, difftime, gmtime, localtime, mktime, strftime, time alloc.h farmalloc conio.h getch, getche, gotoxy 2 JOHDANTO GRAAFISEEN ULKOASUUN Graafisella ulkoasulla viitataan käyttöliittymään, joka antaa käyttäjälleen mahdollisuuden ohjata sovelluksia muillakin tavoin kuin tekstikomennoilla kuten tietokoneissa, mp3-soittimissa, pelikonsoleissa ja kodinkoneissa. Informaation ja käyttömahdollisuuksien ilmoittamiseen graafinen käyttöliittymä tarjoaa graafisia ikoneita ja visuaalisia ohjastuksia (painikkeita yms.) tekstipohjaisen

8 9 liittymän komento-ohjauksien ja tekstipohjaisen navigoinnin sijaan. Tapahtumat suoritetaan yleensä graafisten elementtien suoralla manipuloinnilla. 2.1 GRAAFISEN KÄYTTÖLIITTYMÄN HISTORIA Graafisten käyttöliittymien edeltäjä kehitettiin Stanford Research Instituutin tutkijoiden toimesta, joita johti Douglas Engelbart. He kehittivät tekstipohjaisten hyperlinkkien käytön hiirellä ohjattavaksi NLS:ää varten. Hyperlinkkien käsite jalostettiin ja laajennettiin käsittämään grafiikoita Xerox PARCin tutkijoiden toimesta, jotka tekstipohjaisten hyperlinkkien sijaan käyttivät graafista pohjaa pääasiallisena käyttöliittymänä Xerox Alto tietokoneessa. Useimmat nykyiset peruskäyttöön tarkoitetut graafiset käyttöliittymät perustuvat tähän systeemiin. Tästä johtuen jotkut kutsuvat tämäntyylistä käyttöliittymää PARC User Interfaceksi (PUI) yleisemmin käytetyn Graphical User Interface (GUI) sijaan. Ivan Sutherland kehitti Sketchpadiksi kutsutun osoitinpohjaisen systeemin Se käytti valokynää ohjaamaan rakennuspiirrosten objektien luomista ja manipulaatiota. Xerox Star Workstation esitteli ensimmäisen GUI-käyttöliittymän vuonna YKSINKERTAISEN GRAAFISEN KÄYTTÖLIITTYMÄN OHJELMOINTI C- KIELELLÄ WIN32 API-POHJALTA 3.1 IKKUNAN LUOMINEN #include <windows.h>

9 const char g_szclassname[] = "mywindowclass"; (tallettaa Window Class nimen) //3.1.4: Ikkunan ohjausprosessit LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) switch(msg) case WM_CLOSE: DestroyWindow(hwnd); case WM_DESTROY: PostQuitMessage(0); default: return DefWindowProc(hwnd, msg, wparam, lparam); return 0; int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hprevinstance, LPSTR lpcmdline, int ncmdshow) WNDCLASSEX wc; HWND hwnd; MSG Msg; //3.1.1: Window Classin rekisteröinti wc.cbsize = sizeof(wndclassex); wc.style = 0; wc.lpfnwndproc = WndProc; wc.cbclsextra = 0; wc.cbwndextra = 0; wc.hinstance = hinstance; wc.hicon = LoadIcon(NULL, IDI_APPLICATION); wc.hcursor = LoadCursor(NULL, IDC_ARROW); wc.hbrbackground = (HBRUSH)(COLOR_WINDOW+1); wc.lpszmenuname = NULL; wc.lpszclassname = g_szclassname; wc.hiconsm = LoadIcon(NULL, IDI_APPLICATION); if(!registerclassex(&wc)) MessageBox(NULL, "Window Registration Failed!", "Error!", MB_ICONEXCLAMATION MB_OK); return 0; //3.1.2: Ikkunan luominen 10

10 11 hwnd = CreateWindowEx( WS_EX_CLIENTEDGE, g_szclassname, "The title of my window", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 240, 120, NULL, NULL, hinstance, NULL); if(hwnd == NULL) MessageBox(NULL, "Window Creation Failed!", "Error!", MB_ICONEXCLAMATION MB_OK); return 0; ShowWindow(hwnd, ncmdshow); UpdateWindow(hwnd); //3.1.3: Viesti-loop while(getmessage(&msg, NULL, 0, 0) > 0) TranslateMessage(&Msg); DispatchMessage(&Msg); return Msg.wParam; WINDOW CLASSIN REKISTERÖINTI Window Class säilyttää tiedot ikkunan tyypistä, sisältäen sen ohjausprosessit jotka kontrolloivat ikkunaa, pienet ja suuret ikonit ikkunalle ja taustavärin. Tällä tavoin voit rekisteröidä classin kerran, ja luoda niin monta samanlaista ikkunaa kuin vain haluat, ilman että sinun tarvitsee eritellä nämä attribuutit uudelleen ja uudelleen. Ne voi myös vaihtaa ikkunakohtaisesti jos näin haluat. Rakenteen jäsenet jotka vaikuttavat Window Classiin ovat seuraavat: cbsize Rakenteen koko. style

11 12 Class Styles (CS_*), ei tule sekoittaa Window Styles (WS_*) kanssa. Voi yleensä asettaa arvon 0. lpfnwndproc Ikkunan ohjausprosessin osoitin tälle Window Classille. cbclsextra Määrä ekstradataa, joka muistista asetetaan sivuun tätä Classia varten. Yleensä 0 cbwndextra Määrä ekstradataa, joka muistista asetetaan sivuun tämän tyyppistä ikkunaa varten. Yleensä 0. hinstance Handle (älykäs osoitin, abstrakti referenssi jota toinen systeemi ohjaa) toiseen ohjelmaan, jonka saimme WinMain()ensimmäisessä parametrissa. hicon Suuri, yleensä 32x32 ikoni, joka näytetään käyttäjän painaessa Alt+Tab. hcursor Kursori, joka näytetään ikkunamme yllä. hbrbackground Asettaa ikkunamme taustavärin. lpszmenuname Menu-resurssin nimi jota käytetään tämän Classin ikkunoille. lpszclassname Nimi, jolla Classimme tunnistetaan hiconsm Pieni, yleensä 16x16 ikoni, joka näytetään tehtäväpalkissa ja ikkunamme vasemmassa ylänurkassa IKKUNAN LUOMINEN Kun Class on rekisteröity, voimme luoda sillä ikkunan. Ensimmäinen parametric (WS_EX_CLIENTEDGE) on jatkettu ikkunan tyyli. Tässä esimerkissä se on asetettu antamaan upotettu sisempi reunus ikkunalle. Seuraavaksi meillä on Classin nimi (g_szclassname). Tämä kertoo systeemille minkäkaltaisen ikkunan haluamme luoda. Koska halusimme luoda ikkunan

12 13 rekisteröimästämme tyylistä, käytimme sen Classin nimeä. Tämän jälkeen meillä tulee ikkunan nimi ( the title of my window ) WS_OVERLAPPEDWINDOW on Window Style parametri. Näitä on monia erilaisia. Seuraavat neljä parametria (CW_USEDEFAULT, CW_USEDEFAULT, 320,240) ovat X ja Y koordinaatit ikkunamme vasemmalle ylänurkalle sekä ikkunamme leveys ja korkeus. CW_USEDEFAULT sallii Windowsin määrätä mihin se asettaa ikkunan. Ikkunan leveys kasvaa vasemmalta oikealle ja korkeus ylhäältä alas. Yksiköt ovat pikseleitä. Seuraavaksi (NULL, NULL, g_hinst, NULL) meillä on isäntäikkunan Handle, menun Handle, toisen ohjelman Handle ja osoitin ikkunan luomisen dataan. Windowsissa ikkunat ovat järjestetty Isäntä- ja lapsi-ikkuna hierarkiaan. Kun näet ikkunassa nappulan, se on Lapsi ja se on asetettu sen Isäntäikkunan sisään. Esimerkissämme Isäntä-handle on NULL, sillä ikkunalla ei ole isäntää, vaan tämä on pääikkunamme. Menu on asetettu NULL, sillä meillä ei vielä ole sitä. Toisen ohjelman handle on asetettu siihen, jonka saamme WinMain() ensimmäisestä parametrista. Kun olemme luoneet ikkunan ja tarkistaneet että meillä on oikea Handle, näytämme ikkunan käyttämällä WinMain() viimeistä parametria ja sitten päivitämme sen varmistaaksemme että ikkuna on kunnolla piirtänyt itsensä näytölle. (ShowWindow(hwnd, ncmdshow); UpdateWindow(hwnd);) VIESTI-LOOP Tämä on ohjelmasi sydän. Periaatteessa kaikki mitä ohjelmasi tekee käy tämän tarkistuspisteen kautta. GetMessage() ottaa viestin ohjelmasi viestijonosta. Joka kerran kun käyttäjä siirtää hiirtä, näppäilee näppäimistöä, klikkaa ikkunasi menua tai tekee mitä tahansa, systeemi luo viestejä ohjelmasi viestijonoon. Kutsumalla GetMessage(), pyydät seuraavan mahdollisen viestin poistettavaksi viestijonosta ja siirrettäväksi ohjelmallesi käsiteltäväksi. Jos viestejä ei ole jonossa, ohjelma odottaa GetMessage() funktiossa. TranslateMessage() suorittaa ylimääräistä prosessointia näppäimistön tapahtumista kuten mahdollistamalla WM_CHAR viestien toimimista WM_KEYDOWN viestien kanssa. Viimeiseksi, DispatchMessage() lähettää viestin ikkunalle jolle se lähettiin. Se voi olla pääikkunamme, joku toinen ikkuna, ohjain tai jossain tapauksissa ikkuna jonka systeemi tai toinen ohjelma loi kulissien taakse. Systeemi huolehtii viestien menemisestä perille oikeaan osoitteeseen.

13 IKKUNAN OHJAUSPROSESSIT Ohjausprosessit ovat ohjelmamme aivot. Täällä kaikki lähetetyt viestit prosessoituvat. Ohjausprosessit kutsutaan jokaiselle viestille erikseen. HWND parametri on kyseisen viestin kohdeikkunan handle. Tämä on tärkeä, sillä sinulla saattaa olla useita saman Classin ikkunoita jotka käyttävät samaa ohjausprosessia (WndProc()). Ero on siinä että parametri HWND on eri joka ikkunalle. Esimerkiksi lähettäessämme WM_CLOSE viestin, suljemme ikkunan. Koska käytämme ikkunan handlea, jonka saimme ensimmäisenä parametrina, muut ikkunat eivät sulkeudu, vaan vain se johon tarkoitimme WM_CLOSEn. WM_CLOSE lähetetään kun käyttäjä painaa Sulje-nappulaa tai näppäilee Alt-F4 Kutsuessamme DestroyWindow() systeemi lähettää viestin WM_DESTROY kyseiselle ikkunalle sulkien samalla kaikki jäljelle jääneet lapsi-ikkunat. Koska tämä on ohjelmamme ainoa ikkuna, olemme tämän jälkeen valmiit ja kutsumme PostQuitMessage(). Tämä lähettää WM_QUIT viestin viesti-looppiin ja lopettaa ohjelman. 3.2 AJONAIKAISEN MENUN LUOMINEN Voit koodiisi sisällyttää menun resursseista vaihtamalla Window Class määrittelyyn wc.lpszmenuname = MAKEINTRESOURCE(IDR_MYMENU); jossa IDR_MYMENU on kyseisen menuresurssin nimi. (.rc pääte) Tässä sen sijaan käsittelen ajonaikasta menua. Näin annamme WM_CREATE viestille Handlen ja lisäämme menun ikkunaamme #define ID_FILE_EXIT 9001 #define ID_STUFF_GO 9002 Aseta nämä kaksi IDtä.c-filesi huipulle, #include rivien alle. Seuraavaksi lisäämme WM_CREATE Handleemme seuraavan koodin: case WM_CREATE: HMENU hmenu, hsubmenu; HICON hicon, hiconsm; hmenu = CreateMenu(); hsubmenu = CreatePopupMenu(); AppendMenu(hSubMenu, MF_STRING, ID_FILE_EXIT, "E&xit"); AppendMenu(hMenu, MF_STRING MF_POPUP, (UINT)hSubMenu, "&File"); hsubmenu = CreatePopupMenu(); AppendMenu(hSubMenu, MF_STRING, ID_STUFF_GO, "&Go");

14 15 AppendMenu(hMenu, MF_STRING MF_POPUP, (UINT)hSubMenu, "&Stuff"); SetMenu(hwnd, hmenu); Tämä lisää yllä näkyvän kaltaisen menun ikkunaamme, ilman ikonia. Kyseinen menu on ajonaikainen, joten se lopetetaan automaattisesti kun ohjelma sulkeutuu. Nyt, kun meillä on menu, meidän tulee laittaa se tekemään jotain. Tämä on suhteellisen yksinkertaista, sillä meidän tulee vain asettaa WM_COMMAND viestille Handle ja tarkistaa mitä komentoja saamme menusta ja toimia sen mukaan. Tällä hetkellä WndProc() tulisi näyttää seuraavalta: LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wparam, LPARAM lparam) switch(message) case WM_CREATE: HMENU hmenu, hsubmenu; hmenu = CreateMenu(); hsubmenu = CreatePopupMenu(); AppendMenu(hSubMenu, MF_STRING, ID_FILE_EXIT, "E&xit"); AppendMenu(hMenu, MF_STRING MF_POPUP, (UINT)hSubMenu, "&File"); hsubmenu = CreatePopupMenu(); AppendMenu(hSubMenu, MF_STRING, ID_STUFF_GO, "&Go"); AppendMenu(hMenu, MF_STRING MF_POPUP, (UINT)hSubMenu, "&Stuff"); SetMenu(hwnd, hmenu); case WM_COMMAND: switch(loword(wparam)) case ID_FILE_EXIT: case ID_STUFF_GO:

15 16 case WM_CLOSE: DestroyWindow(hwnd); case WM_DESTROY: PostQuitMessage(0); default: return DefWindowProc(hwnd, Message, wparam, lparam); return 0; Oletettavasti haluamme Exit valikon sulkevan ohjelman, joten WM_COMMAND,ID_FILE_EXIT Handlerissa voit seuraavalla koodilla saada sen aikaiseksi: PostMessage(hwnd, WM_CLOSE, 0, 0); WM_COMMAND Handlerisi tulisi nyt näyttää tältä: case WM_COMMAND: switch(loword(wparam)) case ID_FILE_EXIT: PostMessage(hwnd, WM_CLOSE, 0, 0); case ID_STUFF_GO: Tällä hetkellä ID_STUFF_GO ei tee mitään. 3.3 DIALOGI-IKKUNAT Ensimmäinen askel dialogi-ikkunoiden luomiseen on luoda dialogille resurssitiedosto. (.rc pääte) Tässä esimerkki sen sisällöstä: IDD_ABOUT DIALOG DISCARDABLE 0, 0, 239, 66 STYLE DS_MODALFRAME WS_POPUP WS_CAPTION WS_SYSMENU CAPTION "My About Box" FONT 8, "MS Sans Serif" BEGIN DEFPUSHBUTTON "&OK",IDOK,174,18,50,14 PUSHBUTTON "&Cancel",IDCANCEL,174,35,50,14 GROUPBOX "About this program...",idc_static,7,7,225,52 CTEXT "An example program showing how to use Dialog Boxes\r\n\r\nby theforger", IDC_STATIC,16,18,144,33 END

16 17 Ensimmäisellä rivillä IDD_ABOUTDLG on resurssin ID, DIALOG on resurssin tyyppi ja neljä seuraavaa numeroa (0, 0, 239, 66) ovat jo-käsitellyt koordinaatit ja koko, mutta dialogeissa ne ovat pikselien sijaan dialogi-yksiköitä, joiden koko perustuu käytettyyn fonttiin. Käyttäessäsi suurta fonttia, on dialogi-ikkuna suuri ja pientä fonttia käyttäessäsi on dialogi-ikkuna sen verran pienempi. Tämä on tärkeää, sillä se varmistaa, että kontrollisii ovat oikean kokoiset esittämään niiden sisältämän tekstin. DISCARDABLE kertoo systeemille, että se voi siirtää resurssimuistia levylle kun ohjelma ei ole käytössä, säästäen systeemin resursseja Toinen rivi alkaa STYLE ja sitä seuraa ikkunatyylit joita käytetään dialogin luomisessa. Käyttääksesi valmiiksi asetettuja tyylejä, joudut ehkä lisäämään #include "windows.h".rc tiedostoosi. Seuraavaksi meillä on lista kontrolleista, jotka luodaan dialogi-ikkunaan. DEFPUSHBUTTON "&OK",IDOK,174,18,50,14 Tämä rivi määrittelee OK-painikkeen. IDOK on painikkeen tunnistin. IDOK on valmiiksi määritelty, joten meidän ei tarvitse #define sitä itse. Neljä seuraavaa numeroa ovat taas koordinaatit, sekä leveys että pituus. Kaikki taas dialogiyksiköissä. Seuraavaksi meidän pitää kirjoittaa dialogille ohjausprosessi. Se on periaatteessa samankaltainen kuin ikkunan ohjausprosessi. BOOL CALLBACK AboutDlgProc(HWND hwnd, UINT Message, WPARAM wparam, LPARAM lparam) switch(message) case WM_INITDIALOG: return TRUE; case WM_COMMAND: switch(loword(wparam)) case IDOK: EndDialog(hwnd, IDOK); case IDCANCEL: EndDialog(hwnd, IDCANCEL);

17 18 default: return FALSE; return TRUE; Dialogin ohjausprosessissa ja ikkunan ohjausprosessissa on muutamia tärkeitä eroavaisuuksia jotka tulee tietää. Ensimmäiseksi, et kutsu DefWindowProc() viesteille, joita et käsittele. Dialogeissa tämä tapahtuu automaattisesti. Toiseksi, yleensä palautat FALSE viesteille joita et prosessoi ja TRUE viesteille jotka prosessoit, ellei viesti erittele, että palautat jotain muuta. Kolmanneksi, et kutsu DestroyWindow()sulkemaan dialogia, vaan sen sijaan EndDialog(). Toinen parametri on arvo, joka palautetaan DialogBox() kutsuttuun koodiin. Viimeiseksi, WM_CREATEn käsittelyn sijaan käsittelet WM_INITDIALOG tekemään prosessit joita vaaditaan ennen dialogin ilmestymistä, joka sitten palauttaa TRUE arvon keskittämään näppäimistön ensiarvoiseen painikkeeseen. Seuraavaksi dialogi-ikkunan luomiseen: case WM_COMMAND: switch(loword(wparam)) case ID_HELP_ABOUT: int ret = DialogBox(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_ABOUT), hwnd, AboutDlgProc); if(ret == IDOK) MessageBox(hwnd, "Dialog exited with IDOK.", "Notice", MB_OK MB_ICONINFORMATION); else if(ret == IDCANCEL) MessageBox(hwnd, "Dialog exited with IDCANCEL.", "Notice", MB_OK MB_ICONINFORMATION); else if(ret == -1) MessageBox(hwnd, "Dialog failed!", "Error", MB_OK MB_ICONINFORMATION); // Muita menun valintoja..

18 19 Tämä tulee sijoittaa WM_COMMAND Handleriin. Koska haluamme pääikkunamme menun luovan dialogin, tulee koodi sijoittaa pääikkunamme WndProc()iin. IDD_ABOUT on dialogiresurssin ID. Hwnd on dialogin isäntäikkunan Handle. AboutDlgProc() on dialogin kontrolloimiseen tarkoitettu dialogiproseduuri. DialogBoxia käytettäessä pääikkunasi käyttö on evätty ennenkuin dialogi on päätetty MOODITON DIALOGI-IKKUNA Seuraavaksi käsittelemme CreateDialog() function. Erona näissä on se, että kun DialogBox() käsittää oman viesti-looppinsa eikä palaa pääikkunan viesti-looppiin ennenkuin dialogi suljetaan, käyttäytyy CreateDialog() ennemmin kuin ikkuna joka on luotu CreateWindowEx() siinä mielessä, että se palaa automaattisesti alkuperäiseen, odottaen viestiä aivan kuten pääikkunakin. Täten Mooditon, kun taas DialogBox() luo Modaalisia dialogeja IDD_TOOLBAR DIALOGEX 0, 0, 98, 52 STYLE DS_MODALFRAME WS_POPUP WS_CAPTION EXSTYLE WS_EX_TOOLWINDOW CAPTION "My Dialog Toolbar" FONT 8, "MS Sans Serif" BEGIN PUSHBUTTON "&Press This Button",IDC_PRESS,7,7,84,14 PUSHBUTTON "&Or This One",IDC_OTHER,7,31,84,14 END Seuraavaksi haluamme luoda dialogin sillä aikaa kun ohjelmamme on käynnissä. Haluamme myös asettaa globaalin muuttujan pitämään ikkunan Handlea palautumaan CreateDialog()ista, jotta voimme käyttää sitä myöhemmin. HWND g_htoolbar = NULL; case WM_CREATE: g_htoolbar = CreateDialog(GetModuleHandle(NULL),

19 20 MAKEINTRESOURCE(IDD_TOOLBAR), hwnd, ToolDlgProc); if(g_htoolbar!= NULL) ShowWindow(g_hToolbar, SW_SHOW); else MessageBox(hwnd, "CreateDialog returned NULL", "Warning!", MB_OK MB_ICONINFORMATION); Tarkistamme palautusarvon ja jos se on erisuuri kuin NULL, näytämme ikkunan ShowWindow() funktiolla. Seuraavaksi tarvitsemme dialogiproseduurin työkalupalkkiimme: BOOL CALLBACK ToolDlgProc(HWND hwnd, UINT Message, WPARAM wparam, LPARAM lparam) switch(message) case WM_COMMAND: switch(loword(wparam)) case IDC_PRESS: MessageBox(hwnd, "Hi!", "This is a message", MB_OK MB_ICONEXCLAMATION); case IDC_OTHER: MessageBox(hwnd, "Bye!", "This is also a message", MB_OK MB_ICONEXCLAMATION); default: return FALSE; return TRUE;

20 MUOKATTAVA TEKSTIKENTTÄ Yksi yleisimmin käytetyistä kontrolleista Windows-ympäristössä on EDIT, kontrolli joka sallii käyttäjän syöttää, muokata, kopioida jne. tekstiä. Esim. Windows Notepad. SetDlgItemText(hwnd, IDC_TEXT, "This is a string"); Näin saat muokattua kontrollin sisältämää tekstiä. Tekstin palauttaminen kontrollista vaatii hieman enemmän työtä. int len = GetWindowTextLength(GetDlgItem(hwnd, IDC_TEXT)); if(len > 0) int i; char* buf; buf = (char*)globalalloc(gptr, len + 1); GetDlgItemText(hwnd, IDC_TEXT, buf, len + 1); //... do stuff with text... GlobalFree((HANDLE)buf); Ensiksikin meidän tulee laittaa syrjään muistia tekstin tallettamista varten. Tätä varten meidän tulee tietää kuinka paljon muistia siirtää syrjään GetWindowTextLength()tekee tämän, joten meidän täytyy saada Handle kontrollille käyttämällä GetDlgItem(). Nyt kun meillä on pituus, voimme siirtää syrjään muistia. Tähän käytämme GlobalAlloc() GetWindowTextLength()palauttaa syötettyjen kirjaimien määrän, jotka kontrolli sisältää. Viimeiseksi kutsumme GetDlgItemText() noutamaan kontrollin sisällön muistibufferiin jonka juuri varasimme Tämän jälkeen käytämme GlobalFree() vapauttamaan varaamamme muistin. Siinä muutama yksinkertainen graafinen elementti c-kieliseen ohjelmaan.

21 22 4 LÄHTEET (theforger s WIN32 API tutorial)

Windowsin sanomanvälitys. Juha Järvensivu 2007

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

Windowsin sanomanvälitys. Juha Järvensivu juha.jarvensivu@tut.fi 2008

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

Winapi. Juha Järvensivu 2007

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

1 of

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

Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot

Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot Tiedosto yhteenkuuluvien tietojen joukko, joka on tavallisesti talletettu pysyväismuistiin muodostuu tietueista, jotka voivat olla keskenään samanlaisia tai vaihdella tyypiltään tiedostot ovat joko tekstitiedostoja

Lisätiedot

OpenGL:n perusteet - Osa 1: Ikkunan luominen

OpenGL: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ätiedot

Tapahtumapohjainen ohjelmointi. Juha Järvensivu 2008

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

Tapahtumapohjainen ohjelmointi. Juha Järvensivu juha.jarvensivu@tut.fi 2007

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

Modulaarisessa ohjelmoinnissa jaetaan ohjelma osiin (moduuleihin), jotka ovat yksinkertaisia ja lyhyitä.

Modulaarisessa ohjelmoinnissa jaetaan ohjelma osiin (moduuleihin), jotka ovat yksinkertaisia ja lyhyitä. 3. Funktiot Modulaarisessa ohjelmoinnissa jaetaan ohjelma osiin (moduuleihin), jotka ovat yksinkertaisia ja lyhyitä. Modulaarisuudella pyritään parantamaan ohjelman ymmärrettävyyttä, testattavuutta sekä

Lisätiedot

Graafisen käyttöliittymän ohjelmointi

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

Sen jälkeen Microsoft Office ja sen alta löytyy ohjelmat. Ensin käynnistä-valikosta kaikki ohjelmat

Sen jälkeen Microsoft Office ja sen alta löytyy ohjelmat. Ensin käynnistä-valikosta kaikki ohjelmat Microsoft Office 2010 löytyy tietokoneen käynnistävalikosta aivan kuin kaikki muutkin tietokoneelle asennetut ohjelmat. Microsoft kansion sisältä löytyy toimisto-ohjelmistopakettiin kuuluvat eri ohjelmat,

Lisätiedot

Loppukurssin järjestelyt

Loppukurssin järjestelyt C! Loppukurssin järjestelyt 29.3.2018 Ohjelmassa Yhteenvetoa palautteesta Ohjelmontitehtävän järjestelyt Tietokonetentin järjestelyt Kysyttävää / kerrattavaa 10-kierroksen asioista? Aikatauluista 10. kierroksen

Lisätiedot

Loppukurssin järjestelyt C:n edistyneet piirteet

Loppukurssin 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

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille:

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille: Merkkijonot C-kielessä merkkijono on taulukko, jonka alkiot ovat char -tyyppiä. Taulukon viimeiseksi merkiksi tulee merkki '\0', joka ilmaisee merkkijonon loppumisen. Merkkijono määritellään kuten muutkin

Lisätiedot

Moduli 5: Kehittyneitä piirteitä

Moduli 5: Kehittyneitä piirteitä C! : Kehittyneitä piirteitä 19.4.2016 Aikataulusta 5. harjoituskierroksen määräaika: pe 22.4. Maari-C keskiviikkoisin ja torstaisin (12-14) Ti 26.4. Harjoitustentti (eli kertausluento) Normaalin luennon

Lisätiedot

Jypelin käyttöohjeet» Ruutukentän luominen

Jypelin käyttöohjeet» Ruutukentän luominen Jypelin käyttöohjeet» Ruutukentän luominen Pelissä kentän (Level) voi luoda tekstitiedostoon "piirretyn" mallin mukaisesti. Tällöin puhutaan, että tehdään ns. ruutukenttä, sillä tekstitiedostossa jokainen

Lisätiedot

// // whiledemov1.c // #include <stdio.h> int main(void){ int luku1 = -1; int luku2 = -1;

// // whiledemov1.c // #include <stdio.h> int main(void){ int luku1 = -1; int luku2 = -1; // // whiledemov1.c // #include int main(void){ int luku1 = -1; int luku2 = -1; while( luku1

Lisätiedot

HELIA 1 (1) Outi Virkki Käyttöliittymät ja ohjelmiston suunnittelu :04

HELIA 1 (1) Outi Virkki Käyttöliittymät ja ohjelmiston suunnittelu :04 HELIA 1 (1) Luento 7 Graafisen käyttöliittymän peruselementit... 2 Ikkunat... 2 Sovellusikkunat (Application Windows)... 2 Asiakirjaikkunat (Document Windows)... 3 Toissijaiset sovellusikkunat (Secondary

Lisätiedot

Ohjelmointiharjoituksia Arduino-ympäristössä

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

Lisätiedot

Toinen harjoitustyö. ASCII-grafiikkaa 2017

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

Lisätiedot

Tutoriaaliläsnäoloista

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

Lisätiedot

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

Toinen harjoitustyö. ASCII-grafiikkaa

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

Lisätiedot

int puts(char *buff) Kirjoittaa puskurissa buff \0 :lla päätetyn merkkijonon standarditulostukseen. Formatoitu konsoli-i/o Tiedostot

int puts(char *buff) Kirjoittaa puskurissa buff \0 :lla päätetyn merkkijonon standarditulostukseen. Formatoitu konsoli-i/o Tiedostot 1. Standardikirjasto Ohjelmankehitysympäristössä on joukko kirjastoituja funktioita. on joukko otsikkotiedostoja, joissa on kirjastofunktioiden prototyypit (esittelyt) ja tarvittavien vakioiden, tietotyyppien

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava

Lisätiedot

Binäärioperaatiot Tiedostot ja I/O

Binäärioperaatiot Tiedostot ja I/O C! Binäärioperaatiot Tiedostot ja I/O 16.3.2017 Tiedotteita Määräaikoja pidennetty Myös 7. kierros uudestaan auki perjantaihin asti Seuraava ja viimeinen luento 30.3. Makrot, funktio-osoittimet Kokeen

Lisätiedot

Binäärioperaatiot Tiedostot ja I/O

Binäärioperaatiot Tiedostot ja I/O C! Binäärioperaatiot Tiedostot ja I/O 8.3.2018 Tiedotteita Viimeinen luento to 29.3. Ohjelmointitehtävä, ohjelmointikoe ja niiden järjestelyt Ohjelmointikokeeseen ilmoittautuminen auki 2 .c tiedostot ja.h

Lisätiedot

Tekstinkäsittelyn jatko. KSAO Liiketalous 1

Tekstinkäsittelyn jatko. KSAO Liiketalous 1 KSAO Liiketalous 1 Tyylien käyttö on keskeinen osa tehokasta tekstinkäsittelyä. Merkki- ja kappalemuotoilujen tallentaminen valmiiksi tyyleiksi nopeuttavat tekstinkäsittelyä; tekstin kirjoittamista ja

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, literaalivakio, nimetty vakio Tiedon merkkipohjainen tulostaminen 1 Tunnus Java tunnus Java-kirjain Java-numero

Lisätiedot

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

TIETOKANNAT: 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ätiedot

Canva CV NÄIN PÄÄSET ALKUUN CANVA CV:N TEOSSA: Canva on graafisen suunnittelun

Canva CV NÄIN PÄÄSET ALKUUN CANVA CV:N TEOSSA: Canva on graafisen suunnittelun Canva CV Canva on graafisen suunnittelun ohjelma, jota voi käyttää niin selaimella kuin mobiiliapplikaatiollakin. Canvassa on paljon maksuttomia pohjia CV:n visualisointiin! Canvan perusominaisuuksia voit

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

Tiedosto on yhteenkuuluvien tietojen joukko, joka tavallisimmin sijaitsee kiintolevyllä, muistitikulla tai jollakin muulla fyysisellä tietovälineellä.

Tiedosto on yhteenkuuluvien tietojen joukko, joka tavallisimmin sijaitsee kiintolevyllä, muistitikulla tai jollakin muulla fyysisellä tietovälineellä. Tiedostot Tiedosto on yhteenkuuluvien tietojen joukko, joka tavallisimmin sijaitsee kiintolevyllä, muistitikulla tai jollakin muulla fyysisellä tietovälineellä. C-kielessä syöttö ja tulostus kuvataan laiteriippumattomasti

Lisätiedot

Ohjeet. AS C-ohjelmoinnin peruskurssi Aalto-yliopiston sahkotekniikan korkeakoulu Tentti , Raimo Nikkila

Ohjeet. AS C-ohjelmoinnin peruskurssi Aalto-yliopiston sahkotekniikan korkeakoulu Tentti , Raimo Nikkila AS-0.1103 C-ohjelmoinnin peruskurssi Aalto-yliopiston sahkotekniikan korkeakoulu Tentti 15.05.2013, Raimo Nikkila Ohjeet Kaikki ohjelmointitehtavat tulee toteuttaa C-kielella hyvaa ohjelmointityylia noudattaen.

Lisätiedot

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

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

Lisätiedot

TIEA341 Funktio-ohjelmointi 1, kevät 2008

TIEA341 Funktio-ohjelmointi 1, kevät 2008 TIEA341 Funktio-ohjelmointi 1, kevät 2008 Luento 11 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 21. tammikuuta 2008 Listakomprehensio Uusi tapa luoda (ja muokata) listoja: [ lauseke

Lisätiedot

C-ohjelmointi, syksy 2006

C-ohjelmointi, syksy 2006 , syksy 2006 Taulukot Yksiulotteiset taulukot Moniulotteiset taulukot Dynaamiset taulukot Binääritiedostot Luento 8 3.10.2006 Syksy 2006 1 Luennon sisältö Taulukoiden käsittelyä Yksiulotteiset taulukot

Lisätiedot

C-ohjelmointi, syksy Yksiulotteiset taulukot Moniulotteiset taulukot Dynaamiset taulukot. Binääritiedostot. Luento

C-ohjelmointi, syksy Yksiulotteiset taulukot Moniulotteiset taulukot Dynaamiset taulukot. Binääritiedostot. Luento , syksy 2006 Taulukot Yksiulotteiset taulukot Moniulotteiset taulukot Dynaamiset taulukot Binääritiedostot Luento 8 3.10.2006 Syksy 2006 1 Luennon sisältö Taulukoiden käsittelyä Yksiulotteiset taulukot

Lisätiedot

Tärkeimmät toiminnot. Kertausta ja uusia toimintoja Wordistä sekä tiedostonhallinnasta. Tärkeimmät toiminnot jatkuu...

Tärkeimmät toiminnot. Kertausta ja uusia toimintoja Wordistä sekä tiedostonhallinnasta. Tärkeimmät toiminnot jatkuu... Tärkeimmät toiminnot Kertausta ja uusia toimintoja Wordistä sekä tiedostonhallinnasta Kun hiiren jättää kuvakkeen päälle vähäksi ajaksi Word selittää toiminnon Avaa tiedosto Tallenna Kumoa, nuolesta aiemmat

Lisätiedot

C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa.

C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa. Taulukot C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa. Taulukon muuttujilla (muistipaikoilla) on yhteinen nimi. Jokaiseen yksittäiseen

Lisätiedot

MicroStation V8i-käyttöympäristö

MicroStation V8i-käyttöympäristö MicroStation V8i-käyttöympäristö Liite 2 Pääkäyttäjän ohjeet Juha Orre Tekniikan koulutusalan opinnäytetyö Kone- ja tuotantotekniikka Insinööri (AMK) KEMI 2013 SISÄLLYS Liite 2 2(14) SISÄLLYS... 2 1 KÄYTTÖOHJEET...

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

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti: 1 (7) Tiedon lukeminen näppäimistöltä Scanner-luokan avulla Miten ohjelma saa käyttöönsä käyttäjän kirjoittamaa tekstiä? Järjestelmässä on olemassa ns. syöttöpuskuri näppäimistöä varten. Syöttöpuskuri

Lisätiedot

TAMK Ohjelmistotekniikka G Graafisten käyttöliittymien ohjelmointi Herkko Noponen Osmo Someroja. Harjoitustehtävä 2: Karttasovellus Kartta

TAMK Ohjelmistotekniikka G Graafisten käyttöliittymien ohjelmointi Herkko Noponen Osmo Someroja. Harjoitustehtävä 2: Karttasovellus Kartta TAMK Ohjelmistotekniikka G-04237 Graafisten käyttöliittymien ohjelmointi Harjoitustehtävä 2: Karttasovellus Kartta TAMK Karttasovellus Kartta Sivu 2/8 Sisällysluettelo 1. JOHDANTO...3 2. VAATIMUSMÄÄRITTELY...

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

Peliohjelmointirajapinnoista

Peliohjelmointirajapinnoista Peliohjelmointi: Peliohjelmointirajapinnoista Teppo Soininen & Antti Puhakka Lähteet: www.opengl.org, OpenGL-spesifikaatio, Tietokonegrafiikka luentomoniste, MSDN, Introduction to 3D Game Programming with

Lisätiedot

Luennon sisältö. Taulukot (arrays) (Müldnerin kirjan luku 10) Yksiulotteiset taulukot. Mikä taulukko on? Taulukko-osoitin. tavallinen osoitin

Luennon sisältö. Taulukot (arrays) (Müldnerin kirjan luku 10) Yksiulotteiset taulukot. Mikä taulukko on? Taulukko-osoitin. tavallinen osoitin , kevät 2006 Taulukot Yksiulotteiset taulukot Moniulotteiset taulukot Dynaamiset taulukot Binääritiedostot Luento 8 21.3.2006 Kevät 2006 Liisa Marttinen 1 Luennon sisältö Taulukoiden käsittelyä Yksiulotteiset

Lisätiedot

Tietueet. Tietueiden määrittely

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

Lisätiedot

erasmartcard-kortinlukijaohjelmiston käyttöohje

erasmartcard-kortinlukijaohjelmiston käyttöohje Sisällysluettelo ERASMARTCARD erasmartcard-kortinlukijaohjelmiston käyttöohje ERASMARTCARDIN PERUSTOIMINNOT Käyttäjän tunnistaminen Sähköinen allekirjoitus ERASMARTCARDIN ASETUSVALIKON TOIMINNOT erasmartcard-ohjelman

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

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

Lisätiedot

ELM GROUP 04. Teemu Laakso Henrik Talarmo

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

Sonera Viestintäpalvelu VIP VIP Laajennettu raportointi Ohje

Sonera Viestintäpalvelu VIP VIP Laajennettu raportointi Ohje Sonera Viestintäpalvelu VIP VIP Laajennettu raportointi Ohje Sisällysluettelo VIP Laajennettu raportointi... 3 Luo raportti Laajennetun raportoinnin työkaluilla... 4 Avaa Laajennettu raportointi... 4 Valitse

Lisätiedot

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

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

Lisätiedot

Android ohjelmointi Tunti 5. SQLite, Cursor, Intent ja ADB

Android ohjelmointi Tunti 5. SQLite, Cursor, Intent ja ADB Android ohjelmointi Tunti 5 SQLite, Cursor, Intent ja ADB SQLite Tuetut tietotyypit: NULL INTEGER kokonaisluku REAL Reaaliluku, float, desimaali. Tallennetaan 1-8 tavun tarkkuudella luvun suuruudesta riippien

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

Ensin klikkaa käynnistä-valikkoa ja sieltä Kaikki ohjelmat valikosta kaikki ohjelmat

Ensin klikkaa käynnistä-valikkoa ja sieltä Kaikki ohjelmat valikosta kaikki ohjelmat Microsoft Office 2010 löytyy tietokoneen käynnistä-valikosta aivan kuin kaikki muutkin tietokoneelle asennetut ohjelmat. Microsoft kansion sisältä löytyy toimisto-ohjelmistopakettiin kuuluvat eri ohjelmat,

Lisätiedot

Tietosuoja-portaali. päivittäjän ohje

Tietosuoja-portaali. päivittäjän ohje Tietosuoja-portaali päivittäjän ohje Maisa Kinnunen 2010 1 Sisältö PÄIVITTÄJÄN OHJE Kirjautuminen...3 Sivujen tekstin muokkaus...4 Tiedostojen lisääminen palvelimelle...9 Jos sinun pitää selvittää tiedoston/kuvan

Lisätiedot

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta C++ - perusteet Java-osaajille luento 5/7: operaattoreiden ylikuormitus, oliotaulukko, parametrien oletusarvot, komentoriviparametrit, constant, inline, Operaattoreiden ylikuormitus Operaattoreiden kuormitus

Lisätiedot

http://www.microsoft.com/expression/

http://www.microsoft.com/expression/ Verkkojulkaisuharjoitus1 TAVOITE Harjoituksen tarkoituksena on opiskella käyttämään verkkojulkaisueditoria (Microsoft Expression Web) ja käynnistämään verkkosivu internetissä. VERKKOSIVUEDITORIN KÄYTTÖOHJEITA

Lisätiedot

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

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

Lisätiedot

Symbol for Windows Blisskoostaja ( Versio 2.3 )

Symbol for Windows Blisskoostaja ( Versio 2.3 ) Handicom Symbol for Windows Blisskoostaja ( Versio 2.3 ) Handicom, 2004, Alankomaat Myynti Suomessa: Modemo Contents 1. Johdanto... 2 2. Blisskoostajan pääikkuna... 3 2.1 Toolbar... 3 2.2 Piirtoalue...

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, Vakio Tiedon merkkipohjainen tulostaminen Ohjelmointi (ict1tx006) Tunnus (5.3) Javan tunnus Java-kirjain Java-numero

Lisätiedot

Graafisen käyttöliittymän ohjelmointi

Graafisen käyttöliittymän ohjelmointi TIE-11300 Tietotekniikan vaihtuva-alainen kurssi Graafisen käyttöliittymän ohjelmointi Luento 4 Valikot ja dialogit Juha-Matti Vanhatupa Sisältö Pääikkuna Valikot Dialogit Pääikkuna (top-level window)

Lisätiedot

OpenGL:n perusteet - Osa 2: 3D grafiikka

OpenGL: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ätiedot

12 Mallit (Templates)

12 Mallit (Templates) 12 Mallit (Templates) Malli on määrittely, jota käyttämällä voidaan luoda samankaltaisten aliohjelmien ja luokkien perheitä. Malli on ohje kääntäjälle luoda geneerisestä tyyppiriippumattomasta ohjelmakoodista

Lisätiedot

Funktionimien kuormitus. TIES341 Funktio ohjelmointi 2 Kevät 2006

Funktionimien kuormitus. TIES341 Funktio ohjelmointi 2 Kevät 2006 Funktionimien kuormitus TIES341 Funktio ohjelmointi 2 Kevät 2006 Kertausta ongelma Mikä on (+) operaattorin tyyppi? Num a => a -> a -> a Mikä on (==) operaattorin tyyppi? Eq a => a -> a -> a Mikä on show

Lisätiedot

OHJE Jos Kelaimeen kirjautuminen ei onnistu Mac-koneella Sisällys

OHJE Jos Kelaimeen kirjautuminen ei onnistu Mac-koneella Sisällys Sisällys 1 Varmista, että DigiSign-kortinlukijaohjelmisto on käynnissä 2 1.1 DigiSign-kuvake 2 1.2 Sovelluksen käynnistäminen 2 1.3 Kortin toiminnan varmistaminen 4 2 Jos käytät selaimena Mozilla, Firefox

Lisätiedot

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016 ICS-C2000 Tietojenkäsittelyteoria Kevät 2016 Kierros 6, 22. 26. helmikuuta Huom: arviointiviikolla 15. 19.2. ei ole laskuharjoituksia! Demonstraatiotehtävien ratkaisut D1: (a) Osoita, että seuraava yhteydetön

Lisätiedot

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014

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

Lisätiedot

Osoittimet ja taulukot

Osoittimet ja taulukot C! ja taulukot 1.2.2018 Tiedotteita Tämän jälkeen taas pari väliviikkoa (tenttiviikko) Seuraava luento 22.2. Laskareita ei tenttiviikolla 12.2. 16.2. 2 ja muisti Muisti Keskusyksikkö Suorittaa muistissa

Lisätiedot

Sähköposti ja uutisryhmät 4.5.2005

Sähköposti ja uutisryhmät 4.5.2005 Outlook Express Käyttöliittymä Outlook Express on windows käyttöön tarkoitettu sähköpostin ja uutisryhmien luku- ja kirjoitussovellus. Se käynnistyy joko omasta kuvakkeestaan työpöydältä tai Internet Explorer

Lisätiedot

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin peruskurssien laaja oppimäärä Ohjelmoinnin peruskurssien laaja oppimäärä Luento 8: Pienen ohjelmointikielen tulkki (ohjelmoitava laskin) (mm. SICP 4-4.1.5 osin) Riku Saikkonen 15. 11. 2012 Sisältö 1 Nelilaskintulkki, globaalit muuttujat

Lisätiedot

TYYLIT. Word Tyylit

TYYLIT. Word Tyylit Word 2013 Tyylit TYYLIT TYYLIT... 1 Pikatyylien käyttäminen... 1 Tyylimuotoilun poistaminen... 2 Tyylin muokkaaminen... 2 Uuden tyylin luominen muotoillusta tekstistä... 2 Uuden tyylin luominen valintataulussa...

Lisätiedot

GeoGebra-harjoituksia malu-opettajille

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

Lisätiedot

1 (14) Ohje. Ohje. GTK-wiki. Geologian tutkimuskeskus, Verkkosivustopalvelut

1 (14) Ohje. Ohje. GTK-wiki. Geologian tutkimuskeskus, Verkkosivustopalvelut 1 (14) GTK-wiki 2 (14) Sisällysluettelo 1. Wikin ylläpito... 3 1.1. Wiki-artikkelin muokkaus... 3 1.2. Wiki-artikkelin lisääminen... 3 2. Wiki-toiminnot... 4 2.1. Ristiinlinkitys... 4 2.2. Tekstin muotoilu...

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

3. Binääripuu, Java-toteutus

3. Binääripuu, Java-toteutus 3. Binääripuu, Java-toteutus /*-------------------------------------------------------------/ / Rajapinta SearchTree: binäärisen hakupuun käsittelyrajapinta / / Metodit: / / void insert( Comparable x );

Lisätiedot

Condes. Quick Start opas. Suunnistuksen ratamestariohjelmisto. Versio 7. Quick Start - opas Condes 7. olfellows www.olfellows.net 1.

Condes. Quick Start opas. Suunnistuksen ratamestariohjelmisto. Versio 7. Quick Start - opas Condes 7. olfellows www.olfellows.net 1. Condes Suunnistuksen ratamestariohjelmisto Versio 7 Quick Start opas Yhteystiedot: olfellows Jouni Laaksonen Poijukuja 4 21120 RAISIO jouni.laaksonen@olfellows.net www.olfellows.net olfellows www.olfellows.net

Lisätiedot

1. HARJOITUS harjoitus3_korjaus.doc

1. HARJOITUS harjoitus3_korjaus.doc Word - harjoitus 1 1. HARJOITUS harjoitus3_korjaus.doc Kopioi itsellesi harjoitus3_korjaus.doc niminen tiedosto Avaa näyttöön kopioimasi harjoitus. Harjoitus on kirjoitettu WordPerfet 5.1 (DOS) versiolla

Lisätiedot

C# Windows ohjelmointi perusopas

C# Windows ohjelmointi perusopas Paavo Räisänen C# Windows ohjelmointi perusopas www.ohjelmoimaan.net Tätä opasta saa vapaasti kopioida, tulostaa ja levittää ei kaupallisissa tarkoituksissa. Kuitenkaan omille nettisivuille opasta ei saa

Lisätiedot

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

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

Lisätiedot

Lyhyt kertaus osoittimista

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

Harjoitus 2: Oppijan aktivointi (15.3.2016)

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

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

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

Lisätiedot

Harjoitustyö: virtuaalikone

Harjoitustyö: virtuaalikone Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman

Lisätiedot

Harjoitus 3: Flash-komponenttiarkkitehtuuri (18.3.2016)

Harjoitus 3: Flash-komponenttiarkkitehtuuri (18.3.2016) Harjoitus 3: Flash-komponenttiarkkitehtuuri (18.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ätiedot

Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö C-ohjelmassa

Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö C-ohjelmassa ssa ohjelman käytössä suoritusaikana oleva muisti jakautuu neljään osaan: koodisegmentti datasegmentti pinosegmentti (stack) kasa (heap) ssa ohjelman koodisegmentti sisältää käännetyn ohjelmakoodin sisältö

Lisätiedot

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä 12.1 12.2 12.3 12.4

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

Lisätiedot

1. Omat operaatiot 1.1

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

Lisätiedot

Verkkojulkaiseminen Minna Väisänen. HTML5-tehtävä

Verkkojulkaiseminen Minna Väisänen. HTML5-tehtävä Verkkojulkaiseminen Minna Väisänen HTML5-tehtävä Kirjoita Dreamweaverissa oheisen nettisivun koodi. Lisää xx-kohtiin omat tietosi. Kuvan nimi on joki.jpg. Ensin tehdään sivusto ja sitten yksittäinen sivu.

Lisätiedot

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

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

Lisätiedot

UpdateIT 2010: Editorin käyttöohje

UpdateIT 2010: Editorin käyttöohje UpdateIT 2010: Editorin käyttöohje Käyttäjätuki: Suomen Golfpiste Oy Esterinportti 1 00240 HELSINKI Puhelin: (09) 1566 8800 Fax: (09) 1566 8801 E-mail: gp@golfpiste.com Sisällys Editorin käyttöohje...

Lisätiedot

Ohjelmointi 1 Taulukot ja merkkijonot

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

Lisätiedot

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5) Alkuarvot ja tyyppimuunnokset (1/5) Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int luku = 123; Alkuarvon on oltava muuttujan tietotyypin mukainen, esimerkiksi int-muuttujilla kokonaisluku,

Lisätiedot

Integroidun maksupäätteen lisääminen käyttöönotossa

Integroidun maksupäätteen lisääminen käyttöönotossa Integroidun maksupäätteen lisääminen käyttöönotossa Elisa tarjoaa maksupäätteiksi Netsin Ingenico ipp350 tai iwl250 Ethernet yhteydellä ja iwl250 mallia Bluetooth yhteydellä. Jotta maksupääte toimii Elisa

Lisätiedot

Muistitikun liittäminen tietokoneeseen

Muistitikun liittäminen tietokoneeseen Muistitikun käyttäminen 1 Muistitikun liittäminen tietokoneeseen Muistitikku liitetään tietokoneen USB-porttiin. Koneessa voi olla useita USB-portteja ja tikun voi liittää mihin tahansa niistä. USB-portti

Lisätiedot

17. Javan omat luokat 17.1

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

Written by Administrator Monday, 05 September 2011 15:14 - Last Updated Thursday, 23 February 2012 13:36

Written by Administrator Monday, 05 September 2011 15:14 - Last Updated Thursday, 23 February 2012 13:36 !!!!! Relaatiotietokannat ovat vallanneet markkinat tietokantojen osalta. Flat file on jäänyt siinä kehityksessä jalkoihin. Mutta sillä on kuitenkin tiettyjä etuja, joten ei se ole täysin kuollut. Flat

Lisätiedot

Taulukot. Jukka Harju, Jukka Juslin 2006 1

Taulukot. Jukka Harju, Jukka Juslin 2006 1 Taulukot Jukka Harju, Jukka Juslin 2006 1 Taulukot Taulukot ovat olioita, jotka auttavat organisoimaan suuria määriä tietoa. Käsittelylistalla on: Taulukon tekeminen ja käyttö Rajojen tarkastus ja kapasiteetti

Lisätiedot

JAVA on ohjelmointikieli, mikä on kieliopiltaan hyvin samankaltainen, jopa identtinen mm. C++

JAVA on ohjelmointikieli, mikä on kieliopiltaan hyvin samankaltainen, jopa identtinen mm. C++ JAVA alkeet JAVA on ohjelmointikieli, mikä on kieliopiltaan hyvin samankaltainen, jopa identtinen mm. C++ ja Javascriptin kanssa. Huom! JAVA ja JavaScript eivät silti ole sama asia, eivätkä edes sukulaiskieliä.

Lisätiedot