Dynaamista ja joustavaa ohjelmointia - maukasta makrokielellä

Koko: px
Aloita esitys sivulta:

Download "Dynaamista ja joustavaa ohjelmointia - maukasta makrokielellä www.turkuamk.fi"

Transkriptio

1 Markku Suni Turun ammattikorkeakoulu Dynaamista ja joustavaa ohjelmointia - maukasta makrokielellä

2 SAS Makrokieli SAS Makrokieli on kieli SAS-kielen laajennus datavaihetta muistuttavia lauseita ja funktioita makroprosessorin käynnistää ohjelmasta löytyvä %nimi tai &nimi

3 SAS Makrokieli Makrokielen asiat tapahtuvat ohjelmaa käännettäessä makroprosessorin työn tulos näkyy kääntäjälle Idea: yksi nimi korvautuu pitemmällä tekstillä moneen kertaan monessa kohtaa ohjelmaa mahdollisesti vaihtelevasti kyse on aina tekstistä, merkkijonosta Tämä tapahtuu ohjelmaa käännettäessä

4 SAS Makrokielen teoriaa SAS-ohjelma lähetetty suoritukseen: SUBMIT Scanner selaa ohjelmaa Tokenizer etsii kokonaisuutta (nimi tms.) Löytyy merkki % tai & Makroprosessori herätetään; lukee merkkiä seuraavan sanan Makroprosessori toimii sanan edellyttämällä tavalla - mahdollisesti korvaa sanan tekstillä - päivittää taulujaan - lukee sanan uudelleen, tekee em. operaatiot - hävittää lukemansa sanan Tokenizer jatkaa merkkiä seuraavasta kohdasta

5 Voidaan määritellä melkein milloin tahansa Sisältää saman arvon kunnes eksplisiittisesti muutetaan muuten sama koko ohjelman (istunnon) ajan Määrittely ja asetus: %let nimi = uusi ; Viittaus: Makromuuttujat &nimi Havaitaan: &nimi.. Ei: &nimi Kyseinen kohta ohjelmassa korvautuu makron arvolla Makron arvo on aina merkkijono!! SAS-kääntäjä voi ymmärtää sen lukuna

6 Makromuuttujat Makromuuttuja voi sisältää SAS-ohjelmaa: %let koodi = %str( proc freq; table sex * vastaus; ); %str-funktion sisällä puolipisteet eivät päätä arvoa Makromuuttujan tyhjennys: %let koodi = ; Sisäkkäistys: %let koodi = %str( proc freq; table &var*&var2; ); Muuttujan arvo lokiin: %put &var ;

7 Makromuuttujat Makromuuttuja voi olla yksittäinen sana tai osa sitä: %let nobsi = ; tai %let nobsi = noobs ; proc print data = &tdsto &nobsi; var &idmja maksu korvaus; Makromuuttuja tekstin osana: data &alku.yks ; set tieto&loppu &kirjasto..tiedot; Piste lopettaa makromuuttujan nimen jos sitä ei muuten huomaisi. Huom.: kaksi pistettä: toinen jää paikalleen.

8 Makro Makro on pala koodia, jolle annetaan nimi %macro dsn; data.tiedot %mend dsn; %macro suorita; proc print data = %dsn; %mend suorita;

9 Makro Makro on pala koodia, jolle annetaan nimi %macro dsn; data.tiedot %mend dsn; %macro suorita; proc print data = %dsn; %mend suorita; Nyt käyttö: title1 Tiedosto %dsn käytössä ; %suorita; Makro voi generoida hyvinkin pitkän pätkän koodia Puolipiste ei ole pakollinen makrokutsun jäljessä.

10 Makro ja parametrit Makroon voidaan lisätä parametreja: %macro suorita( tdsto, bymja ); proc print data = &tdsto; by &bymja; %mend suorita;

11 Makroon voidaan lisätä parametreja: %macro suorita( tdsto, bymja ); proc print data = &tdsto; by &bymja; %mend suorita; Kutsussa: Makro ja parametrit %suorita( data.testi, kunta ) %suorita( kunnat, kunta ); Parametreja EI laiteta sitaatteihin (AINA merkkijono). %analyysi( tiedot, 5, maksu, 1 );

12 Makro ja parametrit Parametrit kutsussa pilkuilla erotettuina %suorita( tdsto, bymja ); Puuttuva parametrin arvo korvautuu tyhjällä: %suorita( data.testi ); %suorita(, kunta ); Tällöin parametria vastaava kohta koodia jää tyhjäksi = ei mitään SAS-koodista riippuen voi olla virhe tai sitten ei ole PROC print data = tiedot &nobsi ;

13 Makro ja parametrit Parametrit korvataan siis position perusteella %macro sortti ( tdsto, by1, by2, by3 ); proc sort data = &tdsto ; by &by1 &by2 &by3; Toimii, jos on ainakin BY1 annettu. Muut voi jättää pois. Toinen mahdollinen yleistys: %macro sorttaa ( tdsto, bylista ); prod sort data = &tdsto ; by &bylista; Ja sitten vaan: %sortti ( tiedot, yhtio, alue, konttori ); %sortti ( tiedot, yhtio ); %sorttaa( tiedot, yhtio alue konttori ); %sorttaa( tiedot, yhtio );

14 Makro ja parametrit Makron parametreilla voi olla oletusarvoja: %macro suorita( tdsto=tiedot, bymja=alue);... ; %mend suorita; Ellei parametrille annettu arvoa, käytetään määrityksen oletusarvoa %suorita( tdsto=data.testi, bymja=konttori ); %suorita( tdsto=data.testi ); %suorita( );

