Ohjelmien analysointi. ER-kaaviot

Koko: px
Aloita esitys sivulta:

Download "Ohjelmien analysointi. ER-kaaviot"

Transkriptio

1 Ohjelmien analysointi Ohjelmien kuvaaminen kaavioilla ohjelmien ymmärtäminen kaavioiden avulla kaavioiden tuottaminen ohjelmasta Erilaisia kaaviotyyppejä: ER-kaaviot, tilakaaviot, UML-kaaviot tietohakemisto vuokaaviot (tarkemmin) Vuoanalyysi Ohjelma-analyysi Viipalointi TTY Ohjelmistotekniikka 1 ER-kaaviot Kirjasto N 1 asiakas omistus M Lainaaja 1 N lainaus N Kirja TTY Ohjelmistotekniikka 2 1

2 Kirja varataan Merkitse varatuksi Ei varauksia Merkitse saapuneeksi Poistettu Tilakaaviot Kirja lainataan Merkitse lainatuksi Huonokuntoinen Poista Lainaushyllyssä Palautustiskillä Ota käsiteltäväksi On varauksia Ilmoita saapumisesta Lainassa Merkitse lainatuksi Varattujen hyllyssä TTY Ohjelmistotekniikka 3 UML-kaaviot (luokkakaavio) Aineisto hankintapäivä hinta kopiomäärä hanki ( ) luetteloi ( ) lainaa ( ) Kirjasto Kirja kirjoittaja ISBN lainaa ( ) CD kesto lainaa ( ) Lehti vuosi numero lainaa ( ) TTY Ohjelmistotekniikka 4 2

3 UML-kaaviot (sekvenssikaavio) : Lainaaja : Luettelo : Aineisto : Asiakasrekisteri hae(aineisto) lainaa(asiakas) tarkista(asiakas) TTY Ohjelmistotekniikka 5 Tietohakemisto Sisältö: nimi tietoalkion, tietovaraston tai ulkoisen olion pääasiallinen nimi alias käyttökohta ja tapa tietoalkiota käyttävät prosessit käyttötapa (syötteenä, tulosteena, tietovarastona) sisällön kuvaus (käytetty notaatio) lisätietoja Nimi Puhelinnumero Alias Käyttökohta ja -tapa Kuvaus AssessAgainstSet-up (tuloste) DialPhone (syöte) puhelinnumero = ( suuntanumero ) + varsinainen numero suuntanumero = * nollalla alkava 2-3-numeroinen luku * varsinainen numero = * 6-8-numeroinen luku * TTY Ohjelmistotekniikka 6 3

4 Tieto- ja kontrollivuo Vuokaaviot flow graph liittyy kääntäjätekniikkaan käytetään esim. optimoinnissa flow chart (kulkukaavio) kontrollin kulku esitetään algoritmin tasolla flow diagram abstraktimpi esitys kuin edelliset käytetään ohjelmien suunnittelussa (takaisinmallinnuksessa) Tieto ja kontrolli voidaan esittää samassa kaaviossa TTY Ohjelmistotekniikka 7 Kääntäjiin liittyvät vuokaaviot Peruslohko (basic block) koostuu peräkkäisistä ohjelman lauseista Kontrollivuo ei saa haarautua kesken peruslohkon Peruslohkon voi aloittaa: ohjelman (lauselistan) 1. lause hypyn kohteena oleva lause hyppykäskyn jälkeen tuleva lause TTY Ohjelmistotekniikka 8 4

5 Peruslohkot prod := 0; i := 1; do begin prod := prod + a [ i ] * b [ i ]; i := i + 1; end while i <= 20 Optimointi TTY Ohjelmistotekniikka 9 Algoritmin esittäminen (kulkukaavio) S1 t E f S1 S2 S1 S2 t E f S1; S2 if E then S1 else S2 do S1 while E TTY Ohjelmistotekniikka 10 5

6 Merkinnät: Abstraktit tietovuokaaviot Data 1 Muutos 1 Data 2 Muutos Data 5 2 Muutos 3 Data 6 Data 3 Data 4 Olio 1 Olio 2 Tietovarasto Järjestelmän ulkoinen olio esim. syöte tai tuloste Muutos tai prosessi Tietovuo (tai tietovirta) Tietovarasto TTY Ohjelmistotekniikka 11 Esimerkki tietovuokaaviosta Lainaaja Kirjastokortti Kirjan viivakoodi Lue kortti Merkitse lainatuksi Kuitti Kirja Asiakastietokanta Aineistotietokanta TTY Ohjelmistotekniikka 12 6

7 Tietovuokaavion tarkentaminen Puheääni Puhelin- Kuultu puhe Soittaja Vastaaja Valittu numero soitto Puheääni Valittu numero Ääniaallon muuttaminen signaaliksi Näppäimistön elektroniikka Elektroninen signaali Taajuudet Puhelun kytkentä Elektroninen signaali Signaalin muuttaminen ääniaalloksi Kuultu puhe TTY Ohjelmistotekniikka 13 Tarkennuksen merkinnät A f B A f1 V W f2 f3 Y X f4 Z f5 Z1 f6 Z3 Z2 f7 B X Y f41 f42 1 y1 f43 f44 2 y2 f45 Z TTY Ohjelmistotekniikka 14 7

8 Vuoanalyysi (flow analysis) Ohjelman ajoaikaisten ominaisuuksien tutkiminen ajamatta ohjelmaa käytetään yksinkertaistettua, symbolista versiota ohjelman datasta Vaihtoehtoisia termejä: symbolinen ajaminen (symbolic eecution) abstrakti tulkinta (abstract interpretation) Tarkoitus: optimointi i ohjelmien todistaminen invarianttien (pysyväisväittämien) generointi ohjelman luotettavuuden parantaminen TTY Ohjelmistotekniikka 15 Esimerkki abstraktista tulkinnasta Yhdeksällä jaollisuus esim. onko luku jaollinen 9:llä? ratkaisu: = 18 on jaollinen voidaan soveltaa tarkistuksissa? 123 * = TTY Ohjelmistotekniikka 16 8

