Vektorit Opettajan ohjeet

Koko: px
Aloita esitys sivulta:

Download "Vektorit Opettajan ohjeet"

Transkriptio

1 Vektorit Opettajan ohjeet Ohjelmointipaketti lukioon Työ on tehty osana Helsingin yliopiston kurssia Ohjelmointi matematiikan opetuksessa. Työtä saa vapaasti jakaa eteenpäin, muokata sekä käyttää. Tekijät: Antti Jylhä-Ollila Tom Olander Heli Virtanen

2 Sisältö 1 Paketin esittely Ohjelmointipaketin tarkoitus Linkit lukion opetussuunnitelmaan Arviointi Miten tehdään? Esitietovaatimukset Tunti Ohjeita opiskelijalle Turtle-kertaus / Python-kertaus Tehtävänannot Kotitehtävät Ohjeita opettajalle Tehtävänannoista Vinkkejä opiskelijan ohjaamiseen Tehtävä Tehtävä Tehtävä Kotitehtävä Kotitehtävät 2 ja Malliratkaisut Tunti Ohjeita opiskelijalle Tehtävänannot Kotitehtävät Ohjeita opettajalle Tehtävänannoista Vinkkejä opiskelijan ohjaamiseen Tehtävä Tehtävä Tehtävä Kotitehtävä Kotitehtävä Kotitehtävä Malliratkaisut Tunti Ohjeita opiskelijalle Tehtävänannot Kotitehtävät Ohjeita opettajalle

3 4.2.1 Tehtävänannoista Vinkkejä opiskelijan ohjaamiseen Tehtävä Tehtävä Tehtävä Kotitehtävä Viitteet 20 A Käyttöönotto ja asentaminen 21 A.1 PYTHON 3.x A.2 Visual Studio Code (VS Code) A.3 Python VS Code:lle A.4 Käyttö B Vectors -kirjasto 23 C Tunti 1 - esitiedot 29 D Tunti 1 - malliratkaisut 32 D.1 Tehtävä D.2 Tehtävä D.3 Tehtävä D.3.1 Tehtävä 3c D.4 Kotitehtävä D.5 Kotitehtävä D.6 Kotitehtävä E Tunti 2 - esitiedot 40 F Tunti 2 - malliratkaisut 42 F.1 Tehtävä F.2 Tehtävä F.3 Tehtävä F.4 Kotitehtävä F.5 Kotitehtävä F.6 Kotitehtävä G Tunti 3 - esitiedot 48 H Tunti 3 - malliratkaisut 50 H.1 Tehtävä H.2 Tehtävä H.3 Tehtävä H.4 Kotitehtävä

4 1 Paketin esittely Tämä paketti on tehty osana Helsingin yliopiston kurssia Ohjelmointi matematiikan opetuksessa. Tähän pakettiin kuuluu myös kaikki tarvittavat tiedostot, joiden avulla kaikki ohjelmointitehtävät voidaan tehdä, malliratkaisut sekä opiskelijan ohjeet. Tässä tiedostossa esittelemme paketin taustalla olevia asioita sekä tämän jälkeen itse tehtävät ja vinkit opettajille. Liitteistä löytyy paketin käyttämiseen liittyviä ohjeita sekä malliratkaisujen koodit. Pakettia saa käyttää ja muokata vapaasti. Tämä paketti on tehty lukion vektorit -kurssille (MAA4). Tausta-ajatuksena on, että opiskelijat ovat jo aiemmin käyttäneet ohjelmointia apuna esimerkiksi peruskoulussa. Lisäksi ajatellaan, että muillakin lukion kursseilla olisi kurssien aiheisiin liittyvät vastaavanlaiset ohjelmointipaketit, jotta opiskelijat olisivat jo tätä pakettia käyttäessään tietoisia siitä miten paketteja käytetään. Koska näitä muita paketteja ei ole vielä olemassa, tämän paketin yhteyteen on liittetty myös ohjeet ohjelmointikielen (Python 3.x) asentamisesta sekä suositeltavasta editorista (liite A). Kurssin aikarajoissa pakettia ei valitettavasti päästy testaamaan opiskelijoiden kanssa, mutta paketin tehtäviä testattiin muiden kurssilaisten kanssa. 1.1 Ohjelmointipaketin tarkoitus Ohjelmointi on tärkeä työkalu digitalisoituvassa yhteiskunnassa. Tutkimuksen mukaan ohjelmointiosaaminen on tärkeä palkkaamisperuste matemaattiselle aloille uusille työntekijöille [1]. Ohjelmointi on tärkeä osa tiedettä, teknologiaa, tekniikkaa ja matematiikkaa [2]. Se harjaannuttaa opiskelijan algoritmista ajattelua sekä parantaa matemaattista ajattelua, varsinkin geometriassa. Lisäksi ohjelmointi auttaa visualisoimaan abstrakteja käsitteitä, kuten esimerkiksi fysiikan vektorit tai geometriassa vaikeammin hahmotettavat kappaleet. Ohjelmoitaessa opiskelijan on helpompi testata ja syventyä matematiikan aihepiiriin, koska ohjelmointi kehittää myös opiskelijan ongelmanratkaisukykyä [3]. Ohjelmoinnin avulla opiskelija kykenee yhdistämään laajempia kokonaisuuksia ja oppii eri esitystapoja sekä oppii yhtälöiden ja lausekkeiden kirjoittamisen täsmällisesti. Kun opiskelija ymmärtää algoritmeja, tietorakenteita ja koodin optimointia, hän voi myös oppia käyttämään valmiita ohjelmia paremmin [4]. Lisäksi kyky kirjoittaa ohjelma ratkaisemaan tehtävää on hyödyllinen taito. Ohjelmointi voi olla myös sosiaalista, jos se toteutetaan pari- tai ryhmätyönä [1]. Ohjelmoinnin ja matematiikan opetuksen yhdistämisessä aikavaatimukset ovat haastavia [1] ja ne pitää ottaa huomioon tätäkin kokonaisuutta suunniteltaessa. Tarkoitus on että ohjelmointiin liittyviä oppitunteja pidetään kolme kappaletta 1-2 viikon aikana kurssin puolivälissä, jolloin riski unohtaa asioita on pienempi. Opiskelijan oma aktiivisuus on erityisen tärkeää, olisi suotavaa että opiskelija syventyisi ohjelmointikokonaisuuteen myös kotona. Parhaassa tapauksessa koulutunnit voisivat toimia enemmän ohjaustunteina ja varsinainen harjoittelu tapahtuisi kotona. Ohjelmakoodin debuggaus saattaa tuottaa ongelmia, kun siihen yleensäkin menee paljon aikaa. Debuggaus prosessina on tuntematon käsite uusille ohjelmoijille. Opiskelijoiden tekemä koodi saattaa olla myös huonolaatuista, mutta se harvemmin haittaa koska ohjelmat ovat lyhyitä eikä useinkaan 3

5 ole tarvetta algoritmien optimointiin. Tämän ohjelmointikokonaisuuden yksi tarkoitus on auttaa opiskelijoita hahmottamaan vektoreita paremmin, koska vektorit saattavat olla opiskelijoille etenkin aluksi vaikeasti hahmotettavia. 1.2 Linkit lukion opetussuunnitelmaan Lukion vuoden 2015 opetussuunnitelman perusteista [5] vektorit -kurssin (MAA4) tavoitteista valittiin seuraavat tavoitteet Ymmärtää vektorikäsitteen ja perehtyy vektorilaskennan perusteisiin Osaa tutkia kuvioiden ominaisuuksia vektoreiden avulla Osaa tutkia kaksiulotteisen koordinaatiston pisteitä, etäisyyksiä ja kulmia vektoreiden avulla Osaa käyttää teknisiä apuvälineitä vektoreiden tutkimisessa sekä keskeisistä sisällöistä Vektoreiden perusominaisuudet Vektoreiden yhteen- ja vähennyslasku ja vektorin kertominen luvulla Koordinaatiston vektoreiden skalaaritulo paketin tehtävien pohjaksi. Tehtävät eivät siis kata koko kurssia, vaan sijoittuvat noin puoleen väliin kurssia, kun vektoreilla osataan jo hiukan laskea ja niitä osataan piirtää. Erityisesti vektoreiden piirron havainnollistaminen sekä vektoreiden soveltaminen fysiikan ongelmissa ohjasi paljon tehtävien suunnittelua. Tietokoneella piirrettäessä saadaan nopeasti piirretty summavektori useammastakin vektorista. Vaikka nykyiset opetussuunnitelman perusteet eivät mainitse ohjelmointia ollenkaan, on luultavaa, että muutaman vuoden kuluttua myös lukion matematiikan opetukseen kuuluu ohjelmointi. Peruskoulun opetussunnitelmassa on jo maininta ohjelmoinnista osana matematiikan opetusta. Paketti on siis suunniteltu hieman eteenpäin tilanteeseen, jossa suurella osalla lukiolaisista on jo jonkinlaista kokemusta ohjelmoinnista peruskoulun ajalta. 1.3 Arviointi Koska lukion opetussuunnitelma ei vielä tunnista ohjelmointia osakseen, niin tällä hetkellä vektori-kurssin ohjelmointiosuuden arviointi voisi vaikuttaa lähinnä osana kurssin tuntiaktiivisuutta. Lisäksi kurssin kokeeseen voisi ottaa yhden tehtävän ohjelmointiin liittyen. Esimerksi kokeessa voisi kysyä, että miten vektoreita piirretään ohjelmoinnin avulla ja vastauksena voisi odottaa jonkin näköistä pseudokoodia sekä selitystä siitä, mitä asioita pitää ottaa huomioon, kun piirretään nuoli Pythonin turtle-paketin avulla. 4

6 Tehtävä voisi olla myös vain vapaaehtoinen, jolloin kurssin arvosanan saisi myös ilman ohjelmointiosuutta. Jos ohjelmointi tulee mukaan matematiikan opetukseen lukiossakin, niin tehtävien tekemistä voisi arvioida tarkemmin esimerkiksi tutkimalla niiden toimivuutta tai ohjelman tehokkuutta [6]. 1.4 Miten tehdään? Kokonaisuuden on suunniteltu kestävän kolme 45 minuutin oppituntia, joissa opettaja aina alustaa hieman päivän tehtäviä. Tämän jälkeen opiskelijat lähtevät tekemään itse koodia esimerkiksi tunnin esitieto-koodin avulla. Piirtämisen helpottamiseksi opiskelijoille annetaan valmis kirjasto, joka osaa muunmuassa piirtää nopeasti koordinaatiston sekä vektoreita. Jokaiselle tunnille liittyy myös kotitehtäviä, joita opettaja voi antaa tarpeen mukaan. Opettajan ohjeisiin on myös kirjoitettu, mitkä tehtävistä on ajateltu pakolliseksi, että voi siirtyä eteenpäin. Kaikille tunneille on ainakin kolme tehtävää, joiden vaikeusaste kasvaa tehtävä tehtävältä. Pakettia tehdessä ei ole oletettu, että kaikki saisivat kaikki kolme tehtävää tehtyä, mutta ainakin ensimmäinen tehtävä pitäisi saada tehtyä, että voi siirtyä seuraavaan vaiheeseen. Ensimmäisen tunnin teemana on vektoreiden piirtäminen ja tavoitteena on havaita, että se voi olla hyvin monimutkaista. Toisella tunnilla käyttöön otetaan valmis komento vektoreiden piirtämistä varten, jolloin pystytään keskittymään tunnin pääasioihin, eli vektoreiden summaamiseen sekä skalaarilla kertomiseen. Tunnin viimeinen tehtävä taas yhdistää fysiikkaa sekä matematiikkaa suuntavektoreiden kanssa. Kolmannella tunnilla siirrytään havainnollistamaan lentoratoja, eli piirretään paraabeleja sekä näiden tangenttivektoreita. Koska derivaattaa ei ole vielä käsitelty ennen tätä tuntia, kirjasto hoitaa tangentin kulmakertoimen laskemisen automaattisesti. Opiskelijalle on myös annettu kaikki tarvittavat kaavat fysiikan puolelta, joten opiskelija voi keskittyä olennaiseen, eli vektoreiden piirtämiseen käyrälle haluttuihin pisteisiin. Kolmen kerran jälkeen, muutaman päivän päästä, voi olla vielä hyvä käydä yhdessä läpi millaisia toteutuksia opiskelijat saivat aikaan. Paketin mukana jaetaan siis kirjasto, joka helpoittaa esimerksi vektoreiden piirtoa. Koska kirjasto pidetään samana kaikkien tuntien aikana, voisi vektorit piirtää jo helposti ensimmäisellä tunnilla, mutta opettajan ohjauksella saadaan opiskelijat piirtämään vektoreita ensin itse ja sitten vasta toisella tunnilla käyttäen valmiita metodeja. 1.5 Esitietovaatimukset Opiskelijalta edellytetään seuraavia taitoja ennen paketin aloittamista: Python 3.x -taitoja, ainakin: Toistorakenteet (for, while) Ehtolauseet (if, elif, else) Funktiot ja niiden kutsuminen ja määrittely 5