15 Makrojen sisäkkäisyys %macro teetdsto; tapa 1 data temp; set data.tiedot; if age >= 20; %mend teetdsto; %macro listaa; proc print data = temp; by &bymja; %mend listaa; %macro analyysi ( bymja ); %* luo tiedosto - kommentti makrossa ; %teetdsto; %* sitten listataan ; %listaa ; %mend analyysi;

16 Makrojen sisäkkäisyys %macro analyysi ( bymja ); tapa 2 %macro teetdsto; data temp; set data.tiedot; if age >= 20; %mend teetdsto; %macro listaa; proc print data = temp; by &bymja; %mend listaa; %* luo tiedosto - kommentti makrossa ; %teetdsto; %* sitten listataan ; %listaa ; %mend analyysi; Makron suoritus määrittelee muita makroja

17 %macro analyysi ( bymja ); tapa 2 %macro teetdsto; data temp; set data.tiedot; if age >= 20; %mend teetdsto; %macro listaa; proc print data = temp; by &bymja; %mend listaa; %* luo tiedosto - kommentti makrossa ; %teetdsto; %* sitten listataan ; %listaa ; %mend analyysi; Makrojen sisäkkäisyys Ja itse ohjelma: %analyysi ( sukupuoli )

18 %macro printtaa( by ); proc print data = tiedot; %if &by = K %then %do; by yhtio; %end; id yhtio; var maksu korvaus; %mend printtaa; Ehdollinen koodi makrossa IF-then-rakenne toimii kuin SAS-kielessä, mutta makron tasolla (ennen käännöstä) Ero: ei sitaatteja merkkijonon ympärille %then-sanan jälkeen tulee makron kutsu (nimi: %suorita ) tai %do... %end

19 Ehdollinen koodi makrossa %macro tabuloi( yhtio ); proc tabulate data = tiedot; where yhtio = &yhtio ; class %if &yhtio ne 42 %then %do; alue piiri %end; myyja ; var maksu korvaus; table %if &yhtio ne 42 %then %do; alue * piiri * %end; myyja, ( maksu korvaus ) * sum; %mend tabuloi; Makrolauseiden ja lausekkeiden taittoon syytä paneutua (luettavuus)

20 Ehdollinen koodi makrossa Vertailussa ero SAS-kieleen nähden: %macro tabuloi( vipu, tdsto ); %if &vipu ne %then %do; proc tabulate data = &tdsto ;. Run; %end; %else %do; %* Ei siis tabuloida ; /* Ei siis tabuloida */ %end; %mend tabuloi;

21 Ehdollinen koodi makrossa Merkkijonojen kyseessä ollen muista ISOT vs pienet kirjaimet: %if %upcase( &firma ) = TurkuAMK %then %do; Makroprosessorille TurkuAMK ne turkuamk ne TURKUAMK Esim: OPTIONS pageno = 1; %tabuloi( TSK ); options pageno = 1; %tabuloi( Tai ); options pageno = 1; %tabuloi( Bio );

22 Toisto on mahdollista: %macro nimet( nimi, kpl ); Merkkijono ymmärretään lukuna %do n = 1 %to &kpl; &nimi&n Ei tarvita pistettä %end; %mend nimet; Proc print data = tiedot; var %nimet( mja, 4 ); => var mja1 mja2 mja3 mja4 ; Mutta: Toistokoodi makrossa %macro nimet( nimi, kpl ); Merkkijono ymmärretään lukuna %do n = 1 %to &kpl; &nimi.n&n Nyt on piste %end; %mend nimet; Proc print data = tiedot; var %nimet( mja, 4 ); => var mjan1 mjan2 mjan3 mjan4 ;

23 Datavaiheen liittymä Rutiinilla SYMPUT voidaan luoda ja asettaa makromuuttujia: CALL SYMPUT( yksikko_, 042 ); CALL SYMPUT( myksikko_, TSK ); CALL SYMPUT( myhtio_, yhtio ); CALL SYMPUT( mja, arvo ); Makromuuttujan nimi sitaatteihin, arvo samoin Jos arvo on merkkijonomuuttujassa, ei sitaatteja. Arvo saadaan datavaiheen muuttujaan: arvo = SYMGET( &myhtio_ ); Huom: SYMPUTin kutsun jälkeen on oltava RUN; että makromuuttuja olisi käytettävissä ( uusi käännös!! ) Näin luoduista makroista tulee globaaleja

24 Makromuuttuja voidaaan luoda SQL-kyselyssä. SQL-kyselystä puheen ollen... Arvojen lista voisi olla hyödyllinen: data pomot; input nimi $ ; cards; Nilken Murikka ; Proq sql noprint; select quote(nimi) from quit; data palkat; Makromuuttuja ja SQL into :nimet separated by pomot set henre.palkat ( where= ( nimi IN ( &nimet ))); INTO ohjaa tuloksen makromuuttujaan

25 Monimutkaisempaa - rescan Jos löytyy &:n jälkeen toinen &, makroprosessori korvaa && & ja lukee tekstin uudelleen Ja sama jatkuu &&&&x &&&x &&x &x Tätä hyväksikäyttäen voidaan rakentaa epäsuoria makroviittauksia

26 Monimutkaisempaa - rescan %let k010 = TSK ; %let k020 = BIO; %let k030 = TERV ; data a; do koulohj = '010', '020', '030'; do suunta = 1 to 3; do tapaus = 1 to 10; opisk = ranuni(1107)*10; opcred = ranuni(1107)* 80; output a; end; end; end; %macro printti( kohj ); proc tabulate data = a ; where koulohj = "&kohj"; class suunta; var opisk opcred; table luokka, (maksu korvaus)*sum; title Koulohjelma: &&k&kohj, opiskelijain suoritukset"; %mend printti; %printti( 010 ); %printti( 020 ); Mitä tässä tapahtuukaan? %printti( 030 );

