L models. Vaatimusmäärittely. Ryhmä Rajoitteiset

Koko: px
Aloita esitys sivulta:

Download "L models. Vaatimusmäärittely. Ryhmä Rajoitteiset"

Transkriptio

1 Teknillinen korkeakoulu T-76.5 Tietojenkäsittelyopin ohjelmatyö Lineaaristen rajoitteiden tyydyttämistehtävän ratkaisija L models Vaatimusmäärittely Ryhmä Rajoitteiset Versio Päivämäärä Tekijä Muutokset Vesa Salento Ensimmäinen versio, pohja asiakirjalle Vesa Salento Lisätty enemmän vaatimuksia Joonas Kekoni Kielivaatimukset lisätty ja kappaleet ja korjattu Vesa Salento Lisätty käyttäjävaatimuksia ja korjattu sisällysluetteloa Vesa Salento Päivitetty sisältö ryhmäpalaverissa tulleiden kommenttien mukaiseksi Jouni Karppinen Dokumenttipohja otettu käyttöön. Vähän muotoilua Vesa Salento Päivitetty vaatimuksia ja termistöä Jouni Karppinen & Mitro Kuha Dokumentti tarkastettu ja korjattu PP-vaiheen palautusta varten Vesa Salento Päivitetty vaatimuksia asiakkaan ja mentorin kommenttien mukaan Vesa Salento Päivitetty kielen formaali määritelmä Vesa Salento Muutettu muutaman vaatimuksen prioriteetti asiakkaan mielestä sopivammaksi Jouni Karppinen & Hannu Kauppinen Dokumentti tarkastettu ja korjattu I-vaiheen palautusta varten.

2 Sisällysluettelo Johdanto... Määritykset.... Termistö... 3 Yleiskuva Käyttäjäryhmät Esimerkki rajoitustiedostosta Vaatimukset Kielivaatimukset Käyttäjävaatimukset Toiminnalliset vaatimukset Muut vaatimukset... 7 Liite A - Kielen formaali määritelmä... 8

3 Johdanto Ryhmän tavoitteena on rakentaa järjestelmä, jonka avulla voi ratkaista erityisellä kielellä esitettyjä ongelmia. Ne sisältävät sekä lineaarisia sekalukuyhtälöitä sekä loogisia rajoitteita. Järjestelmän tulee kyetä jäsentämään kielellä toteutettu ongelma sen suhteen, mitkä ovat annettujen muuttujien mahdolliset arvot, tai sen, että niitä ei ole. Ryhmän toteuttama järjestelmä ratkaisee ongelman muuttamalla lineaarisia ja loogisia yhtälöitä sisältävän ongelman lineaarisen optimoinnin tehtäväksi, jonka ratkaisemiseen käytetään tarkoitukseen tehtyä valmisohjelmaa tai komponenttia. Testikäyttöä varten järjestelmälle rakennetaan myös käyttöliittymä. Käyttöliittymä on tarkoitettu vain testausta varten, ja itse järjestelmää on tarkoitus käyttää irrallisena komponenttina jo olemassa olevasta asiakkaan ohjelmasta käsin. Tästä syystä järjestelmälle ei tehdä myöskään käyttötapauskuvauksia. Projektin tavoitteena on tutkia, soveltuuko ratkaisumalli lineaaristen rajoitteiden lisäämiseen WeCoTin-konfigurointiohjelmaan, sekä tuottaa asiakkaalle komponentti, jonka he voivat tulevaisuudessa integroida WeCoTin-ohjelmistoon. Nykyään WeCoTin käyttää vain loogisia rajoitteita, mikä aiheuttaa rajoituksia numeerisen datan, kuten hinnan, toimitusajan sekä olosuhteista riippuvan tehon, käsittelyyn.

4 Määritykset. Termistö Seuraavassa taulukossa on selitetty lyhyesti erikoistermistö, jota käytetään tämän asiakirjan eri kohdissa. Termi BNF CNF DNF Lineaarisointi Malli Nonterminaali Määrittely (Backus-Naur Form) Formaali matemaattinen tapa määritellä kielioppi. HUOM! Tällä ei ole yhteyttä CNF:ään ja DNF:ään. (Conjunctive Normal Form) Konjunktiivinen normaalimuoto. Muoto, jossa looginen lauseke on supistettu siten, että ORoperaatiot ovat AND-operaatioiden sisällä. NOT-operaatiot ovat terminaalien edessä. Esim. (a OR b OR NOT c) AND (d OR e). (Disjunctive Normal Form) Disjunktiivinen normaalimuoto. Muoto, jossa looginen lauseke on supistettu siten, että AND-operaatiot ovat OR-operaatioiden sisällä. NOT-operaatiot ovat terminaalien edessä. Esim. (a AND b) OR (c AND NOT d). Prosessi, jossa logiikkaa sisältävä kaava muutetaan lineaarisiksi operaatioiksi. Rajoitteiden muodostama kokonaisuus, jolle pyritään löytämään vähintään yksi ratkaisu rajojen sisällä. Kieliopin osa, joka koostuu terminaaleista, nonterminaaleista tai molemmista. Esim. aliohjelma, kaava tai muuttujamäärittely. Säännöllinen lauseke Säännöllinen lauseke (regexp, regular expression) on merkkijonon määrittelemä kaava, jota voidaan käyttää toisten merkkijonojen osien erittelemiseen. Supistaminen Terminaali Prosessi, jossa jäsennetyn kielen mukainen kaava muunnetaan joko CNF- tai DNF-muotoon, sekä mahdolliset numeeriset lausekkeet muutetaan muotoon, jossa muuttujat varustettuina mahdollisilla kertoimilla ovat vertailuoperaation vasemmalla puolella ja vakio oikealla. Kieliopin osa, jota ei enää jaeta pienempiin osiin. Esim. muuttuja, vakio tai operaattori. Translaatio Prosessi, jossa kieli tulkitaan ohjelman sisäiseen tietorakenteeseen. Taulukko : Asiakirjassa käytetty erikoissanasto.

5 3 Yleiskuva 3. Käyttäjäryhmät Järjestelmällä on kahdenlaisia käyttäjiä. Ensimmäiset ovat henkilöitä, jotka syöttävät konfigurointilausekkeet järjestelmään, ja toiset ovat niitä, jotka käyttävät näitä lausekkeita ratkaistessaan ongelmia. 3. Esimerkki rajoitustiedostosta Järjestelmän pitää tukea kieltä, jolla voidaan kuvata vaikkapa seuraavanlainen rajoitusmääritelmä: # muuttujat määritellään ennen rajoitetta boolean kaksitaajuus, lahialue, ilta_tai_viikonloppu; # kokonais- ja liukulukumuuttujat, joilla on sama domain, # voidaan määrittää samalla kertaa integer C, CD, PC [0,]; float kuukausimaksu [5.5,00]; # rajoite (kaksitaajuus implies (C = 0)) and (not(kaksitaajuus or kaksitaajuus or kaksitaajuus ) implies (CD = 0)) and (lahialue implies (C = 0)) and (not(lahialue) implies (PC = 0)) and (ilta_tai_viikonloppu implies (CD = 0)) and (not(ilta_tai_viikonloppu) implies (PC = 0)) and (C + CD + PC = ) and (3.33 * C * CD * PC <= kuukausimaksu) 3