7 Turtle-grafiikasta esimerkiksi seuraavat: Suoran piirtäminen Kynän nosto ja lasku, värin vaihtaminen, paksuuden vaihtaminen Ympyrän piirtäminen Eteenpäin, taaksepäin -komennot Siirtyminen koordinaatistossa, osoitussuunnan muuttaminen Kirjastojen tuominen (esimerkiksi math ja random) sekä näiden käyttö Vektoreiden ymmärrystä: (kaikki vektorit ovat vain kaksiulotteisia) Vektorin piirtäminen koordinaatistoon Vektoreiden komponentit Vektoreiden yhteenlasku ja erotus Skalaarilla kertominen Vektorin pituuden laskeminen Visual Studio Coden käyttökokemusta Ohjelmakoodin ajo: CTRL+F5 Debuggaus F5 Tuntien esitieto-tiedostoissa on kerrottu juuri sillä tunnilla tarvittavista taidoista sekä kerrataan myös ylläolevia asioita. Pääpaino on kuitenkin nimenomaan vektoreiden käsittelyssä sekä niiden havainnollistamisessa. 6

8 2 Tunti Ohjeita opiskelijalle Turtle-kertaus / Python-kertaus Kertaukseen liittyvä tiedosto löytyy tekstimuodosta liitteestä C sekä tiedostona opiskelijan ohjeiden kansiosta. Lue tämä läpi. Ota kaikissa tiedostoissasi käyttöön vectorskirjasto ja lisää koodisi loppuun waitforclick(), jotta ehdit nähdä koodisi tulokset Tehtävänannot Lataa [opettajan antamasta paikasta] tausta, jolla jolla saat valmiin koordinaatistoakselin. Koordinaatistossa kilpikonnaasi edustaa sana pen. Tee seuraavat tehtävät laittaen kilpikonnasi (pen) piirtämään ne. Koordinaatistossa oletuksena on, että x-akselin maksimiarvo on 10 ja minimiarvo on -10, samoin y-akselille. 1. Piirrä vektori 5 i. Vektorin päässä on nuoli. [Kuva 1] 2. Piirrä vektori 7 i + 2 j. Vektorin päässä on nuoli. Käytä hyväksesi trigonometriaa. [Kuva 2] 3. Muunna koordinaatiston kokoa niin, että x ja y vaihtelevat välillä -15 ja 15. Piirrä 10 erikokoista vektoria v = a i + b j, joiden komponentit a ja b arvotaan molemmat yksitellen väliltä Kaikki vektorit lähtevät origosta. [Kuva 3] Lisäksi muuta tehtävän vektoreiden ominaisuuksia: a) Lisää värejä. b) Muuta vektorin paksuutta. c) Muunna tehtävää niin, että kaikki 10 vektoria osuvat ympyrän kehälle (säde = 10). [Kuva 4] Kotitehtävät Valitse ainakin toinen tehtävistä 1a tai 1b. 1. Piirrä vektorit sekä niiden summa a + b sekä erotus a b, kun a) a = 4 i, b = 3 j b) a = 2 i 4 j, b = 3 i + 5 j. 2. Piirrä neliö vektoreilla. Mikä on näiden vektoreiden summavektori? 3. Piirrä vektoreilla säännöllinen kuusikulmio. Mikä on näiden vektoreiden summavektori? 7

9 Kuva 1: Esimerkkikuva piirrettävästä vektorista tehtävään 1. Kuva 2: Esimerkkikuva piirrettävästä vektorista tehtävään 2. Kuva 3: Esimerkkikuva piirrettävistä vektorista tehtävään 3. Kuva 4: Esimerkkikuva piirrettävistä vektorista tehtävään Ohjeita opettajalle Tehtävänannoista Opiskelijoiden tehtävänannoissa on kolmen tasoisia tehtäviä. Numerolla 1 merkityt tehtävät on oletettu helpoiksi tehtäviksi, ja kaikkien pitäisi saada tämä tehtävä tehtyä tunnin aikana. Numerolla 2 merkityt tehtävät ovat keskivaikeita ja näihin pitäisi suurimman osan päästä tunnin aikana. Numeron 3 tehtävät on tarkoitettu koodaamisessa jo edistyneille, haastavampina tehtävinä. Kaikkien ei oleteta saavan näitä tehtyä tunnin aikana. Tähtitehtävän tekeminen vaatii jo huomattavasti enemmän, joten se on lähinnä hyvin nopeille koodareille. Seuraavalle tunnille edellytetään ainakin tehtävän 1 suorittaminen sekä kotitehtävästä tehtävän 1a tekeminen. Kotitehtävä 1b on hyödyllinen, mutta ei pakollinen. Kotitehtävät 2 ja 3 haastavat käyttämään vektoreita geometristen kuvioiden piirtämisessä ja hahmottamaan tilanteita, joissa summavektorista tulee nollavektori. 8

10 2.2.2 Vinkkejä opiskelijan ohjaamiseen Jaa paikka, josta opiskelijat voivat noutaa tässä työssä käytettävän koordinaatistopohjan. Esittele sen käyttö ja varmista, että kaikki saavat pohjan käyttöönsä. Sama kirjasto on mukana kaikilla tunneilla ja löytyy liitteestä B sekä kaikkien tuntien opiskelijakansiosta Tehtävä 1 Tavoitteena on saada aikaan hyvin yksinkertainen vektori, joka on akselin suuntainen. Haasteena on nuolen kärjen piirtäminen, johon voi ohjata käyttämällä trigonometrisia funktioita ja palauttamalla mieleen miten niillä lasketaan. Esimerkiksi 30 asteen kulmassa olevista voi aloittaa. Malliratkaisu liitteessä D Tehtävä 2 Tässä pitää osata laskea kulmat oikein, jotta vektorin pää näyttää siltä miltä pitääkin. Malliratkaisu liitteessä D Tehtävä 3 Tässä tehtävässä vinkkinä voi antaa, että tee funktio, joka piirtää vektorit, ja sitten käytä for-looppia siihen, että saat kaikki 10 vektoria piirrettyä. Värien lisääminen ja paksuudet ovat vain lisäominaisuuksia. C-kohta vaatii tietoa trigonometriasta ja esimerkiksi math.atan2(y,x) voi auttaa tehtävän tekemisessä. Lisäksi tämä kohta voi soveltua trigonometrian kurssille (MAA7), kun käsitellään yksikköympyrää, ja siitä kulmien määrittämistä. Malliratkaisu liitteissä D.3 ja D Kotitehtävä 1 Tehtävän tarkoituksena on näyttää miten piirretään summavektoreita. Jos tunnilla onnistui vain ensimmäinen tehtävä, kotiin kannattaa ottaa vain 1a. Jos haastavammatkin onnistuivat, niin silloin myös 1b on helppo tehtävä. Kuva 5 ja malliratkaisu liite D Kotitehtävät 2 ja 3 Opiskelija harjoittelee for-loopin käyttöä vektori-funktiolleen ja huomaa, että summavektori on nollavektori. Kuvat 6 ja 7 ja malliratkaisut liitteissä D.5 ja D Malliratkaisut Malliratkaisut löytyvät erillisistä tiedostoista sekä tekstinä liitteestä D. 9

11 Kuva 5: Esimerkkikuva piirrettävistä vektoreista kotitehtävään 1. Kuva 6: Esimerkkikuva piirrettävistä vektoreista kotitehtävään 2. Kaksi eri vaihtoehtoa, muutkin käyvät. Kuva 7: Esimerkkikuva piirrettävistä vektoreista kotitehtävään 3. Kaksi eri vaihtoehtoa, muutkin käyvät. 10

12 3 Tunti Ohjeita opiskelijalle Esimerkki kirjaston käytöstä löytyy liitteestä E Tehtävänannot Lataa vektori-kirjasto [opettajan antamasta paikasta]. Muista myös koordinaatiston skaalaaminen tarvittaessa. Testaa kirjaston toiminta piirtämällä seuraavat vektorit: a = 5 i, b = 2 i + 2 j, c = 3 i 8 j ja d = 5 i + 4 j. 1. Laske ja piirrä seuraavat vektorit: a) a + b ja b + a b) c + d c) c d ja d c d) a + b + c d. 2. Piirrä vektori b viisi kertaa peräkkäin. Vaihda väriä, laske vektori e = 5 b ja piirrä se. a) Miltä näyttää vektori 5 b? b) Piirrä vektorit 2 c + 3 d ja 2( c b). 3. Palauta koordinaatiston kooksi (-10,10). Aloituspiste on (0,0). Valitse vektorille suunta (eli kulma) ja piirrä yksikkövektoreita tähän suuntaan, kunnes seuraava vektori ei enää mahdu koordinaatistoon. [Kuva 8] a) Laske kulma, jossa vektori osui reunaan ja lähetä se samassa kulmassa eteenpäin kääntyen oikealle. b) Automatisoi vektoreiden piirto niin, että aina kun seuraava vektori ei mahdu enää ruudulle, kimpoaa reunasta niin, että tulokulma on sama kuin lähtökulma. Vektoreita piirtyy niin kauan kunnes ohjelma lopetetaan tai kunnes on piirretty haluttu määrä (esim. 50) vektoreita. c) Mallinna kitkaa, eli joka kerta kun vektori on piirretty edellisen perään, seuraavan vektorin pituus on 99.5% edellisen vektorin pituudesta. Lopeta ajo, kun vektorin pituus on alle 0,01. d) Mitä tämä vektoreiden joukko voisi esittää? 11

13 Kuva 8: Kuva alueen reunaan osumisesta ja siitä jatkamisesta Kotitehtävät Tee ainakin ensimmäinen tehtävä. 1. Käytössäsi on vektori a = 3 i 5 j. Piirrä se. Vaihda väriä ja piirrä vektorin komponenttivektorit. 2. Käytössä on kaksi vektoria, b = 4, 5 i + 2, 3 j ja c = 3, 2 i + 5, 7 j. Laske ja piirrä seuraavat vektorit t b + s c, a) Kun t = 3 ja s = 4. b) Kun t = 3 ja s = 4. c) Kun t = 3 ja s = 4. d) Kun t = 3 ja s = Jatka edellistä tehtävää, ja automatisoi se käyttäen esimerkiksi for-looppia, kun s = { 1, 0, 1} ja t = { 2, 1, 0, 1, 2}. 4. Jatka kotona tuntitehtäviä. 3.2 Ohjeita opettajalle Tehtävänannoista Tällä tunnilla jatketaan vektoreiden käyttöä ja visualisoidaan vektoreiden summaa, erotusta sekä skalaarilla kertomista. Koska vektoreiden piirtäminen alusta saakka vie aikaa, 12