9 Esimerkkejä vuoanalyysista: muutoksia koodin parantamiseksi Peräkkäinen koodi: lausekkeen toistuvan evaluoinnin eliminointi vakioiden/vakiolausekkeiden korvaaminen niiden arvoilla Silmukat: koodin siirtäminen silmukan ulkopuolelle kalliiden laskutoimitusten välttäminen Muita parannuksia: muuttujan korvaaminen toisella kuolleen koodin eliminointi Tehokkuus TTY Ohjelmistotekniikka 17 Esimerkki kalliiden laskutoimitusten välttämisestä i := 1; while i < 100 do a := i * 5; i = i + 1; od i := 1; t := 5; while i < 100 do a := t; i = i + 1; t := t + 5; od TTY Ohjelmistotekniikka 18 9

10 Koodin siirtäminen silmukan ulkopuolelle 1 1 Laske A / B 2 Voidaanko siirtää? 2 3 B <- lauseke; Laske A/B Laske A / B 4 3 B <- lauseke; Laske A/B 4 5 A ja B eivät riipu silmukkalaskurista 5 TTY Ohjelmistotekniikka 19 Ohjelma-analyysi Lähdekoodin ja muiden dokumenttien tarkastelu (vrt. koodianalyysi) Analysointia tapahtuu neljällä tasolla: toteutustaso rakenteellinen taso toiminnallinen taso sovellusalueen taso staattinen analyysi dynaaminen analyysi TTY Ohjelmistotekniikka 20 10

11 Esimerkkejä ohjelmaanalyysista Staattinen analyysi Näytä sen aliohjelman runko, jota kutsutaan tietystä lauseesta. Näytä sen tyypin esittely, jota käytetään tietyn muuttujan esittelyssä. Etsi kaikki muuttujat, jotka ovat näkyviä tietyssä aliohjelmassa ja jotka ovat tiettyä tyyppiä. Dynaaminen analyysi Etsi kaikki lauseet, jotka suoritetaan tietyn muuttujan arvon tuottamiseksi. Etsi kaikki lauseet, jotka käyttävät tietyn muuttujan arvoa. Etsi kaikki muuttujat, joiden arvoa käytetään laskettaessa tietyn muuttujan arvo. TTY Ohjelmistotekniikka 21 Esimerkkejä ohjelmakaavioista Kutsukaavio tai kutsuviittauskaavio (call graph) Yhteenvetokaavio (program summary graph) Aliohjelmien välinen vuokaavio (interprocedural flow graph) Riippuvuuskaavio (system dependency graph) TTY Ohjelmistotekniikka 22 11

12 ( define ( square a ) ( * a a ) ) ( define ( fun y ) ( + ( square ) ( square y ) ) ) Kutsukaavio (kontrollin kulku)?(f fun 35) = 34 fun square square TTY Ohjelmistotekniikka 23 ( define ( square a ) ( * a a ) ) ( define ( fun y ) ( + ( square ) ( square y ) ) )?(f fun 35) = 34 arg1 = 3 arg2 = 5 Tietovuon lisääminen paluuarvo = 9 fun arg = 3 arg = 5 paluuarvo = 25 square paluuarvo = 34 square TTY Ohjelmistotekniikka 24 12

13 Toinen esimerkki kutsukaaviosta 1 program Sums 2 read ( n ); 3 i := 1; 4 while ( i <= n ) 5 sum := 0; 6 Acc ( sum, i ); 7 write ( sum, i ); 8 i := i + 1; 9 end while 10 end. Sums 11 procedure Acc (, y ) ref, y 12 j := 1; 13 while ( j <= y ) 14 Add (, j ); 15 Inc ( j ); 16 end while 17 return sum, i Acc 18 procedure Inc ( ) ref 19 Add (, 1 ); 20 return 21 procedure Add ( a, b ) ref a; value b 22 a := a + b; 23 return j, j Inc Add, 1 TTY Ohjelmistotekniikka 25 Sums sum i Acc y j Inc Add a Yhteenvetokaavio todelliset parametrit muodolliset parametrit sum i y j a parametri- liitäntä parametrien tietovuo TTY Ohjelmistotekniikka 26 13

14 Sums Acc { U 6 } sum i { U 2, U 3, U 5 } y j Inc { U 6 } { U 6 } Add Aliohjelmien välinen vuokaavio a sum i j { U 6 } y a { U 2, U 3 } { U 1, U 4, U 6 } { U 1 } { U 4, U 6 } Käyttöjoukot (use sets): U 1 : sum rivillä 7 U 2: i rivillä 7 U 3 : i rivillä 8 U 4 : j rivillä 13 U 5 : y rivillä 13 U 6 : a rivillä 22 TTY Ohjelmistotekniikka 27 Riippuvuuskaavio Acc y j := 1 while j <= y y j Add j j Inc j Inc Add 1 Add a b a := a + b a b TTY Ohjelmistotekniikka 28 14

