Fortran 95 -ohjelmointikieli: Harjoituksia. Sebastian von Alfthan. Juha Haataja. Jarmo Pirhonen. CSC Tieteellinen laskenta Oy

Koko: px
Aloita esitys sivulta:

Download "Fortran 95 -ohjelmointikieli: Harjoituksia. Sebastian von Alfthan. Juha Haataja. Jarmo Pirhonen. CSC Tieteellinen laskenta Oy"

Transkriptio

1 Fortran 95 -ohjelmointikieli: Harjoituksia Sebastian von Alfthan Juha Haataja Jarmo Pirhonen CSC Tieteellinen laskenta Oy

2 Käytännön järjestelyt Koneessa corona.csc.fi on tunnukset koulu1... koulu20. Salasana on sole74ct Hakemistosta $DOC/f90 löytyy kurssin oheismateriaalia. Hakemiston $DOC/f90/esim/ esimerkkiohjelmat kannattaa kopioida itselleen. Kurssimateriaalina on lisäksi CSC:n ympäristön pikaohje ja Emacs-pikaopas. Kurssi seuraa läheisesti CSC:n Fortran 95/2003 -opasta. Jos haluat käyttää Emacsin f90-moodia, kopioi tiedosto $DOC/f90/emacs työhakemistoosi nimellä.emacs. Suluissa oleva harjoituksen numero viittaa tehtävän numerointiin Fortran 95 -oppaassa. Suositellut Fortran-tehtävät harjoituksiin Harjoitus A (perusteet): tehtävät 1, 2, 3, 4 Harjoitus B (proseduurit): 5, 6 Harjoitus C (taulukot): 7, 8, 9, 10 Harjoitus D (moduulit): 11, 12

3 Yksinkertainen käännös Esimerkkiohjelma testi.f90: PROGRAM Testi IMPLICIT NONE INTEGER, PARAMETER :: tulos = 57! Yksinkertainen tulostuskäsky... PRINT *, Hei maailma! PRINT *, Tulos on, tulos END PROGRAM Testi Kopiointi omaan kotihakemistoon, käännös ja ajo: cp $DOC/f90/esim/testi.f90 f95 testi.f90 -o testi./testi Hei maailma! Tulos on 57

4 Harjoitus 1: koodin syöttömuoto 1. (4.1) Mitä seuraava (vapaan formaatin) koodirivi tarkoittaa? A = 0.0 ; B = 370! Alustus ; C = 17.0 ; D = (4.2) Onko seuraava syntaktisesti oikeaa Fortran 90 -koodia? Y = SIN(MAX(X1,X2)) * EXP(-COS(X3)**I) - TAN(AT& & AN(X4)) 3. (4.3) Onko seuraava määrittely oikein? REAL :: real; REAL :: price 4. (4.5) Onko seuraavat Fortranin lauseet kirjoitettu oikein? merkkijono = Aamun virkku, & illan torkku. x = vastaus = Tosi & epätosi ala-raja = E10 y = E6

5 Harjoitus 2: muuttujien määrittely 1. (5.1) Ovatko seuraavat määrittelyt laillista Fortrania: DOUBLE :: x CHARACTER(LEN=*), PARAMETER :: "Nimi" REAL :: pi = 22/7 REAL :: x = 2., y = -3 REAL :: pii = 22.0/7.0 REAL x = (5.2) Määrittele vakio k, jonka arvo on (5.5) Tutki, millaisia kokonais- ja reaalilukuarvoja käyttämäsi Fortran-kääntäjä osaa käsitellä. Ohje: tutki aliohjelmakutsujen SELECTED_REAL_KIND SELECTED_INT_KIND palauttamia arvoja seuraavaan tapaan: PROGRAM lajitesti IMPLICIT NONE INTEGER :: i, laji DO i = 1, 24 laji = SELECTED_INT_KIND(i) WRITE (*,*) i =,i, laji =,laji END DO END PROGRAM lajitesti Huomaa, että lajiparametrin arvot riippuvat käytetystä Fortran-kääntäjästä!

6 4. (5.6) Tulosta lausekkeen 1 3 ln(1 + 2) (2 + 2) arvo vähintään 6 desimaalin tarkkuudella. Käytä funktiokutsuja LOG ja SQRT. Tulosta lausekkeen arvo lisäksi suurimmalla kääntäjän tuntemalla reaalilukujen tarkkuudella.

7 Harjoitus 3: syöttö ja tulostus 1. (12.2) Seuraavassa esimerkissä on määritelty eri tavoilla Fortranin muotoilulausekkeita. Mitä ohjelma tekee? Mitkä määrittelyt ovat mielestäsi toimivimpia? PROGRAM muoto IMPLICIT NONE REAL :: x CHARACTER(LEN=11) :: form1 CHARACTER(LEN=*), PARAMETER :: & form2 = (F12.3,A) x = 12.0 form1 = (F12.3,A) WRITE (*, form1) x, hello WRITE (*, form2) 2*x, hi WRITE (*, (F12.3,A) ) 3*x, hi hi END PROGRAM muoto 2. (12.3) Kirjoita tulostuslauseet seuraaville taulukoille: REAL, DIMENSION(6,10) :: a INTEGER, DIMENSION(24) :: h CHARACTER(LEN=10), DIMENSION(6) :: mtaulu LOGICAL, DIMENSION(2) :: ehto COMPLEX, DIMENSION(20) :: z 3. (12.4) Kirjoita listan ohjaamat syöttörutiinit, jotka lukevat arvot edellisen tehtävän taulukoille. Anna esimerkki ohjelmasi syöttötiedostosta.