14 tällä tunnilla on valmiin koordinaatistopohjan lisäksi vektoreiden piirtämiseen tarkoitettu kirjasto. Kirjasto osaa piirtää vektorit sekä laskea niitä yhteen tai kertoa skalaarilla. Tarkoituksena on kuitenkin, että opiskelija toteuttaa laskut itse ja käyttää kirjastoa vain nopeampaan piirtämiseen Vinkkejä opiskelijan ohjaamiseen Tällä tunnilla tehtävien tarkoituksena on tukea vektoreiden yhteenlaskun, erotuksen ja skalaarilla kertomisen vaikutuksia. Koska ensimmäisessä kokonaisuudessa jo saatiin aikaan täysin itse piirretyt vektorit ja se saattoi olla ainakin hieman työlästä, tässä kokonaisuudessa ei enää käytetä aikaa vektoreiden nuolten aikaansaamiseen vaan vektoreiden määrittäminen ja piirtäminen onnistuu komennolla vektori.draw(). Muuten kirjasto toimii kuten turtle, eli opiskelijan pitää itse muistaa siirtyä oikeaan kohtaan esimerkiksi piirrettäessä summavektoreita. Myös kotitehtävän läpikäyntiin voi käyttää hetken tunnista, niin saadaan johdatus vektoreilla laskuun Tehtävä 1 Hahmotetaan miten vektoreiden yhteenlasku sujuu. Metodit vektori.i() ja vektori.j() palauttavat komponenttivektoreiden arvot. Tavoitteena huomata käytännössä, että miten vektoreita voidaan summata kumminpäin vain, mutta erotuksella on merkitystä, kummasta vähennetään toinen. Kuva 9 ja malliratkaisu liitteessä F Tehtävä 2 Havainnollistetaan skalaarilla kertomista ensin käytännössä, eli piirretään viisi kappaletta samaa vektoria ja vasta tämän jälkeen summavektori. Mietitään mitä skalaarin etumerkki tekee vektorille. Katsotaan mitä skalaareilla kertominen tekee eri vektoreille tai niiden erotukselle. Kuva 10 ja malliratkaisu liitteessä F Tehtävä 3 Tehtävän voi ajatella simuloivan esimerkiksi biljardipalloa pöydällä [vaikka ihan reunoihin asti ei nyt osuta helpottamisen vuoksi], eli näyttää vektorin ominaisuuden suuntavektorina. Harjoittaa ehtolauseiden ja for-loopin kirjoitusta sekä ymmärrystä kuljetun polun mallinnuksesta. Myös helpohko tapa ottaa huomioon kitka, eli pienennetään vain vektorin pituutta tarpeen tietyn verran jokaisen piirron jälkeen kunnes vektorin pituus on pienentynyt tarpeeksi. Kuva 11 ja malliratkaisu liitteessä F Kotitehtävä 1 Tämä tehtävä on pohjana seuraavalle tunnille, jolla katsellaan paljon enemmän komponenttivektoreita. Kuva 12 ja malliratkaisu liitteessä F Kotitehtävä 2 Havainnollistaa eri parametrien vaikutusta yhteenlaskuun ja/tai vähennyslaskuun. Kuva 13 ja malliratkaisu liitteessä F.5. 13

15 Kuva 9: Esimerkkikuva vektoreiden yhteenlaskusta. Kuva 10: Esimerkkikuva skalaarilla kertomisesta. Kuva 11: Esimerkkikuva biljardipallosta, kun kitka otetaan huomioon Kotitehtävä 3 Harjoittaa for-loopin käyttötaitoja. Sisäkkäiset for-loopit. Kuva 14 ja malliratkaisu liitteessä F Malliratkaisut Malliratkaisut löytyvät erillisistä tiedostoista sekä tekstimuotoisena liitteestä F. 14

16 Kuva 12: Esimerkkikuva piirrettävistä vektoreista kotitehtävään 1. Kuva 13: Esimerkkikuva piirrettävistä vektoreista kotitehtävään 2. Kuva 14: Esimerkkikuva piirrettävistä vektoreista kotitehtävään 3. 15

17 4 Tunti Ohjeita opiskelijalle Tehtävänannot Lataa vektori-kirjasto [opettajan antamasta paikasta]. Muista myös koordinaatiston skaalaaminen tarvittaessa. Tutustu myös esitietoihin! Testaa kirjaston toiminta piirtämällä seuraavat alaspäin aukeavat paraabelit, jotka kulkevat kaikki origon kautta ja joiden huippupisteet ovat (4,4), (3,7) ja (8,3). 1. Piirrä alaspäin aukeava paraabeli, jonka huippu on pisteessä (5,3). [Kuva 15] a) Piirrä paraabelin tangentin suuntainen vektori pisteeseen, missä x-koordinaatti on 0. b) Piirrä toisella värillä edellisen vektorin i-komponentti, jonka pituus on 1. Piirrä vielä kolmannella värillä a-kohdan vektorin j-komponentti (pituus k). Kulmakertoimen k saat kirjaston komennolla getk(x0), tämä kertoo tangentin kulmakertoimen kohdassa x = x0. c) Tee funktio, joka piirtää nämä kaikki kolme vektoria, kun funktiolle annetaan x-koordinaatin arvo. Testaa toiminta piirtämällä vektorit, kun x-koordinaatti on 0, 5 ja Paraabelin yhtälö on muotoa y = a x x + b x + c. Piirrä paraabeli käyttämällä apuna paraabelin yhtälöä, kun a = 3 25, b = 6 5 ja c = 0.Tangentin kulmakertoimen pisteessä x0 saat yhtälöstä k = 2 a x0 + b. a) Piirrä paraabelin pisteelle, jossa x=0 tangentin suuntainen vektori ja sen ikomponentti (pituus 1) sekä j-komponentti (pituus k). b) Tee funktio, joka piirtää tangentin suuntaisen vektorin sekä sen komponenttivektorit halutussa x-koordinaatissa eri väreillä. c) Testaa toiminta, kun x-koordinaatti on 0, 5 ja Heität palloa lähtökulmassa α = 50 astetta ja pallo saa alkunopeuden v 0 = 10 m s. Putoamiskiihtyvyys g = 9.81 m s 2. (a) Tallenna muuttujaan a kulman arvo radiaanena, eli a=math.radians(50). Tallenna muuttujaan v0 alkunopeus, eli v0=10 ja muuttujaan g putoamiskiihtyvyyden arvo, g=9.81. (b) Laske alkunopeuden x- ja y-komponentit, v0x = v0*math.cos(a) ja v0y = v0*math.sin(a). (c) Tee funktiot, jotka laskevat nopeuden sekä paikan seuraavien kaavojen avulla: vx(t) = v0x vy(t) = v0y - g*t x(t) = v0x*t 16

18 y(t) = v0y*t - 0.5*g*t*t Lisäksi seuraavasta voi olla hyötyä: t = x(t) / v0x (d) Piirrä lentoradan kuva, kunnes y-koordinaatti muuttuu negatiiviseksi. (e) Piirrä tangenttivektori ja sen komponentit, kun x-arvo on 0, 5 ja 8. Vihje: Laske t tietyllä x, saat y:n. vx(t) ja vy(t):stä ovat komponenttivektoreiden kertoimet. Kuva 15: Esimerkkikuva paraabelista ja piirretyistä tangenttivektoreista komponentteineen Kotitehtävät 1. Sovitaan vektoreiden aloituskohdaksi origo. Piirrä vektori a = 4.5 i 2.8 j. Laske vektorin pituus. Luo uusi vektori, missä a:n komponentit jaetaan a:n pituudella ja piirrä se. Piirrä kuvaan lisäksi ympyrä, jonka keskipiste on origo ja säde on 1 (turtle circle, yksikköympyrä). Mitä huomaat uuden vektorin pituudesta ja suunnasta? 2. Jatka tuntitehtäviä valmiiksi kotona. 4.2 Ohjeita opettajalle Tehtävänannoista Tällä tunnilla otetaan käyttöön sovelluskohde fysiikasta, eli pallonheitto. Pallonheitossa pallon lentorata muodostaa paraabelin, eli lähdemme liikkeelle paraabelin piirtämisestä yksinkertaisesti sen huippuarvon kannalta. Toisessa tehtävässä on tavoitteena piirtää paraabeli yhtälönsä avulla ja kolmannessa tehtävässä paraabeli muodostetaan kulman ja alkunopeuden avulla. Esitiedot opiskelijoille löytyvät liitteestä G. 17

19 4.2.2 Vinkkejä opiskelijan ohjaamiseen Tunnin aluksi varmista, että kaikki saivat edelliset tehtävät tehtyä ja osaavat nyt piirtää vektoreita kirjaston avulla. Lisäksi varmista, että kaikki saavat paraabelin piirrettyä ainakin sen huippupisteen avulla. Tehtävissä 1-3 kuvat ovat käytännössä samat, eli tehtävässä 3 ykköstehtävän kuvalla voi tarkistaa paraabelin muodon Tehtävä 1 Ensimmäisessä tehtävässä paraabelin piirtäminen on helppoa, se onnistuu nopealla komennolla. Tehtävän tavoitteena on havainnollistaa kulmakerrointa, ja sen eri komponenttivektoreita. Helpompaa piirtämistä varten suosittelemme tekemään vektoreiden piirtämistä varten funktion, jota voi sitten vain kutsua tarvittaessa. Kuva 15 ja malliratkaisu liitteessä H Tehtävä 2 Tässä tehtävässä itse paraabeli on oikeasti sama kuin ensimmäisessä tehtävässä, mutta paraabelin piirtämistä on vaikeutettu, eli tarkoituksena on piirtää paraabeli itse paraabelin yhtälön avulla ja laskea sitten annetun derivaatan avulla kulmakerroin. Näissä tehtävissä x-suuntaisen komponenttivektorin pituus on asetettu ykkökseksi, jolloin y- suuntaan olevan komponentin pituus on k. Paraabelin piirtäminen kannattaa lopettaa, kun y-koordinaatti muuttuu negatiiviseksi. Kuva 16 ja malliratkaisu liitteessä H Tehtävä 3 Vaikein tehtävä, joka tarvitsee avukseen fysiikan kaavoja (annettu tehtävänannossa). Paraabelin huipulla y-suuntainen vektori on tietysti nollavektori, mutta koska kirjastolle ei ole kerrottu miten nollavektori pitäisi piirtää, niin kirjasto piirtää pelkän nuolen kärjen, suunta saattaa hieman vaihtua, riippuen siitä kuinka tarkasti huippuun osutaan (laskentatarkkuus). Nyt voidaan soveltaa vektoreiden piirtämistä tiettyihin pisteisiin ja kokeilla vaikka mitä tapahtuu, jos putoamiskiihtyvyyden arvo onkin jotain muuta, kuin 9.81 m/s 2. Kuva 17 ja malliratkaisu liitteessä H Kotitehtävä 1 Tehtävää voi käyttää alustavana esimerkiksi yksikköympyrää varten tai yksikkövektorin kanssa. Kuva 18 ja malliratkaisu liitteessä H.4. 18

20 Kuva 16: Esimerkkikuva paraabelista tehtävään 2. Kuva 17: Esimerkkikuva paraabelista tehtävään 3. Kuva 18: Esimerkkikuva kotitehtävään. 19