15 Viipalointi (slicing) Ohjelmien ymmärtäminen Virheiden etsintä Ohjelmien rinnakkaistaminen Viipaleen laskenta perustuu ohjelman tieto- ja kontrollivuohon viipaleen lauseet eivät välttämättä peräkkäisiä Viipale määräytyy ohjelmakohdan (rivin) ja tarkasteltavien muuttujien perusteella Alkuperäinen määritelmä: viipale sisältää lauseet, jotka voivat vaikuttaa seuraus tietyn muuttujan arvoon tietyssä ohjelmakohdassa viipaleen ajaminen tuottaa tälle muuttujalle samat arvot kuin alkuperäisen ohjelman ajaminenkin TTY Ohjelmistotekniikka 29 Esimerkkiohjelma 1 Esimerkki (1) (1) begin (2) read (, y ); (3) total := 0.0; (4) sum := 0.0; (5) if <= 1 then (6) sum := y; (7) else begin (8) read ( ); (9) total := * y; (10) end; (11) write ( total, sum ); (12) end; Viipale kriteerin <12, { }> perusteella: (1) begin (2) read (, y ); (5) if <= 1 then (7) else begin (8) read ( ); (10) end; (12) end; TTY Ohjelmistotekniikka 30 15

16 Esimerkkiohjelma 1 Esimerkki (2) (1) begin (2) read (, y ); (3) total := 0.0; (4) sum := 0.0; (5) if <= 1 then (6) sum := y; (7) else begin (8) read ( ); (9) total := * y; (10) end; (11) write ( total, sum ); (12) end; Viipale kriteerin <12, { }> perusteella: (1) begin (2) read (, y ); (12) end; TTY Ohjelmistotekniikka 31 Esimerkkiohjelma 1 Esimerkki (3) (1) begin (2) read (, y ); (3) total := 0.0; (4) sum := 0.0; (5) if <= 1 then (6) sum := y; (7) else begin (8) read ( ); (9) total := * y; (10) end; (11) write ( total, sum ); (12) end; Viipale kriteerin <12, { total }> perusteella: (1) begin (2) read (, y ); (3) total := 0.0; (5) if <= 1 then (7) else begin (9) total := * y; (10) end; (12) end; Rivi 11? TTY Ohjelmistotekniikka 32 16

17 Esimerkkiohjelma 2 begin (1) read ( ); (2) if ( < 0 ) then (3) y := f1 ( ); (4) := g1 ( ); else (5) if ( = 0 ) then (6) y := f2 ( ); (7) := g2 ( ); else (8) y := f3 ( ); (9) := g3 ( ); end if; end if; (10) write ( y ); (11) write ( ); end; Viipalointi ja ohjelman riippuvuuskaavio datariippuvuudet kontrolliriippuvuudet Viipale kriteerin <10, { y }> perusteella TTY Ohjelmistotekniikka 33 Viipaloinnin jaottelu (1) Alkuperäinen eli takautuva (backward) viipale sisältää sellaiset lauseet, jotka vaikuttavat muuttujan arvoon Etenevä (forward) viipale sisältää sellaiset lauseet, joihin muuttuja vaikuttaa (joissa viitataan muuttujaan) TTY Ohjelmistotekniikka 34 17

18 Etenevä viipalointi Esimerkkiohjelma 3 (1) read ( n ); (2) i := 2; (3) c := 0; (4) while i <= ( n div 2 ) do (5) if ( n mod i ) = 0 then (6) write ( i ); (7) c := c + 1; (8) fi; (9) i := i + 1; (10) od; (11) write ( c ); Etenevä viipale kriteerin <2, { c }> perusteella: (3) c := 0; (7) c := c + 1; (11) write ( c ); TTY Ohjelmistotekniikka 35 Viipaloinnin jaottelu (2) Alkuperäinen eli staattinen viipalointi perustuu käännösaikaiseen ohjelman tarkasteluun Dynaaminen viipalointi otetaan mukaan vain ne lauseet, jotka tulee suoritettua viipale sisältää lauseet, jotka vaikuttavat muuttujan arvoon tietyllä ohjelman suorituskerralla dynaamiselle viipaloinnille on hieman erilaisia määritelmiä TTY Ohjelmistotekniikka 36 18

19 Dynaaminen viipalointi (verrattuna staattiseen) Esimerkkiohjelma 3 (1) read ( n ); (2) i := 2; (3) c := 0; (4) while i <= ( n div 2 ) do (5) if ( n mod i ) = 0 then (6) write ( i ); (7) c := c + 1; (8) fi; (9) i := i + 1; (10) od; (11) write ( c ); Staattinen viipale kriteerin <11, { c } > perusteella: kaikki muut rivit paitsi rivi 6 Dynaaminen viipale kriteerin <11, { c } > perusteella syötearvolla n = 2: (3) c := 0; (11) write ( c ); TTY Ohjelmistotekniikka 37 Dynaamisen viipaloinnin erilaisia määritelmiä Määritelmä 1: osa-ohjelma, joka laskee tarkasteltavien muuttujien arvot tietyllä suorituskerralla Määritelmä 2: kokoelma lauseita, jotka vaikuttavat tarkasteltavien muuttujien arvoihin tietyllä suorituskerralla ei välttämättä ajettava osa-ohjelma TTY Ohjelmistotekniikka 38 19

20 Määritelmien ero Esimerkkiohjelma 4 (1) i := 0; (2) while i < 10 do (3) if i = 0 then (4) h := 10; (5) i := i + 1; (6) od; (7) write ( h ); Dynaaminen viipale kriteerin < 7, { h } > perusteella: 1. määritelmän mukaan: kaikki rivit 2. määritelmän mukaan: kaikki muut rivit paitsi rivi 5 (7) write ( h ); kaikki muut rivit paitsi rivi 5 TTY Ohjelmistotekniikka 39 20

ER-kaaviot. Ohjelmien analysointi. Tilakaaviot. UML-kaaviot (luokkakaavio) Tietohakemisto. UML-kaaviot (sekvenssikaavio) Kirjasto