27 Monimutkaisempaa - rescan %let k010 = TSK ; %let k020 = BIO; %let k030 = TERV ; data a; do koulohj = '010', '020', '030'; do suunta = 1 to 3; do tapaus = 1 to 10; opisk = ranuni(1107)*10; opcred = ranuni(1107)* 80; output a; end; end; end; %macro printti( kohj ); proc tabulate data = a ; where koulohj = "&kohj"; class suunta; var opisk opcred; table luokka, (maksu korvaus)*sum; title Koulohjelma: &&k&kohj, opiskelijain suoritukset"; %mend printti; %printti( 010 ); &k010 TSK

28 Esimerkki Halutun kuun alku ja loppu : %macro mkuual( pvm ) /* pvm: SAS-päivämäärämuuttuja */ alkukuu = MDY( MONTH( pvm ), 1, YEAR( pvm )); %mend mkuual; %macro mkuulop( pvm ) /* pvm: SAS-päivämäärämuuttuja */ if MONTH( pvm ) = 12 then lopukuu = MDY( 1, 1, YEAR( pvm ) + 1 ) -1; else lopukuu = MDY( MONTH( pvm ) + 1, 1, YEAR( pvm )) -1; %mend mkuulop;

29 Esimerkki Onko kyse testistä vai tuotantoajosta? Kirjastojen nimiä, viitteitä, tms. on hyvä laittaa makromuuttujiin. Ohjelman alussa selvitetään (vaikkapa ajoparametritiedosto lukemalla), onko kyseessä testi vai ei. Asetetaan makromuuttujat sopivasti. %macro alustus; DATA null; INFILE ajoparm; INPUT parametrit ; %* rakennellaan tarvittavat arvot ja sitten muuttujiin; CALL SYMPUT( ymp, TUOT ); CALL SYMPUT(.... ); RUN; %mend alustus; Ja sitten:... SET &ymp..tiedot;...

30 Esimerkki Raportointiohjelma: samantapainen raportti jokaisesta koulutusohjelmasta ja oppiaineesta %macro poimi( kohj, vv ) %* poimitaan ohjelma ja vuosi; data otos; set tieto; WHERE ( kohj = &kohj ) AND (vuosi = &vv); /* tehdään sitä ja tätä */ %mend poimi; %macro raportoi( kohj, vv ) %* raportti; %poimi( &kohj, vv ); %* poiminta ; PROC TABULATE data = otos ; CLASS %if &kohj = 10 %then %do oaine %end; sv ; VAR... RUN; %mend raportoi;

31 Raportointiohjelma: samantapainen raportti jokaisesta koulutusohjelmasta ja oppiaineesta Ja sitten se itse ohjelma: %raportoi( 10, 2011 ); %raportoi( 10, 2012 ); %raportoi( 20, 2011 ); %raportoi( 20, 2012 ); %raportoi( 30, 2011 ); %raportoi( 30, 2012 ); RUN; Esimerkki

32 Esimerkki Proseduurissa TABULATE on paha puute: luokat, joita vastaavia havaintoja ei ole, eivät näy tulosraportissa, eikä voida ilmoittaa, mitä arvoja siellä voisi olla (vrt proseduurien CHART ja GCHART optio MIDPOINTS). Q&D-ratkaisu: liitetään alkuperäisen havaintoaineiston jatkoksi tyhjä aineisto, jossa on halutut luokkamuuttujien arvot, mutta ei muuta.

33 Esimerkki %macro tabulk( x ) / parmbuff ; %let stop = %length( &syspbuff ); %let seti = %scan( &syspbuff, 1 ); %let nimi = %scan( &syspbuff, 2 ); data _mz_ ( keep = &nimi ); %do I = 3 %to &stop; %let arvo = %scan( &syspbuff, &i ); %if &arvo ne %then %do; &nimi = &arvo; output; %end; %else %let i = &stop; %end; proc append base = &seti data = _mz_; %mend tabulk;

34 Esimerkki Makron käyttö data koe; input luokka markka myynti; cards; ; %tabulk( koe, luokka, 1, 2, 3, 4, 5 ); proc tabulate data = koe; class luokka; var markka myynti; table luokka all, ( markka myynti )* sum/ misstext = Puuttuu ;

35 Esimerkki Ja tulokseksi tulee:

36 Makroihin liittyviä asioita MLOGIC - NOMLOGIC Jos päällä, makroprosessori listaa lokiin makromuuttujien arvojen mukaan tapahtuneet haarautumisensa MPRINT - NOMPRINT Jos päällä, makroprosessori listaa lokiin makroista generoituneet SAS-lauseet (huom: ei aina kovin selvästi) SAS tarjoaa käyttöön koko joukon automaattisesti asetettuja makromuuttujia, esim: SYSDATE systeemin tuntema päivämäärä (tänään: 11OCT12 ) SYSLAST - viimeksi luodun SAS-tiedoston nimi muodossa viite.nimi SYSTIME - tämän SAS-istunnon tai työn aloitusajankohdan (hh:mm).

37 Yhteenveto Pieni sana, %macro, antaa valtavasti vaihtelua ohjelmaan. Makrojen ja makromuuttujien avulla voi ohjelmista tehdä joustavampia helpompia ylläpitää selkeitä: muuttuvat asiat ohjelman alussa hyvin nähtävillä lyhyempiä paremmin uudelleenkäytettäviä lisäämättä kohtuuttomasti ohjelman tekemisen vaikeutta