21 Viitteet [1] R. Chabay and B. Sherwood, Computational physics in the introductory calculusbased course, American Journal of Physics, vol. 76, no. 4, pp , [2] L. Broley, F. Caron, and Y. Saint-Aubin, Levels of programming in mathematical research and university mathematics education, International Journal of Research in Undergraduate Mathematics Education, vol. 4, no. 1, pp , Apr [3] D. H. Clements, From exercises and tasks to problems and projects: Unique contributions of computers to innovative mathematics education, The Journal of Mathematical Behavior, vol. 19, no. 1, pp. 9 47, [4] J. T. Fey, Technology and mathematics education: A survey of recent developments and important problems, Educational Studies in Mathematics, vol. 20, no. 3, pp , [5] Lops lukion opetussuunnitelman perusteet 2015, Helsinki, [Online]. Available: lukion opetussuunnitelman perusteet 2015.pdf [6] K. M. Ala-Mutka, A survey of automated assessment approaches for programming assignments, Computer Science Education, vol. 15, no. 2, pp ,

22 A Käyttöönotto ja asentaminen Ohjelmointikieleksi on valittu Python 3 ja editoriksi Visual Studio Code. Tarkoitus on, että opiskelijat asentavat tarvittavat ohjelmat omille tietokoneille. Kun editori ja Python kieli on omalla tietokoneella, ohjelmointi ja koodin suorittaminen on helpompaa ja nopeampaa. Myöskin paikallisesti asennettu editori antaa huomattavia etuja verrattuna ns. online-editoreihin. A.1 PYTHON 3.x Lataa ja asenna uusin versio Pythonista tietokoneelle osoitteessa org. A.2 Visual Studio Code (VS Code) Lataa ja asenna uusin versio Visual Studio Codesta osoitteessa com. VS Code on Microsoftin tekemä avoimen lähdekoodin editori, joka toimii seuraavilla käyttöjärjestelmillä: macos, Linux ja Windows. VS Code on hyvin monipuolinen editori, joka soveltuu Pythonin lisäksi melkein kaikille mahdollisille ohjelmointikielelle. VS Code on modulaarisesti rakennettu, joten siihen on helppo asentaa lisäosia, kuten tuki uudelle ohjelmointikielelle. Muita syitä tämän editorin käyttöön: toimii melkein kaikissa käyttöjärjestelmissä kevyt ja nopea paikallisesti asennettuna tietokoneelle toimii aina, myös ilman internettiä tuki laajennusten kautta todella monelle kielelle debuggaus sisäänrakennettu A.3 Python VS Code:lle VS Codessa ei ole sisäänrakennettua tukea Pythonille, vaan se pitää ladata lisäosana. Etsi lisäosa/laajennus nimellä Python ja jonka tekijä on Microsoft. Lataa ja asenna se. Jos haluat saada lisää infoa mahdollisista virheistä ja varoituksista Python koodissa, niin kannattaa asentaa myös samassa paketissa oleva linter -osio. A.4 Käyttö Tallenna Python tiedostot nimipäätteellä.py, jolloin niitä voi suorittaa myös kaksoisklikkaamalla tiedoston kuvaketta. VS Codessa voit suorittaa Python koodin painamalla CTRL + F5, pelkkä F5 aloittaa suorituksen debug-tilassa. Debug-tila on erittäin tehokas tapa löytää virheitä koodin logiikassa, kun koodin on mahdollista luoda ns. 21

23 pysäytyspisteitä (breakpoint), jolloin on mahdollista tutkia muuttujien arvoja ja sitä, miten koodin suoritus etenee. VS Codea voi käyttää myös käytännössä täysin ilman hiirtä, painamalla CTRL + SHIFT + P saadaan auki komentorivi johon voi syöttää komentoja Codelle. Esimerkiksi kirjoittamalla color theme voidaan vaihtaa käytettyä väriteemaa. 22

24 B Vectors -kirjasto vectors.py Today 12:37 am Tom Olander edited an item Text vectors.py Yesterday Wed. 2:01 pm Tom Olander edited an item Text vectors.py Earlier this week 30 Apr. Tom Olander uploaded an item Text vectors.py import turtle import math GLOBAL variables!!! pen = turtle.turtle() window = pen.getscreen() some stupid window.screensize(950,800) class ParabelOrigo(): _x0, _y0 = 0, 0 _a = None def top(self, x0=0, y0=0): self._x0, self._y0 = x0, y0 self._calca() def equation(self, a=0, b=0, c=0): self._x0 = -b / (2 * a) self._y0 = -b * b / (4 * a) self._calca() def _calca(self): self._a = (-self._y0) / (self._x0 * self._x0) def gety(self, x): return self._a * ((x - self._x0) * (x - self._x0)) + self._y0 def getk(self, x): 23

25 return 2 * self._a * (x - self._x0) def draw(self, color="black", width=2): down = pen.isdown() oldwidth = pen.width() oldcolor = pen.pencolor() pos = pen.position() pen.pencolor(color) pen.width(width) lenx = abs(2 * self._x0) steps = 5*int(lenx) if lenx > 40: steps = 5*40 if lenx < 20: steps = 5*20 dx = (2 * self._x0) / (steps - 1) x = 0 y = self.gety(x) pen.goto(x, y) pen.pendown() for i in range(0, steps): x = i * dx y = self.gety(x) if y < 0: x, y = 2 * self._x0, 0 pen.goto(x, y) pen.up() pen.goto(pos) if down: pen.down() else: pen.up() pen.width(oldwidth) pen.pencolor(oldcolor) class CoordinateSystem(): _swidth = window.canvwidth _sheight = window.canvheight x0,x1,y0,y1 = 0,0,0,0 gridcolor, axiscolor = "AAAAAA", "444444" def init (self): self.setaxes(-10,10,-10,10) def _newscreen(self): window.setworldcoordinates(self.x0,self.y0,self.x1,self.y1) window.clearscreen() 24

26 pen = turtle.turtle() pen.hideturtle() pen.speed(0) self._drawgrid() self._drawaxis() window.tracer(1,0) end newscreen def def setaxes(self,vasen,oikea,ala,yla): if(vasen>oikea): vasen, oikea = oikea, vasen if(ala>yla): ala, yla = yla, ala dx, dy = oikea-vasen, yla-ala px, py = self._swidth/dx, self._sheight/dy if px > py: ndx2 = (dx*px/py-dx)/2 vasen, oikea = vasen-ndx2, oikea+ndx2 else : ndy2 = (dy*py/px-dy)/2 ala, yla = ala-ndy2, yla+ndy2 self.x0, self.x1 = vasen, oikea self.y0, self.y1 = ala, yla self._newscreen() end yaxis def def _drawaxis(self): down = pen.isdown() oldwidth = pen.width() oldcolor = pen.pencolor() pos = pen.position() pen.pencolor(self.axiscolor) pen.width(2) pen.up() pen.goto(self.x0,0) pen.down() pen.goto(self.x1,0) pen.up() pen.goto(0,self.y0) pen.down() pen.goto(0,self.y1) pen.up() pen.goto(pos) if down: pen.down() else: pen.up() 25

27 pen.width(oldwidth) pen.pencolor(oldcolor) end drawaxis def def _drawgrid(self): window.tracer(0,0) down = pen.isdown() oldwidth = pen.width() oldcolor = pen.pencolor() oldpos = pen.position() pen.pencolor(self.gridcolor) pen.up() for x in range(int(self.x0)-1, int(self.x1)+1): pen.up() pen.goto(x,self.y0) pen.down() pen.goto(x,self.y1) next x for y in range(int(self.y0)-1, int(self.y1)+1): pen.up() pen.goto(self.x0,y) pen.down() pen.goto(self.x1,y) next y pen.up() pen.goto(oldpos) if down: pen.down() else: pen.up() pen.width(oldwidth) pen.pencolor(oldcolor) window.tracer(1,0) end drawgrid def def waitforclick(self,show=true): if show: pen.up() pen.goto((self.x1+self.x0)/2,self.y0+0.1*self.y1) pen.pencolor("ff0000") text = "Press any key (or click mouse)." font = ("Sans-serif", 12, "bold") pen.write(text, True, align="center", font=font) window.onkey(self._die,"") window.onclick(self._die) 26

28 window.listen() window.mainloop() end waitforclick def def _die(self,x=0,y=0): window.bye() end die def end Coordsys class class Vector(): i,j = 0, 0 def init (self,i,j): self.i, self.j = i, j def add (self,other): return self.add(other) def sub (self,other): return self.sub(other) def mul (self,scalar): return self.mul(scalar) def add(self,other): return Vector(self.i+other.i,self.j+other.j) def sub(self,other): return Vector(self.i-other.i,self.j-other.j) def mul(self,scalar): return Vector(self.i*scalar,self.j*scalar) def dot(self,other): return self.i*other.i+self.j*other.j def normalize(self): scalar = 1/self.getLength() self.i, self.j = self.i*scalar, self.j*scalar def rotate(self,angle): angle = math.radians(angle + self.getangle()) length = self.getlength() self.i, self.j = math.cos(angle)*length, math.sin(angle)*length def getangle(self): return math.degrees(math.atan2(self.j,self.i)) def getlength(self): return math.sqrt(self.i*self.i+self.j*self.j) def getanglebetween(self,other): dot = self.dot(other) l1 = self.getlength() l2 = other.getlength() return math.degrees(math.acos(dot)/(l1*l2)) 27

29 def draw(self,color="000000", width=4): down = pen.isdown() oldwidth = pen.width() oldcolor = pen.pencolor() pen.pencolor(color) pen.width(width) pen.down() angle = self.getangle() length = self.getlength() pen.setheading(angle) pen.forward(length) pen.setheading(angle+30) pen.backward(0.5) pen.forward(+.5) pen.setheading(angle-30) pen.backward(0.5) pen.forward(0.5) if down: pen.down() else: pen.up() pen.width(oldwidth) pen.pencolor(oldcolor) end draw def end Vector class 28

30 C Tunti 1 - esitiedot Miten käyttää vectors-kirjastoa Jos vectors.py kirjasto on samassa hakemistossa kuin koodisi, niin voit tuoda kirjaston näin: from vectors import * Kirjasto mahdollistaa koordinaatiston käytön: koord = CoordinateSystem() Koordinaatiston oletusarvot ovat sekä x että = [-10,10], mutta voidaan tarvittaessa muuttaa: koord.setaxes(-20,10,-10,20) Huomaa, että piirtoikkuna on aina saman kokoinen, joten todellinen koordinaatiston koko ei välttämättä ole sama kuin määrittelemämme. Kirjasto pyrkii pitämään i ja j yksikkövektorit samanpituisina näytöllä, jolloin voidaan käyttää perinteisiä laskukaavoja koskien kulmia. Määritelty alue on joka tapauksessa aina näkyvillä, mutta ikkuna voi olla myös suurempi. Kirjasto käyttää Turtle-grafiikkaa, joten kaikki perinteiset Turtle-ominaisuudet ovat käytettävissä. Turtle-kynä on muutujassa "pen". piirrä jana pisteestä (4,4) pisteeseen (-4,4) sinisellä värillä ja kynäpaksuudella 3 pen.goto(4,4) pen.pencolor("blue") pen.width(3) pen.pendown() pen.goto(-4,4) piirrä ympyrä alkaen pisteestä (0,-4), muodostaen säännöllisen 50-kulmion jonka keskipiste on (0,0) kun säde on 4 pen.pencolor("black") 29