6 4 Vaatimukset Vaatimukset voidaan jakaa neljään eri osaan. Ensimmäisenä ryhmänä on kielelle olevat vaatimukset, joilla määritellään runko koko järjestelmälle. Seuraavana ryhmänä on käyttäjävaatimukset, joihin kuuluvat vaatimukset siitä, mitä käyttäjät haluavat kyetä järjestelmällä tekemään. Toiminnalliset vaatimukset kertovat eriteltynä, mitä toimintoja järjestelmän täytyy pystyä suorittamaan. Muihin vaatimuksiin on jätetty ne vaatimukset, jotka eivät sisälly em. ryhmiin. Kaikille vaatimuksille on annettu yksilöivä tunniste sekä prioriteettinumero, joka kertoo kuinka tärkeä vaatimus on. Seuraava taulukko sisältää tarkemman kuvauksen eri prioriteeteista. Prioriteetti Määritelmä Järjestelmän kannalta kriittinen vaatimus, jota ilman se ei voi toimia. Ilman tätä vaatimusta järjestelmän toiminta on huomattavasti suppeampi, kuin mikä olisi tarkoitus, ja siksi kaikki tämän prioriteetin vaatimukset pitää toteuttaa. Järjestelmän kannalta tärkeä vaatimus, joka olisi hyvä toteuttaa. Ilman tätä toiminnallisuus kärsii, mutta järjestelmää voidaan kuitenkin käyttää sen käyttötarkoitukseen. Kaikki tämän prioriteetin vaatimukset on tarkoitus toteuttaa. 3 Järjestelmän kannalta lisätoiminta tai muuten vain käytettävyyttä helpottava vaatimus. Mikäli aikataulu sallii, niin nämä olisi tarkoitus toteuttaa. Taulukko : Prioriteettiluokkien kuvaukset. 4. Kielivaatimukset Kielen tavoitteena on kuvata lineaarisia ja loogisia rajoitteita, joita tuotteella voidaan ratkaista, sekä määritellä niiden muuttujat tyyppeineen ja rajoineen. Tunniste Vaatimus Prioriteetti LANG-REQ-0 Kielen pitää tukea seuraavia muuttujatyyppejä: totuusarvo (boolean), kokonaisluku (integer) ja liukuluku (float). LANG-REQ-0 Kaikille muuttujille pitää määritellä sekä nimi että muuttujatyyppi. LANG-REQ-03 Kaikkien käytettyjen muuttujien määrittely on pakollista. LANG-REQ-04 Samalla rivillä pitää voida määritellä useita muuttujia. LANG-REQ-05 Numeerisille muuttujille (integer, float) pitää määritellä rajat, jotka kertovat muuttujan kelvolliset arvot. LANG-REQ-06 Totuusarvotyyppisille muuttujille voidaan määritellä arvoksi tosi (true) tai epätosi (false), mutta tämä on vapaaehtoista. LANG-REQ-07 Loogisia ja numeerisia tyyppejä ei saa sekoittaa. Loogisella tyypillä ei ole numeerista arvoa, eikä numeerisella tyypillä loogista arvoa. 4

7 Tunniste Vaatimus Prioriteetti LANG-REQ-08 Kielen pitää mahdollistaa aritmeettisten lausekkeiden esittäminen seuraavilla operaatioilla: yhteenlasku (+), vähennyslasku (-) ja tulo (*). Kahden muuttujan kertomista ei tueta, sillä se ei ole lineaarinen operaatio. LANG-REQ-09 Kielen pitää tukea vakiolla jakamista (/). Muuttujalla jakamista ei tueta, sillä se ei ole lineaarinen operaatio. LANG-REQ-0 Kielen pitää tukea seuraavia loogisen tuloksen tuottavia aritmeettisia operaatioita: pienempi kuin (<), suurempi kuin (>), pienempi tai yhtä suuri kuin (<=), suurempi tai yhtä suuri kuin (>=), yhtä suuri kuin (=) ja erisuuri kuin (!=). LANG-REQ- Kielen pitää tukea seuraavia loogisia operaatioita: konjunktio (AND), disjunktio (OR), negaatio (NOT), ehdoton tai (XOR), implikaatio (IMPLIES) ja ekvivalenssi (EQUIV). LANG-REQ- Kielen pitää tukea tavallisia aritmeettisten operaatioiden laskujärjestyssääntöjä, joissa tulo lasketaan ennen yhteenja vähennyslaskua. On sallittua kirjoittaa a+b*40<00, jolla tarkoitetaan samaa kuin a+(b*40)<00, sillä sulut eivät ole tässä pakollisia. LANG-REQ-3 Loogisilla operaatiolla noudatetaan seuraavia laskujärjestyssääntöjä: ensin negaatio (NOT), sitten konjunktio (AND), sen jälkeen disjunktio (OR) ja ehdoton tai (XOR) alkaen vasemmalta ja lopuksi ekvivalenssi (EQUIV) ja implikaatio (IMPLIES) alkaen vasemmalta. Esim. a AND (NOT b) voidaan kirjoittaa ilman sulkeita muodossa a AND NOT b. LANG-REQ-4 Kielen tulee tukea ketjudisjunktioita ja -konjunktioita. Lauseke voidaan kirjoittaa muodossa a AND b AND c sen sijaan, että se kirjoitettaisiin (a AND b) AND c tai a AND (b AND c). Taulukko 3: Järjestelmän kielivaatimukset. 4. Käyttäjävaatimukset Käyttäjävaatimukset tulevat käyttäjien tarpeista järjestelmälle. Ne ovat yleisiä toiminnallisuuksia, mitä käyttäjä haluaa tehdä järjestelmällä. 5