38 This is the end The Doors

Ruokahalu kasvaa syödessä lisää makrokielen herkkuja

Ruokahalu kasvaa syödessä lisää makrokielen herkkuja Turun ammattikorkeakoulu Ruokahalu kasvaa syödessä lisää makrokielen herkkuja SAS Makrokieli - kertaus Makrokielen asiat tapahtuvat ohjelmaa käännettäessä makroprosessorin työn tulos näkyy kääntäjälle

Lisätiedot

Makrojen mystinen maailma lyhyt oppimäärä

Makrojen mystinen maailma lyhyt oppimäärä Makrojen mystinen maailma lyhyt oppimäärä Makrot osana SAS-teknologiaa Yleiskuva Jouni Javanainen Aureolis lyhyesti Aureolis on jatkuvia Business Intelligence -palveluita tuottava asiantuntijaorganisaatio

Lisätiedot

Datavaiheen taikoja - tietäjien perintönä www.turkuamk.fi

Datavaiheen taikoja - tietäjien perintönä www.turkuamk.fi Markku Suni Factotum emeritus Turun ammattikorkeakoulu Datavaiheen taikoja - tietäjien perintönä SAS Datavaihe lukee lauseiden SET ja INPUT avulla Datavaihe tulostaa lauseiden OUTPUT ja PUT avulla Vaan

Lisätiedot

DATA-vaiheen ohjelmoijan yleissivistys helposti unohtuvia asioita

DATA-vaiheen ohjelmoijan yleissivistys helposti unohtuvia asioita Markku Suni Factotum emeritus Turun ammattikorkeakoulu DATA-vaiheen ohjelmoijan yleissivistys helposti unohtuvia asioita Aivan ensimmäiseksi haluan kiittää kuulijoita kuuntelusta Kuten tunnettu poliitikko

Lisätiedot

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

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

Lisätiedot

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

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

Lisätiedot

815338A Ohjelmointikielten periaatteet 2014-2015. Harjoitus 7 Vastaukset

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

Lisätiedot

Luento 5. Timo Savola. 28. huhtikuuta 2006

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

Lisätiedot

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

Dictionary taulut. Miten perus metadataa käytetään koodillisesti joustavuutta lisäämään

Dictionary taulut. Miten perus metadataa käytetään koodillisesti joustavuutta lisäämään Dictionary taulut Miten perus metadataa käytetään koodillisesti joustavuutta lisäämään Metadata Base SASissa Metadata on käytettävissä jokaisessa SAS istunnossa, oli sitten kyse yksittäiskäyttäjästä omalla

Lisätiedot

Ehto- ja toistolauseet

Ehto- ja toistolauseet Ehto- ja toistolauseet 1 Ehto- ja toistolauseet Uutena asiana opetellaan ohjelmointilauseet / rakenteet, jotka mahdollistavat: Päätösten tekemisen ohjelman suorituksen aikana (esim. kyllä/ei) Samoja lauseiden

Lisätiedot

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

SELECT-lauseen perusmuoto

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

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset

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

Lisätiedot

Tietotyypit ja operaattorit

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

Lisätiedot

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

Täysautomatisoitu raportointiympäristö. Joni-Petteri Paavilainen Jani Alatalo

Täysautomatisoitu raportointiympäristö. Joni-Petteri Paavilainen Jani Alatalo Täysautomatisoitu raportointiympäristö Joni-Petteri Paavilainen Jani Alatalo Miksi tähän ryhdyttiin? Miten asiassa edettiin? Vaatimuksia Reaaliaikaisuus n 15 min Hallitut käyttöoikeudet Raportin tekijöillä

Lisätiedot

Java-kielen perusteet

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

SAS/IML käyttö ekonometristen mallien tilastollisessa päättelyssä. Antti Suoperä 16.11.2009

SAS/IML käyttö ekonometristen mallien tilastollisessa päättelyssä. Antti Suoperä 16.11.2009 SAS/IML käyttö ekonometristen mallien tilastollisessa päättelyssä Antti Suoperä 16.11.2009 SAS/IML käyttö ekonometristen mallien tilastollisessa päättelyssä: Matriisi ja vektori laskennan ohjelmisto edellyttää

Lisätiedot

PHP tehtävä 3 Atte Pekarinen TIKT13A 4.12.2014

PHP tehtävä 3 Atte Pekarinen TIKT13A 4.12.2014 PHP-kielen perusteet 3.1 Mitä tarkoittaan heredoc? Milloin sitä kannattaa käyttää? Kirjoita esimerkki sen käyttämisestä. Heredoc on ominaisuus PHP-koodaamisessa, jolla voidaan kirjoittaa pitkiä tekstejä

Lisätiedot

Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008

Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008 Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT Jouni Huotari S2008 2 Proseduurit Ohjelmamoduuleita, jotka voidaan tallettaa tietokantaan (DBMS:n tietohakemistoon)

Lisätiedot

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009 PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009 PROSEDUURIT Ohjelmamoduuleita, jotka voidaan tallettaa tietokantaan (DBMS:n tietohakemistoon)

Lisätiedot

Hieman linkkejä: http://cs.stadia.fi/~kuivanen/linux/kom.php, lyhyt ohje komentoriviohjelmointiin.

Hieman linkkejä: http://cs.stadia.fi/~kuivanen/linux/kom.php, lyhyt ohje komentoriviohjelmointiin. Linux-harjoitus 9 Linuxin mukana tulevat komentotulkit (mm. bash, tcsh, ksh, jne ) sisältävät ohjelmointikielen, joka on varsin tehokas ja ilmaisuvoimainen. Tähän yhdistettynä unix-maailmasta tutut tehokkaat

