Kokeellista matematiikkaa SAGE:lla

Koko: px
Aloita esitys sivulta:

Download "Kokeellista matematiikkaa SAGE:lla"

Transkriptio

1 Kokeellista matematiikkaa SAGE:lla Tutkin GeoGebralla 1 luonnollisen luvun jakamista tekijöihin 2. GeoGebran funktio Alkutekijät jakaa luvun tekijöihin ja tuottaa alkutekijät listana. GeoGebrassa lista esitetään kaarisulkujen {lista} avulla. Alla mustalla Courier-fontilla oleva teksti on GeoGebran Syöttökenttään kirjoitettu teksti ja sininen Algebra-ikkunaan ilmestyvä arvo. Alkutekijät[42] lista1 = {2, 3, 7} Listan jäsenet voi laskea yhteen Summa-funktiolla. Summa[lista1] a=12 Toistetaan laskutoimituksia eteenpäin eli iteroidaan ja katsotaan mitä tapahtuu. Alkutekijät[12] lista2 = {2, 2, 3} Summa[lista2] b = 7 Alkutekijät[7] lista3 = {7} Koska 7 on alkuluku iterointi jää jumiin lukuun 7. Kuva 1 GeoGebran objektiluettelo Näin voidaankin alkaa tutkia mitä tahansa luonnollista lukua ja pohtia mihin iterointi päättyy. Kun keksin tämän leikin, niin työmatkallani sain ajan kulumaan kun yritin laskea päässä eri luvun alkutekijöiden summia. Tosin autoillessa pitää kiinnittää huomio myös ajamiseen. Tarkempi määrittely voisi olla vaikka seuraava. Toki ensin pitäisi todistaa, että jokaisella x:n arvolla iterointi päättyy siten, että sama luku toistuu. Laitan tässä tarinassa laatikkoon sellaiset kohdat, jotka vaativat lukijalta ongelmanratkaisua. Todista, että edellä esitetty iterointi päätyy jossain vaiheessa tilanteeseen, että sama luku toistuu

2 Määritelmä: Olkoon x ykköstä suurempi luonnollinen luku ja f(x) = luvun x alkutekijöiden summa. Määritellään jono a = a 1,a 2,... ( ) seuraavasti: a 1 = x a n+1 = f ( a n ),kun n > 1 Funktio mr(x) = a n,kun a n = a n+1. Tutkitaan GeoGebralla mr-funktiota muutamalla luvulla. Kuva 2 mr-funktion arvoja GeoGebralla Näin ollen mr(2) = 2 mr(3) = 3 mr(4) = 4 mr(5) = 5 mr(6) = 5 Tuntuu siltä, että lukua 4 lukuunottamatta mr -funktion arvot tulevat olemaan alkulukuja. Jätetään tämän asian perustelu todistettavaksi lukijalle. Funktion tutkimista SAGE:lla GeoGebralla on aika vaikeata tutkia tällaista funktiota ohjelmallisesti. Niinpä päätin käyttää SAGE-ohjelmaa 3 apuna 4. SAGE on ilmainen Python-ohjelmointikielellä toimiva matemaattinen ohjelma. Katsotaan aluksi muutama esimerkki SAGE:n funktioista. Alla mustalla Courier-fontilla ovat SAGE-ohjelmaan kirjoitettuja syötteitä ja siniset SAGE:n laskemia tulosteita. 3 2

3 factor(42) 2 * 3 * 7 SAGE:n factor-funktio tuottaa tekijät kertolaskumuodossa. prime_factors(42) [2, 3, 7] prime_factors(18) [2, 3] Prime_factors-funktio näyttäisi hyvältä, mutta se ei kerro tekijöiden lukumäärää. list(factor(42)) [(2, 1), (3, 1), (7, 1)] Sagen list-funktion avulla factor tulostuu lista, jonka jäseninä ovat tekijät ja niiden lukumäärät Python-kielen tuple-tyyppisinä olioina. Tällä tavalla saadaan tekijöiden summa laskettua ohjelmallisesti. Määritellään ensin apufunktio f, joka laskee luvun tekijöiden summan. Esimerkiksi: f(42) = = 12. def f(luku): summa = 0 lista = list(factor(luku)) for i in lista: summa = summa + i[0]*i[1] return summa SAGE:ssa ohjelmat ja funktiot määritellään def-komennon avulla. Kahdella ensimmäisellä rivillä luodaan apumuuttujat summa ja lista. Kolmannella rivillä luodaan silmukka, jonka avulla listan alkioiden tekijät kerrotaan lukumäärällä ja lasketaan yhteen. Esimerkiksi jos tutkittava luku on 18 niin ohjelma toimii seuraavasti: f(18) luku = 18 summa = 0 lista = [(2, 1), (3, 2)] for-silmukassa i = (2, 1) #listan [(2, 1), (3, 2)] nollas alkio #huomaa, että SAGE indeksöi listan alkiot #alkaen nollasta i[0] = 2 #tuplen (2, 1) nollas jäsen i[1] = 1 summa = = 2 i = (3, 2) i[0] = 3 i[1] = 2 summa = = 8 return(8) = 8 #return palauttaa funktion arvoksi 8. Lasketaan muutamia arvoja. 3