31 pen.width(1) pen.goto(0,-4) pen.pendown() pen.circle(4,steps=50) Näin kopioit muuttujan pen arvoa toiseen muuttujaan. Kyseessä on viittaus olioon, joten kaikki ominaisuudetkin periytyvät. Huomaa, että tämänkin jälkeen pen toimii viittauksena turtleen. kilppari = pen kilppari.pencolor("pink") kilppari.width(5) kilppari.goto(4,-4) TRIGONOMETRIA Trigonomtriset funktiot Pythonissa (tarvitaan kun lasketaan kulmilla) Pythonissa kaikki trigonometriset funktiot saadaan käyttöön math-kirjastolla import math Matematiikassa ja ohjelmointikielissä käytetään useimmiten radiaaneja yksikkönä, joten meidän pitää osata tehdä muunnoksia asteiden ja radiaanien välillä asteista radiaaneihin: kulma_radiaaneina = math.radians(kulma_asteina) radiaaneista asteisiin: kulma_asteina = math.degrees(kulma_radiaaneina) tavalliset trigonometriset funktiot (käyttävät radiaaneja!): s = math.sin(kulma) c = math.cos(kulma) t = math.tan(kulma) Jos haluamme laskea esim sin(50astetta), niin se tehdään esim näin: s = math.sin(math.radians(50)) tämän lisäksi tarvitsemme myöskin "käänteisfunktiot" näille, eli arcus-funktiot Arcustrigonometrisia funktioita käytetään, kun halutaan laskea kulman koko. kulma = math.asin(vastainen_kateetti / hypotenuusa) kulma = math.acos(viereinen_kateetti / hypotenuusa) 30

32 kulma = math.atan(vastainen_kateetti / viereinen_kateetti) tämän lisäksi on hyödyllistä käyttää seuraavaa versiota atan-funktiosta: kulma = math.atan2(vastainen_kateetti, viereinen_kateetti) atan2-funktio pystyy käsittelemään kaikkia kulmia välillä [0,2pi] = [0,360] astetta HUOM! arcus-funktiot palauttavat kulman radiaaneissa!!!!! Jos haluamme laskea atan2(5,3) ja saada vastauksen asteina, niin voimme tehdä esimerkiksi: k = math.degrees(math.atan2(5,3)) satunnaislukugeneraattori Pythonissa lue sisään random kirjasto import random asetetaan satunnaisukuja x- ja y-muuttujallie x = random.random().random() ei ota attribuutteja y = random.randrange(1,5) x saa satunnaisen arvon välillä [0,1[, eli kaikki mahdolliset arvot 0 ja 1 välillä, mukaanlukien 0 ja poislukien 1. y saa satunnaisen kokonaisarvon välillä [1,5[, eli joukosta {1, 2, 3, 4}, huomaa että 5 ei kuulu joukkoon! Pyhtonissa on myös olemassa random.randint(1,5), mutta tässä tapauksessa 5 kuuluu maalijoukkoon, ja tätä halutaan harvoin ohjelmoinnissa. Python sulkee ikkunan heti kun ohjelma päättyy, ja emme kerkeä näkemään aikaansannostamme. Kirjastossa on olemassa metodi jolla ohjelma pysähtyy ja jää odottamaan, että käyttäjä klikkaa ikkunaa ennen sammuttamista. koord.waitforclick() 31

33 D Tunti 1 - malliratkaisut D.1 Tehtävä 1 from vectors import * alusta koordinaatisto koord = CoordinateSystem() vektori 2i vektorin piirtäminen on suht yksinkertaista, tosin työlästä saada menemään oikein pen.pencolor("red") pen.width(3) pen.pendown() pen.goto(2,0) pen.left(30) pen.forward(-.5) pen.left(60) pen.forward(.5) pen.pendown() pen.left(60) pen.forward(-.5) odota klikkausta koord.waitforclick() D.2 Tehtävä 2 from vectors import * alusta koordinaatisto koord = CoordinateSystem() vektori 7i + 2j lasketaan kulma vektorin ja x-akselin välille kulma = math.degrees(math.atan2(2,7)) 32

34 lasketaan vektorin pituus pituus = math.sqrt(7*7 + 2*2) piirretään vektori pen.pencolor("green") pen.width(3) pen.pendown() nyt käytetään vektorin kulmaa ja pituutta hyväksi piirtämisessä pen.setheading(kulma) pen.forward(pituus) pen.left(30) pen.forward(-.5) pen.left(60) pen.forward(.5) pen.pendown() pen.left(60) pen.forward(-.5) odota klikkausta koord.waitforclick() D.3 Tehtävä 3 from vectors import * alusta koordinaatisto koord = CoordinateSystem() 10 satunnaista vektoria tarvitaan satunnaislukugeneraattoria, joten tuodaan kirjasto import random määritellään funktio piirtämään vektoreita def piirravektori(i, j, vari,paksuus): sama piirtoalgoritmi kuin edellisessä esimerkissä, paitsi värien osalta kulma = math.degrees(math.atan2(j,i)) pituus = math.sqrt(i*i + j*j) pen.pencolor(vari) 33

35 pen.width(paksuus) pen.pendown() pen.setheading(kulma) pen.forward(pituus) pen.left(30) pen.forward(-.5) pen.left(60) pen.forward(.5) pen.pendown() pen.left(60) pen.forward(-.5) varit=["blue","brown","black"] for i in range(0,10): luodaan satunnaiset x ja y komponentit vektorille random() palauttaa arvon välillä [0,1[ joten komponentien arvot ovat 10 - [0,1[*20 = 10 - [0,20[ = ]-10,10] x = 10 - random.random()*20 y = 10 - random.random()*20 v = random.randrange(0,len(varit)) vari = varit[v] paksuus = random.randrange(1,5) piirravektori(x, y, vari, paksuus) odota klikkausta koord.waitforclick() D.3.1 Tehtävä 3c from vectors import * alusta koordinaatisto koord = CoordinateSystem() 10 satunnaista vektoria 10-säteisellä ympyrällä tarvitaan satunnaislukugeneraattoria, joten tuodaan kirjasto import random määritellään funktio piirtämään vektoreita def piirravektori(i, j, vari,paksuus): sama piirtoalgoritmi kuin edellisessä esimerkissä, 34

36 paitsi värien osalta kulma = math.degrees(math.atan2(j,i)) pituus = math.sqrt(i*i + j*j) pen.pencolor(vari) pen.width(paksuus) pen.pendown() pen.setheading(kulma) pen.forward(pituus) pen.left(30) pen.forward(-.5) pen.left(60) pen.forward(.5) pen.pendown() pen.left(60) pen.forward(-.5) varit=["blue","brown","black"] for i in range(0,10): luodaan satunnaiset x ja y komponentit vektorille random() palauttaa arvon välillä [0,1[ joten komponentien arvot ovat 10 - [0,1[*20 = 10 - [0,20[ = ]-10,10] x = 10 - random.random()*20 y = 10 - random.random()*20 v = random.randrange(0,len(varit)) vari = varit[v] paksuus = random.randrange(1,5) pit=math.sqrt(x*x+y*y) pit=pit piirravektori(10*x/pit, 10*y/pit, vari, paksuus) pen.goto(10,0) pen.setheading(90) pen.pencolor("pink") pen.pendown() pen.circle(10,steps=50) odota klikkausta koord.waitforclick() 35

37 D.4 Kotitehtävä 1 from vectors import * alusta koordinaatisto koord = CoordinateSystem() määritellään funktio piirtämään vektoreita def piirravektori(i, j): sama piirtoalgoritmi kuin edellisessä esimerkissä, paitsi värien osalta kulma = math.degrees(math.atan2(j,i)) pituus = math.sqrt(i*i + j*j) pen.pendown() pen.width(4) pen.pencolor("red") pen.setheading(kulma) pen.forward(pituus) pen.left(30) pen.forward(-.5) pen.left(60) pen.forward(.5) pen.pendown() pen.left(60) pen.forward(-.5) a-tehtävä piirravektori(-4, 0) piirravektori(0, 3) b-tehtävä piirravektori(2, -4) piirravektori(3, 5) odota klikkausta koord.waitforclick() 36

38 D.5 Kotitehtävä 2 from vectors import * alusta koordinaatisto koord = CoordinateSystem() määritellään funktio piirtämään vektoreita def piirravektori(i, j): sama piirtoalgoritmi kuin edellisessä esimerkissä, paitsi värien osalta kulma = math.degrees(math.atan2(j,i)) pituus = math.sqrt(i*i + j*j) tässä emme halua aloittaa origosta joka kerta! pen.pendown() pen.width(4) pen.pencolor("red") pen.setheading(kulma) pen.forward(pituus) pen.left(30) pen.forward(-.5) pen.left(60) pen.forward(.5) pen.pendown() pen.left(60) pen.forward(-.5) pen.pencolor("red") piirravektori(5,0) piirravektori(0,5) piirravektori(-5,0) piirravektori(0,-5) vino neliö i = 7 j = 2 pen.pencolor("blue") piirravektori(i,j) piirravektori(-j,i) piirravektori(-i,-j) piirravektori(j,-i) 37

39 odota klikkausta koord.waitforclick() D.6 Kotitehtävä 3 from vectors import * alusta koordinaatisto koord = CoordinateSystem() määritellään funktio piirtämään vektoreita def piirravektori(pituus, kulma): sama piirtoalgoritmi kuin edellisessä esimerkissä, mutta emme laske kulmaa ja pituutta, ne annetaan kutsuttaessa funktiota tässä emme halua aloittaa origosta joka kerta! pen.pendown() pen.width(4) pen.pencolor("red") pen.setheading(kulma) pen.forward(pituus) pen.left(30) pen.forward(-.5) pen.left(60) pen.forward(.5) pen.pendown() pen.left(60) pen.forward(-.5) kulmien määrä n = 6 sivun pituus pituus = 3 iteroidaan läpi kaikki kulmat ja piirretään vektorit pen.pencolor("red") for kulma in range(0, 360, int(360/n)): piirravektori(pituus, kulma) jos halutaan pirtää vino säännöllinen monikulmio, niin aloitetaan muusta kulmasta kuin 0 astetta 38

40 aloituskulma = 15 pituus = 5 pen.pencolor("blue") for kulma in range(0+aloituskulma, 360+aloituskulma, int(360/n)): piirravektori(pituus, kulma) odota klikkausta koord.waitforclick() 39

41 E Tunti 2 - esitiedot Miten käyttää vectors-kirjastoa Jos vectors.py kirjasto on samassa hakemistossa kuin koodisi, niin voit tuoda kirjaston näin: from vectors import * Kirjasto mahdollistaa koordinaatiston käytön: koord = CoordinateSystem() Koordinaatiston oletusarvot ovat sekä x että y = [-10,10], mutta voidaan tarvittaessa muuttaa: koord.setaxes(-20,10,-10,20) Kirjasto käyttää Turtle-grafiikkaa, joten kaikki perinteiset Turtle-ominaisuudet ovat käytettävissä. Turtle-kynä on muuttujassa "pen". Määritellään vektoreita käyttämällä kirjastoa a = Vector(1,1) b = Vector(-2,2) Määritellään vektori käyttämällä apumuuttujia komponenttienkertoimille c_i = 5.5 c_j = 3.1 c = Vector(c_i, c_j) Piirretään vektorit, oletusvärisenä (musta) ja käyttämällä värimääritystä (ns. Web-väri nimet toimivat ja HEX-värikoodit) a.draw() b.draw("red") c.draw("0000ff") HEX-värikoodi (RRGGBB): - alkaa aina -merkillä ja sen perään 6 merkkiä RrGgBb - Rr punaisen värikomponentin määrä hexalukuna - Gg vihreän värikomponentin määrä hexalukuna - Bb sinisen värikomponentin määrä hexalukuna Hexaluvut: [00,FF] vastaa 10-järjestelmässä [0,255] 40

42 hexa Rr => 10-järjestelmässä R*16 + r hexanumerot: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, missä A ~ 10, B ~ 11, C ~ 12, D ~ 13, E ~ 14, F ~ 15) Huomaa, että vektorit piirretään niin, että seuraavan vektori on aina edellisen päätepiste (ihan niinkuin turtle-grafiikassa muutenkin) Jos halutaan aloittaa pirtäminen toisesta piseestä: kynä on oletusarvoisesti alhaalla, joten nostetaan se pen.goto(-1,1) Vector(-4,5).draw("FF88AA", 2) vektorit piirretään vaikka Turtle-kynä olisikin ylhäällä! pen.goto(-1,1) Vector(-7,-8).draw("44AA66", 8) Huomaa miten nuolen paksuutta muutettiin Python sulkee ikkunan heti kun ohjelma päättyy, ja emme kerkeä näkemään aikaansannostamme. Kirjastossa on olemassa metodi jolla ohjelma pysähtyy ja jää odottamaan, että käyttäjä klikkaa ikkunaa ennen sammuttamista. koord.waitforclick() 41

43 F Tunti 2 - malliratkaisut F.1 Tehtävä 1 from vectors import * alusta koordinaatisto koord = CoordinateSystem() koord.setaxes(-20, 20,-20, 20) Piirretään vektorit a, b, c a = Vector(5,0) b = Vector(2,2) c = Vector(-3,-8) d = Vector(-5, 4) a.draw() b.draw() c.draw() d.draw() a + b Vector(5 + 2, 0 + 2).draw("red", 8) b + a Vector(2 + 5, 2 + 0).draw("blue", 2) c + d Vector(-3 + (-5), ).draw() c - d Vector(-3 - (-5), -8-4).draw("ff8888") 42

44 d - c Vector(-5 - (-3), 4 - (-8)).draw("8888ff") a + b + c - d i = a.i + b.i + c.i - d.i j = a.j + b.j + c.j - d.j i = (-3) - (-5) j = (-8) - 4 Vector(i, j).draw("88ff88") odota klikkausta koord.waitforclick() F.2 Tehtävä 2 from vectors import * alusta koordinaatisto koord = CoordinateSystem() koord.setaxes(-20, 20,-30, 20) a = Vector(5,0) b = Vector(2,2) c = Vector(-3,-8) d = Vector(-5, 4) Piirretään b 5 kertaa for i in range(5): b.draw("red", 10) e = 5b i = 5*b.i j = 5*b.j e = Vector(i, j) e.draw("blue", 2) 43

45 -5b e = Vector(-5*b.i, -5*b.j) e.draw("2266aa") 2c + 3d Vector(2*c.i + 3*d.i, 2*c.j + 3*d.j).draw("red") 2(c - d) i = 2*(c.i - d.i) j = 2*(c.j - d.j) Vector(i, j).draw("green") odota klikkausta koord.waitforclick() F.3 Tehtävä 3 from vectors import * alusta koordinaatisto koord = CoordinateSystem() koord.setaxes(-20, 20,-20, 20) Vektori "peli" import random luodaan nollavektori jonka komponentteja muunnellaan myöhemmin v = Vector(0,0) x, y = 0, 0 44

46 running = True countdown = 1000 usefriction = True kitkakerroin = kulma = random.random() * math.pi * 2 v.i = math.cos(kulma) v.j = math.sin(kulma) while running: x = x + v.i y = y + v.j if x<koord.x0 or x>koord.x1: v.i = -v.i x = x + 2*v.i if y<koord.y0 or y>koord.y1: v.j = -v.j y = y + 2*v.j v.draw() countdown = countdown - 1 if countdown < 0 or (v.i*v.i+v.j*v.j)<.01: running = False if usefriction: v.i = v.i * (1 - kitkakerroin) v.j = v.j * (1 - kitkakerroin) odota klikkausta koord.waitforclick() F.4 Kotitehtävä 1 from vectors import * alusta koordinaatisto koord = CoordinateSystem() a = Vector(3, -5) ai = Vector(3, 0) aj = Vector(0,-5) a.draw() ai.draw("red") aj.draw("blue") 45

Vektorit Opiskelijan ohjeet

Vektorit Opiskelijan ohjeet Vektorit Opiskelijan ohjeet Ohjelmointipaketti lukioon Työ on tehty osana Helsingin yliopiston kurssia Ohjelmointi matematiikan opetuksessa. Työtä saa vapaasti jakaa eteenpäin, muokata sekä käyttää. Tekijät:

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

Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla (Opettajan ohje)

Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla (Opettajan ohje) Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla (Opettajan ohje) TAVOITTEET Tämän kokonaisuuden tavoitteena on tutustuttaa oppilaat Pythonilla ohjelmointiin ja erityisesti Turtle moduulin

Lisätiedot

Vektoreita GeoGebrassa.

Vektoreita GeoGebrassa. Vektoreita GeoGebrassa 1 Miten GeoGebralla piirretään vektoreita? Työvälineet ja syöttökentän komennot Vektoreiden esittäminen GeoGebrassa on luontevaa: vektorien piirtämiseen on kaksi työvälinettä vektoreita

Lisätiedot

Luento 2: Viivan toteutus

Luento 2: Viivan toteutus Tietokonegrafiikan perusteet T-111.4300 3 op Luento : Viivan toteutus Lauri Savioja 11/07 Primitiivien toteutus / 1 GRAAFISTEN PRIMITIIVIEN TOTEUTUS HUOM! Oletuksena on XY-koordinaatisto Suorien viivojen

Lisätiedot

Smart Board lukion lyhyen matematiikan opetuksessa

Smart Board lukion lyhyen matematiikan opetuksessa Smart Board lukion lyhyen matematiikan opetuksessa Haasteita opettajalle lukion lyhyen matematiikan opetuksessa ovat havainnollistaminen ja riittämätön aika. Oppitunnin aikana opettaja joutuu usein palamaan

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.2.2009 1 / 43 Funktiot Tähän asti esitetyt ohjelmat ovat oleet hyvin lyhyitä. Todellisessa elämässä tarvitaan kuitenkin

Lisätiedot

Yleistä vektoreista GeoGebralla

Yleistä vektoreista GeoGebralla Vektoreita GeoGebralla Vektoreilla voi laskea joko komentopohjaisesti esim. CAS-ikkunassa tai piirtämällä piirtoikkunassa. Ensimmäisen tavan etuna on, että laskujen tueksi muodostuu kuva. Tästä on varmasti

Lisätiedot

Racket ohjelmointia II. Tiina Partanen 2015

Racket ohjelmointia II. Tiina Partanen 2015 Racket ohjelmointia II Tiina Partanen 2015 Sisältö 1) Peli I Yksinkertainen peli, jossa kerätään kohteita ja väistellään vaaroja Pitkälle viety koodi, johon täydennetään vain puuttuvat palat Ei tarvita

Lisätiedot

Hannu Mäkiö. kertolasku * jakolasku / potenssiin korotus ^ Syöte Geogebran vastaus

Hannu Mäkiö. kertolasku * jakolasku / potenssiin korotus ^ Syöte Geogebran vastaus Perusohjeita, symbolista laskentaa Geogebralla Kielen vaihtaminen. Jos Geogebrasi kieli on vielä englanti, niin muuta se Options välilehdestä kohdasta Language suomeksi (finnish). Esittelen tässä muutaman

Lisätiedot

4.1 Kaksi pistettä määrää suoran

4.1 Kaksi pistettä määrää suoran 4.1 Kaksi pistettä määrää suoran Kerrataan aluksi kurssin MAA1 tietoja. Geometrisesti on selvää, että tason suora on täysin määrätty, kun tunnetaan sen kaksi pistettä. Joskus voi tulla vastaan tilanne,

Lisätiedot

Tekijä Pitkä matematiikka

Tekijä Pitkä matematiikka K1 Tekijä Pitkä matematiikka 5 7..017 a) 1 1 + 1 = 4 + 1 = 3 = 3 4 4 4 4 4 4 b) 1 1 1 = 4 6 3 = 5 = 5 3 4 1 1 1 1 1 K a) Koska 3 = 9 < 10, niin 3 10 < 0. 3 10 = (3 10 ) = 10 3 b) Koska π 3,14, niin π

Lisätiedot

Tasogeometriaa GeoGebran piirtoalue ja työvälineet

Tasogeometriaa GeoGebran piirtoalue ja työvälineet Tasogeometriaa GeoGebran piirtoalue ja työvälineet Näissä harjoituksissa työskennellään näkymässä Näkymät->Geometria PIIRRÄ (ja MITTAA) a) jana toinen jana, jonka pituus on 3 b) kulma toinen kulma, jonka

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

Diplomi-insinööri- ja arkkitehtikoulutuksen yhteisvalinta 2017 Insinöörivalinnan matematiikan koe , Ratkaisut (Sarja A)

Diplomi-insinööri- ja arkkitehtikoulutuksen yhteisvalinta 2017 Insinöörivalinnan matematiikan koe , Ratkaisut (Sarja A) Diplomi-insinööri- ja arkkitehtikoulutuksen yhteisvalinta 017 Insinöörivalinnan matematiikan koe 30..017, Ratkaisut (Sarja A) 1. a) Lukujen 9, 0, 3 ja x keskiarvo on. Määritä x. (1 p.) b) Mitkä reaaliluvut

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

Jypelin käyttöohjeet» Ruutukentän luominen

Jypelin käyttöohjeet» Ruutukentän luominen Jypelin käyttöohjeet» Ruutukentän luominen Pelissä kentän (Level) voi luoda tekstitiedostoon "piirretyn" mallin mukaisesti. Tällöin puhutaan, että tehdään ns. ruutukenttä, sillä tekstitiedostossa jokainen

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 1.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 1.2.2010 1 / 47 Sijoituksen arvokehitys, koodi def main(): print "Ohjelma laskee sijoituksen arvon kehittymisen."

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

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

x + 1 πx + 2y = 6 2y = 6 x 1 2 πx y = x 1 4 πx Ikkunan pinta-ala on suorakulmion ja puoliympyrän pinta-alojen summa, eli

x + 1 πx + 2y = 6 2y = 6 x 1 2 πx y = x 1 4 πx Ikkunan pinta-ala on suorakulmion ja puoliympyrän pinta-alojen summa, eli BM0A5810 - Differentiaalilaskenta ja sovellukset Harjoitus, Syksy 015 1. a) Funktio f ) = 1) vaihtaa merkkinsä pisteissä = 1, = 0 ja = 1. Lisäksi se on pariton funktio joten voimme laskea vain pinta-alan

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

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