Lisätiedot

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet A271117, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin

Lisätiedot

Java-kielen perusteita

Java-kielen perusteita Java-kielen perusteita Toistorakenne (while, do-while, for) 1 While- lause while-lauseen rakenne on seuraava: while (ehtolauseke) lause Kun ehtolausekkeen arvo on totta, lause suoritetaan. Lause suoritetaan

Lisätiedot

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 5: Python

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 5: Python Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 5: Python 7. helmikuuta 2009 Ohjelmoinnista Ohjelman peruselementtejä Koodin kommentointi Lohkorakenne Ohjausrakenteet If For While Try Funktiot Käyttö

Lisätiedot

Matlab- ja Maple- ohjelmointi

Matlab- ja Maple- ohjelmointi Perusasioita 2. helmikuuta 2005 Matlab- ja Maple- ohjelmointi Yleistä losoaa ja erityisesti Numsym05-kurssin tarpeita palvellee parhaiten, jos esitän asian rinnakkain Maple:n ja Matlab:n kannalta. Ohjelmien

Lisätiedot

Java-kielen perusteita

Java-kielen perusteita Java-kielen perusteita valintalauseet 1 Johdantoa kontrollirakenteisiin Tähän saakka ohjelmissa on ollut vain peräkkäisyyttä eli lauseet on suoritettu peräkkäin yksi kerrallaan Tarvitsemme myös valintaa

Lisätiedot

HELIA TIKO-05 1 (17) ICT03D Tieto ja tiedon varastointi Räty, Virkki

HELIA TIKO-05 1 (17) ICT03D Tieto ja tiedon varastointi Räty, Virkki HELIA TIKO-05 1 (17) SQL / DML 4 Alikyselyt...2 Joukko-operaatiot...7 Yhdiste, unioni...8 Leikkaus...9 Erotus... 10 Tietokannan datan muokkaus... 11 Lisäys... 11 Yhden rivin lisääminen... 12 Useamman rivin

Lisätiedot

Tiedot hallintaan PROC CONTENTSilla makroja ja ODS:ää hyödyntäen. Päivi Heimonen ICT-erikoisasiantuntija, Kela SAS Tech Club 24.1.

Tiedot hallintaan PROC CONTENTSilla makroja ja ODS:ää hyödyntäen. Päivi Heimonen ICT-erikoisasiantuntija, Kela SAS Tech Club 24.1. Tiedot hallintaan PROC CONTENTSilla makroja ja ODS:ää hyödyntäen Päivi Heimonen ICT-erikoisasiantuntija, Kela SAS Tech Club 24.1.2017 Tausta ja tavoite Haaste 1 Tietojen haravoinnin tehostaminen ja helpottaminen

Lisätiedot

MTT:n sääaineistot ja tietokannat hallintaan SASilla

MTT:n sääaineistot ja tietokannat hallintaan SASilla MTT:n sääaineistot ja tietokannat hallintaan SASilla Tietoiskutilaisuus 21.3.2013. Versio 1.1 Timo Pitkänen MTT:n sääaineistot ja tietokannat hallintaan SASilla Tämän tietoiskumateriaalin tarkoitus on

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

TAITAJA 2007 ELEKTRONIIKKAFINAALI 31.01-02.02.07 KILPAILIJAN TEHTÄVÄT. Kilpailijan nimi / Nro:

TAITAJA 2007 ELEKTRONIIKKAFINAALI 31.01-02.02.07 KILPAILIJAN TEHTÄVÄT. Kilpailijan nimi / Nro: KILPAILIJAN TEHTÄVÄT Kilpailijan nimi / Nro: Tehtävän laatinut: Hannu Laurikainen, Deltabit Oy Kilpailutehtävä Kilpailijalle annetaan tehtävässä tarvittavat ohjelmakoodit. Tämä ohjelma on tehty laitteen

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman

Lisätiedot

HELIA 1 (14) Outi Virkki Tiedonhallinta

HELIA 1 (14) Outi Virkki Tiedonhallinta HELIA 1 (14) Luento Näkymät... 2 Relaatiotyypit... 2 Taulu - Tallennettu relaatio... 3 Näkymä - Virtuaalirelaatio... 3 Tulosrelaatio - Kyselyn tulos... 3 Otetaulut - Tauluun tallennettu kyselyn tulos...

Lisätiedot

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin peruskurssien laaja oppimäärä Ohjelmoinnin peruskurssien laaja oppimäärä Luento 10: Paikalliset muuttujat, kirjan tulkki kokonaisuutena (mm. SICP 3.2, 4.1.24.1.6) Riku Saikkonen 22. 11. 2012 Sisältö 1 Ympäristöt: miten paikalliset

Lisätiedot

Koostefunktiot. Viisi standardifunktiota: Esim. montako henkilöä on henkilo-taulussa:

Koostefunktiot. Viisi standardifunktiota: Esim. montako henkilöä on henkilo-taulussa: Funktiot Koostefunktiot Viisi standardifunktiota: AVG -- keskiarvo MIN -- pienin arvo MAX -- suurin arvo SUM -- summa COUNT-- lukumäärä Esim. montako henkilöä on henkilo-taulussa: SELECT Count(*) AS Lkm

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

TIEDONHALLINTA - SYKSY Luento 8. Saapumisryhmä: Pasi Ranne /9/13 Helsinki Metropolia University of Applied Sciences

TIEDONHALLINTA - SYKSY Luento 8. Saapumisryhmä: Pasi Ranne /9/13 Helsinki Metropolia University of Applied Sciences TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 8 XX00AA79-3013 TU12S2 Pasi Ranne 25.9.2013 25/9/13 Helsinki Metropolia University of Applied Sciences 1 Harjoitustyö Harjoitustöiden tilanne