ER-kaaviot. Ohjelmien analysointi. Tilakaaviot. UML-kaaviot (luokkakaavio) Tietohakemisto. UML-kaaviot (sekvenssikaavio) Kirjasto Ohelmen analsont Ohelmen kuvaamnen kaavolla ohelmen mmärtämnen kaavoden avulla kaavoden tuottamnen ohelmasta Erlasa kaavotppeä: ER-kaavot, tlakaavot, UML-kaavot tetohakemsto vuokaavot (tarkemmn) Vuoanals

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

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

2) Aliohjelma, jonka toiminta perustuu sivuvaikutuksiin: aliohjelma muuttaa parametrejaan tai globaaleja muuttujia, tulostaa jotakin jne.

2) Aliohjelma, jonka toiminta perustuu sivuvaikutuksiin: aliohjelma muuttaa parametrejaan tai globaaleja muuttujia, tulostaa jotakin jne. Proseduurit Proseduuri voi olla 1) Funktio, joka palauttaa jonkin arvon: real function sinc(x) real x sinc = sin(x)/x... y = sinc(1.5) 2) Aliohjelma, jonka toiminta perustuu sivuvaikutuksiin: aliohjelma

Lisätiedot

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

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

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 9.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 9.2.2009 1 / 35 Listat Esimerkki: halutaan kirjoittaa ohjelma, joka lukee käyttäjältä 30 lämpötilaa. Kun lämpötilat

Lisätiedot

Ongelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla

Ongelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla Ongelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla ohjelmoida useita komponenteiltaan ja rakenteeltaan

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

Osoitin ja viittaus C++:ssa

Osoitin ja viittaus C++:ssa Osoitin ja viittaus C++:ssa Osoitin yksinkertaiseen tietotyyppiin Osoitin on muuttuja, joka sisältää jonkin toisen samantyyppisen muuttujan osoitteen. Ohessa on esimerkkiohjelma, jossa määritellään kokonaislukumuuttuja

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

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

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

Lisätiedot

Ohjelmoinnin 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

UML- mallinnus: Tilakaavio

UML- mallinnus: Tilakaavio UML- mallinnus: Tilakaavio Karkea kuvaus UML- kaavioiden käytöstä ohjelmistonkehityksen eri vaiheissa ja tehtävissä. Mallinnus tilakaavioilla Tilakaaviolla kuvataan yhden luokan olioiden tilan muuttumista

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

Visual Case 2. Miika Kasnio (C9767) 23.4.2008

Visual Case 2. Miika Kasnio (C9767) 23.4.2008 Visual Case 2 Miika Kasnio (C9767) 23.4.2008 Työn tarkasti: Jouni Huotari 24.4.2008 1 SISÄLTÖ 1. TYÖN LÄHTÖKOHDAT... 2 2. PERUSTIEDOT... 2 3. ASENTAMINEN... 2 4. OMINAISUUDET... 3 4.1. UML-kaaviot... 4

Lisätiedot

Perinteiset tietokoneohjelmat alkavat pääohjelmasta, c:ssä main(), jossa edetään rivi riviltä ja käsky käskyltä.

Perinteiset tietokoneohjelmat alkavat pääohjelmasta, c:ssä main(), jossa edetään rivi riviltä ja käsky käskyltä. TIETOKONEOHJELMIEN RAKENNE Perinteiset tietokoneohjelmat alkavat pääohjelmasta, c:ssä main(), jossa edetään rivi riviltä ja käsky käskyltä. Teollisuusautomaation ohjelmiin on lainattu runsaasti perinteisen

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

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

Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten,

Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten, Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten, että se pystyy suorittamaan kaikki mahdolliset algoritmit?

Lisätiedot

Ohjelmoinnin peruskurssi Y1

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

Lisätiedot

Tällä harjoituskerralla on tarkoituksena harjoitella käyttötapaus-, luokka- ja tapahtumasekvenssikaavioiden luontia.

Tällä harjoituskerralla on tarkoituksena harjoitella käyttötapaus-, luokka- ja tapahtumasekvenssikaavioiden luontia. MagicDraw-pikaohje Tällä harjoituskerralla on tarkoituksena harjoitella käyttötapaus-, luokka- ja tapahtumasekvenssikaavioiden luontia. Alkuvalmistelut Windows (sali TC205) 1) Kirjaudu sisään TTY:n intra-tunnuksella.

Lisätiedot

Tietorakenteet ja algoritmit - syksy 2015 1

Tietorakenteet ja algoritmit - syksy 2015 1 Tietorakenteet ja algoritmit - syksy 2015 1 Tietorakenteet ja algoritmit - syksy 2015 2 Tietorakenteet ja algoritmit Johdanto Ari Korhonen Tietorakenteet ja algoritmit - syksy 2015 1. JOHDANTO 1.1 Määritelmiä

Lisätiedot