8 Tunniste Vaatimus Prioriteetti USER-REQ-0 Järjestelmän on tarjottava käyttöliittymä, josta käyttäjä voi syöttää järjestelmän ratkaistavaksi kieliopin mukaisen mallin. USER-REQ-0 Järjestelmän on tarjottava käyttäjälle mahdollisuus valita mallin ratkaisuun käytettävä ratkaisija. USER-REQ-03 Järjestelmän on mahdollistettava ratkaisijakohtaisten alustusasetusten asettaminen. USER-REQ-04 Järjestelmän on mahdollistettava ratkaisijakohtaisten alustusasetusten määrittäminen käyttöliittymästä. USER-REQ-05 Järjestelmän on kyettävä laskemaan muuttujille kelvollisten arvojen rajat mallin rajoitteiden puitteissa, mikäli ne ovat olemassa. USER-REQ-06 Käyttäjän on kyettävä valitsemaan muuttujille arvoja niiden arvoalueiden puitteissa. USER-REQ-07 Käyttäjän on kyettävä muuttamaan tai poistamaan muuttujille valittuja arvoja. USER-REQ-08 Käyttäjän muutettua tai poistettua muuttujien arvoja järjestelmän on kyettävä laskemaan kelvollisten arvojen rajat mallin rajoitteiden puitteissa, mikäli ne ovat olemassa. USER-REQ-09 Järjestelmän on kyettävä näyttämään muuttujille niiden kelvolliset arvoalueet. USER-REQ-0 Järjestelmän on mahdollistettava useamman eri muuttujan arvojen valitseminen, muuttaminen tai poistaminen ennen laskentaa. USER-REQ- Järjestelmän on kyettävä näyttämään ratkaisuun käytetty prosessoriaika käyttöliittymässä. USER-REQ- Järjestelmän on kyettävä näyttämään sekalukumallin koko muuttujien ja yhtälöiden lukumääränä. USER-REQ-3 Järjestelmän on kyettävä näyttämään jokin ratkaisu, mikäli sellainen on olemassa, muuttujien valittujen arvojen puitteissa. USER-REQ-4 Järjestelmän käyttöliittymän on oltava englanniksi. Taulukko 4: Järjestelmän käyttäjävaatimukset. 4.3 Toiminnalliset vaatimukset Järjestelmän pitää kyetä lukemaan kieliopin mukaan määritelty malli, jäsentämään siitä jäsennyspuu sekä supistamaan se konjunktiiviseen ja disjunktiiviseen normaalimuotoon. Osalle muuttujista on määritelty niiden arvot ja osa arvoista on käyttäjän valittavissa. Ohjelman pitää kyetä laskemaan niiden muuttujien arvoille mahdolliset rajat, joille ei ole vielä valittu mitään arvoa

9 Tunniste Vaatimus Prioriteetti FUNC-REQ-0 Järjestelmän on kyettävä jäsentämään kieliopin mukainen syöte jäsennyspuuksi. FUNC-REQ-0 Järjestelmän pitää kyetä tunnistamaan kieliopin vastainen syöte. FUNC-REQ-03 Järjestelmän on kerrottava, missä kohtaa mallissa on virhe, mikäli sille syötetään kieliopin vastainen syöte. FUNC-REQ-04 Järjestelmän on kyettävä normalisoimaan syötetystä mallista luotu jäsennyspuu. FUNC-REQ-05 Järjestelmän pitää pystyä optimoimaan supistettua mallia, jotta sen ratkaiseminen voi tapahtua mahdollisimman nopeasti. FUNC-REQ-06 Järjestelmän on kyettävä muuttamaan jäsennyspuu sekalukumalliksi. FUNC-REQ-07 Järjestelmän pitää kyetä ratkaisemaan yhtä aikaa useampaa eri tehtävää. Taulukko 5: Järjestelmän toiminnalliset vaatimukset. 4.4 Muut vaatimukset Loput vaatimukset on esitetty taulukossa 6. Ne eivät sisälly mihinkään edellisistä vaatimusryhmistä ja ovat siksi koottu omaan ryhmäänsä. Tunniste Vaatimus Prioriteetti MISC-REQ-0 Järjestelmän pitää mahdollistaa käytettävän ratkaisijan valitseminen. MISC-REQ-0 Järjestelmän käyttämä aika ratkaisun etsimiseen pitää olla rajoitettavissa. MISC-REQ-03 Järjestelmän ei pidä jumiutua millään syötteellä. MISC-REQ-04 Järjestelmän pitää toimia useammassa eri käyttöjärjestelmässä, joten se ei saa tukeutua mihinkään yksittäisen käyttöjärjestelmän erityisominaisuuteen. MISC-REQ-05 Käyttäjälle on tarjottava selainpohjainen käyttöliittymä järjestelmän testausta varten. Taulukko 6: Järjestelmän muut vaatimukset

10 Liite A - Kielen formaali määritelmä Koska kieli on suurimmalta osaltaan asiakkaan määrittelemä, niin se on siksi sisällytetty tähän vaatimusmäärittelyyn liitteeksi. Kieliopin pitää toteuttaa kielelle määritellyt vaatimukset, jotka on lueteltu kohdassa 5. Kielivaatimukset. Seuraava määrittely toteuttaa nämä ja on oikeaa kielioppia, mutta käyttää loogisia ja numeerisia tyyppejä sekaisin. Kielen terminaalien määrittely Alla on kielen terminaalit määriteltynä säännöllisillä lausekkeilla. Säännöllinen lauseke Terminaali ";" SEMI "+" PLUS "-" MINUS "*" TIMES "/" DIV "(" LPAREN ")" RPAREN "[" LBRACK "]" RBRACK "," COMMA "=" "==" EQ "!=" NEQ ">" GT "<" LT ">=" GE "<=" LE "and" "&" AND "or" "\ " OR "not" "\!" NOT "xor" "\^" XOR "implies" "imp" "=>" IMPLIES "equiv" "xnor" "<=>" EQUIV "boolean" VBOOL "integer" VINT "float" "double" VFLOAT \#.* --ignore-- [0-9]*[0-9] INT [0-9]*\.?[0-9]+((e\+ e\-)[0-9]+)? FLOAT "true" "TRUE" TRUE "false" "FALSE" FALSE [a-za-z][a-za-z0-9_]* ID [ \t\r\n\f] --ignore-- Kielen nonterminaalien määrittely Seuraavassa nonterminaalit on määriteltynä BNF:llä. terminal SEMI, COMMA; terminal PLUS, MINUS, TIMES, DIV, UMINUS; terminal LPAREN, RPAREN, LBRACK, RBRACK; terminal EQ, NEQ, GT, LT, GE, LE; terminal AND, OR, NOT, XOR, IMPLIES, EQUIV; terminal VBOOL, VINT, VFLOAT; terminal Double INT; terminal Double FLOAT; 8