Lisätiedot

Listarakenne (ArrayList-luokka)

Listarakenne (ArrayList-luokka) Listarakenne (ArrayList-luokka) Mikä on lista? Listan määrittely ArrayList-luokan metodeita Listan läpikäynti Listan läpikäynti indeksin avulla Listan läpikäynti iteraattorin avulla Listaan lisääminen

Lisätiedot

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100 Tiedonsiirtokäskyt LOAD LOAD-käsky toimii jälkimmäisestä operandista ensimmäiseen. Ensimmäisen operandin pitää olla rekisteri, toinen voi olla rekisteri, vakio tai muistiosoite (myös muuttujat ovat muistiosoitteita).

Lisätiedot

DI Studion käyttökokemuksia. Kaisu Ikonen, Tilastokeskus

DI Studion käyttökokemuksia. Kaisu Ikonen, Tilastokeskus Kaisu Ikonen, Tilastokeskus 13.9.2012 Sisältö SAS Tilastokeskuksessa 2012 Esimerkki DIS-projektista Erityiskysymyksiä 13.9.2012 2 SAS Tilastokeskuksessa 2012 SAS-käyttäjiä 350, joista IT-puolella noin

Lisätiedot

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne

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

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

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

Ohjelmoinnin peruskurssien laaja oppimäärä

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

Ohjelmoinnin peruskurssien laaja oppimäärä

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

Lisätiedot

SQL:N PERUSTEET MARKKU SUNI

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

Lisätiedot

Aureolis Oy Itsemääritellyt funktiot SAS ohjelmoinnissa

Aureolis Oy Itsemääritellyt funktiot SAS ohjelmoinnissa Aureolis Oy 2013 24.9.2013 Miksi omatekoisia funktiota? Koodin uudelleen käyttö Koodi kirjoitetaan kerran ja käytään monessa paikassa. Säästytään turhalta työltä Koodin hallinta keskitetysti Koodi voidaan

Lisätiedot

VINKKI: Katso Kentät Muistioon -painikkeella, mikä on taulukon nimen oikea kirjoitusasu.

VINKKI: Katso Kentät Muistioon -painikkeella, mikä on taulukon nimen oikea kirjoitusasu. RATKAISUJA PULMAILMOITUKSIIN ASTERIOHJELMIEN SQLKYSELYISSÄ Virhe kyselyssä: Microsoft Jet tietokantamoduuli ei löydä syötetaulukkoa tai kyselyä Laskut. Varmista, että se on luotu ja että kirjoitit nimen

Lisätiedot

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin peruskurssien laaja oppimäärä Ohjelmoinnin peruskurssien laaja oppimäärä Luento 9: Makrot ja dynaaminen sidonta Riku Saikkonen 7. 12. 2010 Sisältö 1 Makrot 2 Pieni esimerkki abstraktion tekemisestä 3 Dynaaminen sidonta Mikä on makro?

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 1.4.2009 T-106.1208 Ohjelmoinnin perusteet Y 1.4.2009 1 / 56 Tentti Ensimmäinen tenttimahdollisuus on pe 8.5. klo 13:00 17:00 päärakennuksessa. Tämän jälkeen

Lisätiedot

Metodien tekeminen Javalla

Metodien tekeminen Javalla 1 Metodien tekeminen Javalla Mikä metodi on? Metodin syntaksi Metodi ja sen kutsuminen Parametreista Merkkijonot ja metodi Taulukot ja metodi 1 Mikä metodi on? Metodilla toteutetaan luokkaan toiminnallisuutta.

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 15.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.2.2010 1 / 46 Merkkijonot Merkkijonojen avulla ohjelmassa voi esittää tekstitietoa, esim. nimiä, osoitteita ja

Lisätiedot

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 81122P (4 ov.) 30.5.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan

Lisätiedot

HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät

HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät HAAGA-HELIA Heti-09 1 (12) Näkymät Näkymät... 2 Eri tyyppisiä relaatioita... 2 Taulu - Tallennettu relaatio... 2 Tulosrelaatio - Kyselyn tulos... 2 Näkymä - Virtuaalirelaatio... 2 Näkymien määrittely...

Lisätiedot

Kirjasto Relaatiotietokannat Kevät 2001. Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina

Kirjasto Relaatiotietokannat Kevät 2001. Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina Kirjasto Kevät 2001 Auvinen Annemari Niemi Anu Harjoitustyö 7.4.2001 Sisällysluettelo 1. Yleiskuvaus... 3 2. Vaatimukset... 3 2.1. Toiminnalliset... 3 2.1.1. Sisäänkirjautuminen... 3 2.1.2. Nimikkeiden

Lisätiedot

2 Konekieli, aliohjelmat, keskeytykset

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

Lisätiedot

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

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

Esimerkki: Laskin (alkua) TIEA341 Funktio ohjelmointi 1 Syksy 2005

Esimerkki: Laskin (alkua) TIEA341 Funktio ohjelmointi 1 Syksy 2005 Esimerkki: Laskin (alkua) TIEA341 Funktio ohjelmointi 1 Syksy 2005 Esimerkki: Laskin Liukulukulaskentaa Yhteen, vähennys, kerto ja jakolaskut Syötteenä laskutehtävä, tulosteena tulos tai virheilmoitus

Lisätiedot

Virta_Latausraportti - Tarkistukset