3. Harjoitusjakso I. Vinkkejä ja ohjeita

3. Harjoitusjakso I. Vinkkejä ja ohjeita 3. Harjoitusjakso I Tämä ensimmäinen harjoitusjakso sisältää kaksi perustason (a ja b) ja kaksi edistyneen tason (c ja d) harjoitusta. Kaikki neljä harjoitusta liittyvät geometrisiin konstruktioihin. Perustason

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

GeoGebra-harjoituksia malu-opettajille

GeoGebra-harjoituksia malu-opettajille GeoGebra-harjoituksia malu-opettajille 1. Ohjelman kielen vaihtaminen Mikäli ohjelma ei syystä tai toisesta avaudu toivomallasi kielellä, voit vaihtaa ohjelman käyttöliittymän kielen seuraavasti: 2. Fonttikoon

Lisätiedot

Nopeus, kiihtyvyys ja liikemäärä Vektorit

Nopeus, kiihtyvyys ja liikemäärä Vektorit Nopeus, kiihtyvyys ja liikemäärä Vektorit Luento 2 https://geom.mathstat.helsinki.fi/moodle/course/view.php?id=360 Luennon tavoitteet: Vektorit tutuiksi Koordinaatiston valinta Vauhdin ja nopeuden ero

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

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

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

Vektorilla on suunta ja suuruus. Suunta kertoo minne päin ja suuruus kuinka paljon. Se on siinä.

Vektorilla on suunta ja suuruus. Suunta kertoo minne päin ja suuruus kuinka paljon. Se on siinä. Koska varsinkin toistensa suhteen liikkuvien kappaleiden liikkeen esittäminen suorastaan houkuttelee käyttämään vektoreita, mutta koska ne eivät kaikille ehkä ole kuitenkaan niin tuttuja kuin ansaitsisivat,