11 non terminal Double NUMBER; // float or int terminal String ID; terminal Boolean TRUE; terminal Boolean FALSE; non terminal lmodels.nodes.expr expr; non terminal lmodels.model.vmap vardefinitions; non terminal lmodels.nodes.declaration decl; non terminal lmodels.nodes.declist declist; non terminal lmodels.nodes.declaration booldec; non terminal lmodels.nodes.declaration intdec; non terminal lmodels.nodes.declaration floatdec; non terminal lmodels.nodes.varnamelist varnamelist; non terminal lmodels.nodes.numlimit numlim; non terminal lmodels.nodes.numlimit intlim; non terminal lmodels.model.model file; precedence left EQUIV, IMPLIES; precedence left OR, XOR; precedence left AND; precedence left NOT; precedence nonassoc EQ, NEQ, GT, LT, GE, LE; precedence left PLUS, MINUS; precedence left TIMES, DIV; precedence left UMINUS; start with file; // the entire file file ::= vardefinitions expr vardefinitions expr SEMI; // numberic type NUMBER ::= FLOAT INT; // contains variables in a linked hashmap vardefinitions ::= declist; // declares all variables declist ::= declist decl decl; // declares a single variable decl ::= booldec floatdec intdec; // declare boolean variable booldec ::= VBOOL varnamelist SEMI VBOOL varnamelist TRUE SEMI VBOOL varnamelist FALSE SEMI; // comma separated list of variable names of same type and limits. varnamelist ::= ID COMMA varnamelist ID; 9

12 // [ min, max ] in variable declaration numlim ::= LBRACK NUMBER COMMA NUMBER RBRACK LBRACK MINUS NUMBER COMMA NUMBER RBRACK LBRACK NUMBER COMMA MINUS NUMBER RBRACK LBRACK MINUS NUMBER COMMA MINUS NUMBER RBRACK; intlim ::= LBRACK INT COMMA INT RBRACK LBRACK MINUS INT COMMA INT RBRACK LBRACK INT COMMA MINUS INT RBRACK LBRACK MINUS INT COMMA MINUS INT RBRACK; // declare float variable floatdec ::= VFLOAT varnamelist numlim SEMI; // declare integer variable intdec ::= VINT varnamelist intlim SEMI; // expression. This is everything. expr ::= LPAREN expr RPAREN expr AND expr expr OR expr expr XOR expr expr EQUIV expr expr IMPLIES expr NOT expr LPAREN expr EQ expr RPAREN LPAREN expr NEQ expr RPAREN LPAREN expr LT expr RPAREN LPAREN expr GT expr RPAREN LPAREN expr LE expr RPAREN LPAREN expr GE expr RPAREN TRUE FALSE ID NUMBER expr PLUS expr expr MINUS expr expr TIMES expr expr DIV expr MINUS expr %prec UMINUS; 0

L models. Vaatimusmäärittely. Ryhmä Rajoitteiset

L models. Vaatimusmäärittely. Ryhmä Rajoitteiset Teknillinen Korkeakoulu T-76.5 Tietojenkäsittelyopin ohjelmatyö Lineaaristen rajoitteiden tyydyttämistehtävän ratkaisija L models Vaatimusmäärittely Ryhmä Rajoitteiset Versio Päivämäärä Tekijä Muutokset

Lisätiedot

L models. Käyttöohje. Ryhmä Rajoitteiset

L models. Käyttöohje. Ryhmä Rajoitteiset Teknillinen korkeakoulu T-76.115 Tietojenkäsittelyopin ohjelmatyö Lineaaristen rajoitteiden tyydyttämistehtävän ratkaisija L models Käyttöohje Ryhmä Rajoitteiset Versio Päivämäärä Tekijä Muutokset 0.1

Lisätiedot

13. Loogiset operaatiot 13.1

13. Loogiset operaatiot 13.1 13. Loogiset operaatiot 13.1 Sisällys Loogiset operaatiot AND, OR, XOR ja NOT. Operaatioiden ehdollisuus. Bittioperaatiot. Loogiset operaatiot ohjausrakenteissa. Loogiset operaatiot ja laskentajärjestys.

Lisätiedot

L models. Tekninen määrittely. Ryhmä Rajoitteiset

L models. Tekninen määrittely. Ryhmä Rajoitteiset Teknillinen Korkeakoulu T-76.115 Tietojenkäsittelyopin ohjelmatyö Lineaaristen rajoitteiden tyydyttämistehtävän ratkaisija L models Tekninen määrittely Ryhmä Rajoitteiset Versio Päivämäärä Tekijä Muutokset

Lisätiedot

13. Loogiset operaatiot 13.1

13. Loogiset operaatiot 13.1 13. Loogiset operaatiot 13.1 Sisällys Loogiset operaatiot AND, OR, XOR ja NOT. Operaatioiden ehdollisuus. Bittioperaatiot. Loogiset operaatiot ohjausrakenteissa. Loogiset operaatiot ja laskentajärjestys.

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

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

T Logiikka tietotekniikassa: perusteet Kevät 2008 Laskuharjoitus 5 (lauselogiikka ) A ( B C) A B C.

T Logiikka tietotekniikassa: perusteet Kevät 2008 Laskuharjoitus 5 (lauselogiikka ) A ( B C) A B C. T-79.3001 Logiikka tietotekniikassa: perusteet Kevät 2008 Laskuharjoitus 5 (lauselogiikka 6.1 7.2) 27. 29.2.2008 Ratkaisuja demotehtäviin Tehtävä 6.1 a) A (B C) Poistetaan lauseesta ensin implikaatiot.

Lisätiedot

Loogiset konnektiivit

Loogiset konnektiivit Loogiset konnektiivit Tavallisimmat loogiset konnektiivit ovat negaatio ei konjunktio ja disjunktio tai implikaatio jos..., niin... ekvivalenssi... jos ja vain jos... Sulkeita ( ) käytetään selkeyden vuoksi

Lisätiedot

Tyyppejä ja vähän muutakin. TIEA341 Funktio ohjelmointi 1 Syksy 2005

Tyyppejä ja vähän muutakin. TIEA341 Funktio ohjelmointi 1 Syksy 2005 Tyyppejä ja vähän muutakin TIEA341 Funktio ohjelmointi 1 Syksy 2005 Viime luennolla... Haskellin alkeita pääasiassa Hello World!... ja muita tutunoloisia ohjelmia Haskellilla Haskellin voima on kuitenkin

Lisätiedot

L m o d els. Tekninen määrittely. Ryhmä Rajoitteiset

L m o d els. Tekninen määrittely. Ryhmä Rajoitteiset Teknillinen korkeakoulu T-76.115 Tietojenkäsittelyopin ohjelmatyö Lineaaristen rajoitteiden tyydyttämistehtävän ratkaisija L m o d els Tekninen määrittely Ryhmä Rajoitteiset Versio Päivämäärä Tekijä Muutokset

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

Johdatus logiikkaan I Harjoitus 4 Vihjeet

Johdatus logiikkaan I Harjoitus 4 Vihjeet Johdatus logiikkaan I Harjoitus 4 Vihjeet 1. Etsi lauseen ((p 0 p 1 ) (p 0 p 1 )) kanssa loogisesti ekvivalentti lause joka on (a) disjunktiivisessa normaalimuodossa, (b) konjunktiivisessa normaalimuodossa.

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

Python-ohjelmointi Harjoitus 2