Virta_Latausraportti - Tarkistukset Virta_Latausraportti - Tarkistukset Tällä sivulla ylläpidetään tietovarannossa tehtävien tarkistusten listaa. Tarkistusten tulos ilmenee siis Virta_Latausraportilla PUUTTEITA-listalla. Opiskelijat Opiskelijalla

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

TIETOKANTOJEN PERUSTEET MARKKU SUNI

TIETOKANTOJEN PERUSTEET MARKKU SUNI TIETOKANTOJEN PERUSTEET MARKKU SUNI SQL - KIELI TIETOJEN MUOKKAUS MARKKU SUNI Tarkastellaan tauluissa olevien tietojen muokkausta muokkauskäskyjä: INSERT UPDATE DELETE Kysymys kuuluu: Voiko tietoja muokata

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 26.1.2009 T-106.1208 Ohjelmoinnin perusteet Y 26.1.2009 1 / 33 Valintakäsky if syote = raw_input("kerro tenttipisteesi.\n") pisteet = int(syote) if pisteet >=

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2011 1 / 39 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle

Lisätiedot

// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.

// Tulostetaan double-tyyppiseen muuttujaan hinta tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf(%.1f euros. Lue kukin tehtävänanto huolellisesti ja kokonaisuudessaan ennen kuin aloitat vastaamisen. Kustakin tehtävästä voi saada 0 6 pistettä. Tentin läpipääsyraja on 12 / 24 pistettä. Ratkaisut palautetaan WETO-järjestelmään

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

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin peruskurssien laaja oppimäärä Ohjelmoinnin peruskurssien laaja oppimäärä Luento 7: Funktionaalista ohjelmointia (mm. SICP 3.5) Riku Saikkonen 13. 11. 2012 Sisältö 1 Laiskaa laskentaa: delay ja force 2 Funktionaalinen I/O 3 Funktionaalista

Lisätiedot

Tilastollisten menetelmien käyttö Kelan tutkimustoiminnassa

Tilastollisten menetelmien käyttö Kelan tutkimustoiminnassa Tilastollisten menetelmien käyttö Kelan tutkimustoiminnassa Risto Lehtonen Helsingin yliopisto Kela 1 Tilastokeskuksen SAS-seminaari 16.11.2009 Aiheita Kelan tutkimustoiminta SAS-sovellukset vaativien

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 4.10.2017 CS-A1111 Ohjelmoinnin peruskurssi Y1 4.10.2017 1 / 23 Mahdollisuus antaa luentopalautetta Luennon aikana voit kirjoittaa kommentteja ja kysymyksiä sivulle

Lisätiedot

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen Metodit Metodien määrittely Metodin parametrit ja paluuarvo Metodien suorittaminen eli kutsuminen Metodien kuormittaminen 1 Mikä on metodi? Metodi on luokan sisällä oleva yhteenkuuluvien toimintojen kokonaisuus

Lisätiedot

RADAR - RANDOM DATA GENERATOR

RADAR - RANDOM DATA GENERATOR YLEISKUVAUS Radar on sovellus, jolla voi luoda näennäisen oikeaa satunnaisdataa testaus-, demo - ja muihin tarkoituksiin. TIEDUSTELUT Juha Levonen 050 372 5797 juha.levonen@kantapeikko.fi Osa datasta generoidaan

Lisätiedot

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

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

Lisätiedot

Samanaikaisuuden hallinta. Optiot transaktionaalisissa työnkuluissa

Samanaikaisuuden hallinta. Optiot transaktionaalisissa työnkuluissa Samanaikaisuuden hallinta Optiot transaktionaalisissa työnkuluissa Sisältö Transaktionaaliset työnkulut Samanaikaisuuden ongelmat Optiot idea käyttökohteet WorkMan Optioiden toteutus Arviointi Transaktionaaliset

Lisätiedot

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin peruskurssien laaja oppimäärä Ohjelmoinnin peruskurssien laaja oppimäärä Luento 11: Olioiden toteuttaminen Riku Saikkonen 28. 11. 2011 Sisältö 1 Miten oliot ja metodikutsut toimivat? 2 Oliot Minkä luokan metodia kutsutaan? Python-esimerkki

Lisätiedot

Opiskeluoikeuksien maaran tiedonkeruu

Opiskeluoikeuksien maaran tiedonkeruu Opiskeluoikeuksien maaran tiedonkeruu Määrittely Opinto-oikeuksista tarvitaan seuraavat tiedot: Tieto jokaisesta yksittäisestä opinto-oikeudesta ja kytkentä niistä opinto-oikeuksista jotka ovat samalla

Lisätiedot

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot)

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot) SQL sisältää operaatiot tietokannan sisällön muodostamiseen ja ylläpitoon: insert - uusien rivien vienti tauluun delete - rivien poisto update - rivien muutos 1 Insert lauseella on kaksi muotoa: insert

Lisätiedot

Johdatus Ohjelmointiin

Johdatus Ohjelmointiin Johdatus Ohjelmointiin Syksy 2006 Viikko 2 13.9. - 14.9. Tällä viikolla käsiteltävät asiat Peruskäsitteitä Kiintoarvot Tiedon tulostus Yksinkertaiset laskutoimitukset Muuttujat Tiedon syöttäminen Hyvin

Lisätiedot

C++11 lambdat: [](){} Matti Rintala

C++11 lambdat: [](){} Matti Rintala C++11 lambdat: [](){} Matti Rintala bool(*)(int) Tarve Tarve välittää kirjastolle/funktiolle toiminnallisuutta Callback-funktiot Virhekäsittely Käyttöliittymät Geneeristen kirjastojen räätälöinti STL:n

Lisätiedot