4 for j in range(2, 11): print j, f(j) Pythonin range(alku, loppu)-funktio luo listan, jonka ensimmäinen alkio on alku ja viimeinen loppu 1. Luodaan lopullinen mr-funktio käyttämällä while-silmukkaa. SAGE:ssa erisuuruus merkitään vertailuissa!= -merkeillä. Tässä luotetaan siihen, että iterointi päättyy jossain vaiheessa. def mr(n): eka = n toka = f(n) while eka!= toka: eka = toka toka= f(eka) return(eka) Katsotaan miten SAGE laskee kun suoritetaan mr(18). mr(18) n = 18 eka = 18 toka = f(18) = 8 eka toka eka = 8 toka = f(8) = 6 eka toka eka = 6 toka f (6) = 5 eka toka eka 5 toka 5 eka = toka return(5) Kuvaajia ja ongelmia Tehdään lista, jossa on luetteloitu (x, f(x)). SAGE:ssa kommetti merkitään #-merkillä. def tulostuslistaksi(n): lista = [] for i in range(2, n): #range tuottaa listan [2, 3,, n-1] lista.append((i,mr(i))) #metodi append lisää listan loppuun return(lista) print tulostuslistaksi(51) [(2, 2), (3, 3), (4, 4), (5, 5), (6, 5), (7, 7), (8, 5), (9, 5), (10,7), (11, 11), (12, 7), (13, 13), (14, 5), (15, 5), (16, 5), (17, 17),(18, 5), (19, 19), (20, 5), (21, 7), (22, 13), (23, 23), (24, 5), (25, 7), (26, 5), (27, 5), (28, 11), (29, 29), (30, 7), (31, 31), (32, 4

5 7), (33, 5), (34, 19), (35, 7), (36, 7), (37, 37), (38, 7), (39, 5), (40, 11), (41, 41), (42, 7), (43, 43), (44, 5), (45, 11), (46, 7), (47, 47),(48, 11), (49, 5), (50, 7)] Listasta nähdään, että kun x > 4 niin f:n arvot ovat alkulukuja. Ja tietysti f(x) = x kun x on alkuluku. Tulostetaan lista koordinaatistoon scatter_plot(tulostuslistaksi(100), marker = ".") Kuva 3 mr-funktion arvoja Kuvaajasta nähdään, että osa pisteistä näyttäisi olevan lähes samalla suoralla. Lisätään kuvaan muutamia suoria muotoa y = x, missä n saa arvoja [1, 2,, 8] n scatter_plot(tulostuslistaksi(100), marker = ".") + plot([x/n for n in [1..8]], (1,100)) Kuva 4 mr-funktio suorien kanssa Lisätään pisteitä. 5