8 Harjoitus 4: ohjausrakenteet 1. (7.3) Ilmoita seuraavien DO-silmukkojen toistokertojen lukumäärä, silmukkamuuttujan i saamat arvot silmukan sisällä sekä silmukkamuuttujan arvo DO-rakenteen jälkeen. DO i = 1, 5 DO i = 5, 0, -1 DO i = 10, 1, -2 DO i = 0, 30, 7 DO i = 3, 2, 1 2. (7.2) Kirjoita SELECT CASE -rakenne, joka tekee kolme eri tyyppistä toimintoa riippuen siitä, onko kokonaislukumuuttuja negatiivinen, nolla tai jokin alkuluvuista (3, 5, 7, 11, 13). Muussa tapauksessa ei tehdä mitään. 3. (7.4) Kirjoita DO-silmukka joka summaa 100 annetun luvun neliöjuuret poislukien negatiiviset luvut ja lopettaa summauksen mikäli summattava luku on nolla. Tee kaksi versiota, joista toinen käyttää CYCLE-lausetta ja toinen ei. 4. (7.6) Tulosta muunnostaulu tuumista millimetreihin (1" = 25.4 mm). Aloita arvosta 0.0 ja tulosta arvoja puolen tuuman välein 12 tuumaan asti.

9 Harjoitus 5: proseduurien määrittely 1. (13.3) Kirjoita aliohjelma, joka muuntaa napakoordinaattiesityksen (r, φ) karteesisiksi koordinaateiksi (x, y). Kirjoita myös päinvastaisen muunnoksen tekevä aliohjelma. Käytä hyväksi määritelmiä sin φ = y/r, cos φ = x/r, r = x 2 + y (13.7) Kirjoita looginen funktio numerot, joka ilmoittaa, koostuuko argumenttina annettu merkkijono pelkästään numeromerkeistä. Käytä apuna standardifunktiota VERIFY. 3. Kirjoita funktio, joka laskee b-kantaisen logaritmin luvusta x. Muistutus: log b x = log 10 x/ log 10 b = ln x/ ln b Mieti myös funktion argumenteille b ja x sallimasi tyypit ja määrittelyalueet! 4. (8.5) Kirjoita rekursiivinen funktio kahden kokonaisluvun suurimman yhteisen tekijän laskemiseksi. Käytä hyväksi identiteettejä { syt(m, n) = syt(n, MOD(m, n)), syt(m, 0) = m. 5. (8.7) Kirjoita rekursiivinen funktio joka laskee

10 Tribonaccin lukuja : { x1 = 1, x 2 = 1, x 3 = 1, x n = x n 1 + x n 2 + x n 3. Laske x 12. Tutki laskenta-ajan käyttäytymistä n:n funktiona käyttämällä vaikkapa standardialiohjelmaa SYSTEM_CLOCK tai ohjelman ulkoista ajanmittausta (time-komento). Onko rutiini tehokas? Toteuta laskeminen myös silmukkarakenteen avulla. 6. Kirjoita funktio asteina(f, x), joka palauttaa standardifunktioiden ASIN, ACOS ja ATAN arvon asteina eikä radiaaneina. Käytä kyseisiä standardifunktioita määrittelemäsi funktion argumenttina f.

11 Harjoitus 6: proseduurin argumentit 1. (8.9) Luennolla esiteltiin rutiini FUNCTION igr skalaarifunktion f (x) integroimiseksi Gaussin integroimiskaavalla I b a 2 [ f ( a + b 2 b a 2 3 ) + f (a + b 2 missä integroimisväli on [a, b]. Lisää ohjelmaan valinnaiset argumentit siten että + b a ] 2 3 ), jos vasempaa integroimisrajaa a ei ole annettu, asetetaan a = 0, jos oikeaa integroimisrajaa b ei ole annettu, asetetaan b = a + 1. Testaa ohjelma ensin käyttämällä integrandina jotain standardifunktiota. 2. Vaihda nyt integrandi itse määritellyksi (ulkoiseksi) funktioksi. Määrittele sen kutsumuoto INTERFACE-lohkolla. 3. Lisätehtävä. Laajenna edellä määriteltyä rutiinia että käyttäjä voi valinnaisella argumentilla määritellä halutun integroimispisteiden määrän.

12 Harjoitus 7: taulukot 1. (11.1) Onko seuraava määrittely oikein? REAL DIMENSION(1:3,2:3) :: aa 2. (11.2) Määrittele kokonaislukutaulukko taulu, jossa on 3 riviä ja 4 saraketta. Alusta taulukon ensimmäiselle riville järjestyksessä vasemmalta oikealle kokonaisluvut 1-4, toiselle riville luvut 5-8 ja alimmalle riville joka sarakkeeseen luku -2. Tulosta taulu riveittäin siis yhdelle tulostusriville yhden taulukon rivin alkiot. 3. Muodosta vielä 3 8-kokonaislukutaulukko isotaulu, jossa on ensimmäiset 4 saraketta ovat identtisiä edellisen tehtävän taulukon taulu kanssa, ja 4 jälkimmäistä on saatu taulukon taulu sarakkeista kertomalla ne luvulla 3 ja lisäämällä tuloon 5. Käytä taulukko-operaatioita. 4. Kirjoita aliohjelma, joka osaa tehdä automaattisesti edellisessä tehtävässä kuvatun operaation. Aliohjelmalle syötetään pienempi taulukko, ja sen pitää palauttaa kooltaan kaksinkertainen taulukko, jonka alkiot on muodostettu edellä kuvatulla tavalla. 5. (11.4) Määrittele kaksi osoitinmuuttujaa. Aseta toinen osoittamaan yksiulotteiseen reaalilukutaulukkoon REAL, DIMENSION(10) :: x ja toinen saman taulukon kuudenteen alkioon.

13 6. (11.5) Käytä osoitinmuuttujia sijoittamaan edellisen tehtävän taulukon x järjestysluvultaan parillisiin alkioihin arvo 1.0 ja parittomiin alkioihin arvo 1.0. Taulukon arvojen tulee siten olla seuraavan listan mukaisia: (1.0, 1.0, 1.0, 1.0,...). 7. (11.6) Tee aliohjelma, joka palauttaa osoitinmuuttujassa halutun kokoisen taulukon. Anna taulukon koko aliohjelman argumenttina. Aliohjelmaa voisi käyttää esimerkiksi seuraavasti: CALL varaa(p, n)

14 Harjoitus 8: taulukkosyntaksi Muunna ohjelma table1.f (hakemistossa $DOC/f90-kurssi/esim/) siten, että siinä käytetään taulukkosyntaksia. Ohjelmassa esiintyvä rand palauttaa satunnaisluvun. Fortran 90:n vastaava rutiini on aliohjelma RANDOM_NUMBER. Kutsu CALL RANDOM_NUMBER(x) täyttää taulukon x satunnaisluvuilla, jotka ovat jakautuneet tasaisesti välille [0, 1). program table1 parameter (n=10) real b(n), c(n,n), d(n,n) do 10 i = 1,n b(i) = rand() do 10 j = 1,n c(j,i) = rand() 10 continue write (*,*) b do 20 i = 1,n do 20 j = 1,n d(j,i) = 1.0-c(j,i) 20 continue do 100 j = 2, n a = b(j) - b(j-1) do 100 i = 2, n c(i,j) = a * c(i-1,j)+d(i,j) 100 continue print *, answer =,c(n,n) end

15 Harjoitus 9: standardifunktiot Muunna ohjelma table2.f siten, että siinä käytetään taulukkosyntaksia ja standardifunktioita. Käännä alkuperäinen ohjelma f77:lla ja uusi f90:llä ja varmistu, että ne toimivat samalla tavalla. program table2 implicit none real x(100,100), y(100), z(100), a, s integer i,j,k do 1 j=1,100 y(j)=0.1*j do 1 i=1,100 x(i,j)=1.0+y(j) 1 continue do 2 j=1,100 s=0.0 do 3 i=1,100 s=s+x(i,j) 3 continue z(j)=sqrt(y(j))/s 2 continue do 5 j=1,100 5 if (z(j).lt ) z(j)=0.0 a=z(1) k=1 do 6 i=2,100 if (z(i).gt.a) then k=i a=z(i) endif 6 continue write (*,*) a,k end

16 Harjoitus 10: standardiproseduurit 1. (13.1) Ratkaise yhtälön x n = 1 kaikki kompleksiset juuret (vihje: e 2πk i = 1, k = 0, 1,...). 2. (13.4) Laske viisialkioisten reaalilukutyypin vektoreiden sisätulo standardifunktiolla DOT_PRODUCT. 3. (13.5) Laske 5 4 ja 4 3 -kokoisten matriisien A ja B tulo C = AB standardifunktiolla MATMUL. Laske myös tulo C T = B T A T, missä B T on matriisin B transpoosi jne. 4. (13.6) Etsi käyttäjän syöttämästä korkeintaan 80 merkin pituisesta merkkijonosta ensimmäisen numeromerkin sijainti käyttäen SCAN-funktiota.

17 Harjoitus 11: rakenteiset tyypit 1. (10.7) Määrittele rakenteinen tyyppi, joka voi tallettaa syntymäajan seuraavassa muodossa: Siis rakenteinen tyyppi sisältää kolme kokonaislukua, joilla on eri KIND-arvot: SELECTED_INT_KIND(2) ja SELECTED_INT_KIND(4). 2. (10.8) Lisää edellisen tehtävän rakenteiseen tyyppiin kenttä nimeä varten. 3. (10.9) Kirjoita funktio, joka palauttaa merkkijonossa nimen ja päivämäärän seuraavassa muodossa: Jaska Jokunen ( ) Käytä edellisessä tehtävässä luotua rakenteista tyyppiä. 4. (10.14) Kirjan kappaleessa 3.12 (sivu 33) on esitelty oppilaiden nimien ja arvosanojen tallentamiseen sopiva rakenteinen tyyppi kurssilainen. Määrittele moduuli, jossa on tämän rakenteisen tyypin käsittelyyn tarvittavia operaatioita. Määrittele oppilastietojen lukuja tulostusoperaatiot sekä arvosanojen keskiarvon laskemiseen soveltuva proseduuri.

18 Harjoitus 12: Moduulit 1. Määrittele pääohjelmassa rakenteinen tyyppi ja tyypin mukainen muuttuja. Alusta muuttuja ja välitä se ulkoiseen aliohjelmaan, joka tulostaa muuttujan komponentit. Käännä ja aja ohjelma. Mitä tapahtuu? Sijoita seuraavaksi aliohjelma moduuliin ja käännä ohjelma. Mitä tapahtuu? Korjaa ongelma. 2. Tee ohjelma, joka laskee yhteen ulkoisessa aliohjelmassa (funktiossa) kaksi reaalilukua. Tee moduuli, jossa määritellään lajiparametri kaksinkertaisen tarkkuuden reaaliluvuille. Käytä moduulia pääohjelman ja summausfunktion tarkkuuden määrittelyssä. 3. Muuta summausfunktiossa toinen yhteenlaskettavista kokonaisluvuksi. Käännä ja aja ohjelma. Mitä tapahtuu? Sijoita seuraavaksi summausfunktio moduuliin ja ota se käyttöön pääohjelmassa. Käännä ohjelma. Mitä nyt tapahtuu? Ja sitten muuta Toteuta luennoilla esitelty globaali piste-tyyppi, jossa on komponentteina kaksi reaalilukua (x- ja y-koordinaatti). Tee funktio, joka laskee kaksi pistettä yhteen. Kokeile moduulin toimintaa yksinkertaisella pääohjelmalla. 5. Olio-ohjelmointia. Yksi olio-ohjelmoinnin ideoista on,

19 että tietorakenteita voi käsitellä vain tietyillä funktioilla (C++-terminologiassa jäsenfunktiot), ja tietoalkioihin ei suoraan pääse käsiksi. Tällaisessa ohjelmoinnissa tietorakenteen käyttöliittymä on tarkasti määritelty, mikä vähentää ohjelmointivirheitä ja toisaalta helpottaa niiden paikallistamista. Muuta edellisen tehtävä piste-tyyppiä siten, että alkioihin x ja y ei pääse käsiksi moduulin ulkopuolella. Kokeile piste-tyyppisen muuttujan komponenttien alustusta ja tulostusta yksinkertaisella pääohjelmalla. Mitä tapahtuu? Lisää moduuliin aliohjelmat piste-muuttujien alustamista ja tulostamista varten. Kokeile moduulin toimintaa yksinkertaisella pääohjelmalla.

20 Harjoitus 13: geneeriset proseduurit 1. Jatkoa edellisen harjoituksen olio-ohjelmointiin. Muuta piste-moduulia siten, että alustuksen voi suorittaa sekä kokonais- että reaaliluvuilla käyttäen samaa aliohjelmakutsua. 2. Hakemistosta $DOC/f90-kurssi/esim/ löytyvä moduuli swapmod.f90 määrittelee geneerisen aliohjelman vaihda, jonka avulla voi vaihtaa reaali- ja merkkijonoargumenttien arvot keskenään. Muuta moduulia siten, että se toimii myös kokonaislukuargumenteilla. Entä yksi- ja kaksiulotteiset taulukkoargumentit? Käytä testaamisessa apuna pääohjelmaa swap.f90.

21 Harjoitus 14: Operaattorit 1. Sarjaan tai rinnakkain kytkettyjen vastusten resistanssit R s ja R r lasketaan kaavoilla R s = R 1 + R 2, 1/R r = 1/R 1 + 1/R 2. Määrittele reaalilukumuuttujia käsittelevät operaattorit, joita voidaan käyttää seuraavasti: REAL:: r, r1, r2 r = r1.sarjassa. r2 r = r1.rinnakkain. r2 2. Lisää piste-moduuliin operaattori + pisteiden alkioittaista yhteenlaskua ja operaattori.etaisyys. origosta laskettavan etäisyyden määrittämistä varten.

22 Harjoitus 15: F77 F90 1. Käännä Lempon Fortran 90 -kääntäjällä f90 jokin oma FORTRAN 77 -ohjelmasi käyttäen sarakesidonnaista syöttömuotoa. Voit myös kääntää esimerkkiohjelman $DOC/f90-kurssi/esim/avgvar.f. 2. Yritä muuntaa edellinen ohjelma Fortran 90:n vapaaseen syöttömuotoon. Muunna kirjaimella C tai merkillä * alkavat kommentit huutomerkillä alkaviksi jne. 3. Mitä eroa on seuraavan ohjelman käyttäytymisessä käytettäessä vapaata tai sarakesidonnaista formaattia? LOGICAL L L =.FALSE. Z = 0.0 Y = 1.0 IF (L) THEN Z = 1.0 ELSE Y = Z ENDIF PRINT *, Y, Z END Korjaa ohjelmassa olevat virheet.

23 Harjoitus 16: vanhat Fortran-koodit Tiedosto $DOC/f90-kurssi/esim/fzero.f sisältää aliohjelman, joka on peräisin kirjasta Kahaner, Moler, Nash: Numerical Methods and Software. Koodi on vanhaa Fortran 66:tta. Siivoa sitä mahdollisuuksien mukaan käyttämällä hyväksi Fortran 90:n rakenteita. Kirjoita testausta varten pieni ohjelma, joka kutsuu aliohjelmaa.

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

BJ30A1000 Kemiantekniikan tietotekniikka Fortran

BJ30A1000 Kemiantekniikan tietotekniikka Fortran BJ30A1000 Kemiantekniikan tietotekniikka Fortran Kimmo Klemola 21.04.2008 April 18, 2008 Kimmo Klemola 1 Fortran johdatusta Fortran-ohjelmointiin Materiaalina käytetty mm. CSC:n Fortran 90/95 opasta (Haataja,

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

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

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

Lisätiedot

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

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

Lisätiedot

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

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

Lisätiedot

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python 8. marraskuuta 2010 Ohjelmointi Perusteet Peruskäsitteitä Olio-ohjelmointi Pythonin alkeet Esittely Esimerkkejä Muuttujat

Lisätiedot

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

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

Lisätiedot

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

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

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

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

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

Python-ohjelmointi Harjoitus 5

Python-ohjelmointi Harjoitus 5 Python-ohjelmointi Harjoitus 5 TAVOITTEET Kerrataan silmukkarakenteen käyttäminen. Kerrataan jos-ehtorakenteen käyttäminen. Opitaan if else- ja if elif else-ehtorakenteet. Matematiikan sisällöt Tehtävät

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2018-2019 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen

Lisätiedot

Fortran 95, Exercises

Fortran 95, Exercises Fortran 95, Exercises Introductory course, 8-9 Oct 2008 Raimo Uusvuori, Jussi Enkovaara, Jarmo Pirhonen, Sami Saarinen firstname.lastname[at]csc.fi CSC - IT Center for Science Ltd. CSC - Tieteen tietotekniikan

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2016-2017 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen

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

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

Tietorakenteet ja algoritmit syksy Laskuharjoitus 1

Tietorakenteet ja algoritmit syksy Laskuharjoitus 1 Tietorakenteet ja algoritmit syksy 2012 Laskuharjoitus 1 1. Tietojenkäsittelijä voi ajatella logaritmia usein seuraavasti: a-kantainen logaritmi log a n kertoo, kuinka monta kertaa luku n pitää jakaa a:lla,

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

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

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

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset

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

Lisätiedot

Muistutus aikatauluista

Muistutus aikatauluista Muistutus aikatauluista (Nämä eivät välttämättä koske avoimen yo:n opiskelijoita Erkki Kailan rinnakkaisella kurssilla) Luento 1: kotitehtävät sulkeutuvat 20.9 12:00, ennen tutoriaalia Tutoriaali 1 sulkeutuu

Lisätiedot

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

System.out.printf(%d / %d = %.2f%n, ekaluku, tokaluku, osamaara); Kysy Karilta tai Kimmolta, jos tehtävissä on jotain epäselvää. Kerro WETOon liittyvät ongelmat suoraan Jormalle sähköpostitse (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja

Lisätiedot

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

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

Lisätiedot

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

PERUSLASKUJA. Kirjoita muuten sama, mutta ota välilyönti 4:n jälkeen 3/4 +5^2

PERUSLASKUJA. Kirjoita muuten sama, mutta ota välilyönti 4:n jälkeen 3/4 +5^2 PERUSLASKUJA Matemaattisten lausekkeiden syöttäminen: Kirjoita ilman välilyöntejä /+^2 Kirjoita muuten sama, mutta ota välilyönti :n jälkeen / +^2 Kopioi molemmat matematiikka-alueet ja liiku alueen sisällä

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

z 1+i (a) f (z) = 3z 4 5z 3 + 2z (b) f (z) = z 4z + 1 f (z) = 12z 3 15z 2 + 2

z 1+i (a) f (z) = 3z 4 5z 3 + 2z (b) f (z) = z 4z + 1 f (z) = 12z 3 15z 2 + 2 BM20A5700 - Integraauunnokset Harjoitus 2 1. Laske seuraavat raja-arvot. -kohta ratkeaa, kun pistät sekä yläkerran että alakerran muotoon (z z 1 )(z z 2 ), missä siis z 1 ja z 2 ovat näiden lausekkeiden

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 26.1.2011 T-106.1208 Ohjelmoinnin perusteet Y 26.1.2011 1 / 34 Luentopalaute kännykällä käynnissä! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti Vast

Lisätiedot

Java-kielen perusteet

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

Lisätiedot

Ohjelmoinnin 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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print

Lisätiedot

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

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

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 12. huhtikuuta 2019 Tee kukin tehtävä omalle konseptiarkille. Noudata ohjelmointitehtävissä kurssin koodauskäytänteitä. Yksi A4-kokoinen lunttilappu

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

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

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9.

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9. Python linkit: Python tutoriaali: http://docs.python.org/2/tutorial/ Numpy&Scipy ohjeet: http://docs.scipy.org/doc/ Matlabin alkeet (Pääasiassa Deni Seitzin tekstiä) Matriisit ovat matlabin perustietotyyppejä.

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

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

ITKP102 Ohjelmointi 1 (6 op)

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

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

Harjoitus 5 (viikko 48)

Harjoitus 5 (viikko 48) Moni tämän harjoituksen tehtävistä liittyy joko suoraan tai epäsuorasti kurssin toiseen harjoitustyöhön. Harjoitustyö edistyy sitä paremmin, mitä enemmän tehtäviä ratkaiset. Mikäli tehtävissä on jotain

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 17.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 17.2.2010 1 / 41 Sanakirja Monissa sovelluksissa on tallennettava rakenteeseen avain arvo-pareja. Myöhemmin rakenteesta

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

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

Tutoriaaliläsnäoloista

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

Lisätiedot

Ratkaisut Summa on nolla, sillä luvut muodostavat vastalukuparit: ( 10) + 10 = 0, ( 9) + 9 = 0,...

Ratkaisut Summa on nolla, sillä luvut muodostavat vastalukuparit: ( 10) + 10 = 0, ( 9) + 9 = 0,... Ratkaisut 1 1. Summa on nolla, sillä luvut muodostavat vastalukuparit: ( 10) + 10 = 0, ( 9) + 9 = 0,.... Nolla, koska kerrotaan nollalla. 3. 16 15 50 = ( 8) 15 50 = (8 15) ( 50) = 1000 500 = 500 000. 4.

Lisätiedot

Ohjelmoinnin peruskurssi Y1

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

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 27.1.2010 T-106.1208 Ohjelmoinnin perusteet Y 27.1.2010 1 / 37 If-käsky toistokäskyn sisällä def main(): HELLERAJA = 25.0 print "Anna lampotiloja, lopeta -300:lla."

Lisätiedot

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu Taulukot Taulukon määrittely ja käyttö Taulukko metodin parametrina Taulukon sisällön kopiointi toiseen taulukkoon Taulukon lajittelu esimerkki 2-ulottoisesta taulukosta 1 Mikä on taulukko? Taulukko on

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

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

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

Lisätiedot

Matriiseista. Emmi Koljonen

Matriiseista. Emmi Koljonen Matriiseista Emmi Koljonen 3. lokakuuta 22 Usein meillä on monta systeemiä kuvaavaa muuttujaa ja voimme kirjoittaa niiden välille riippuvaisuuksia, esim. piirin silmukoihin voidaan soveltaa silmukkavirtayhtälöitä.

Lisätiedot

Tietorakenteet (syksy 2013)

Tietorakenteet (syksy 2013) Tietorakenteet (syksy 2013) Harjoitus 1 (6.9.2013) Huom. Sinun on osallistuttava perjantain laskuharjoitustilaisuuteen ja tehtävä vähintään kaksi tehtävää, jotta voit jatkaa kurssilla. Näiden laskuharjoitusten

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

Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla

Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla ALKUHARJOITUS Kynän ja paperin avulla peilaaminen koordinaatistossa a) Peilaa pisteen (0,0) suhteen koordinaatistossa sijaitseva - neliö, jonka

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, syksy 2006

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

Lisätiedot

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

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

Lisätiedot

PERUSLASKUJA. Kirjoita muuten sama, mutta ota KAKSI välilyöntiä (SEURAA ALUEMERKINTÄÄ) 4:n jälkeen 3/4 +5^2

PERUSLASKUJA. Kirjoita muuten sama, mutta ota KAKSI välilyöntiä (SEURAA ALUEMERKINTÄÄ) 4:n jälkeen 3/4 +5^2 PERUSLASKUJA Matemaattisten lausekkeiden syöttäminen: Kirjoita ilman välilyöntejä 3/4+^2 3 4+ 2 Kirjoita muuten sama, mutta ota KAKSI välilyöntiä (SEURAA ALUEMERKINTÄÄ) 4:n jälkeen 3/4 +^2 3 + 4 2 Kopioi

Lisätiedot

Ohjelmoinnin peruskurssi Y1

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

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 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

Yhtälön ratkaiseminen

Yhtälön ratkaiseminen Yhtälön ratkaiseminen Suora iterointi Kirjoitetaan yhtälö muotoon x = f(x). Ensin päätellään jollakin tavoin jokin alkuarvo x 0 ja sijoitetaan yhtälön oikealle puolelle, jolloin saadaan tarkennettu ratkaisu

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

Harjoitus 3 (viikko 39)

Harjoitus 3 (viikko 39) Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja sisentää koodisi. Vältä liian pitkiä rivejä. Ohjelmointitehtävien

Lisätiedot

= 2 L L. f (x)dx. coshx dx = 1 L. sinhx nπ. sin. sin L + 2 L. a n. L 2 + n 2 cos. tehdään approksimoinnissa virhe, jota voidaan arvioida integraalin

= 2 L L. f (x)dx. coshx dx = 1 L. sinhx nπ. sin. sin L + 2 L. a n. L 2 + n 2 cos. tehdään approksimoinnissa virhe, jota voidaan arvioida integraalin BMA7 - Integraalimuunnokset Harjoitus 9. Määritä -jaksollisen funktion f x = coshx, < x < Fourier-sarja. Funktion on parillinen, joten b n = kun n =,,3,... Parillisuudesta johtuen kertoimet a ja a n saadaan

Lisätiedot

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9 Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9 Tuntitehtävät 9-10 lasketaan alkuviikon harjoituksissa ja tuntitehtävät 13-14 loppuviikon harjoituksissa. Kotitehtävät 11-12 tarkastetaan loppuviikon

Lisätiedot

9 Matriisit. 9.1 Matriisien laskutoimituksia

9 Matriisit. 9.1 Matriisien laskutoimituksia 9 Matriisit Aiemmissa luvuissa matriiseja on käsitelty siinä määrin kuin on ollut tarpeellista yhtälönratkaisun kannalta. Matriiseja käytetään kuitenkin myös muihin tarkoituksiin, ja siksi on hyödyllistä

Lisätiedot

Kirjoita ohjelma jossa luetaan kokonaislukuja taulukkoon (saat itse päättää taulun koon, kunhan koko on vähintään 10)

Kirjoita ohjelma jossa luetaan kokonaislukuja taulukkoon (saat itse päättää taulun koon, kunhan koko on vähintään 10) Tehtävä 40. Kirjoita ohjelma, jossa luetaan 20 lukua, joiden arvot ovat välillä 10 100. Kun taulukko on täytetty, ohjelma tulostaa vain ne taulukon arvot, jotka esiintyvät taulukossa vain kerran. Tehtävä

Lisätiedot

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta. Tehtävä 63. Kirjoita oma versio funktiosta strcmp(),joka saa parametrinaan kaksi merkkiosoitinta. Tee ohjelma, jossa luetaan kaksi merkkijonoa, joita sitten verrataan ko. funktiolla. Tehtävä 64. Kirjoita

Lisätiedot

Yhteenlaskun ja skalaarilla kertomisen ominaisuuksia

Yhteenlaskun ja skalaarilla kertomisen ominaisuuksia Yhteenlaskun ja skalaarilla kertomisen ominaisuuksia Voidaan osoittaa, että avaruuden R n vektoreilla voidaan laskea tuttujen laskusääntöjen mukaan. Huom. Lause tarkoittaa väitettä, joka voidaan perustella

Lisätiedot

Matriisit, kertausta. Laskutoimitukset. Matriisikaavoja. Aiheet. Määritelmiä ja merkintöjä. Laskutoimitukset. Matriisikaavoja. Matriisin transpoosi

Matriisit, kertausta. Laskutoimitukset. Matriisikaavoja. Aiheet. Määritelmiä ja merkintöjä. Laskutoimitukset. Matriisikaavoja. Matriisin transpoosi Matriisit, kertausta Merkintöjä 1 Matriisi on suorakulmainen lukukaavio. Matriiseja ovat esimerkiksi: ( 2 0.4 8 0 2 1 ) ( 0, 4 ), ( ) ( 1 4 2, a 11 a 12 a 21 a 22 ) Kaavio kirjoitetaan kaarisulkujen väliin

Lisätiedot

Vapaus. Määritelmä. jos c 1 v 1 + c 2 v c k v k = 0 joillakin c 1,..., c k R, niin c 1 = 0, c 2 = 0,..., c k = 0.

Vapaus. Määritelmä. jos c 1 v 1 + c 2 v c k v k = 0 joillakin c 1,..., c k R, niin c 1 = 0, c 2 = 0,..., c k = 0. Vapaus Määritelmä Oletetaan, että v 1, v 2,..., v k R n, missä n {1, 2,... }. Vektorijono ( v 1, v 2,..., v k ) on vapaa eli lineaarisesti riippumaton, jos seuraava ehto pätee: jos c 1 v 1 + c 2 v 2 +

Lisätiedot

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla Tietojen syöttäminen ohjelmalle Tähän mennessä on käsitelty Javan tulostuslauseet System.out.print ja System.out.println sekä ohjelman perusrakenneosat (muuttujat, vakiot, lauseet). Jotta päästään tekemään

Lisätiedot

Harjoitustyön testaus. Juha Taina

Harjoitustyön testaus. Juha Taina Harjoitustyön testaus Juha Taina 1. Johdanto Ohjelman teko on muutakin kuin koodausta. Oleellinen osa on selvittää, että ohjelma toimii oikein. Tätä sanotaan ohjelman validoinniksi. Eräs keino validoida

Lisätiedot

Loppukurssin järjestelyt

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

Lisätiedot

Johdatus Ohjelmointiin

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

Lisätiedot

Algoritmit C++ Kauko Kolehmainen

Algoritmit C++ Kauko Kolehmainen Algoritmit C++ Kauko Kolehmainen Algoritmit - C++ Kirjoittanut Taitto Kansi Kustantaja Kauko Kolehmainen Kauko Kolehmainen Frank Chaumont Oy Edita Ab IT Press PL 760 00043 EDITA Sähköpostiosoite Internet

Lisätiedot

Harjoitus 1 -- Ratkaisut

Harjoitus 1 -- Ratkaisut Kun teet harjoitustyöselostuksia Mathematicalla, voit luoda selkkariin otsikon (ja mahdollisia alaotsikoita...) määräämällä soluille erilaisia tyylejä. Uuden solun tyyli määrätään painamalla ALT ja jokin

Lisätiedot

Imperatiivisen ohjelmoinnin peruskäsitteet. Meidän käyttämän pseudokielen lauseiden syntaksi

Imperatiivisen ohjelmoinnin peruskäsitteet. Meidän käyttämän pseudokielen lauseiden syntaksi Imperatiivisen ohjelmoinnin peruskäsitteet muuttuja muuttujissa oleva data voi olla yksinkertaista eli primitiivistä (esim. luvut ja merkit) tai rakenteista jolloin puhutaan tietorakenteista. puhuttaessa

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

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 26.10.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 26.10.2015 1 / 28 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta

Lisätiedot

PERUSLASKUJA. Kirjoita muuten sama, mutta ota välilyönti 4:n jälkeen 3/4 +5^2 3

PERUSLASKUJA. Kirjoita muuten sama, mutta ota välilyönti 4:n jälkeen 3/4 +5^2 3 PERUSLASKUJA Matemaattisten lausekkeiden syöttäminen: Kirjoita ilman välilyöntejä 3/+^ 3 Kirjoita muuten sama, mutta ota välilyönti :n jälkeen 3/ +^ 3 Liiku matematiikka alueella nuolinäppäimin. Kokeile

Lisätiedot

58131 Tietorakenteet ja algoritmit (syksy 2015)

58131 Tietorakenteet ja algoritmit (syksy 2015) 58131 Tietorakenteet ja algoritmit (syksy 2015) Harjoitus 2 (14. 18.9.2015) Huom. Sinun on tehtävä vähintään kaksi tehtävää, jotta voit jatkaa kurssilla. 1. Erään algoritmin suoritus vie 1 ms, kun syötteen

Lisätiedot

Ohjelmoinnin peruskurssi Y1

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

Lisätiedot

Differentiaali- ja integraalilaskenta 1 Ratkaisut 5. viikolle /

Differentiaali- ja integraalilaskenta 1 Ratkaisut 5. viikolle / MS-A8 Differentiaali- ja integraalilaskenta, V/7 Differentiaali- ja integraalilaskenta Ratkaisut 5. viikolle / 9..5. Integroimismenetelmät Tehtävä : Laske osittaisintegroinnin avulla a) π x sin(x) dx,

Lisätiedot

Algebra. 1. Ovatko alla olevat väittämät tosia? Perustele tai anna vastaesimerkki. 2. Laske. a) Luku 2 on luonnollinen luku.

Algebra. 1. Ovatko alla olevat väittämät tosia? Perustele tai anna vastaesimerkki. 2. Laske. a) Luku 2 on luonnollinen luku. Algebra 1. Ovatko alla olevat väittämät tosia? Perustele tai anna vastaesimerkki. a) Luku on luonnollinen luku. b) Z c) Luvut 5 6 ja 7 8 ovat rationaalilukuja, mutta luvut ja π eivät. d) sin(45 ) R e)