Osa. Listaus 2.1. HELLO.CPP esittelee C++ -ohjelman osat. 14: #include 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

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari 1 1. JOHDANTO 1.1 Määritelmiä 1.2 Tietorakenteen ja algoritmin valinta 1.3 Algoritmit ja tiedon määrä 1.4 Tietorakenteet ja toiminnot 1.5 Esimerkki:

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 28.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 28.2.2011 1 / 46 Ohjelmointiprojektin vaiheet 1. Määrittely 2. Ohjelman suunnittelu (ohjelman rakenne ja ohjelman

Lisätiedot

Johdatus f90/95 ohjelmointiin. H, R & R luvut 1-3

Johdatus f90/95 ohjelmointiin. H, R & R luvut 1-3 Johdatus f90/95 ohjelmointiin H, R & R luvut 1-3 Fortran-kieli ( 3.1-3) IBM 1954, FORmula TRANslator ISO/ANSI standardit f90, f95, f2003 tieteellinen & teknillinen laskenta rinnakkaislaskenta (HPF, openmp)

Lisätiedot

Ohjelmistojen mallintaminen Olioiden yhteistyö. 18.11.2008 Harri Laine 1

Ohjelmistojen mallintaminen Olioiden yhteistyö. 18.11.2008 Harri Laine 1 Ohjelmistojen mallintaminen Olioiden yhteistyö 18.11.2008 Harri Laine 1 Olioiden yhteistyö Oliokeskeisen ohjelmistonäkemyksen mukaan ohjelmiston palvelut tuotetaan olioiden yhteistyön tuloksena. Ohjelmisto

Lisätiedot

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

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

Lisätiedot

MagicDraw-pikaohje (VH5)

MagicDraw-pikaohje (VH5) MagicDraw-pikaohje (VH5) Tällä harjoituskerralla on tarkoituksena harjoitella käyttötapaus-, luokka- ja tapahtumasekvenssikaavioiden luontia. Alkuvalmistelut Linux-työasemaluokka: käynnistä MagicDraw jollakin

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

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

Kerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta 5 Kerta 6 Kerta 7. 1. Toteuta Pythonilla seuraava ohjelma: Kerta 2 Kerta 3 Kerta 4 Kerta 5 Kerta 6 Kerta 7 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

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

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

Java kahdessa tunnissa. Jyry Suvilehto

Java kahdessa tunnissa. Jyry Suvilehto Java kahdessa tunnissa Jyry Suvilehto Ohjelma Ohjelmointiasioita alkeista nippelitietoon n. 45 min Tauko 10 min Oliot, luokat ja muut kummajaiset n. 45 min Kysykää Sisältöä ei oikeasti ole 2x45 min täytteeksi,

Lisätiedot

Työkalujen yleinen arkkitehtuuri. Ylläpitoon liittyvät työkalut. Ylläpitotehtävien mukaiset työkalut. Työkalujen jaotteluperusteita

Työkalujen yleinen arkkitehtuuri. Ylläpitoon liittyvät työkalut. Ylläpitotehtävien mukaiset työkalut. Työkalujen jaotteluperusteita Ylläpitoon liittyvät työkalut Käyttötarkoituksia ohjelman ymmärtäminen visualisointi etsintä dokumentointi muutosten hallinta koodin muotoilu (pretty printer) erikoistuneet editorit metriikkoihin liittyvät

Lisätiedot

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004 Vertailulauseet Ehtolausekkeet Ehdot, valintalausekkeet Boolean-algebra == yhtäsuuruus!= erisuuruus < pienempi suurempi >= suurempi tai yhtäsuuri Esimerkkejä: int i=7; int j=10;

Lisätiedot

Kielioppia: toisin kuin Javassa

Kielioppia: toisin kuin Javassa Object Pascal Pascal kielen oliolaajennus (Inprise/Borland:n oma) luokat Voit uudelleenkäyttää luomiasi objekteja esim. komponentteja Periytyminen Kielioppia: toisin kuin Javassa Ei eroa isojen ja pienien

Lisätiedot

Ohjausrakenteet. Valinta:

Ohjausrakenteet. Valinta: Ohjausrakenteet Luento antaa yleiskuvan siitä kuinka ohjelmassa suorittaan vaihtoehtoisia tehtäviä valintarakenteiden avulla ja kuinka samanlaisia ohjelma-askeleita toistetaan toistorakenteiden avulla

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b

Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b Pythonin Kertaus Cse-a1130 Tietotekniikka Sovelluksissa Versio 0.01b Listat 1/2 esimerkkejä listan peruskäytöstä. > lista=['kala','kukko','kissa','koira'] ['kala','kukko','kissa','koira'] >lista.append('kana')

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

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

TIE448 Kääntäjätekniikka, syksy 2009. Antti-Juhani Kaijanaho. 7. joulukuuta 2009

TIE448 Kääntäjätekniikka, syksy 2009. Antti-Juhani Kaijanaho. 7. joulukuuta 2009 TIE448 Kääntäjätekniikka, syksy 2009 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 7. joulukuuta 2009 Sisällys Sisällys Seuraava deadline Vaihe F maanantai 14.12. klo 12 rekisteriallokaatio Arvostelukappale

Lisätiedot

Fortran 90/95. + sopii erityisesti numeriikkaan:

Fortran 90/95. + sopii erityisesti numeriikkaan: Fortran 90/95 + sopii erityisesti numeriikkaan: + optimoivat kääntäjät tehokas koodi + mukana valmiiksi paljon varusfunktioita + kompleksiluvut + taulukko-operaatiot + operaattorit laajennettavissa myös

Lisätiedot

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Matti Luukkainen 10.12.2009 Tässä esitetty esimerkki on mukaelma ja lyhennelmä Robert Martinin kirjasta Agile and Iterative Development löytyvästä

Lisätiedot

Periytymisen tunnistaminen

Periytymisen tunnistaminen object identification objectifying (oliointi) Luokkien (olioiden) tunnistaminen Luonteeltaan takaisinmallinnusta ohjelmia ei muuteta Ensimmäinen vaihe konvertoitaessa proseduraalisia (tai muita ei-olio-ohjelmia)

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

4. Lausekielinen ohjelmointi 4.1

4. Lausekielinen ohjelmointi 4.1 4. Lausekielinen ohjelmointi 4.1 Sisällys Konekieli, symbolinen konekieli ja lausekieli. Hyvä ohjelmointitapa. Lausekielestä konekieleksi: - Lähdekoodi, tekstitiedosto ja tekstieditorit. - Kääntäminen

Lisätiedot

Luokkien (olioiden) tunnistaminen

Luokkien (olioiden) tunnistaminen object identification objectifying (oliointi) Luokkien (olioiden) tunnistaminen Luonteeltaan takaisinmallinnusta ohjelmia ei muuteta Ensimmäinen vaihe konvertoitaessa proseduraalisia (tai muita ei-olio-ohjelmia)

Lisätiedot

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin peruskurssien laaja oppimäärä Ohjelmoinnin peruskurssien laaja oppimäärä Luento 3: SICP kohdat 2.22.3, 33.1 ja 3.33.3.2 Riku Saikkonen 8. 11. 2010 Sisältö 1 Lisää listoista 2 Symbolit ja sulkulausekkeet 3 Derivoijaesimerkki 4 Muuttujan

Lisätiedot

811312A Tietorakenteet ja algoritmit 2015-2016. I Johdanto

811312A Tietorakenteet ja algoritmit 2015-2016. I Johdanto 811312A Tietorakenteet ja algoritmit 2015-2016 I Johdanto Sisältö 1. Algoritmeista ja tietorakenteista 2. Algoritmien analyysistä 811312A TRA, Johdanto 2 I.1. Algoritmeista ja tietorakenteista I.1.1. Algoritmien

Lisätiedot

Tietueet. Tietueiden määrittely

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

Lisätiedot

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

Ohjelmoinnin perusteet Y Python

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

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

A) on käytännöllinen ohjelmointitekniikka. = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys)