Lisätiedot

Tiina Partanen. Koodaamassa Matikantunnilla

Tiina Partanen. Koodaamassa Matikantunnilla Koodaamassa Matikantunnilla Racket-iskuryhmä? Ryhmä Tamperelaisia ja Ylöjärveläisiä opettajia, jotka testaavat ja kehittävät Racket-ohjelmointimateriaalia yläkoulun matematiikan (tietotekniikan ja fysiikan)

Lisätiedot

Scratch ohjeita. Perusteet

Scratch ohjeita. Perusteet Perusteet Scratch ohjeita Scratch on graafinen ohjelmointiympäristö koodauksen opetteluun. Se soveltuu hyvin alakouluista yläkouluunkin asti, sillä Scratchin käyttömahdollisuudet ovat monipuoliset. Scratch

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

Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus

Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus 2 7.2.2013 1. Matematiikan lukiokurssissa on esitetty, että ylöspäin aukeavan paraabelin f(x) = ax 2 +bx+c,a > 0,minimikohtasaadaan,kunf

Lisätiedot

Geogebra -koulutus. Ohjelmistojen pedagoginen hyödyntäminen

Geogebra -koulutus. Ohjelmistojen pedagoginen hyödyntäminen Geogebra -koulutus Ohjelmistojen pedagoginen hyödyntäminen Geogebra Ilmainen dynaaminen matematiikkaohjelmisto osoitteessa http://www.geogebra.org Geogebra-sovellusversion voi asentaa tietokoneilla ja

Lisätiedot

Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus

Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus Tampereen yliopisto Tietokonegrafiikka 201 Tietojenkäsittelytiede Harjoitus 6 1..201 1. Tarkastellaan Gouraudin sävytysmallia. Olkoon annettuna kolmio ABC, missä A = (0,0,0), B = (2,0,0) ja C = (1,2,0)

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

Trigonometriaa ja solve-komento GeoGebralla

Trigonometriaa ja solve-komento GeoGebralla Trigonometriaa ja solve-komento GeoGebralla Valitse yläreunasta Näytä-valikosta CAS ja Piirtoalue. CAS-on laskinohjelma, piirtoalueen avulla saat kuviot näkyville tarvittaessa. Harjoitellaan ensiksi CAS-ikkunan

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

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

Ohjelmoinnin peruskurssi Y1

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

Lisätiedot

BM20A5800 Funktiot, lineaarialgebra ja vektorit Harjoitus 4, Syksy 2016

BM20A5800 Funktiot, lineaarialgebra ja vektorit Harjoitus 4, Syksy 2016 BM20A5800 Funktiot, lineaarialgebra ja vektorit Harjoitus 4, Syksy 2016 1. Hahmottele karkeasti funktion f : R R 2 piirtämällä sen arvoja muutamilla eri muuttujan arvoilla kaksiulotteiseen koordinaatistoon

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

OHJELMOINTIA MONIPUOLISESTI MATEMATIIKAN OPETUKSESSA LUMA-PÄIVÄT, TAMPERE

OHJELMOINTIA MONIPUOLISESTI MATEMATIIKAN OPETUKSESSA LUMA-PÄIVÄT, TAMPERE OHJELMOINTIA MONIPUOLISESTI MATEMATIIKAN OPETUKSESSA LUMA-PÄIVÄT, TAMPERE Tuomo Riekkinen Pyhäselän koulu, Joensuu MIKSI OHJELMOINTIA MATEMATIIKKAAN? Joensuun kaupunki päätti hankkia kaikille 7. luokkalaisille

Lisätiedot

2 Pistejoukko koordinaatistossa

2 Pistejoukko koordinaatistossa Pistejoukko koordinaatistossa Ennakkotehtävät 1. a) Esimerkiksi: b) Pisteet sijaitsevat pystysuoralla suoralla, joka leikkaa x-akselin kohdassa x =. c) Yhtälö on x =. d) Sijoitetaan joitain ehdon toteuttavia

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

6. Harjoitusjakso II. Vinkkejä ja ohjeita

6. Harjoitusjakso II. Vinkkejä ja ohjeita 6. Harjoitusjakso II Seuraavaksi harjoitellaan algebrallisten syötteiden, komentojen ja funktioiden käyttöä GeoGebrassa. Tarjolla on ensimmäisen harjoittelujakson tapaan kahden tasoisia harjoituksia: perustaso

Lisätiedot

Oppimateriaali oppilaalle ja opettajalle : GeoGebra oppilaan työkaluna ylioppilaskirjoituksissa 2016 versio 0.8

Oppimateriaali oppilaalle ja opettajalle : GeoGebra oppilaan työkaluna ylioppilaskirjoituksissa 2016 versio 0.8 Oppimateriaali oppilaalle ja opettajalle : GeoGebra oppilaan työkaluna ylioppilaskirjoituksissa 2016 versio 0.8 Piirtoalue ja algebraikkuna Piirtoalueelle piirretään työvälinepalkista löytyvillä työvälineillä

Lisätiedot

= 6, Nm 2 /kg kg 71kg (1, m) N. = 6, Nm 2 /kg 2 7, kg 71kg (3, m) N

= 6, Nm 2 /kg kg 71kg (1, m) N. = 6, Nm 2 /kg 2 7, kg 71kg (3, m) N t. 1 Auringon ja kuun kohdistamat painovoimat voidaan saada hyvin tarkasti laksettua Newtonin painovoimalailla, koska ne ovat pallon muotoisia. Junalle sillä saadaan selville suuruusluokka, joka riittää

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

TYÖPAJA 1: Tasogeometriaa GeoGebran piirtoalue ja työvälineet

TYÖPAJA 1: Tasogeometriaa GeoGebran piirtoalue ja työvälineet TYÖPAJA 1: Tasogeometriaa GeoGebran piirtoalue ja työvälineet Näissä harjoituksissa työskennellään näkymässä Näkymät->Geometria PIIRRÄ a) jana, jonka pituus on 3 b) kulma, jonka suuruus on 45 astetta c)

Lisätiedot

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

C-ohjelmoinnin peruskurssi. Pasi Sarolahti C! C-ohjelmoinnin peruskurssi Pasi Sarolahti Mitä haluan oppia C-kurssilla? ja miksi? Tutustu lähimpään naapuriin Keskustelkaa miksi halusitte / jouduitte tulemaan kurssille 3 minuuttia è kootaan vastauksia

Lisätiedot

Octave-opas. Mikä on Octave ja miksi? Asennus

Octave-opas. Mikä on Octave ja miksi? Asennus Octave-opas Mikä on Octave ja miksi? Asennus Käynnistys ja käyttöliittymä Komennot tiedostojen hallintaan SciTE-editor.m-tiedostot Ohjeita muualla Mikä on Octave ja miksi? Octave on numeeriseen laskentaan

Lisätiedot

MAA4 Abittikokeen vastaukset ja perusteluja 1. Määritä kuvassa olevien suorien s ja t yhtälöt. Suoran s yhtälö on = ja suoran t yhtälö on = + 2. Onko väittämä oikein vai väärin? 2.1 Suorat =5 +2 ja =5

Lisätiedot

Sen jälkeen Microsoft Office ja sen alta löytyy ohjelmat. Ensin käynnistä-valikosta kaikki ohjelmat

Sen jälkeen Microsoft Office ja sen alta löytyy ohjelmat. Ensin käynnistä-valikosta kaikki ohjelmat Microsoft Office 2010 löytyy tietokoneen käynnistävalikosta aivan kuin kaikki muutkin tietokoneelle asennetut ohjelmat. Microsoft kansion sisältä löytyy toimisto-ohjelmistopakettiin kuuluvat eri ohjelmat,

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

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2 TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos TKT-3200 Tietokonetekniikka I Harjoitustyö 4: Cache, osa 2.. 2010 Ryhmä Nimi Op.num. 1 Valmistautuminen Cache-työn toisessa osassa

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

a) Sievennä lauseke 1+x , kun x 0jax 1. b) Aseta luvut 2, 5 suuruusjärjestykseen ja perustele vastauksesi. 3 3 ja

a) Sievennä lauseke 1+x , kun x 0jax 1. b) Aseta luvut 2, 5 suuruusjärjestykseen ja perustele vastauksesi. 3 3 ja 1 YLIOPPILASTUTKINTO- LAUTAKUNTA 1.10.2018 MATEMATIIKAN KOE PITKÄ OPPIMÄÄRÄ A-osa Ratkaise kaikki tämän osan tehtävät 1 4. Tehtävät arvostellaan pistein 0 6. Kunkin tehtävän ratkaisu kirjoitetaan tehtävän

Lisätiedot

PRELIMINÄÄRIKOE PITKÄ MATEMATIIKKA 9.2.2011

PRELIMINÄÄRIKOE PITKÄ MATEMATIIKKA 9.2.2011 PRELIMINÄÄRIKOE PITKÄ MATEMATIIKKA 9..0 Kokeessa saa vastata enintään kymmeneen tehtävään.. Sievennä a) 9 x x 6x + 9, b) 5 9 009 a a, c) log 7 + lne 7. Muovailuvahasta tehty säännöllinen tetraedri muovataan

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

1. Olkoot vektorit a, b ja c seuraavasti määritelty: a) Määritä vektori. sekä laske sen pituus.

1. Olkoot vektorit a, b ja c seuraavasti määritelty: a) Määritä vektori. sekä laske sen pituus. Matematiikan kurssikoe, Maa4 Vektorit RATKAISUT Sievin lukio Keskiviikko 12.4.2017 VASTAA YHTEENSÄ VIITEEN TEHTÄVÄÄN! MAOL JA LASKIN/LAS- KINOHJELMAT OVAT SALLITTUJA! 1. Olkoot vektorit a, b ja c seuraavasti

Lisätiedot

POHDIN - projekti. Funktio. Vektoriarvoinen funktio

POHDIN - projekti. Funktio. Vektoriarvoinen funktio POHDIN - projekti Funktio Funktio f joukosta A joukkoon B tarkoittaa sääntöä, joka liittää jokaiseen joukon A alkioon jonkin alkion joukosta B. Yleensä merkitään f : A B. Usein käytetään sanaa kuvaus synonyymina

Lisätiedot

Ensikosketus ohjelmointiin

Ensikosketus ohjelmointiin Ensikosketus ohjelmointiin Tällä tunnilla luodaan ensimmäinen oma ohjelmamme. Tähän hyödynnetään Touch Develop -ympäristön kilpikonnaohjelmointikirjastoa. Tutoriaalissa opitaan kilpikonnahahmoa ruudulla

Lisätiedot

Tekijä MAA2 Polynomifunktiot ja -yhtälöt = Vastaus a)

Tekijä MAA2 Polynomifunktiot ja -yhtälöt = Vastaus a) K1 a) Tekijä MAA Polynomifunktiot ja -yhtälöt 6.8.016 ( + + ) + ( ) = + + + = + + + = + 4 b) 4 4 ( 5 + ) ( 5 + 1) = 5 + + 5 + 1 4 = + + + 4 = + 5 5 1 1 Vastaus a) 4 + b) 4 + 1 K a) f ( ) = + 1 f () = +

Lisätiedot

LUMA Suomi kehittämisohjelma 8.10.2015 14:53 Joustava yhtälönratkaisu Matemaattinen Ohjelmointi ja Yhtälönratkaisu

LUMA Suomi kehittämisohjelma 8.10.2015 14:53 Joustava yhtälönratkaisu Matemaattinen Ohjelmointi ja Yhtälönratkaisu (MOJYR) Sisällysluettelo (MOJYR)... 1 1. Taustaa... 1 2. MOJYR-ohjelma... 2 2.1 Ohjelman asentaminen... 2 2.2 Käyttöliittymä... 2 3. Puumalli... 3 4. MOJYR-ohjelman ominaisuudet... 5 4.1 Yhtälön muodostaminen...