Lisätiedot

Harjoitus 3 -- Ratkaisut

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

Lisätiedot

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

Vektoreiden virittämä aliavaruus

Vektoreiden virittämä aliavaruus Vektoreiden virittämä aliavaruus Määritelmä Oletetaan, että v 1, v 2,... v k R n. Näiden vektoreiden virittämä aliavaruus span( v 1, v 2,... v k ) tarkoittaa kyseisten vektoreiden kaikkien lineaarikombinaatioiden

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 20. huhtikuuta 2018 Vastaa kaikkiin tehtäviin. Tee kukin tehtävä omalle konseptiarkille. Noudata ohjelmointitehtävissä kurssin koodauskäytänteitä.

Lisätiedot

Metropolia ammattikorkeakoulu 05.02.2015 TI00AA43-3004: Ohjelmointi Kotitehtävät 3

Metropolia ammattikorkeakoulu 05.02.2015 TI00AA43-3004: Ohjelmointi Kotitehtävät 3 : http://users.metropolia.fi/~pasitr/2014-2015/ti00aa43-3004/kt/03/ratkaisut/ Tehtävä 1. (1 piste) Tee ohjelma K03T01.cpp, jossa ohjelmalle syötetään kokonaisluku. Jos kokonaisluku on positiivinen, niin