6 Kuva pistettä Kuva pistettä Vaikuttaa siltä, että suorien y = x n läheisyyteen osuu vähän pisteitä jos n > 1 on pariton ja x on riittävän suuri. Miksi? Luodaan seuraavaksi lista, jossa on pelkät f:n arvot. def tulostuslista(n): lista = [] for i in range(2, n): lista.append(mr(i)) return(lista) arvot = tulostuslista(100) arvot = [0,0]+arvot arvot [0, 0, 2, 3, 4, 5, 5, 7, 5, 5, 7, 11, 7, 13, 5, 5, 5, 17, 5, 19, 5, 7, 13, 23, 5, 7, 5, 5, 11, 29, 7, 31, 7, 5, 19, 7, 7, 37, 7, 5, 11, 41, 7, 43, 5, 11, 7, 47, 11, 5, 7, 5, 17, 53, 11, 5, 13, 13, 31, 59, 7, 61, 5, 13, 7, 5, 5, 67, 7, 5, 5, 71, 7, 73, 5, 13, 23, 5, 5, 79, 13, 6

7 7, 43, 83, 5, 13, 11, 7, 17, 89, 13, 5, 5, 19, 5, 5, 13, 97, 5, 17] Alkuun lisättiin kaksi nollaa, jotta seuraavassa kuvaajassa x-akselin arvot menevät oikein. bar_chart(arvot) Kuva 7 Pylväskaavio mr:n arvoista Periaatteessa tämä ei tuo lisäinformaatiota, mutta opin piirtämään pylväsdiagrammin. Luodaan lista, jossa on pisteinä funktion kahden peräkkäiset arvot tyyliin (f(x), f(f(x)). arvot=tulostuslista(1000) perakkaiset=[] for i in range(len(arvot)-1): perakkaiset.append((arvot[i],arvot[i+1])) Tässä len(arvot) on arvot-listan pituus (1000) ja range(len(arvot)-1) luo indeksöintiä varten listan[0, 1, 2,, 998]. Listassa on 999 alkiota, jotta viimeisellä ei mentäisi liian pitkälle. perakkaiset [(2, 3), (3, 4), (4, 5), poistetaan välistä muutama (13, 997), (997, 5), (5, 7)] line(perakkaiset) 7

8 Kuva 8 Viivat peräkkäisistä scatter_plot(perakkaiset, marker = ".") Kuva 9 Peräkkäiset pisteinä Lisätään muutama suora. 8

9 scatter_plot(perakkaiset, marker = ".")+ plot([n*x for n in [1..4]], (1,220)) Vaikuttaa siltä, että parillisilla n:n arvoilla pisteitä sattuisi lähelle suoria y = nx. Miksi? Jätetään seuraavaksi alkuluvut pois funktion alkuarvoista. Primes() on alkulukujen joukko. def tulostuslistaksi(n): P = Primes() lista = [] for i in range(2, n): if not i in P: lista.append((i,mr(i))) return(lista) ilmanalkulukuja = tulostuslistaksi(100) ilmanalkulukuja [(4, 4), (6, 5), (98, 5), (99, 17)] Piirretään alkuluvut pystyakselille. Koska P muuttuja on määritelty funktion sisällä, se pitää määritellä uudestaan. P = Primes() scatter_plot(ilmanalkulukuja, marker = ".") + plot([p.unrank(n) for n in [1..15]],(0,100)) 9

10 Kuva 10 Arvojoukko ilman alkulukuja lähtöjoukossa Tietysti kaikki arvot sattuvat alkulukujen kohdalle kun x > 4. Luvun 29 kohdalle ei satu yhtään f:n arvoa, kun alkuluvut on jätetty pois alkuarvoista. Tässä vaiheessa alkaa kiinnostaa osuuko jokaisen alkuluvun kohdalle jokin mr-funktion arvo. Väitteeni on, että tietysti sinne osuu. Jokainen alkuluku, joka on suurempi kuin 4 voidaan esittää kahden tai useamman alkuluvun summana, vai voiko? Riittääkö edellisen virkkeen todistaminen osoittamaan, että mr:n arvojoukko (kun määrittelyjoukossa ei ole alkulukuja) sisältää kaikki kolmosta suuremmat alkuluvut. Kuva 11 Enemmän pisteitä ilman alkulukuja määrittelyjoukossa Luodaan lista nimeltä arvot, siinä on alkioina funktion mr arvot kun alkuarvoista on poistettu alkuluvut. 10

11 def arvotlistaksi(n): P = Primes() lista = [] for i in range(2, n): if not i in P: lista.append(mr(i)) return(lista) arvot = arvotlistaksi(100000) Listataan alkuluvut ja totuusarvo, jos alkuluku on arvot-listassa. P.unrank-funktion avulla saa alkuluvut. Esimerkissä ensimmäinen ja 42. alkuluku (Sagen mielestä nollas ja 41. alkuluku). P = Primes() P.unrank(0) 2 P.unrank(41) 181 for i in range(2, 1000): print P.unrank(i), P.unrank(i) in arvot WARNING: Output truncated! full_output.txt 5 True 7 True 11 True False False 7907 True 7919 False Kun testataan :lla mr:n arvolla ja ensimmäisellä alkuluvulla, niin ensimmäinen alkuluku, jolla väittämä ei pidä paikkaansa on Miljoonalla mr:n alkuarvolla ja ensimmäisellä alkuluvulla, ensimmäinen luku, joka ei toteuta väittämää on arvot = arvotlistaksi( ) for i in range(2, 10000): if not P.unrank(i) in arvot: print P.unrank(i), P.unrank(i) in arvot WARNING: Output truncated! 8923 False 8999 False 11

12 Lisää pohdittavaa Kuinka pitkiä ovat f-funktion iteraatiot? Todista, että jokainen alkuluku voidaan esittää alkulukujen summana. Riittääkö edellisen lauseen todistaminen todistamaan että mr-funktio on hyvin määritelty, eli että jokaisella x:n arvolla f-funktion iteraatio päätyy silmukkaan, jossa sama luku toistuu. Todista, että jokainen luku voidaan esittää alkulukujen summana. Kuinka monta alkulukua tarvitaan, että jokainen alkuluku voidaan esittää niiden summana. Esimerkiksi 5 = eli tarvitaan kaksi alkulukua mutta 11 = = eli tarvitaan kolme alkulukua. Riittääkö kolme alkulukua vai tarvitaanko jollekin alkuluvulle enemmän? Miten tilanne muuttuu, jos käytetään f-funktion määrittelyssä luvun alkutekijöitä siten, että summaan hyväksytään vain eri alkuluvut? 18 = ja f(18) = = 5. Mitä jos tekijöihin mukaan otetaan luku yksi? 18 = ja f(18) = = 9. SAGE SAGE on ladattavissa osoitteesta Tiedosto on reilut 500 Mt ja asentaminen MacOS ja Linux käyttöjärjestelmille on suhteellisen helppoa. Windows vaatii VirtuaBox-ohjelmiston, joten asennus on hankalahkoa. Helpointa on kokeilla SAGE:a Try SAGE Online sivustolla. Kirjautumisen jälkeen SAGE-palvelimelle voi tallentaa omia tiedostoja. SAGE käyttää käyttöliittymänä selainta. SAGE on Python kielen murre tai paremminkin matemaattinen laajennus. Siinä on valtava määrä funktioita matematiikan eri osa-alueilta. Opiskelun apuna voi käyttää Jussi Pekka Kasurisen Python 3 ohjelmointi kirjaa (Dodenco 2009 tai ilmaista Finch, Sage Beginner s Guide, Packt Jälkimmäinen löytyy myös ilmaiseksi verkosta Tietysti World Wibe Webistä löytyy valtavasti lisämateriaalia SAGE:n opiskeluun ja tämänkin tarinan ongelmien ratkaisemisen avuksi. Lopuksi Tämä tarina ja sen uudemmat versiot ja tarinaan liittyvä SAGE-tiedosto löytyy blogistani osoitteessa 12

ISSN-L 0782-6648 ISSN 0782-6648 (Painettu) ISSN 1798-9744 (verkkojulkaisu) edimensio on MAOLin sähköinen lehti. Julkaisija: Matemaattisten aineiden

ISSN-L 0782-6648 ISSN 0782-6648 (Painettu) ISSN 1798-9744 (verkkojulkaisu) edimensio on MAOLin sähköinen lehti. Julkaisija: Matemaattisten aineiden ISSN-L 0782-6648 ISSN 0782-6648 (Painettu) ISSN 1798-9744 (verkkojulkaisu) edimensio on MAOLin sähköinen lehti. Julkaisija: Matemaattisten aineiden opettajien liitto MAOL ry. Saatavissa: http://www.maol.fi/julkaisut/edimensio/

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

Matematiikan tukikurssi, kurssikerta 1

Matematiikan tukikurssi, kurssikerta 1 Matematiikan tukikurssi, kurssikerta 1 1 Joukko-oppia Matematiikassa joukko on mikä tahansa kokoelma objekteja. Esimerkiksi joukkoa A, jonka jäseniä ovat numerot 1, 2 ja 5 merkitään A = {1, 2, 5}. Joukon

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

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

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 1 1 Matemaattisesta päättelystä Matemaattisen analyysin kurssin (kuten minkä tahansa matematiikan kurssin) seuraamista helpottaa huomattavasti, jos opiskelija ymmärtää

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

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

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

LUKUTEORIA A. Harjoitustehtäviä, kevät 2013. (c) Osoita, että jos. niin. a c ja b c ja a b, niin. niin. (e) Osoita, että

LUKUTEORIA A. Harjoitustehtäviä, kevät 2013. (c) Osoita, että jos. niin. a c ja b c ja a b, niin. niin. (e) Osoita, että LUKUTEORIA A Harjoitustehtäviä, kevät 2013 1. Olkoot a, b, c Z, p P ja k, n Z +. (a) Osoita, että jos niin Osoita, että jos niin (c) Osoita, että jos niin (d) Osoita, että (e) Osoita, että a bc ja a c,

Lisätiedot

4.3. Matemaattinen induktio

4.3. Matemaattinen induktio 4.3. Matemaattinen induktio Matemaattinen induktio: Deduktion laji Soveltuu, kun ominaisuus on osoitettava olevan voimassa luonnollisilla luvuilla. Suppea muoto P(n) : Ominaisuus, joka joka riippuu luvusta

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

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

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

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

plot(f(x), x=-5..5, y=-10..10)

plot(f(x), x=-5..5, y=-10..10) [] Jokaisen suoritettavan rivin loppuun ; [] Desimaalierotin Maplessa on piste. [] Kommentteja koodin sekaan voi laittaa # -merkin avulla. Esim. #kommentti tähän [] Edelliseen tulokseen voi viitata merkillä

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

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

Matematiikan johdantokurssi, syksy 2016 Harjoitus 11, ratkaisuista

Matematiikan johdantokurssi, syksy 2016 Harjoitus 11, ratkaisuista Matematiikan johdantokurssi, syksy 06 Harjoitus, ratkaisuista. Valitse seuraaville säännöille mahdollisimman laajat lähtöjoukot ja sopivat maalijoukot niin, että syntyy kahden muuttujan funktiot (ks. monisteen

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 10.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 10.2.2010 1 / 43 Kertausta: listat Tyhjä uusi lista luodaan kirjoittamalla esimerkiksi lampotilat = [] (jolloin

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 4 Jatkuvuus Jatkuvan funktion määritelmä Tarkastellaan funktiota f x) jossakin tietyssä pisteessä x 0. Tämä funktio on tässä pisteessä joko jatkuva tai epäjatkuva. Jatkuvuuden

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

B. 2 E. en tiedä C. 6. 2 ovat luonnollisia lukuja?

B. 2 E. en tiedä C. 6. 2 ovat luonnollisia lukuja? Nimi Koulutus Ryhmä Jokaisessa tehtävässä on vain yksi vastausvaihtoehto oikein. Laske tehtävät ilman laskinta.. Missä pisteessä suora y = 3x 6 leikkaa x-akselin? A. 3 D. B. E. en tiedä C. 6. Mitkä luvuista,,,

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 17.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 17.3.2010 1 / 49 Olioista (kertausta) Olioiden avulla voidaan kuvata useammasta arvosta koostuvaa kokonaisuutta

Lisätiedot

Ohjelmoinnin perusteet Pythonilla. Teemu Sirkiä, 2015

Ohjelmoinnin perusteet Pythonilla. Teemu Sirkiä, 2015 Ohjelmoinnin perusteet Pythonilla Teemu Sirkiä, 2015 Päivitetty 16.9.2015 Yleistä Materiaali sisältää lähinnä Aalto-yliopiston Ohjelmoinnin peruskurssi Y1:n harjoitustehtävissä tarvittavia keskeisiä asioita

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

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

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

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

Lisätiedot

Funktio 1. a) Mikä on funktion f (x) = x lähtöjoukko eli määrittelyjoukko, kun 0 x 5?

Funktio 1. a) Mikä on funktion f (x) = x lähtöjoukko eli määrittelyjoukko, kun 0 x 5? Funktio. a) Mikä on funktion f (x) = x + lähtöjoukko eli määrittelyjoukko, kun 0 x 5? b) Mikä on funktion f (x) = x + maalijoukko eli arvojoukko? c) Selitä, mikä on funktion nollakohta. Anna esimerkki.

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 1 Määrittelyjoukoista Tarkastellaan funktiota, jonka määrittelevä yhtälö on f(x) = x. Jos funktion lähtöjoukoksi määrittelee vaikkapa suljetun välin [0, 1], on funktio