A) on käytännöllinen ohjelmointitekniikka. = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys) 1(37) PERIYTYMINEN (inheritance) YLILUOKKA (superclass) ALILUOKKA (subclass) A) on käytännöllinen ohjelmointitekniikka = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys) B) on käsitteiden

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 3.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 3.2.2010 1 / 36 Esimerkki: asunnon välityspalkkio Kirjoitetaan ohjelma, joka laskee kiinteistönvälittäjän asunnon

Lisätiedot

Helsingin kaupunginkirjasto logistiikkaprosessi: 2 Kierto 4.9.2015.

Helsingin kaupunginkirjasto logistiikkaprosessi: 2 Kierto 4.9.2015. Helsingin kaupunginkirjasto logistiikkaprosessi: 2 Kierto 1 Hankinta 1.01 2 Kierto 2.01 3 Poisto Selitteet Toimenpide, prosessi tai yksittäinen työkokonaisuus. Toimenpide, prosessi tai yksittäinen työkokonaisuus.

Lisätiedot

Microsoft Visual Studio 2005

Microsoft Visual Studio 2005 Sovelluksen jako palvelimiksi: Palvelin on sille annettuun vastuulliseen tehtävään erikoistunut sovellusosa. Käyttöliittymäpalvelin (Web-palvelin) vastaa käyttöliittymän toteuttamisesta. Web-palvelin toteuttaa

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

Kaavioiden rakenne. Kaavioiden piirto symboleita yhdistelemällä. Kaavion osan toistaminen silmukalla. Esimerkkejä:

Kaavioiden rakenne. Kaavioiden piirto symboleita yhdistelemällä. Kaavion osan toistaminen silmukalla. Esimerkkejä: 2. Vuokaaviot 2.1 Sisällys Kaavioiden rakenne. Kaavioiden piirto symbolta yhdistelemällä. Kaavion osan toistaminen silmukalla. Esimerkkejä: algoritmi oven avaamiseen vuokaaviona, keskiarvon laskeminen

Lisätiedot

Käyttö ohjeet kirpputorille

Käyttö ohjeet kirpputorille Käyttö ohjeet kirpputorille Avaa päävalikosta Asiakas kortisto luo Asiakasrekisteri kortti asiakkaalle. Kun luot asiakkaan klikkaa "lisää" valitse Kyllä ja "lisää uusi kortti/rivi?" Täytä asiakkaan tiedot,

Lisätiedot

Ylläpidettävät ohjelmat. Evoluutiolait (Lehman) Lakien keskinäiset suhteet. Muutostarpeita (evoluution syitä) Ohjelmien luokittelu (Lehman)

Ylläpidettävät ohjelmat. Evoluutiolait (Lehman) Lakien keskinäiset suhteet. Muutostarpeita (evoluution syitä) Ohjelmien luokittelu (Lehman) Ylläpidettävät ohjelmat Perintöohjelmat (legacy software) legacy (perintö, jäämistö) Ohjelmistoevoluutio Lehmanin esittämä ohjelmien jaottelu Lehmanin evoluutiolait Perintöohjelmiston rakenne Jatkotoimenpiteet

Lisätiedot

Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen. Ohjausrakenteet:

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

Lisätiedot

Simulointi. Tapahtumapohjainen

Simulointi. Tapahtumapohjainen Simulointi Tapahtumapohjainen Diskreettiaikainen simulointi 1 Tarkastellaan systeemejä, joissa on äärellisen monta komponenttia. Jokaisella komponentilla äärellisen monta tilaa. Komponentit vaikuttavat

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

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

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

Tietojärjestelmän osat

Tietojärjestelmän osat Analyysi Yleistä analyysistä Mitä ohjelmiston on tehtävä? Analyysin ja suunnittelun raja on usein hämärä Ei-tekninen näkökulma asiakkaalle näkyvien pääkomponenttien tasolla Tietojärjestelmän osat Laitteisto

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

12. Kehysarkkitehtuurit

12. Kehysarkkitehtuurit 12. Kehysarkkitehtuurit Johdanto Kehystyypit Kehysten osittaminen Kehykset ja suunnittelumallit Kehysten etuja ja ongelmia Yhteenvetoa Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 1 Johdanto