Lisätiedot

Harjoitus 1 -- Ratkaisut

Harjoitus 1 -- Ratkaisut Kun teet harjoitustyöselostuksia Mathematicalla, voit luoda selkkariin otsikon (ja mahdollisia alaotsikoita...) määräämällä soluille erilaisia tyylejä. Uuden solun tyyli määrätään painamalla ALT ja jokin

Lisätiedot

9. Vektorit. 9.1 Skalaarit ja vektorit. 9.2 Vektorit tasossa

9. Vektorit. 9.1 Skalaarit ja vektorit. 9.2 Vektorit tasossa 9. Vektorit 9.1 Skalaarit ja vektorit Skalaari on koon tai määrän mitta. Tyypillinen esimerkki skalaarista on massa. Lukumäärä on toinen hyvä esimerkki skalaarista. Vektorilla on taas suuruus ja suunta.

Lisätiedot

811312A Tietorakenteet ja algoritmit Kertausta kurssin alkuosasta

811312A Tietorakenteet ja algoritmit Kertausta kurssin alkuosasta 811312A Tietorakenteet ja algoritmit 2017-2018 Kertausta kurssin alkuosasta II Perustietorakenteet Pino, jono ja listat tunnettava Osattava soveltaa rakenteita algoritmeissa Osattava päätellä operaatioiden

Lisätiedot