Python-ohjelmointi Harjoitus 2 Python-ohjelmointi Harjoitus 2 TAVOITTEET Kerrataan tulostuskomento ja lukumuotoisen muuttujan muuttaminen merkkijonoksi. Opitaan jakojäännös eli modulus, vertailuoperaattorit, ehtorakenne jos, input-komento

Lisätiedot

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

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

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

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

Algebralliset tietotyypit ym. TIEA341 Funktio ohjelmointi 1 Syksy 2005

Algebralliset tietotyypit ym. TIEA341 Funktio ohjelmointi 1 Syksy 2005 Algebralliset tietotyypit ym. TIEA341 Funktio ohjelmointi 1 Syksy 2005 Tällä luennolla Algebralliset tietotyypit Hahmonsovitus (pattern matching) Primitiivirekursio Esimerkkinä binäärinen hakupuu Muistattehan...

Lisätiedot

Ohjausjärjestelmien jatkokurssi. Visual Basic vinkkejä ohjelmointiin

Ohjausjärjestelmien jatkokurssi. Visual Basic vinkkejä ohjelmointiin Ohjausjärjestelmien jatkokurssi Visual Basic vinkkejä ohjelmointiin http://www.techsoft.fi/oskillaattoripiirit.htm http://www.mol.fi/paikat/job.do?lang=fi&jobid=7852109&index=240&anchor=7852109 Yksiköt

Lisätiedot

Lmodels. Tekninen määrittely. Ryhmä Rajoitteiset

Lmodels. Tekninen määrittely. Ryhmä Rajoitteiset Teknillinen korkeakoulu T-76.115 Tietojenkäsittelyopin ohjelmatyö Lineaaristen rajoitteiden tyydyttämistehtävän ratkaisija Lmodels Tekninen määrittely Ryhmä Rajoitteiset Versio Päivämäärä Tekijä Muutokset

Lisätiedot

T Kevät 2005 Logiikka tietotekniikassa: erityiskysymyksiä I Kertausta Ratkaisut

T Kevät 2005 Logiikka tietotekniikassa: erityiskysymyksiä I Kertausta Ratkaisut T-79.146 Kevät 2005 Logiikka tietotekniikassa: erityiskysymyksiä I Kertausta Ratkaisut 1. Jokaiselle toteutuvalle lauselogiikan lauseelle voidaan etsiä malli taulumenetelmällä merkitsemällä lause taulun

Lisätiedot

LAUSELOGIIKKA (1) Sanalliset ilmaisut ovat usein epätarkkoja. On ilmaisuja, joista voidaan sanoa, että ne ovat tosia tai epätosia, mutta eivät molempia. Ilmaisuja, joihin voidaan liittää totuusarvoja (tosi,

Lisätiedot

Ratkaisu: Yksi tapa nähdä, että kaavat A (B C) ja (A B) (A C) ovat loogisesti ekvivalentit, on tehdä totuustaulu lauseelle

Ratkaisu: Yksi tapa nähdä, että kaavat A (B C) ja (A B) (A C) ovat loogisesti ekvivalentit, on tehdä totuustaulu lauseelle HY / Matematiikan ja tilastotieteen laitos Johdatus logiikkaan I, syksy 2018 Harjoitus 3 Ratkaisuehdotukset 1. Olkoot A, B ja C propositiolauseita. Näytä, että A (B C) (A B) (A C). Ratkaisu: Yksi tapa

Lisätiedot

Nimitys Symboli Merkitys Negaatio ei Konjuktio ja Disjunktio tai Implikaatio jos..., niin... Ekvivalenssi... jos ja vain jos...

Nimitys Symboli Merkitys Negaatio ei Konjuktio ja Disjunktio tai Implikaatio jos..., niin... Ekvivalenssi... jos ja vain jos... 2 Logiikkaa Tässä luvussa tutustutaan joihinkin logiikan käsitteisiin ja merkintöihin. Lisätietoja ja tarkennuksia löytyy esimerkiksi Jouko Väänäsen kirjasta Logiikka I 2.1 Loogiset konnektiivit Väitelauseen

Lisätiedot

7. Näytölle tulostaminen 7.1

7. Näytölle tulostaminen 7.1 7. Näytölle tulostaminen 7.1 Sisällys System.out.println- ja System.out.print-operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden muotoilua. 7.2 Tulostusoperaatiot System.out.println-operaatio

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 7. huhtikuuta 2017 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille. Kirjoittamasi luokat, funktiot ja aliohjelmat

Lisätiedot

T kevät 2007 Laskennallisen logiikan jatkokurssi Laskuharjoitus 1 Ratkaisut

T kevät 2007 Laskennallisen logiikan jatkokurssi Laskuharjoitus 1 Ratkaisut T-79.5101 kevät 2007 Laskennallisen logiikan jatkokurssi Laskuharjoitus 1 Ratkaisut 1. Jokaiselle toteutuvalle lauselogiikan lauseelle voidaan etsiä malli taulumenetelmällä merkitsemällä lause taulun juureen

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 21.1.2009 T-106.1208 Ohjelmoinnin perusteet Y 21.1.2009 1 / 32 Tyypeistä Monissa muissa ohjelmointikielissä (esim. Java ja C) muuttujat on määriteltävä ennen

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

11.4. Context-free kielet 1 / 17

11.4. Context-free kielet 1 / 17 11.4. Context-free kielet 1 / 17 Määritelmä Tyypin 2 kielioppi (lauseyhteysvapaa, context free): jos jokainenp :n sääntö on muotoa A w, missäa V \V T jaw V. Context-free kielet ja kieliopit ovat tärkeitä

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 12.9.2018 CS-A1111 Ohjelmoinnin peruskurssi Y1 12.9.2018 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 11.9.2019 CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2019 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,

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

LOGIIKKA johdantoa

LOGIIKKA johdantoa LOGIIKKA johdantoa LUKUTEORIA JA TO- DISTAMINEN, MAA11 Logiikan tehtävä: Logiikka tutkii ajattelun ja päättelyn sääntöjä ja muodollisten päättelyiden oikeellisuutta, ja pyrkii erottamaan oikeat päättelyt

Lisätiedot

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 9. lokakuuta 2016

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 9. lokakuuta 2016 TIEA241 Automaatit ja, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 9. lokakuuta 2016 Sisällys Kontekstiton kielioppi Kontekstiton kielioppi koostuu joukosta päätemerkkejä (engl. terminal symbols),

Lisätiedot

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4) 2. Lisää Java-ohjelmoinnin alkeita Muuttuja ja viittausmuuttuja Vakio ja literaalivakio Sijoituslause Syötteen lukeminen ja Scanner-luokka 1 Muuttuja ja viittausmuuttuja (1/4) Edellä mainittiin, että String-tietotyyppi

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

