Ruokahalu kasvaa syödessä lisää makrokielen herkkuja

Koko: px
Aloita esitys sivulta:

Download "Ruokahalu kasvaa syödessä lisää makrokielen herkkuja"

Transkriptio

1 Turun ammattikorkeakoulu Ruokahalu kasvaa syödessä lisää makrokielen herkkuja

2

3 SAS Makrokieli - kertaus 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 Makromuuttujat - kertaus 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: &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

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

6 Makro - kertaus Makro on pala koodia, jolle annetaan nimi %macro dsn; data.tiedot %mend dsn; %macro suorita; proc print data = %dsn; run; %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ä.

7 Filosofista pohdintaa Kun ohjelmassa tarvitaan vakiota, kumpi tapa on parempi: mvakio = 3.14; %let mvakio = 3.14; maksu = hinta * mvakio; maksu = hinta * %mvakio; Kumpikin toimii oikein hyvin Mahdollinen ongelma: Jos käytetään valmiita makroja, esiintyykö jossain niistä muuttuja mvakio?

8 Pieni harjoitus Sitaattien kanssa on joskus epäselvyyttä. Mitkä put-lauseet suoritetaan: %let a = AAA ; %macro puttaa; %put &a; %if &a = AAA %then %put ei sitaatteja; %if &a = AAA %then %put yksinkertaiset; %if AAA = AAA %then %put tasan samat; %if &a = AAA %then %put kaksinkertaiset; %if &a = AAA %then %put kumpaakin; %if &a = AAA %then %put vain toisella puolella; %mend puttaa; %puttaa;

9 SAS-lokissa näkyy: Pieni harjoitus AAA ei sitaatteja yksinkertaiset tasan samat kaksinkertaiset

10 %let tiedsto = sasuser.class; %let komment = ; /* eli siis tyhjä */ &komment proc contents DATA = &tiedsto; &komment TITLE Tiedosto &tiedsto ; &komment Tästähän tulee: Kommentoidaanpa osa ohjelmasta proc contents DATA = sasuser.class; TITLE Tiedosto sasuser.class ;

11 %let tiedsto = sasuser.class; %let komment = ; /* eli siis tyhjä */ &komment proc contents DATA = &tiedsto; TITLE Tiedosto &tiedsto ; &komment Tästähän tulee: Kommentoidaanpa osa ohjelmasta proc contents DATA = sasuser.class; TITLE Tiedosto sasuser.class ; Mutta: %let komment = *; /* asteriski */ Ja tästä tuleekin: * proc contents DATA = sasuser.class; * TITLE Tiedosto sasuser.class ; *

12 Kommentoidaanpa osa ohjelmasta Toinen tapa: tehdään makro, jota ei kutsuta (käytetä). %macro kommentoi; DATA tiedot; SET havainto; WHERE. PROC TABULATE DATA = tiedot; CLASS. VAR TABLE %mend kommentoi;

13 Makrokielen funktioista Makrokieli tarjoaa joukon funktioita mielenkiintoinen funtio on %sysfunc voidaan suorittaa jokin SAS-funktio ja saada tulos talteen Esimerkiksi: onko tiedosto olemassa: %macro onkoha( tdsto ); %global onhase; /* varmuuden vuoksi */ %if sysfunc( exist( &tdsto)) %then %let onhase = K; %else %let onhase = E; %mend onkoha: Funktio exist palauttaa 1, jos tiedosto on olemassa, muuten 0 Makromuuttuja onhase saa arvon K tai E vastaavasti.

14 Makrokielen funktioista Makrokieli tarjoaa joukon funktioita toimivat kuin vastaavannimiset DATAvaiheen funktiot toimivat makrokielen tasolla (siis ennen kääntäjää) käsittelevät merkkijonoja Esimerkiksi: %index %length %scan %qscan %substr %qsubstr ensimmäinen osajonon esiintymä merkkijonossa merkkijonon pituus etsi n:s sana merkkijonosta etsi n:s sana merkkijonosta erota osajono alkaen jostain, pituus jokin sama ohittaen erikoismerkkien merkityksen