Lisätiedot

Derivaatan sovellukset (ääriarvotehtävät ym.)

Derivaatan sovellukset (ääriarvotehtävät ym.) Derivaatan sovellukset (ääriarvotehtävät ym.) Tehtävät: 1. Tutki derivaatan avulla funktion f kulkua. a) f(x) = x 4x b) f(x) = x + 6x + 11 c) f(x) = x4 4 x3 + 4 d) f(x) = x 3 6x + 1x + 3. Määritä rationaalifunktion

Lisätiedot

Tekijä Pitkä matematiikka Pisteen (x, y) etäisyys pisteestä (0, 2) on ( x 0) Pisteen (x, y) etäisyys x-akselista, eli suorasta y = 0 on y.

Tekijä Pitkä matematiikka Pisteen (x, y) etäisyys pisteestä (0, 2) on ( x 0) Pisteen (x, y) etäisyys x-akselista, eli suorasta y = 0 on y. Tekijä Pitkä matematiikka 5 7..017 37 Pisteen (x, y) etäisyys pisteestä (0, ) on ( x 0) + ( y ). Pisteen (x, y) etäisyys x-akselista, eli suorasta y = 0 on y. Merkitään etäisyydet yhtä suuriksi ja ratkaistaan

Lisätiedot

Pong-peli, vaihe Aliohjelmakutsu laskureita varten. 2. Laskurin luominen. Muilla kielillä: English Suomi

Pong-peli, vaihe Aliohjelmakutsu laskureita varten. 2. Laskurin luominen. Muilla kielillä: English Suomi Muilla kielillä: English Suomi Pong-peli, vaihe 7 Tässä vaiheessa lisäämme peliin pistelaskun. Pong-pelissä pelaaja saa pisteen kun pallo ohittaa toisen pelaajan mailan. 1. Aliohjelmakutsu laskureita varten

Lisätiedot

Pong-peli, vaihe Koordinaatistosta. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 2/7. Tämän vaiheen aikana

Pong-peli, vaihe Koordinaatistosta. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 2/7. Tämän vaiheen aikana Muilla kielillä: English Suomi Pong-peli, vaihe 2 Tämä on Pong-pelin tutoriaalin osa 2/7. Tämän vaiheen aikana Laitetaan pallo liikkeelle Tehdään kentälle reunat Vaihdetaan kentän taustaväri Zoomataan

Lisätiedot

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

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 6: Python Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 6: Python 15. helmikuuta 2009 Merkkijonot Yleistä Käsittely Muotoiltu tulostus Tiedostot Käsittely Lukeminen Kirjoittaminen Modulit Käyttö Seuraava luento

Lisätiedot

Matikkaa KA1-kurssilaisille, osa 3: suoran piirtäminen koordinaatistoon

Matikkaa KA1-kurssilaisille, osa 3: suoran piirtäminen koordinaatistoon Matikkaa KA1-kurssilaisille, osa 3: suoran piirtäminen koordinaatistoon KA1-kurssi on ehkä mahdollista läpäistä, vaikkei osaisikaan piirtää suoraa yhtälön perusteella. Mutta muut kansiksen kurssit, no

Lisätiedot

Ratkaisut vuosien tehtäviin

Ratkaisut vuosien tehtäviin Ratkaisut vuosien 1978 1987 tehtäviin Kaikki tehtävät ovat pitkän matematiikan kokeista. Eräissä tehtävissä on kaksi alakohtaa; ne olivat kokelaalle vaihtoehtoisia. 1978 Osoita, ettei mikään käyrän y 2

Lisätiedot

Vanhoja koetehtäviä. Analyyttinen geometria 2016

Vanhoja koetehtäviä. Analyyttinen geometria 2016 Vanhoja koetehtäviä Analyyttinen geometria 016 1. Määritä luvun a arvo, kun piste (,3) on käyrällä a(3x + a) = (y - 1). Suora L kulkee pisteen (5,1) kautta ja on kohtisuorassa suoraa 6x + 7y - 19 = 0 vastaan.

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

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

MATEMATIIKAN KOE PITKÄ OPPIMÄÄRÄ Merkitään f(x) =x 3 x. Laske a) f( 2), b) f (3) ja c) YLIOPPILASTUTKINTO- LAUTAKUNTA

MATEMATIIKAN KOE PITKÄ OPPIMÄÄRÄ Merkitään f(x) =x 3 x. Laske a) f( 2), b) f (3) ja c) YLIOPPILASTUTKINTO- LAUTAKUNTA 1 YLIOPPILASTUTKINTO- LAUTAKUNTA 26.3.2018 MATEMATIIKAN KOE PITKÄ OPPIMÄÄRÄ A-osa Ratkaise kaikki tämän osan tehtävät 1 4. Tehtävät arvostellaan pistein 0 6. Kunkin tehtävän ratkaisu kirjoitetaan tehtävän

Lisätiedot

ELM GROUP 04. Teemu Laakso Henrik Talarmo

ELM GROUP 04. Teemu Laakso Henrik Talarmo ELM GROUP 04 Teemu Laakso Henrik Talarmo 23. marraskuuta 2017 Sisältö 1 Johdanto 1 2 Ominaisuuksia 2 2.1 Muuttujat ja tietorakenteet...................... 2 2.2 Funktiot................................

Lisätiedot

MS-A0202 Differentiaali- ja integraalilaskenta 2 (SCI) Luento 1: Parametrisoidut käyrät ja kaarenpituus

MS-A0202 Differentiaali- ja integraalilaskenta 2 (SCI) Luento 1: Parametrisoidut käyrät ja kaarenpituus MS-A0202 Differentiaali- ja integraalilaskenta 2 (SCI) Luento 1: Parametrisoidut käyrät ja kaarenpituus Antti Rasila Aalto-yliopisto Syksy 2015 Antti Rasila (Aalto-yliopisto) MS-A0202 Syksy 2015 1 / 18

Lisätiedot

KJR-C1001 Statiikka ja dynamiikka. Luento Susanna Hurme

KJR-C1001 Statiikka ja dynamiikka. Luento Susanna Hurme KJR-C1001 Statiikka ja dynamiikka Luento 23.2.2016 Susanna Hurme Tervetuloa kurssille! Mitä on statiikka? Mitä on dynamiikka? Miksi niitä opiskellaan? Päivän aihe: Voiman käsite ja partikkelin tasapaino

Lisätiedot

JAVA on ohjelmointikieli, mikä on kieliopiltaan hyvin samankaltainen, jopa identtinen mm. C++

JAVA on ohjelmointikieli, mikä on kieliopiltaan hyvin samankaltainen, jopa identtinen mm. C++ JAVA alkeet JAVA on ohjelmointikieli, mikä on kieliopiltaan hyvin samankaltainen, jopa identtinen mm. C++ ja Javascriptin kanssa. Huom! JAVA ja JavaScript eivät silti ole sama asia, eivätkä edes sukulaiskieliä.

Lisätiedot

Talousmatematiikan perusteet: Luento 9

Talousmatematiikan perusteet: Luento 9 Talousmatematiikan perusteet: Luento 9 Vektorien peruslaskutoimitukset Lineaarinen riippumattomuus Vektorien sisätulo ja pituus Vektorien välinen kulma Motivointi Tähän asti olemme tarkastelleet yhden

Lisätiedot

A B = (1, q, q 2 ) (2, 0, 2) = 2 2q q 2 = 0 q 2 = 1 q = ±1 A(±1) = (1, ±1, 1) A(1) A( 1) = (1, 1, 1) (1, 1, 1) = A( 1) A(1) A( 1) = 1

A B = (1, q, q 2 ) (2, 0, 2) = 2 2q q 2 = 0 q 2 = 1 q = ±1 A(±1) = (1, ±1, 1) A(1) A( 1) = (1, 1, 1) (1, 1, 1) = A( 1) A(1) A( 1) = 1 Mapu I Viikko 4 tehtävä malli Millä q:n arvoilla vektori A(q) (, q, q ) on kohtisuora vektorin B (, 0, ) kanssa? Ovatko A:n eri ratkaisut keskenään kohtisuoria? Jos eivät, määrää niiden välinen kulma!

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta Eksponenttifuntio Palautetaan mieliin, että Neperin luvulle e pätee: e ) n n n ) n n n n n ) n. Tästä määritelmästä seuraa, että eksponenttifunktio e x voidaan määrittää

Lisätiedot

763306A JOHDATUS SUHTEELLISUUSTEORIAAN 2 Ratkaisut 2 Kevät 2017

763306A JOHDATUS SUHTEELLISUUSTEORIAAN 2 Ratkaisut 2 Kevät 2017 763306A JOHDATUS SUHTEELLISUUSTEORIAAN 2 Ratkaisut 2 Kevät 207. Nelinopeus ympyräliikkeessä On siis annettu kappaleen paikkaa kuvaava nelivektori X x µ : Nelinopeus U u µ on määritelty kaavalla x µ (ct,

Lisätiedot

3 TOISEN ASTEEN POLYNOMIFUNKTIO

3 TOISEN ASTEEN POLYNOMIFUNKTIO 3 TOISEN ASTEEN POLYNOMIFUNKTIO POHDITTAVAA 1. Kuvasta voidaan arvioida, että frisbeegolfkiekko käy noin 9 metrin korkeudella ja se lentää noin 40 metrin päähän. Vastaus: Frisbeegolfkiekko käy n. 9 m:n

Lisätiedot

Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista.

Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista. 1 Luokka Murtoluku uudelleen Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista. Sievennettäessä tarvitaan osoittajan ja nimittäjän suurin yhteinen tekijä (syt).

Lisätiedot

MAB3 - Harjoitustehtävien ratkaisut:

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

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 8.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 8.2.2010 1 / 38 Debuggeri Tyypillinen tilanne: ohjelma on kirjoitettu, Python-tulkki ei valita virheistä, mutta ohjelma

Lisätiedot

YH1b: Office365 II, verkko-opiskelu

YH1b: Office365 II, verkko-opiskelu YH1b: Office365 II, verkko-opiskelu Huom. Suosittelemme tämän harjoituksen 1b tekemistä mikroluokassa, jotta yliopiston mikroluokat tulevat edes hieman tutuiksi. Harjoituksen tavoitteet Harjoituksessa

Lisätiedot

9. Harjoitusjakso III

9. Harjoitusjakso III 9. Harjoitusjakso III Seuraavaksi harjoitellaan kuvien ja tekstin lisäämistä piirtoalueelle. Tarjolla on aikaisempien harjoittelujaksojen tapaan kahden tasoisia harjoituksia: perustaso ja edistynyt taso.

Lisätiedot

Ryhmäharjoitus III: Mitä on koodaaminen? A. TIEY4 Tietotekniikkataidot, kevät 2017 Tehdään ryhmäharjoitustunnilla 20.3.

Ryhmäharjoitus III: Mitä on koodaaminen? A. TIEY4 Tietotekniikkataidot, kevät 2017 Tehdään ryhmäharjoitustunnilla 20.3. Ryhmäharjoitus III: Mitä on koodaaminen? A TIEY4 Tietotekniikkataidot, kevät 2017 Tehdään ryhmäharjoitustunnilla 20.3. Ryhmäharjoitus Johdanto (10 min) Tehtävä (60 min) Palaute (10 min) Koodaaminen - Miksi

Lisätiedot

Paraabeli suuntaisia suoria.

Paraabeli suuntaisia suoria. 15.5.017 Paraabeli Määritelmä, Paraabeli: Paraabeli on tason niiden pisteiden ura, jotka ovat yhtä etäällä annetusta suorasta, johtosuorasta ja sen ulkopuolella olevasta pisteestä, polttopisteestä. Esimerkki

Lisätiedot