Lisätiedot

Ongelma(t): Miten jollakin korkeamman tason ohjelmointikielellä esitetty algoritmi saadaan suoritettua mikro-ohjelmoitavalla tietokoneella ja siinä

Ongelma(t): Miten jollakin korkeamman tason ohjelmointikielellä esitetty algoritmi saadaan suoritettua mikro-ohjelmoitavalla tietokoneella ja siinä Ongelma(t): Miten jollakin korkeamman tason ohjelmointikielellä esitetty algoritmi saadaan suoritettua mikro-ohjelmoitavalla tietokoneella ja siinä olevilla komponenteilla? Voisiko jollakin ohjelmointikielellä

Lisätiedot

Rinnakkaisuus. parallel tietokoneissa rinnakkaisia laskentayksiköitä concurrent asioita tapahtuu yhtaikaa. TTY Ohjelmistotekniikka

Rinnakkaisuus. parallel tietokoneissa rinnakkaisia laskentayksiköitä concurrent asioita tapahtuu yhtaikaa. TTY Ohjelmistotekniikka Rinnakkaisuus parallel tietokoneissa rinnakkaisia laskentayksiköitä concurrent asioita tapahtuu yhtaikaa Rinnakkaisuuden etuja: laskennan nopeutuminen (sarjoittuvat operaatiojonot) ilmaisuvoima (ongelman

Lisätiedot

Sukupuu -ohjelma. Ossi Väre (013759021) Joni Virtanen (013760641)

Sukupuu -ohjelma. Ossi Väre (013759021) Joni Virtanen (013760641) Sukupuu -ohjelma Ossi Väre (013759021) Joni Virtanen (013760641) 7.11.2011 1 Johdanto Toteutimme C -kielellä sukupuuohjelman, johon käyttäjä voi lisätä ja poistaa henkilöitä ja määrittää henkilöiden välisiä

Lisätiedot

Harjoitus 3: Flash-komponenttiarkkitehtuuri (18.3.2016)

Harjoitus 3: Flash-komponenttiarkkitehtuuri (18.3.2016) Harjoitus 3: Flash-komponenttiarkkitehtuuri (18.3.2016) Tietokoneavusteinen opetus -kurssilla opetetaan Adobe Flash CS6:n käyttämistä neljänä kertana: 11.3.2016, 15.3.2016, 18.3.2016 ja 1.4.2016. Harjoituskerroilla

Lisätiedot

Olio-ohjelmointi Javalla

Olio-ohjelmointi Javalla 1 Olio-ohjelmointi Javalla Olio-ohjelmointi Luokka Attribuutit Konstruktori Olion luominen Metodit Olion kopiointi Staattinen attribuutti ja metodi Yksinkertainen ohjelmaluokka Ohjelmaluokka 1 Olio-ohjelmointi

Lisätiedot

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät Tenttikysymykset 1. Selitä mitä asioita kuuluu tietojärjestelmän käsitteeseen. 2. Selitä kapseloinnin ja tiedon suojauksen periaatteet oliolähestymistavassa ja mitä hyötyä näistä periaatteista on. 3. Selitä

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

815338A Ohjelmointikielten periaatteet 2014-2015

815338A Ohjelmointikielten periaatteet 2014-2015 815338A Ohjelmointikielten periaatteet 2014-2015 X Skriptiohjelmointi Sisältö 1. Johdanto 2. Skriptikielten yleispiirteitä 3. Python 815338A Ohjelmointikielten periaatteet, Skriptiohjelmointi 2 X.1 Johdanto

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

C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. Operaatioiden suoritusjärjestys

C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. Operaatioiden suoritusjärjestys Loogisia operaatioita - esimerkkejä Tänään on lämmin päivä ja perjantai Eilen satoi ja oli keskiviikko tai tänään on tiistai. On perjantai ja kello on yli 13 Ei ole tiistai tai ei sada. Ei pidä paikkaansa,

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet String-merkkijonoluokka 1 Ohjelmointikielten merkkijonot Merkkijonot ja niiden käsittely on välttämätöntä ohjelmoinnissa Valitettavasti ohjelmointikielten tekijät eivät tätä ole ottaneet

Lisätiedot

UML Luokkakaavio 14:41

UML Luokkakaavio 14:41 UML Luokkakaavio UML Olio-ohjelman luokkien pääpiirteet voidaan kätevähkösti esittää ns. UML-luokkakaaviona. Näin usein tehdäänkin esim. suunniteltaessa, millaisia luokkia ohjelmaan on tarkoitus laatia,

Lisätiedot

7. Lohkominen ja sulautus 2 k kokeissa. Lohkominen (Blocking)

7. Lohkominen ja sulautus 2 k kokeissa. Lohkominen (Blocking) 7. Lohkominen ja sulautus 2 k kokeissa Lohkominen (Blocking) Lohkotekijät muodostuvat faktoreista, joiden suhteen ei voida tehdä (täydellistä) satunnaistamista. Esimerkiksi faktorikokeessa raaka-aine-erät

Lisätiedot

KIRJASTOJÄRJESTELMÄ Tietojenkäsittelytieteiden laitos Jyväskylän Yliopisto

KIRJASTOJÄRJESTELMÄ Tietojenkäsittelytieteiden laitos Jyväskylän Yliopisto KIRJASTOJÄRJESTELMÄ Oliokeskeinen tietojärjestelmien kehittäminen Harjoitustyön esimerkki 29.2.2000 Mauri Leppänen mauri@jytko.jyu.fi 0.0.2006 Markus Tuominen ja Timo Käkölä timokk@cc.jyu.fi Tietojenkäsittelytieteiden

Lisätiedot

10. Painotetut graafit

10. Painotetut graafit 10. Painotetut graafit Esiintyy monesti sovelluksia, joita on kätevä esittää graafeina. Tällaisia ovat esim. tietoverkko tai maantieverkko. Näihin liittyy erinäisiä tekijöitä. Tietoverkkoja käytettäessä

Lisätiedot

Sisällys. Kaavioiden rakenne. Kaavioiden piirto symboleita yhdistelemällä. Kaavion osan toistaminen silmukalla. Esimerkkejä. 2.2

Sisällys. Kaavioiden rakenne. Kaavioiden piirto symboleita yhdistelemällä. Kaavion osan toistaminen silmukalla. Esimerkkejä. 2.2 2. Vuokaaviot 2.1 Sisällys aavioiden rakenne. aavioiden piirto symboleita yhdistelemällä. aavion osan toistaminen silmukalla. simerkkejä. 2.2 Vuokaaviot Graafinen kieli algoritmien kuvaamiseen. Muodostetaan

Lisätiedot

UML-MALLINNUS MICROSOFT VISIOLLA JOUNI HUOTARI 11.1.2005 14.2.2010

UML-MALLINNUS MICROSOFT VISIOLLA JOUNI HUOTARI 11.1.2005 14.2.2010 UML-MALLINNUS MICROSOFT VISIOLLA JOUNI HUOTARI 11.1.2005 14.2.2010 TUTUSTUMISKIERROS VISION UML-KAAVIOIHIN Avaa ChampionzoneUML.vsd-tiedosto Tutustu malliin eli eri sivuilla oleviin kaavioihin (napsautus

Lisätiedot

Ohjelmistoarkkitehtuuri

Ohjelmistoarkkitehtuuri Ohjelmistoarkkitehtuurien ylläpito Arkkitehtuurityylejä ja laatuvaatimuksia Arkkitehtuurin uudistaminen Arkkitehtuurin uudistamisen malleja Arkkitehtuurin arviointi TTY Ohjelmistotekniikka 1 Ohjelmistoarkkitehtuuri

Lisätiedot

Automaatit. Muodolliset kielet

Automaatit. Muodolliset kielet Automaatit Automaatit ovat teoreettisia koneita, jotka käsittelevät muodollisia sanoja. Automaatti lukee muodollisen sanan kirjain kerrallaan, vasemmalta oikealle, ja joko hyväksyy tai hylkää sanan. Täten

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

HARJOITUSTYÖ: LabVIEW, Kiihtyvyysanturi

HARJOITUSTYÖ: LabVIEW, Kiihtyvyysanturi Tämä käyttöohje on kirjoitettu ESR-projektissa Mikroanturitekniikan osaamisen kehittäminen Itä-Suomen lääninhallitus, 2007, 86268 HARJOITUSTYÖ: LabVIEW, Kiihtyvyysanturi Tarvittavat laitteet: PC Labview

Lisätiedot

VASKI kirjastot: uusi järjestelmä ja uusia kirjastoja 2.5. alkaen

VASKI kirjastot: uusi järjestelmä ja uusia kirjastoja 2.5. alkaen VASKI kirjastot: uusi järjestelmä ja uusia kirjastoja 2.5. alkaen Kysymyksiä ja vastauksia (muutokset mahdollisia) Milloin Vaski laajenee? Milloin oma kirjasto on osa Vaskia? Laajentunut Vaski avaa ovensa

Lisätiedot

JUnit ja EasyMock (TilaustenKäsittely)

JUnit ja EasyMock (TilaustenKäsittely) OHJELMISTOJEN TESTAUS JA HALLINTA Syksy 2015 / Auvo Häkkinen JUnit ja EasyMock (TilaustenKäsittely) Tehtävässä tarvittava koodi löytyy osoitteella http://users.metropolia.fi/~hakka/oth/mockesimerkki.zip

Lisätiedot

UML-mallinnus ja prosessien kuvaaminen Microsoft Visiolla (versio 2003 professional) Jouni Huotari 11.1.2005

UML-mallinnus ja prosessien kuvaaminen Microsoft Visiolla (versio 2003 professional) Jouni Huotari 11.1.2005 UML-mallinnus ja prosessien kuvaaminen Microsoft Visiolla (versio 2003 professional) Jouni Huotari 11.1.2005 Tutustumiskierros Vision UML-kaavioihin Avaa ChampionzoneUML.vsd-tiedosto Tutustu malliin eli

Lisätiedot

Sisällys JAVA-OHJELMOINTI Osa 3: Laskennan ohjaus. Lohkolause (block) Peräkkäinen laskenta. Lohkon käyttö. Esimerkki

Sisällys JAVA-OHJELMOINTI Osa 3: Laskennan ohjaus. Lohkolause (block) Peräkkäinen laskenta. Lohkon käyttö. Esimerkki Sisällys JAVA-OHJELMOINTI Osa 3: Laskennan ohjaus Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto Peräkkäinen laskenta Ehdollinen laskenta Laskennan toisto Laskennan hierarkisuus 10/19/99

Lisätiedot

Tietuetyypin määrittely toteutetaan C-kielessä struct-rakenteena seuraavalla tavalla:

Tietuetyypin määrittely toteutetaan C-kielessä struct-rakenteena seuraavalla tavalla: KERTAUSTEHTÄVIÄ Tietue Tietuetyypin määrittely toteutetaan C-kielessä struct-rakenteena seuraavalla tavalla: struct henkilotiedot char nimi [20]; int ika; char puh [10]; ; Edellä esitetty kuvaus määrittelee

Lisätiedot

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä Sisällys 11. Javan toistorakenteet Laskuri- ja lippumuuttujat.. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin lopettaminen break-lauseella.

Lisätiedot