15 Makrokielen funktioista Esimerkki makrossa esiintyy luku väliltä 1-99 saatu jonkin operaation tuloksena nyt tulisi rakentaa siitä nimi muotoa NIMI38 vaan, jospa luvussa onkin vain yksi numero? %if %length( &num ) = 1 %then %let num = 0&num ;.. ja nyt saadaan aikaan myös NIMI01, NIMI02,

16 Makrokielen funktioista Esimerkki tarkkana pitää olla!! %if %length( num ) = 1 %then %let num = 0&num ;.. ja pieleen menee. %put %length( num ); Tulostaa 3 Miksi?

17 Makrokielen funktioista Esimerkki kirjoitetaan personoituja kirjeitä Markku on luultavasti Söör Markku. %if %index( &nimi, Markku ) > 0 %then %let nimi = Söör &nimi;

18 Makrokielen funktioista Esimerkki pomo sai meidät kiinni pelleilystä Söör täytyy poistaa nimen edestä. %if %index( &nimi, Söör ) > 0 %then %do; %let pos = %index( &nimi, Söör ); %let nimi = %qsubstr ( &nimi, &pos+4 ); %end;. %qsubstr ei huomioi erikoismerkkejä, muuten sama kuin %substr &pos+4 on implisiittinen %eval(&pos+4)

19 Makrokielen funktioista Tehdäänpä analyysi 12:n kuukauden materiaaleista Tätä edeltävä kuukausi ja sitä edeltävät 11 kuukautta Materiaalit nimeltään MAvvvvkk

20 Esimerkki: juokseva 12 kuukautta %macro anal12mo ; %LET k1 = 01 ; %LET k2 = 02 ; %LET k3 = 03 ; %LET k4 = 04 ; /* Makrokielen vektori */ %LET k5 = 05 ; %LET k6 = 06 ; %LET k7 = 07 ; %LET k8 = 08 ; %LET k9 = 09 ; %LET k10 = 10 ; %LET k11 = 11 ; %LET k12 = 12 ; %LET kk = %sysfunc( month( %sysfunc(today())) ); %LET kk1 = %eval( &kk - 1 ); %LET vuo = %sysfunc( year( %sysfunc( today ()) )); %LET vv1 = %eval( &vuo - 1);

21 Esimerkki: juokseva 12 kuukautta %macro anal12mo ;... DATA matsku; /* luodaan tyhjä tiedosto */ IF _N_ = 1 THEN STOP; SET MA&vuo&kk1 ( KEEP = );

22 Esimerkki: juokseva 12 kuukautta %macro anal12mo ;... DATA matsku; /* luodaan tyhjä tiedosto */ IF _N_ = 1 THEN STOP; SET MA&vuo&kk1 ( KEEP = ); %DO i = &kk %TO 12 PROC APPEND BASE = matsku DATA = MA&vv1&&k&i ( KEEP = ) ; %END

23 Esimerkki: juokseva 12 kuukautta %macro anal12mo ;... DATA matsku; /* luodaan tyhjä tiedosto */ IF _N_ = 1 THEN STOP; SET MA&vv&kk1 ( KEEP = ); %DO i = &kk %TO 12 PROC APPEND BASE = matsku DATA = MA&vv1&&k&i ( KEEP = ) ; %END %DO i = 1 %TO &kk1 PROC APPEND BASE = matsku DATA = MA&vuo&&k&i ; %END /* materiaali koottu, suorita analyysi */ PROC XXXX DATA = matsku ; %mend anal12mo;

24 %macro anal12mo ; Esimerkki: variaatio äskeisestä DATA matsku; /* luodaan tyhjä tiedosto */ IF _N_ = 1 THEN STOP; SET MA&vuo&kk ( KEEP = ); %DO i = &kk %TO 12 %let kc = %sysfunc( put( &i ), z2. ); PROC APPEND BASE = matsku DATA = MA&vv1&kc ( KEEP = ) ; %END %DO i = 1 %TO &kk1 %let kc = %sysfunc( put( &i ), z2. ); PROC APPEND BASE = matsku DATA = MA&vuo&kc ; %END /* materiaali koottu, suorita analyysi */ %mend anal12mo;