Lisätiedot

Matemaatiikan tukikurssi

Matemaatiikan tukikurssi Matemaatiikan tukikurssi Kurssikerta 1 1 Funktiot Funktion määritelmä Funktio on sääntö, joka liittää kahden eri joukon alkioita toisiinsa. Ollakseen funktio tämän säännön on liitettävä jokaiseen lähtöjoukon

Lisätiedot

MS-A010{3,4} (ELEC*) Differentiaali- ja integraalilaskenta 1 Luento 3: Jatkuvuus

MS-A010{3,4} (ELEC*) Differentiaali- ja integraalilaskenta 1 Luento 3: Jatkuvuus MS-A010{3,4} (ELEC*) Differentiaali- ja integraalilaskenta 1 Luento 3: Jatkuvuus Pekka Alestalo, Jarmo Malinen Aalto-yliopisto, Matematiikan ja systeemianalyysin laitos 19.9.2016 Pekka Alestalo, Jarmo

Lisätiedot

Kuvaus eli funktio f joukolta X joukkoon Y tarkoittaa havainnollisesti vastaavuutta, joka liittää joukon X jokaiseen alkioon joukon Y tietyn alkion.

Kuvaus eli funktio f joukolta X joukkoon Y tarkoittaa havainnollisesti vastaavuutta, joka liittää joukon X jokaiseen alkioon joukon Y tietyn alkion. Kuvaus eli funktio f joukolta X joukkoon Y tarkoittaa havainnollisesti vastaavuutta, joka liittää joukon X jokaiseen alkioon joukon Y tietyn alkion. Vastaavuus puolestaan on erikoistapaus relaatiosta.

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