Ratkaisu: Käytetään induktiota propositiolauseen A rakenteen suhteen. Alkuaskel. A = p i jollain i N. Koska v(p i ) = 1 kaikilla i N, saadaan

Ratkaisu: Käytetään induktiota propositiolauseen A rakenteen suhteen. Alkuaskel. A = p i jollain i N. Koska v(p i ) = 1 kaikilla i N, saadaan HY / Matematiikan ja tilastotieteen laitos Johdatus logiikkaan I, syksy 2018 Harjoitus 2 Ratkaisuehdotukset 1. Olkoon totuusjakauma v sellainen että v(p i ) = 1 kaikilla i N ja A propositiolause, jossa

Lisätiedot

TIEA241 Automaatit ja kieliopit, syksy 2015. Antti-Juhani Kaijanaho. 3. joulukuuta 2015

TIEA241 Automaatit ja kieliopit, syksy 2015. Antti-Juhani Kaijanaho. 3. joulukuuta 2015 TIEA241 Automaatit ja, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 3. joulukuuta 2015 Sisällys Formaalisti Määritelmä Nelikko G = (V, Σ, P, S) on kontekstiton kielioppi (engl. context-free

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 4 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 4 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 4 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten lauseisiin, lausekkeisiin ja aliohjelmiin liittyvät kysymykset. Tehtävä 1. Mitä

Lisätiedot

Aki Taanila LINEAARINEN OPTIMOINTI

Aki Taanila LINEAARINEN OPTIMOINTI Aki Taanila LINEAARINEN OPTIMOINTI 26.4.2011 JOHDANTO Tässä monisteessa esitetään lineaarisen optimoinnin alkeet. Moniste sisältää tarvittavat Excel ohjeet. Viimeisin versio tästä monisteesta ja siihen

Lisätiedot

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti C! Perusteet 19.1.2017 Palautteesta (1. kierros toistaiseksi) Toistaiseksi helppoa Miksi vain puolet pisteistä? Vaikeinta oli ohjelmointiympäristön asennus ja käyttö Vaikeaa eroavuudet Pythonin ja C:n

Lisätiedot

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia.

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia. Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-ympäristö Java-ohjelma ja ohjelmaluokka

Lisätiedot

Lineaarinen yhtälöryhmä

Lineaarinen yhtälöryhmä Lineaarinen yhtälöryhmä 1 / 39 Lineaarinen yhtälö Määritelmä 1 Lineaarinen yhtälö on muotoa a 1 x 1 + a 2 x 2 + + a n x n = b, missä a i, b R, i = 1,..., n ovat tunnettuja ja x i R, i = 1,..., n ovat tuntemattomia.

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

Luku 5 Kertaus. Tehtävä 1 Kerratkaa oppimanne asiat yhdessä keskustellen.

Luku 5 Kertaus. Tehtävä 1 Kerratkaa oppimanne asiat yhdessä keskustellen. Luku Kertaus Tehtävä 1 Kerratkaa oppimanne asiat yhdessä keskustellen. - Samanmuotoiset termit - Lausekkeen ja yhtälön ero - Yhtälön totuusarvon tutkiminen - Yhtälön ratkaisun etsiminen - Yhtälön ratkaisun

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 13.9.2017 CS-A1111 Ohjelmoinnin peruskurssi Y1 13.9.2017 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,

Lisätiedot

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin peruskurssien laaja oppimäärä Ohjelmoinnin peruskurssien laaja oppimäärä Luento 4: Symbolit, derivojaesimerkki, kierroksen 1 ratkaisut (mm. SICP 2.32.3.2) Riku Saikkonen 1. 11. 2011 Sisältö 1 Symbolit ja sulkulausekkeet 2 Lisää Schemestä:

Lisätiedot

Gaussin ja Jordanin eliminointimenetelmä

Gaussin ja Jordanin eliminointimenetelmä 1 / 25 : Se on menetelmä lineaarisen yhtälöryhmän ratkaisemiseksi. Sitä käytetään myöhemmin myös käänteismatriisin määräämisessä. Ideana on tiettyjä rivioperaatioita käyttäen muokata yhtälöryhmää niin,

Lisätiedot

Javan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi

Javan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi 1 Javan perusteet Ohjelmointi IPO-malli Java lähdekoodista suoritettavaksi ohjelmaksi Vakio Muuttuja Miten Javalla näytetään tietoa käyttäjälle, miten Javalla luetaan käyttäjän antama syöte Miten Javalla

Lisätiedot

L models. Testisuunnitelma. Ryhmä Rajoitteiset

L models. Testisuunnitelma. Ryhmä Rajoitteiset Teknillinen korkeakoulu T-76.115 Tietojenkäsittelyopin ohjelmatyö Lineaaristen rajoitteiden tyydyttämistehtävän ratkaisija L models Testisuunnitelma Ryhmä Rajoitteiset Versio Päivämäärä Tekijä Muutokset

Lisätiedot

uv n, v 1, ja uv i w A kaikilla

uv n, v 1, ja uv i w A kaikilla 2.8 Säännöllisten kielten rajoituksista Kardinaliteettisyistä on oltava olemassa (paljon) ei-säännöllisiä kieliä: kieliä on ylinumeroituva määrä, säännöllisiä lausekkeita vain numeroituvasti. Voidaanko

Lisätiedot

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti C! Perusteet 19.1.2017 Palautteesta (1. kierros toistaiseksi) (Erittäin) helppoa Miksi vain puolet pisteistä? Vaikeinta oli ohjelmointiympäristön asennus ja käyttö Ei selvää että main funktion pitikin

Lisätiedot

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

Ohjelmoinnin peruskurssi Y1

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

Lisätiedot

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 19. tammikuuta 2012

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 19. tammikuuta 2012 TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 19. tammikuuta 2012 Sisällys Sisällys Muistathan A B -konstruktion 0 k 1 i 2 s 3 s 4 a 5 0 k 1 o 2 i 3 r 4

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 19.1.2011 T-106.1208 Ohjelmoinnin perusteet Y 19.1.2011 1 / 39 Haluatko antaa palautetta luennoista? Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti Vast

Lisätiedot

FORMAALI SYSTEEMI (in Nutshell): aakkosto: alkeismerkkien joukko kieliopin määräämä syntaksi: sallittujen merkkijonojen rakenne, formaali kuvaus

FORMAALI SYSTEEMI (in Nutshell): aakkosto: alkeismerkkien joukko kieliopin määräämä syntaksi: sallittujen merkkijonojen rakenne, formaali kuvaus FORMAALI SYSTEEMI (in Nutshell): Formaali kieli: aakkosto: alkeismerkkien joukko kieliopin määräämä syntaksi: sallittujen merkkijonojen rakenne, formaali kuvaus esim. SSM:n tai EBNF:n avulla Semantiikka:

Lisätiedot

Harjoitus 6 (viikko 42)

Harjoitus 6 (viikko 42) Nämä ovat kurssin viimeiset harjoitukset. Hyväksytyistä ratkaisuista ja läsnäoloista kerättyjen pisteiden summan tulee olla vähintään 40 % ( pistettä) tehtävien ja läsnäolopisteiden kokonaislukumäärien

Lisätiedot

Demo 1: Simplex-menetelmä

Demo 1: Simplex-menetelmä MS-C2105 Optimoinnin perusteet Malliratkaisut 3 Ehtamo Demo 1: Simplex-menetelmä Muodosta lineaarisen tehtävän standardimuoto ja ratkaise tehtävä taulukkomuotoisella Simplex-algoritmilla. max 5x 1 + 4x

Lisätiedot

LAUSEKKEET JA NIIDEN MUUNTAMINEN

LAUSEKKEET JA NIIDEN MUUNTAMINEN LAUSEKKEET JA NIIDEN MUUNTAMINEN 1 LUKULAUSEKKEITA Ratkaise seuraava tehtävä: Retkeilijät ajoivat kahden tunnin ajan polkupyörällä maantietä pitkin 16 km/h nopeudella, ja sitten vielä kävelivät metsäpolkua

Lisätiedot

Tietorakenteet ja algoritmit

Tietorakenteet ja algoritmit Tietorakenteet ja algoritmit Kurssin sisältö pääpiirteittäin Tarvittavat pohjatiedot Avainsanat Abstraktio Esimerkkiohjelman tehtäväkuvaus Abstraktion käyttö tehtävässä Abstrakti tietotyyppi Hyötyjä ADT:n

Lisätiedot

YHTÄLÖ kahden lausekkeen merkitty yhtäsuuruus

YHTÄLÖ kahden lausekkeen merkitty yhtäsuuruus YHTÄLÖ kahden lausekkeen merkitty yhtäsuuruus Ensimmäisen asteen yhtälö: :n korkein eksponentti = 1 + 5 = 4( 3) Toisen asteen yhtälö: :n korkein eksponentti = 3 5 + 4 = 0 Kolmannen asteen yhtälö: :n korkein

Lisätiedot

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä 3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä Lineaarinen m:n yhtälön yhtälöryhmä, jossa on n tuntematonta x 1,, x n on joukko yhtälöitä, jotka ovat muotoa a 11 x 1 + + a 1n x n = b 1 a 21

Lisätiedot

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

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

Lisätiedot

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

TIEA341 Funktio-ohjelmointi 1, kevät 2008

TIEA341 Funktio-ohjelmointi 1, kevät 2008 TIEA341 Funktio-ohjelmointi 1, kevät 2008 Luento 4 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 17. tammikuuta 2008 Modulin viimeistelyä module Shape ( Shape ( Rectangle, E l l i p

Lisätiedot

Rajoittamattomat kieliopit (Unrestricted Grammars)

Rajoittamattomat kieliopit (Unrestricted Grammars) Rajoittamattomat kieliopit (Unrestricted Grammars) Laura Pesola Laskennanteorian opintopiiri 13.2.2013 Formaalit kieliopit Sisältävät aina Säännöt (esim. A -> B C abc) Muuttujat (A, B, C, S) Aloitussymboli

Lisätiedot

Yhtälönratkaisu oppilaan materiaali

Yhtälönratkaisu oppilaan materiaali Yhtälönratkaisu oppilaan materiaali Nimi: Luokka: 1 1. Tosia ja epätosia väitteitä Alkupalat Kirjoita taulukkoon T, jos väite on tosi ja E, jos väite on epätosi. Väite 5 > 3 16 < 8 19 = 26 9 < 28 64 =

Lisätiedot

2 Yhtälöitä ja epäyhtälöitä

2 Yhtälöitä ja epäyhtälöitä 2 Yhtälöitä ja epäyhtälöitä 2.1 Ensimmäisen asteen yhtälö ja epäyhtälö Muuttujan x ensimmäisen asteen yhtälöksi sanotaan yhtälöä, joka voidaan kirjoittaa muotoon ax + b = 0, missä vakiot a ja b ovat reaalilukuja

Lisätiedot

T Testiraportti - järjestelmätestaus

T Testiraportti - järjestelmätestaus T-76.115 Testiraportti - järjestelmätestaus 18. huhtikuuta 2002 Confuse 1 Tila Versio: 1.0 Tila: Päivitetty Jakelu: Julkinen Luotu: 18.04.2002 Jani Myyry Muutettu viimeksi: 18.04.2002 Jani Myyry Versiohistoria

Lisätiedot

5.5 Jäsenninkombinaattoreista

5.5 Jäsenninkombinaattoreista 5.5. JÄSENNINKOMBINAATTOREISTA 67 type Env α = FiniteMap String α data EnvT m α = MkE (Env Integer m (Env Integer, α)) instance Transformer EnvT where promote mp = MkE $ λenv mp λr return $(env, r) instance

Lisätiedot

1. Logiikan ja joukko-opin alkeet

1. Logiikan ja joukko-opin alkeet 1. Logiikan ja joukko-opin alkeet 1.1. Logiikkaa 1. Osoita totuusarvotauluja käyttäen, että implikaatio p q voidaan kirjoittaa muotoon p q, ts. että propositio (p q) ( p q) on identtisesti tosi. 2. Todista

Lisätiedot

Attribuuttikieliopit

Attribuuttikieliopit TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 3. toukokuuta 2011 Sisällys t Chomskyn hierarkia kieli säännöllinen kontekstiton kontekstinen rekursiivisesti

Lisätiedot

M =(K, Σ, Γ,, s, F ) Σ ={a, b} Γ ={c, d} = {( (s, a, e), (s, cd) ), ( (s, e, e), (f, e) ), (f, e, d), (f, e)

M =(K, Σ, Γ,, s, F ) Σ ={a, b} Γ ={c, d} = {( (s, a, e), (s, cd) ), ( (s, e, e), (f, e) ), (f, e, d), (f, e) Tik-79.148 Kevät 2001 Tietojenkäsittelyteorian perusteet Laskuharjoitus 7 Demonstraatiotehtävien ratkaisut 1. Pinoautomaatti M = K Σ Γ s F missä K Σ s ja F on määritelty samalla tavalla kuin tilakoneellekin.

Lisätiedot

1 Logiikkaa. 1.1 Logiikan symbolit

1 Logiikkaa. 1.1 Logiikan symbolit 1 Logiikkaa Tieteessä ja jokapäiväisessä elämässä joudutaan tekemään päätelmiä. Logiikassa tutkimuskohteena on juuri päättelyt. Sen sijaan päätelmien sisältöön ei niinkäään kiinnitetä huomiota. Päätelmät

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

Matemaattinen optimointi I, demo

Matemaattinen optimointi I, demo Matemaattinen optimointi I, demo 3 29.1.2015 Demo 3 järjestetään Quantumin mikroluokassa normaaleina demoaikoina. Tavoitteena on harjoitella kurssilla tarvittavien optimointiohjelmistojen käyttöä. Demopisteet

Lisätiedot

Kesälukio 2000 PK2 Tauluharjoituksia I Mallivastaukset

Kesälukio 2000 PK2 Tauluharjoituksia I Mallivastaukset Kesälukio 2000 PK2 Tauluharjoituksia I Mallivastaukset 2000-08-03T10:30/12:00 Huomaa, että joihinkin kysymyksiin on useampia oikeita vastauksia, joten nämä ovat todellakin vain mallivastaukset. 1 Logiikkaa

Lisätiedot

MS-A0402 Diskreetin matematiikan perusteet

MS-A0402 Diskreetin matematiikan perusteet MS-A0402 Diskreetin matematiikan perusteet Osa 1: Joukko-oppi ja logiikka Riikka Kangaslampi 2017 Matematiikan ja systeemianalyysin laitos Aalto-yliopisto Kiitokset Nämä luentokalvot perustuvat Gustaf

Lisätiedot

Palautetta viime luennosta

Palautetta viime luennosta Palautetta viime luennosta Kuka saa ja kenen täytyy suorittaa 5op kokonaisuus? Sivuaineopiskelijat suorittavat jos heidän sivuainekokonaisuuteen on merkitty niin Kokonaisuuksia on useita eri tiedekunnittain,

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

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä 1 3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä Lineaarinen m:n yhtälön yhtälöryhmä, jossa on n tuntematonta x 1,, x n on joukko yhtälöitä, jotka ovat muotoa a 11 x 1 + + a 1n x n = b 1 a

Lisätiedot

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 8. syyskuuta 2016

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 8. syyskuuta 2016 TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 8. syyskuuta 2016 Sisällys a https://tim.jyu.fi/view/kurssit/tie/ tiea241/2016/videoiden%20hakemisto Matemaattisen

Lisätiedot

Ohjeita LINDOn ja LINGOn käyttöön

Ohjeita LINDOn ja LINGOn käyttöön Ohjeita LINDOn ja LINGOn käyttöön LINDOn tärkeimmät komennot ovat com (command), joka tuloaa käytettävissä olevat komennot ruudulle, ja help, jonka avulla saa tietoa eri komennoia. Vaaukset kursiivilla

Lisätiedot

Ensimmäisen ja toisen asteen yhtälöt

Ensimmäisen ja toisen asteen yhtälöt Ensimmäisen ja toisen t nimittäjien poistaminen sieventäminen ensimmäisen identtinen yhtälö yhtälö verranto toisen asteen yhtälö korkeamman ristiin kertominen suhde täydellinen toisen ratkaisukaava vaillinainen

Lisätiedot

AS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin

AS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin AS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin Raimo Nikkilä Aalto-yliopiston sähkötekniikan korkeakoulu - Automaation tietotekniikan tutkimusryhmä 17. tammikuuta 2013

Lisätiedot

Harjoitus 6. Käytä String-luokasta vain charat- ja length-operaatioita.

Harjoitus 6. Käytä String-luokasta vain charat- ja length-operaatioita. Nämä ovat kurssin viimeiset harjoitukset. Hyväksytyistä ratkaisuista ja läsnäoloista kerättyjen pisteiden summan tulee olla vähintään 40 % ( pistettä) tehtävien ja läsnäolopisteiden kokonaislukumäärien

Lisätiedot

15 Yhtäsuuruuksia 1. Päättele x:llä merkityn punnuksen massa. a) x 4 kg. x 3 kg

15 Yhtäsuuruuksia 1. Päättele x:llä merkityn punnuksen massa. a) x 4 kg. x 3 kg 1 15 Yhtäsuuruuksia Päättele :llä merkityn punnuksen massa. a) 1 kg 1 kg 1 kg 1 kg 1 kg 1 kg b) 1 kg 5 kg 5 kg 4 kg 3 kg Kuinka monta ympyrää jälkimmäisen vaa an oikealle puolelle on laitettava, jotta

Lisätiedot

HY / Matematiikan ja tilastotieteen laitos Johdatus logiikkaan I, syksy 2018 Harjoitus 4 Ratkaisuehdotukset

HY / Matematiikan ja tilastotieteen laitos Johdatus logiikkaan I, syksy 2018 Harjoitus 4 Ratkaisuehdotukset HY / Matematiikan ja tilastotieteen laitos Johdatus logiikkaan I, syksy 2018 Harjoitus 4 Ratkaisuehdotukset 1. Etsi lauseen (p 0 (p 1 p 0 )) p 1 kanssa loogisesti ekvivalentti lause joka on (a) disjunktiivisessa

Lisätiedot

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen Ohjelmointitaito (ict1td002, 12 op) Kevät 2009 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-kehitysympäristö Java-ohjelma ja luokka

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

2.2 Muunnosten käyttöön tutustumista

2.2 Muunnosten käyttöön tutustumista 2.2 Muunnosten käyttöön tutustumista Tunnin rakenne: - Esimerkki (min) - Tehtävä -, jokerit tarvittaessa (2 min) - Loppukoonti ja ryhmäarviointi ( min) Tunnin tavoitteet: - Analysoidaan ja pohditaan valmiiksi

Lisätiedot

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti Teknillinen korkeakoulu 51 Vaatimusmäärittely Ohjelma-ajanvälitys komponentti Versio Päiväys Tekijä Kuvaus 0.1 21.11.01 Oskari Pirttikoski Ensimmäinen versio 0.2 27.11.01 Oskari Pirttikoski Lisätty termit

Lisätiedot

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

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

Lisätiedot

= k 0 NTIME(n k + k) Siis polynomisessa ajassa epädeterministisellä Turingin koneella tunnistettavien kielten joukko

= k 0 NTIME(n k + k) Siis polynomisessa ajassa epädeterministisellä Turingin koneella tunnistettavien kielten joukko 238 7.2 Luokka NP Luokka NP on: NP = { NTIME(t) t on polynomi } = k 0 NTIME(n k + k) Siis polynomisessa ajassa epädeterministisellä Turingin koneella tunnistettavien kielten joukko P NP Luokan NP ongelmista

Lisätiedot

Ctl160 Tekstikorpusten tietojenkäsittely Kolmas luento,

Ctl160 Tekstikorpusten tietojenkäsittely Kolmas luento, Ctl160 490160-0 Kolmas luento, 10.2.2003 Nicholas Volk Yleisen kielitieteen laitos, Helsingin yliopisto Ctl160 490160-0Kolmas luento, 10.2.2003 p.1/28 Unohtui viime kerralla... Skriptin ajaminen edellyttää

Lisätiedot