25 Esimerkki: juokseva 12 kuukautta, toinen tapa %macro anal12mo ; DATA _NULL_; vv = YEAR( TODAY() 1 ); kk = MONTH( TODAY() ); CALL EXECUTE( DATA matsku; ); CALL EXECUTE( SET ); DO I = 1 TO 12 CALL EXECUTE ( MA!! PUT(vv, 4.)!! PUT(kk, z2. )!! ( KEEP = ) ); kk = kk +1; IF kk > 12 THEN DO kk = 1; vv = vv + 1; END; CALL EXECUTE ( ; ); END; CALL EXECUTE( ); /* tähän väliin tulee tuo kehitetty datavaihe */ PROC XXX DATA = matsku;... %mend anal12mo;

26 Joka alueelta raportti %macro alueet ; PROC SORT DATA = tiedot( KEEP = ) OUT = matsku; BY alue; DATA _NULL_; SET matsku ( KEEP = alue ); BY alue; IF first.alue THEN DO; i+1; nro = left( put( i, Z2. ); CALL SYMPUT( alu!! nro, alue ); CALL SYMPUT( YHT., nro ); END; Syntyy makromuuttujat alu01, ja YHT Huom: YHT-muuttujan arvo muuttuu ja on lopulta suurin alue

27 Toistetaanpa samaa %macro alueet ;. CALL SYMPUT( yht, nro ); END; %do i= 1 to &yht; PROC MEANS DATA = matsku mean n max min sum; WHERE alue = &&alu&i ; VAR myynti kulut ; TITLE Alueen &&alu&i myynti ja kulut ; %mend alueet; Tuloksena syntyy PROC MEANS kutakin aluetta kohti Etukäteen ei ehkä tiedetä, montako Toimii, jos aluenumerot ovat 1,2,3,4

28 Muutamia automaattisia makromuuttujia SAS määrittelee joitakin automaattisia makromuuttujia: &sysday &systime &syslast - viikonpäivä, jolloin suoritus alkoi - kellonaika, jolloin suoritus alkoi - viimeksi luodun tiedoston nimi &komment PROC PRINT DATA = &syslast; &komment TITLE Tiedosto &syslast ; &komment &syserr &syscp - paluukoodi PROC tai DATA-vaiheesta - käyttöjärjestelmä, jossa toimitaan

29 Nopea ja dynaaminen tapa hakea tietoja taulusta Oletetaan, että annetut koodiarvot ovat SAS-tiedostossa koodit. Seuraavassa esimerkissä SAS-koodi eri värein: Mustalla kirjoitettu koodi suoritetaan periaatteessa kerran datavaiheen alussa tai lopussa vihreällä kirjoitettu koodi suoritetaan jokaisella datavaiheen kierroksella punaisella kirjoitettu koodi suoritetaan aika ajoin - siis muutamia kertoja /30/99

30 Nopea ja dynaaminen tapa hakea tietoja taulusta Oletetaan, että annetut koodiarvot ovat SAS-tiedostossa koodit. Esimerkki: %let lib = sasuser; %let fromlib = prod; %let valipit = 800; /* valitaan sopivasti esim. yli 1000 */ PROC SQL; CREATE TABLE %lib.nwxyz LIKE %fromlib.nwxyz; QUIT; 14 12/30/99

31 PROC SQL; CREATE TABLE %lib.nwxyz LIKE %fromlib.nwxyz; QUIT; DATA nwxyz ( keep = client_r client_0 activity client_1 ); STOP; /* ehkä haluamme tänne vain osan */ SET %lib.nwxyz; /* DB2-taulun muuttujista */ 14 12/30/99

32 DATA _null_ ; /* Tämä datavaihe kehittää nopean kyselyn */ LENGTH lause $80; RETAIN vali &valipit; SET koodit end = loppu; IF _n_ = 1 THEN DO ; call execute( "PROC SQL ; " ); END; 15 12/30/99

33 IF vali = &valipit THEN DO; call execute( " INSERT into nwxyz ") ; lause = "( SELECT client_number, client_code,"!! client_type, client_key " ; call execute( lause ); call execute( "FROM &fromlib.nwxyz " ); call execute( "WHERE client_cat = '1' " ) ; call execute( "AND client_type IN (' ','1')" ); call execute( "AND client_number IN ( " ) ; END; 15 12/30/99

34 DATA _null_ ; LENGTH lause $80;... IF vali = &valipit THEN DO;... END; call execute( client_number ) ; /* tai: ( "'"!! client_number!! "'" ) */ vali + (-1) ; /* vähennetään laskuria */ IF ( vali = 0 ) OR loppu THEN DO; call execute( " ) ) " ) ; /* Lopeta SQL */ vali = &valipit; END; ELSE call execute( "," ); IF loppu THEN call execute( " QUIT; ") ; 16 12/30/99

35 Nopea dynaaminen tapa hakea tietoja taulusta Tämä on nopea ja dynaaminen tapa hakea tietoja taulusta. Emme tiedä etukäteen, montako koodia tulee hakea Ohjelma näyttää monimutkaiselta, mutta ei loppujen lopuksi ole erityisen hankala. Saavutettu hyöty ylittää moninkertaisesti nähdyn vaivan /30/99

36 Netti tulvii lisätietoja, ohjeita ideoita ja vastauksia. Vaikkapa: support.sas.com/resources/papers/tnote/tnote_base.html sascommunity.org/wiki/user:rolandrb sascommunity.org/wiki/category:macro_language datasavantconsulting.com/roland/sastips.html tdiasug.dartmouth.edu/presentations/ _sr_macro.pdf basas.com/tips.html Lisätietoja ja malleja

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

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

Dynaamista ja joustavaa ohjelmointia - maukasta makrokielellä www.turkuamk.fi Markku Suni Turun ammattikorkeakoulu Dynaamista ja joustavaa ohjelmointia - maukasta makrokielellä SAS Makrokieli SAS Makrokieli on kieli SAS-kielen laajennus datavaihetta muistuttavia lauseita ja funktioita

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

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

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

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

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

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

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

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

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

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

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

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

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

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

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 11 TU00AA48-2002 TU10S1E Hannu Markkanen 22.11.2011 9/10/12 Helsinki Metropolia University of Applied Sciences 1 Indeksit Indeksit Taulun

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

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

Ohjelmoinnin perusteet, syksy 2006

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

Lisätiedot

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

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

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

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

Joko tunnet nämän Oracle10g SQL:n piirteet? Kari Aalto Saariston IT

Joko tunnet nämän Oracle10g SQL:n piirteet? Kari Aalto Saariston IT Joko tunnet nämän Oracle10g SQL:n piirteet? Kari Aalto Saariston IT Agenda Regular Expression - funktiot Case-insensitive Sort Case-insensitive Seach Merge muutokset Tree-walking in 10g DML Returning Values

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

Algoritmit 2. Luento 9 Ti Timo Männikkö

Algoritmit 2. Luento 9 Ti Timo Männikkö Algoritmit 2 Luento 9 Ti 17.4.2018 Timo Männikkö Luento 9 Merkkitiedon tiivistäminen Huffmanin koodi LZW-menetelmä Taulukointi Editointietäisyys Algoritmit 2 Kevät 2018 Luento 9 Ti 17.4.2018 2/29 Merkkitiedon

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

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

Tällä viikolla. Kotitehtävien läpikäynti Aloitetaan Pelifirman tietovaraston suunnittelu Jatketaan SQL-harjoituksia

Tällä viikolla. Kotitehtävien läpikäynti Aloitetaan Pelifirman tietovaraston suunnittelu Jatketaan SQL-harjoituksia Tällä viikolla Kotitehtävien läpikäynti Aloitetaan Pelifirman tietovaraston suunnittelu Jatketaan SQL-harjoituksia 1.) Mainitse tietokonepelistä (kuvitteellisesta tai todellisesta) esimerkkitilanteita,

Lisätiedot

Kyselyn yleisrakenne:

Kyselyn yleisrakenne: SQL kysely Kyselyn yleisrakenne: select tulostietomäärittely from taulukkeet [where valintaehdot] [group by ryhmitystekijät] [having ryhmärajoitteet] [order by järjestysperusta] Kysely tuottaa nimettömän

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

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

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

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

Kerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta 5. 1. Toteuta Pythonilla seuraava ohjelma:

Kerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta 5. 1. Toteuta Pythonilla seuraava ohjelma: Kerta 2 Kerta 3 Kerta 4 Kerta 5 Kerta 2 1. Toteuta Pythonilla seuraava ohjelma: 2. Tulosta Pythonilla seuraavat luvut allekkain a. 0 10 (eli, näyttää tältä: 0 1 2 3 4 5 6 7 8 9 10 b. 0 100 c. 50 100 3.

Lisätiedot

Jaetun muistin muuntaminen viestin välitykseksi. 15. lokakuuta 2007

Jaetun muistin muuntaminen viestin välitykseksi. 15. lokakuuta 2007 Jaetun muistin muuntaminen viestin välitykseksi Otto Räsänen 15. lokakuuta 2007 1 Motivaatio 2 Valtuuden välitys Peruskäsitteitä 3 Kolme algoritmia Valtuuden välitys käyttäen laskuria ilman ylärajaa Valtuuden

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

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

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin peruskurssien laaja oppimäärä Ohjelmoinnin peruskurssien laaja oppimäärä Luento 10: Tulkin muokkaus, makrot, ohjelmia muokkaavat ohjelmat (mm. SICP 3.2.4, 4-4.1.6) Riku Saikkonen 22. 11. 2011 Sisältö 1 Kirjan tulkin muokkaaminen 2

Lisätiedot

Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen:

Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen: Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen: S A S B Samaan jäsennyspuuhun päästään myös johdolla S AB Ab ab: S A S B Yhteen jäsennyspuuhun liittyy aina tasan yksi vasen

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

OUTER JOIN se vanha kunnon kaveri

OUTER JOIN se vanha kunnon kaveri OUTER JOIN se vanha kunnon kaveri Ulkoliitoksia on kolmenlaisia Left -> vasemmasta taulusta otetaan ehdot täyttävät rivit ja yhdistetään oikeanpuoleiseen tauluun jos rivi löytyy - nested loop join Right

Lisätiedot

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

System.out.printf(%d / %d = %.2f%n, ekaluku, tokaluku, osamaara); Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja sisentää koodisi. Ohjelmointitehtävien osalta palautetaan

Lisätiedot

Harjoitus 3 -- Ratkaisut

Harjoitus 3 -- Ratkaisut Harjoitus 3 -- Ratkaisut 1 ' '-merkki kirjoitetaan =, ' '-merkki!=, ' '-merkki ==. Yhtälöiden ratkaisusta puhutaan lisää myöhemmin. a f x, y : If ehtolauseke x y, y tämä palautetaan, jos

Lisätiedot

Tällä viikolla. Kotitehtävien tarkistus Upotettu SQL Indeksi-harjoitus täydennetään pelifirman tietokantamallia SQL-tehtäviä

Tällä viikolla. Kotitehtävien tarkistus Upotettu SQL Indeksi-harjoitus täydennetään pelifirman tietokantamallia SQL-tehtäviä Tällä viikolla Kotitehtävien tarkistus Upotettu SQL Indeksi-harjoitus täydennetään pelifirman tietokantamallia SQL-tehtäviä Seuraavissa harjoituksissa käytetään tukkukauppa-kantaa. 1. Hae kaikki toimittajat

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 24.1.2011 T-106.1208 Ohjelmoinnin perusteet Y 24.1.2011 1 / 36 Luentopalaute kännykällä alkaa tänään! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti Vast

Lisätiedot

Datatähti 2019 loppu

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

Lisätiedot

Tiedonhallinnan perusteet. H11 Ovien ja kulun valvontajärjestelmän tietokanta

Tiedonhallinnan perusteet. H11 Ovien ja kulun valvontajärjestelmän tietokanta Tiedonhallinnan perusteet H11 Ovien ja kulun valvontajärjestelmän tietokanta Nimi: Mikko Haapanen Opiskelijanumero: 0900568 Ryhmä: T09L Työ tehty: 15.3.2010 Mikko Haapanen 15.3.2010 1(7) 1. Asiakasvaatimukset

Lisätiedot

13. Hyvä ohjelmointitapa (osa 1) 13.1

13. Hyvä ohjelmointitapa (osa 1) 13.1 13. Hyvä ohjelmointitapa (osa 1) 13.1 Yleistä Ohjelman elinkaari ei tyypillisesti pääty sen toteuttamiseen tarvitaan ylläpitoa. Jotta koodin muuttaminen on mahdollista, on sen oltava myös muidenkin kuin

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

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

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

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

Sisällys. 3. Pseudokoodi. Johdanto. Johdanto. Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen.

Sisällys. 3. Pseudokoodi. Johdanto. Johdanto. Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen. Sisällys 3. Pseudokoodi Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen. Ohjausrakenteet: Valinta if- ja if--rakenteilla. oisto while-, do-while- ja for-rakenteilla. 3.1 3.2 Johdanto

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

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

Alustavia käyttökokemuksia SAS Studiosta. Timo Hurme Maa- ja elintarviketalouden tutkimuskeskus MTT (v. 2015 alusta Luonnonvarakeskus / Luke)

Alustavia käyttökokemuksia SAS Studiosta. Timo Hurme Maa- ja elintarviketalouden tutkimuskeskus MTT (v. 2015 alusta Luonnonvarakeskus / Luke) Alustavia käyttökokemuksia SAS Studiosta Timo Hurme Maa- ja elintarviketalouden tutkimuskeskus MTT (v. 2015 alusta Luonnonvarakeskus / Luke) 19.9.2014 Lyhyesti SAS-koodareille suunnattu uusi käyttöliittymä

Lisätiedot

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

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

Lisätiedot

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

Käännös, linkitys ja lataus

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

Lisätiedot

SQL - STRUCTURED QUERY LANGUAGE

SQL - STRUCTURED QUERY LANGUAGE SQL Peruskomentoja SQL - STRUCTURED QUERY LANGUAGE SQL on tietokantojen käsittelyyn kehitetty kieli Esimerkkejä kielellä hoidettavistaa toiminnoista: Tietokannan rakenteen määrittely ja muuttaminen Kyselyt

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

12. Javan toistorakenteet 12.1

12. Javan toistorakenteet 12.1 12. Javan toistorakenteet 12.1 Sisällys Yleistä toistorakenteista. Laskurimuuttujat. While-, do-while- ja for-lauseet. Laskuri- ja lippumuuttujat. Tyypillisiä ohjelmointivirheitä. Silmukan rajat asetettu

Lisätiedot

TIEDONHALLINTA - SYKSY Luento 10. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

TIEDONHALLINTA - SYKSY Luento 10. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 10 TU00AA48-2002 TU10S1E Hannu Markkanen 14.-15.11.2011 9/10/12 Helsinki Metropolia University of Applied Sciences 1 SQL: Monen taulun kyselyt

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

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

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

5. HelloWorld-ohjelma 5.1

5. HelloWorld-ohjelma 5.1 5. HelloWorld-ohjelma 5.1 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi. Tavukoodin suorittaminen. Virheiden korjaaminen 5.2

Lisätiedot

SQL. ! nykystandardi SQL3 eli SQL'99. ! CREATE TABLE, ALTER TABLE ja DROP TABLE. ! CREATE VIEW ja DROP VIEW. ! CREATE INDEX ja DROP INDEX

SQL. ! nykystandardi SQL3 eli SQL'99. ! CREATE TABLE, ALTER TABLE ja DROP TABLE. ! CREATE VIEW ja DROP VIEW. ! CREATE INDEX ja DROP INDEX SQL - perusteet SQL - yleistä Esa Salmikangas InMics SE Oy versio 16.6.2003 SQL - perusteet 1 SQL - perusteet 2 SQL Structured Query Language SQL on tietokantojen käsittelyyn kehitetty kieli yleisimmät

Lisätiedot

Ohjelmoinnin peruskurssi Y1

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

Lisätiedot

SQL:N PERUSTEET MARKKU SUNI

SQL:N PERUSTEET MARKKU SUNI SQL:N PERUSTEET MARKKU SUNI Vertailuoperaattorit Vertailuoperaattorit vertailevat lausekkeiden arvoja Vertailu palauttaa jonkin kolmesta arvosta: TRUE Tosi FALSE Falski, väärä NULL Tuntematon JOS vertailuehtona

Lisätiedot

12. Javan toistorakenteet 12.1

12. Javan toistorakenteet 12.1 12. Javan toistorakenteet 12.1 Sisällys Yleistä toistorakenteista. Laskurimuuttujat. While-, do-while- ja for-lauseet. Laskuri- ja lippumuuttujat. Tyypillisiä ohjelmointivirheitä. Silmukan rajat asetettu

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

Osa. Listaus 2.1. HELLO.CPP esittelee C++ -ohjelman osat. 14: #include <iostream.h> 15: 16: int main() 17: {

Osa. Listaus 2.1. HELLO.CPP esittelee C++ -ohjelman osat. 14: #include <iostream.h> 15: 16: int main() 17: { Osa I 2. oppitunti C++-ohjelman osat Ennen kuin menemme yksityiskohtaisemmin sisälle C++-luokkiin, -muuttujiin jne, katsokaamme ensin, millaisista osista C++-ohjelma koostuu. Tämän tunnin aikana opit seuraavat

Lisätiedot

Algoritmit 1. Demot Timo Männikkö

Algoritmit 1. Demot Timo Männikkö Algoritmit 1 Demot 1 31.1.-1.2.2018 Timo Männikkö Tehtävä 1 (a) Algoritmi, joka tutkii onko kokonaisluku tasan jaollinen jollain toisella kokonaisluvulla siten, että ei käytetä lainkaan jakolaskuja Jaettava

Lisätiedot

Numeeriset menetelmät

Numeeriset menetelmät Numeeriset menetelmät Luento 2 To 8.9.2011 Timo Männikkö Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 1/33 p. 1/33 Lukujen tallennus Kiintoluvut (integer) tarkka esitys aritmeettiset operaatiot

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

14. Hyvä ohjelmointitapa 14.1

14. Hyvä ohjelmointitapa 14.1 14. Hyvä ohjelmointitapa 14.1 Yleistä Ohjelman elinkaari ei tyypillisesti pääty sen toteuttamiseen; ohjelmaa voidaan käyttää ja ylläpitää jopa vuosikymmeniä. Jotta koodin muuttaminen on mahdollista, sen

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

Helsingin yliopisto Tietojenkäsittelytieteen laitos (H.Laine) Tietokantojen perusteet. Liitteenä: Tiivistelmä SQL-syntaksista

Helsingin yliopisto Tietojenkäsittelytieteen laitos (H.Laine) Tietokantojen perusteet. Liitteenä: Tiivistelmä SQL-syntaksista Helsingin yliopisto Tietojenkäsittelytieteen laitos 26.2.2014 (H.Laine) Tietokantojen perusteet Liitteenä: Tiivistelmä SQL-syntaksista Kirjoita jokaiseen erilliseen vastausarkkiin kurssin nimi, tenttipäivä,

Lisätiedot

Zeon PDF Driver Trial

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

Lisätiedot

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti Luku 6 Dynaaminen ohjelmointi Dynaamisessa ohjelmoinnissa on ideana jakaa ongelman ratkaisu pienempiin osaongelmiin, jotka voidaan ratkaista toisistaan riippumattomasti. Jokaisen osaongelman ratkaisu tallennetaan

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

7.4 Sormenjälkitekniikka

7.4 Sormenjälkitekniikka 7.4 Sormenjälkitekniikka Tarkastellaan ensimmäisenä esimerkkinä pitkien merkkijonojen vertailua. Ongelma: Ajatellaan, että kaksi n-bittistä (n 1) tiedostoa x ja y sijaitsee eri tietokoneilla. Halutaan

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 peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 26.9.2018 CS-A1111 Ohjelmoinnin peruskurssi Y1 26.9.2018 1 / 21 Oppimistavoitteet: tämän luennon jälkeen Osaat kirjoittaa for-käskyn avulla ohjelman, joka toistaa haluttua

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

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

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä. Esimerkki otteluvoiton todennäköisyys A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä. Yksittäisessä pelissä A voittaa todennäköisyydellä p ja B todennäköisyydellä q =

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

Verilogvs. VHDL. Janne Koljonen University of Vaasa

Verilogvs. VHDL. Janne Koljonen University of Vaasa Verilogvs. VHDL Janne Koljonen University of Vaasa Sälää Huom! Verilogistauseita versioita: 1995, 2001 ja 2005. Kommentit Javasta tutut // ja /* */ ovat kommenttimerkkejä. Case sensitivity Isot ja pienet

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

Rajapinta (interface)

Rajapinta (interface) 1 Rajapinta (interface) Mikä rajapinta on? Rajapinta ja siitä toteutettu luokka Monimuotoisuus ja dynaaminen sidonta Rajapinta vs periytyminen 1 Mikä rajapinta on? Rajapintoja käytetään, kun halutaan määritellä

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