Hakukyselyt: SELECT * FROM taulu WHERE sarake1 = Malli Nimi [WHERE sarake1 LIKE M% ] [WHERE BETWEEN ehto1 AND ehto2] [WHERE sarake1 IN/= (alikysely)]

Hakukyselyt: SELECT * FROM taulu WHERE sarake1 = Malli Nimi [WHERE sarake1 LIKE M% ] [WHERE BETWEEN ehto1 AND ehto2] [WHERE sarake1 IN/= (alikysely)] Tällä viikolla Kertaus SQL-asioista jatketaan SQL-tekstifuntio-harjoituksia tehdään pelifirman tietokannasta ER-malli MySQL:llä, tarkastellaan mallin toimivuutta ja korjataan, jos korjattavaa löytyy, tehdään

Lisätiedot

Tietokannat II -kurssin harjoitustyö

Tietokannat II -kurssin harjoitustyö Tietokannat II -kurssin harjoitustyö Jyri Lehtonen (72039), jkoleh@utu.fi Azad Hajipour (72187), azhaji@utu.fi 10.6.2007 Sisältö 1. Tietokannan kuvaus... 1 1.1 Tietokannan rakenne... 1 1.2 Relaatiokaava

Lisätiedot

JavaScript alkeet Esimerkkikoodeja moniste 2 (05.10.11 Metropolia)

JavaScript alkeet Esimerkkikoodeja moniste 2 (05.10.11 Metropolia) JavaScript alkeet Esimerkkikoodeja moniste 2 (05.10.11 Metropolia) Esim 5.1 laskujärjestys operaattorit var tulos = 5 + 4 * 12 / 4; document.write("5 + 4 * 12 / 4 laskutoimituksen tulos

Lisätiedot

Ohjelmoinnin peruskurssi Y1

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

Lisätiedot

Web Services tietokantaohjelmoinnin perusteet

Web Services tietokantaohjelmoinnin perusteet ASP.NET Web Services Web Services tietokantaohjelmoinnin 2 (22) Sisällys Harjoitus 1: Tietokannat ja Web Services... 3 Harjoitus 2: Windows Client... 10 Harjoitus 3: Datan päivitys TableAdapterin avulla...

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 10.10.2018 CS-A1111 Ohjelmoinnin peruskurssi Y1 10.10.2018 1 / 20 Oppimistavoitteet: tämän luennon jälkeen Tiedät, miten ohjelman toimintaa voi tutkia ja ohjelmassa

Lisätiedot

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin peruskurssien laaja oppimäärä Ohjelmoinnin peruskurssien laaja oppimäärä Luento 11: Tulkin muokkaaminen, sisäiset määrittelyt, makrot (mm. SICP 3.2.4, 4-4.1.6) Riku Saikkonen 29. 11. 2012 Sisältö 1 Kirjan tulkin muokkaaminen 2 Yksityiskohta:

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

815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset

815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset Harjoituksen aiheena ovat aliohjelmat ja abstraktit tietotyypit sekä olio-ohjelmointi. Tehtävät tehdään C-, C++- ja Java-kielillä.

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 20.1.2010 T-106.1208 Ohjelmoinnin perusteet Y 20.1.2010 1 / 40 Arvon pyytäminen käyttäjältä Käyttäjän antaman arvon voi lukea raw_input-käskyllä. Käskyn sulkujen

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

SAS-ohjelmiston perusteet 2010

SAS-ohjelmiston perusteet 2010 SAS-ohjelmiston perusteet 2010 Luentorunko/päiväkirja Ari Virtanen 11.1.10 päivitetään luentojen edetessä Ilmoitusasioita Opintojakso suoritustapana on aktiivinen osallistuminen harjoituksiin ja harjoitustehtävien

Lisätiedot

Ohjelmoinnin peruskurssi Y1

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

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

TIEDON LAATU VIRPI VIRTANEN S-PANKKI JA JANNE ERÄNEN PERIGEUM

TIEDON LAATU VIRPI VIRTANEN S-PANKKI JA JANNE ERÄNEN PERIGEUM TIEDON LAATU VIRPI VIRTANEN S-PANKKI JA JANNE ERÄNEN PERIGEUM SISÄLTÖ Miksi tiedon laatua pitää tarkkailla? Sanktioitu ympäristö Mitä tiedosta voidaan tarkkailla? Numeeriset ja merkkimuotoiset tarkastelut

Lisätiedot

TAMPEREEN TEKNILLINEN YLIOPISTO

TAMPEREEN TEKNILLINEN YLIOPISTO TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja Tietokonetekniikan laitos TKT-3200 Tietokonetekniikka ASSEMBLER: QSORT 06.09.2005 Ryhmä 00 nimi1 email1 opnro1 nimi2 email2 opnro2 nimi3 email3 opnro3 1. TEHTÄVÄ

Lisätiedot

3.1 Mitä tarkoittaan heredoc? Milloin sitä kannattaa käyttää? Kirjoita esimerkki sen käyttämisestä.

3.1 Mitä tarkoittaan heredoc? Milloin sitä kannattaa käyttää? Kirjoita esimerkki sen käyttämisestä. PHP-kielen perusteet Käytä lähteenä PHP:n virallista manuaalia http://www.php.net/docs.php tai http://www.hudzilla.org/php (siirry Paul Hudsonin verkkokirjaan). Lisää materiaalia suomeksi esimerkiksi ohjelmointiputkan

Lisätiedot

Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus)

Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus) VISUAL BASIC OHJEITA Kutsuttava ohjelma alkaa kometoparilla Sub... End Sub Sub ohjelmanimi()...koodia... End Sub Muuttujat Muuttujan esittely Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency,

Lisätiedot