811312A Tietorakenteet ja algoritmit Kertausta kurssin alkuosasta

811312A Tietorakenteet ja algoritmit Kertausta kurssin alkuosasta 811312A Tietorakenteet ja algoritmit 2016-2017 Kertausta kurssin alkuosasta II Algoritmien analyysi: oikeellisuus Algoritmin täydellinen oikeellisuus = Algoritmi päättyy ja tuottaa määritellyn tuloksen

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

Matematiikan tukikurssi, kurssikerta 2

Matematiikan tukikurssi, kurssikerta 2 Matematiikan tukikurssi kurssikerta 1 Relaatioista Oletetaan kaksi alkiota a ja b. Näistä kumpikin kuuluu johonkin tiettyyn joukkoon mahdollisesti ne kuuluvat eri joukkoihin; merkitään a A ja b B. Voidaan

Lisätiedot

Vektorien pistetulo on aina reaaliluku. Esimerkiksi vektorien v = (3, 2, 0) ja w = (1, 2, 3) pistetulo on

Vektorien pistetulo on aina reaaliluku. Esimerkiksi vektorien v = (3, 2, 0) ja w = (1, 2, 3) pistetulo on 13 Pistetulo Avaruuksissa R 2 ja R 3 on totuttu puhumaan vektorien pituuksista ja vektoreiden välisistä kulmista. Kuten tavallista, näiden käsitteiden yleistäminen korkeampiulotteisiin avaruuksiin ei onnistu

Lisätiedot

Matematiikan pohjatietokurssi

Matematiikan pohjatietokurssi Matematiikan pohjatietokurssi Demonstraatio 3, 15.9.014 1. Mitkä seuraavista voisivat olla funktion kuvaajia ja mitkä eivät? Miksi? (a) (b) (c) (d) Vastaus: Kuvaajat b ja c esittävät funktioita. Huomaa,

Lisätiedot

+ 3 2 5 } {{ } + 2 2 2 5 2. 2 kertaa jotain

+ 3 2 5 } {{ } + 2 2 2 5 2. 2 kertaa jotain Jaollisuustestejä (matematiikan mestariluokka, 7.11.2009, ohjattujen harjoitusten lopputuloslappu) Huom! Nämä eivät tietenkään ole ainoita jaollisuussääntöjä; ovatpahan vain hyödyllisiä ja ainakin osittain

Lisätiedot

Harjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Harjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: Harjoitus 7 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: class Lintu //Kentät private int _siivenpituus; protected double _aivojenkoko; private bool _osaakolentaa; //Ominaisuudet public int

Lisätiedot

Linkkejä kurssi2 / Etälukio (edu.) kurssi8 / Etälukio (edu.) (Suurinta osaa tämän linkin takana olevasta materiaalista pohdimme vasta huomenna!

Linkkejä kurssi2 / Etälukio (edu.) kurssi8 / Etälukio (edu.) (Suurinta osaa tämän linkin takana olevasta materiaalista pohdimme vasta huomenna! Funktiot, L3a n kuvaaja n kuvaaja n kuvaaja Linkkejä kurssi2 / Etälukio (edu.) kurssi8 / Etälukio (edu.) (Suurinta osaa tämän linkin takana olevasta materiaalista pohdimme vasta huomenna!) Funktio (Käytännöllinen

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

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

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

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 21.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 21.3.2011 1 / 42 Listan alkiona viiteitä olioihin Halutaan tehdä ohjelma ohjelmointikurssien opiskelijoiden käsittelyyn.

Lisätiedot

Matematiikan mestariluokka, syksy 2009 7

Matematiikan mestariluokka, syksy 2009 7 Matematiikan mestariluokka, syksy 2009 7 2 Alkuluvuista 2.1 Alkuluvut Määritelmä 2.1 Positiivinen luku a 2 on alkuluku, jos sen ainoat positiiviset tekijät ovat 1 ja a. Jos a 2 ei ole alkuluku, se on yhdistetty

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2016-2017 ari.vesanen (at) oulu.fi 5. Rekursio ja induktio Rekursio tarkoittaa jonkin asian määrittelyä itseensä viittaamalla Tietojenkäsittelyssä algoritmin määrittely niin,

Lisätiedot

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin peruskurssien laaja oppimäärä Ohjelmoinnin peruskurssien laaja oppimäärä Luento 6: Rajoite-esimerkki, funktionaalista ohjelmointia (mm. SICP 3.3.5, 3.5) Riku Saikkonen 8. 11. 2012 Sisältö 1 SICP 3.3.5 esimerkki: rajoitteiden vyörytysjärjestelmä

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

ja λ 2 = 2x 1r 0 x 2 + 2x 1r 0 x 2

ja λ 2 = 2x 1r 0 x 2 + 2x 1r 0 x 2 Johdatus diskreettiin matematiikkaan Harjoitus 4, 7.10.2015 1. Olkoot c 0, c 1 R siten, että polynomilla r 2 c 1 r c 0 on kaksinkertainen juuri. Määritä rekursioyhtälön x n+2 = c 1 x n+1 + c 0 x n, n N,

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 16.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 16.3.2011 1 / 53 Olioista (kertausta) Olioiden avulla voidaan kuvata useammasta arvosta koostuvaa kokonaisuutta

Lisätiedot

tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla

tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla 2.5. YDIN-HASKELL 19 tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla kirjaimilla. Jos Γ ja ovat tyyppilausekkeita, niin Γ on tyyppilauseke. Nuoli kirjoitetaan koneella

Lisätiedot

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 12 (opetusmoniste, kappaleet )

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 12 (opetusmoniste, kappaleet ) T-79.144 Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 12 (opetusmoniste, kappaleet 9.1 9.5) 30.11. 3.12.2004 1. Osoita lauselogiikan avulla oheisten ehtolausekkeiden ekvivalenssi. (a)!(a

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 16.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 16.3.2009 1 / 40 Kertausta: tiedostosta lukeminen Aluksi käsiteltävä tiedosto pitää avata: tiedostomuuttuja = open("teksti.txt","r")

Lisätiedot

(a) Kyllä. Jokainen lähtöjoukon alkio kuvautuu täsmälleen yhteen maalijoukon alkioon.

(a) Kyllä. Jokainen lähtöjoukon alkio kuvautuu täsmälleen yhteen maalijoukon alkioon. HY / Avoin yliopisto Johdatus yliopistomatematiikkaan, kesä 015 Harjoitus 4 Ratkaisuehdotuksia Tehtäväsarja I Seuraavat tehtävät liittyvät kuvauksiin. 1. Merkitään X = {1,,, 4}. Ovatko seuraavat säännöt

Lisätiedot

Alkioiden x ja y muodostama järjestetty pari on jono (x, y), jossa x on ensimmäisenä ja y toisena jäsenenä.

Alkioiden x ja y muodostama järjestetty pari on jono (x, y), jossa x on ensimmäisenä ja y toisena jäsenenä. ja Alkioiden x ja y muodostama järjestetty pari on jono (x, y), jossa x on ensimmäisenä ja y toisena jäsenenä. ja Alkioiden x ja y muodostama järjestetty pari on jono (x, y), jossa x on ensimmäisenä ja

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

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I G. Gripenberg Aalto-yliopisto 3. huhtikuuta 2014 G. Gripenberg (Aalto-yliopisto) MS-A0402 Diskreetin matematiikan perusteetesimerkkejä,

Lisätiedot

Injektio (1/3) Funktio f on injektio, joss. f (x 1 ) = f (x 2 ) x 1 = x 2 x 1, x 2 D(f )

Injektio (1/3) Funktio f on injektio, joss. f (x 1 ) = f (x 2 ) x 1 = x 2 x 1, x 2 D(f ) Injektio (1/3) Määritelmä Funktio f on injektio, joss f (x 1 ) = f (x 2 ) x 1 = x 2 x 1, x 2 D(f ) Seurauksia: Jatkuva injektio on siis aina joko aidosti kasvava tai aidosti vähenevä Injektiolla on enintään

Lisätiedot

MAB3 - Harjoitustehtävien ratkaisut:

MAB3 - Harjoitustehtävien ratkaisut: MAB - Harjoitustehtävien ratkaisut: Funktio. Piirretään koordinaatistoakselit ja sijoitetaan pisteet:. a) Funktioiden nollakohdat löydetään etsimällä kuvaajien ja - akselin leikkauspisteitä. Funktiolla

Lisätiedot

MAT-13510 Laaja Matematiikka 1U. Hyviä tenttikysymyksiä T3 Matemaattinen induktio

MAT-13510 Laaja Matematiikka 1U. Hyviä tenttikysymyksiä T3 Matemaattinen induktio MAT-13510 Laaja Matematiikka 1U. Hyviä tenttikysymyksiä T3 Matemaattinen induktio Olkoon a 1 = a 2 = 5 ja a n+1 = a n + 6a n 1 kun n 2. Todista induktiolla, että a n = 3 n ( 2) n, kun n on positiivinen

Lisätiedot

ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012

ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012 ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012 1.1. (a) Jaettava m, jakaja n. Vähennetään luku n luvusta m niin kauan kuin m pysyy ei-negatiivisena. Jos jäljelle jää nolla, jaettava oli tasan jaollinen. int m,

Lisätiedot

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 5. marraskuuta 2015

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 5. marraskuuta 2015 TIEA24 Automaatit ja kieliopit, syksy 205 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 5. marraskuuta 205 Sisällys Käsiteanalyysiä Tarkastellaan koodilukkoa äärellisenä automaattina. Deterministinen äärellinen

Lisätiedot

Ohjelmointi 1 C#, kevät 2013, 2. tentti

Ohjelmointi 1 C#, kevät 2013, 2. tentti ITKP102 Ohjelmointi 1 C# 15.5.2013 1 / 6 Ohjelmointi 1 C#, kevät 2013, 2. tentti Tentaattori Antti-Jussi Lakanen Tässä tentissä saa olla mukana omia muistiinpanoja yhden arkin verran. Tentin valvojalla

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

Kuvaus eli funktio f joukolta X joukkoon Y tarkoittaa havainnollisesti vastaavuutta, joka liittää joukon X jokaiseen alkioon joukon Y tietyn alkion.

Kuvaus eli funktio f joukolta X joukkoon Y tarkoittaa havainnollisesti vastaavuutta, joka liittää joukon X jokaiseen alkioon joukon Y tietyn alkion. Kuvaus eli funktio f joukolta X joukkoon Y tarkoittaa havainnollisesti vastaavuutta, joka liittää joukon X jokaiseen alkioon joukon Y tietyn alkion. Kuvaus eli funktio f joukolta X joukkoon Y tarkoittaa

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

Jokainen kokonaisluku n voidaan esittää muodossa (missä d on positiivinen kok.luku) Tässä q ja r ovat kokonaislukuja ja 0 r < d.

Jokainen kokonaisluku n voidaan esittää muodossa (missä d on positiivinen kok.luku) Tässä q ja r ovat kokonaislukuja ja 0 r < d. Jakoyhtälö: Jokainen kokonaisluku n voidaan esittää muodossa (missä d on positiivinen kok.luku) n = d*q + r Tässä q ja r ovat kokonaislukuja ja 0 r < d. n = d * q + r number divisor quotient residue numero

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

Johdatus diskreettiin matematiikkaan Harjoitus 5, Ratkaise rekursioyhtälö

Johdatus diskreettiin matematiikkaan Harjoitus 5, Ratkaise rekursioyhtälö Johdatus diskreettiin matematiikkaan Harjoitus 5, 14.10.2015 1. Ratkaise rekursioyhtälö x n+4 2x n+2 + x n 16( 1) n, n N, alkuarvoilla x 1 2, x 2 14, x 3 18 ja x 4 42. Ratkaisu. Vastaavan homogeenisen

Lisätiedot

Matematiikan peruskurssi 2

Matematiikan peruskurssi 2 Matematiikan peruskurssi Tentti, 9..06 Tentin kesto: h. Sallitut apuvälineet: kaavakokoelma ja laskin, joka ei kykene graaseen/symboliseen laskentaan Vastaa seuraavista viidestä tehtävästä neljään. Saat

Lisätiedot

Logiikka 1/5 Sisältö ESITIEDOT:

Logiikka 1/5 Sisältö ESITIEDOT: Logiikka 1/5 Sisältö Formaali logiikka Luonnollinen logiikka muodostaa perustan arkielämän päättelyille. Sen käyttö on intuitiivista ja usein tiedostamatonta. Mikäli logiikka halutaan täsmällistää esimerkiksi

Lisätiedot

Olio-ohjelmointi Syntaksikokoelma

Olio-ohjelmointi Syntaksikokoelma C++-kielen uusia ominaisuuksia Olio-ohjelmointi Syntaksikokoelma 31.10.2008 Bool-tietotyyppi: Totuusarvo true (1), jos ehto on tosi ja false (0) jos ehto epätosi. Dynaaminen muistinvaraus: Yhden muuttuja

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 4.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 4.3.2009 1 / 35 Tiedostot Tiedostojen käsittelyä tarvitaan esimerkiksi seuraavissa tilanteissa: Ohjelman käsittelemiä

Lisätiedot

Tenttiin valmentavia harjoituksia

Tenttiin valmentavia harjoituksia Tenttiin valmentavia harjoituksia Alla olevissa harjoituksissa suluissa oleva sivunumero viittaa Juha Partasen kurssimonisteen siihen sivuun, jolta löytyy apua tehtävän ratkaisuun. Funktiot Harjoitus.

Lisätiedot

Induktio, jonot ja summat

Induktio, jonot ja summat Induktio, jonot ja summat Matemaattinen induktio on erittäin hyödyllinen todistusmenetelmä, jota sovelletaan laajasti. Sitä verrataan usein dominoefektiin eli ketjureaktioon, jossa ensimmäisen dominopalikka

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

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

1. Logiikan ja joukko-opin alkeet

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

Lisätiedot

1.1 Vektorit. MS-A0007 Matriisilaskenta. 1.1 Vektorit. 1.1 Vektorit. Reaalinen n-ulotteinen avaruus on joukko. x 1. R n. 1. Vektorit ja kompleksiluvut

1.1 Vektorit. MS-A0007 Matriisilaskenta. 1.1 Vektorit. 1.1 Vektorit. Reaalinen n-ulotteinen avaruus on joukko. x 1. R n. 1. Vektorit ja kompleksiluvut ja kompleksiluvut ja kompleksiluvut 1.1 MS-A0007 Matriisilaskenta 1. ja kompleksiluvut Nuutti Hyvönen, c Riikka Kangaslampi Matematiikan ja systeemianalyysin laitos Aalto-yliopisto 26.10.2015 Reaalinen

Lisätiedot

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

Esimerkkejä polynomisista ja ei-polynomisista ongelmista Esimerkkejä polynomisista ja ei-polynomisista ongelmista Ennen yleisempiä teoriatarkasteluja katsotaan joitain tyypillisiä esimerkkejä ongelmista ja niiden vaativuudesta kaikki nämä ongelmat ratkeavia

Lisätiedot

Sisältö. 22. Taulukot. Yleistä. Yleistä

Sisältö. 22. Taulukot. Yleistä. Yleistä Sisältö 22. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 22.1 22.2 Yleistä

Lisätiedot

C++ Ohjelmoijan käsikirja. Johdanto

C++ Ohjelmoijan käsikirja. Johdanto Johdanto C++ Ohjelmoijan käsikirja Johdanto Tervetuloa Inside C++-kirjan pariin. Tämä on opaskirja standardi C++:n käyttöön. Käsittelemme kirjassa kaikki syntaksin, kieliopin, olio-ohjelmoinnin ja standardikirjastojen

Lisätiedot

Ohjelmointi 1 C#, kevät 2014, 2. uusintatentti NIMI:

Ohjelmointi 1 C#, kevät 2014, 2. uusintatentti NIMI: ITKP102 Ohjelmointi 1 C# 13.6.2014 1 / 5 Ohjelmointi 1 C#, kevät 2014, 2. uusintatentti Tentaattori Antti-Jussi Lakanen Valitse neljä tehtävää ja vastaa niihin. Keväällä 2014 kurssin tehneille lasketaan

Lisätiedot

1.1 Funktion määritelmä

1.1 Funktion määritelmä 1.1 Funktion määritelmä Tämän kappaleen otsikoksi valittu funktio on hyvä esimerkki matemaattisesta käsitteestä, johon usein jopa tietämättämme törmäämme arkielämässä. Tutkiessamme erilaisia Jos joukkojen

Lisätiedot

Määrittelydokumentti

Määrittelydokumentti Määrittelydokumentti Aineopintojen harjoitustyö: Tietorakenteet ja algoritmit (alkukesä) Sami Korhonen 014021868 sami.korhonen@helsinki. Tietojenkäsittelytieteen laitos Helsingin yliopisto 23. kesäkuuta

Lisätiedot

4 / 2013 TI-NSPIRE CAS TEKNOLOGIA LUKIOSSA. T3-kouluttajat: Olli Karkkulainen ja Markku Parkkonen

4 / 2013 TI-NSPIRE CAS TEKNOLOGIA LUKIOSSA. T3-kouluttajat: Olli Karkkulainen ja Markku Parkkonen 4 / 2013 TI-NSPIRE CAS TEKNOLOGIA LUKIOSSA T3-kouluttajat: Olli Karkkulainen ja Markku Parkkonen 1 2 TI-Nspire CX CAS kämmenlaite kevään 2013 pitkän matematiikan kokeessa Tehtävä 1. Käytetään komentoa

Lisätiedot

Harjoitus 1: Matlab. Harjoitus 1: Matlab. Mat Sovelletun matematiikan tietokonetyöt 1. Syksy 2006

Harjoitus 1: Matlab. Harjoitus 1: Matlab. Mat Sovelletun matematiikan tietokonetyöt 1. Syksy 2006 Harjoitus 1: Matlab Mat-2.2107 Sovelletun matematiikan tietokonetyöt Syksy 2006 Mat-2.2107 Sovelletun matematiikan tietokonetyöt 1 Harjoituksen aiheita Tutustuminen Matlab-ohjelmistoon Laskutoimitusten

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

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

Ohjelmointi 1 Taulukot ja merkkijonot

Ohjelmointi 1 Taulukot ja merkkijonot Ohjelmointi 1 Taulukot ja merkkijonot Jussi Pohjolainen TAMK Tieto- ja viestintäteknologia Johdanto taulukkoon Jos ohjelmassa käytössä ainoastaan perinteisiä (yksinkertaisia) muuttujia, ohjelmien teko

Lisätiedot

7.4 Sormenjälkitekniikka

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

Lisätiedot