Harjoitustehtävät 2
Vinkki: Pidä tehtäviä tehdessäsi aina esillä kynä ja paperia.
Osaamistavoitteet
Tämän harjoitustehtävän päätteeksi
- osaat laskea lausekkeen arvon,
- osaat sijoittaa muuttujaan arvon,
- ymmärrät aliohjelmien perusajatuksen, ja osaat kirjoittaa itse yksinkertaisen aliohjelman,
- muistat, miten kaksi- ja kymmenjärjestelmä liittyvät toisiinsa, ja osaat muuntaa 2-järjestelmän lukuja 10-järjestelmään
T0. Palaute tästä osasta (0,5 p.)
Auta meitä parantamaan tätä kurssia antamalla palautetta tästä kurssin osiosta.
Huom: Vastaa tähän vasta, kun olet valmis tämän harjoitustehtäväkerran tehtävien kanssa
Vastaa alla oleviin kohtiin tämän kurssin osasa käsiteltyjen materiaalien ja tehtävien (luennot, esimerkit, kurssimoniste, harjoitustehtävät) perusteella.
Saat 0,25 pistettä vastaamalla kaikkiin alla oleviin väittämiin.
Kirjoita arvio tällä viikolla käyttämästäsi työmäärästä. Laske työmäärään mukaan kaikki tällä viikolla käyttämäsi aika: lähiopetukseen osallistuminen, oppimateriaalin lukeminen, harjoitustehtävien tekeminen, luentovideon katsominen, tehtävien purkutilaisuuteen osallistuminen ja niin edelleen.
T1. Mitä ohjelma tulostaa? (1 p.)
Lue ensin monisteesta: 7. Muuttujat
Vastaa kysymyksiin 1.1–1.4. Jos haluat vastaamisen jälkeen kokeilla toimintaa Riderissa, täydennä luokka (public class...) pääohjelman ympärille.
Arviointi: Pisteitä saa oikeista vastauksista. Yhteenlaskettu maksimipistemäärä on 1 p. Kysymyskohtaiset pisteet näkyvät kysymysten yhteydessä. Monivalintakysymyksissä vain yksi vastausyritys/kysymys!
T2. Tietojen tulostaminen (1 p.)
Tee (a)- ja (b)-kohdat.
Arviointi: (a)- ja (b)-kohdasta saa 0,5 pistettä ohjelman oikeasta toiminnasta.
T3*. Mitä ohjelma tulostaa? (1 p.)
Lue ensin monisteesta: 7.3.2. Muuttujan arvon muuttaminen
Vastaa kysymyksiin 3.1–3.3.
Arviointi: Pisteitä saa oikeista vastauksista. Yhteenlaskettu maksimipistemäärä on 1 p. Kysymyskohtaiset pisteet näkyvät kysymysten yhteydessä.
Kokeile nyt kirjoittaa yllä oleva koodi kohtaan Tehtävän 3 tarkistuslaatikko (löytyy tämän tehtävän lopussa). Luokka (public class jne.) täytyy itse täydentää pääohjelman ympärille.
Kokeile nyt kirjoittaa yllä oleva koodi kohtaan Tehtävän 3 tarkistuslaatikko (löytyy tämän tehtävän lopussa). Luokka (public class jne.) täytyy itse täydentää pääohjelman ympärille.
C tehtävästä ei tullut jostain syystä automaattisesti pisteistä? Tarkistin vielä Riderista ja summa oli 21.
Summa on tosiaan oikein, mutta kannattaa vielä tarkastaa tulostaako ohjelma lisäksi jotain muuta. -NP
Näin, on. Kysytään siis "mitä tulostuu" eli mitä tulee konsoliin näkyviin kun ohjelma ajetaan? -DZ
Aivan.. Minun moka, pahoittelut!
—T4*. Portaat (1 p.)
Lue ensin monisteesta: 6. Aliohjelmat.
Täydennä alla oleva ohjelma toimimaan koodissa olevan dokumentaation perusteella.
Arviointi: Käytä Set custom points -toimintoa TIMissa. Tee itsearvio pistemäärästäsi ja syötä omat pisteesi väliltä 0-1. Jos teit tehtävän mielestäsi täysin oikein, 1 piste, puoliksi oikein 0.5 pistettä jne.
T5. Lumilyhty (1 p.)
Lue ensin monisteesta: 6. Aliohjelmat.
Aloita ajamalla alla oleva lumiukko-ohjelma. Voit myös viedä ohjelman Rideriin.
Tehtävä: Tehtävä on kaksiosainen. (1) Muuta ohjelma sellaiseksi, että yksittäisen pallon piirtämiseksi on oma aliohjelma PiirraPallo. (2) Muuta ohjelma sellaiseksi, että se piirtää kuusi ympyrää kolmeen riviin siten, että ympyrät juuri koskettavat toisiaan. Alla mallikuva ratkaisusta. Anna ympyröille säteeksi 50.

Vinkki: Piirrä kynällä paperille kolme toisiaan sivuavaa ympyrää ja niiden keskipisteiden muodostama kolmio. Saat laskettua kolmion korkeuden Pythagoraan lauseen avulla . Kaavassa a on pallon säde (kateetti), c on kaksi kertaa pallon säde (hypotenuusa) ja b on etsittävä kolmion korkeus (kateetti).
Niinpä kun haluamme tietää b:n arvon, siirretään a yhtälön toiselle puolelle, , ja otetaan kummastakin puolesta neliöjuuri:
. Koodina tämä olisi
Huomaa että TIMissä on ohjelmarunkoa sen kirjoitusikkunan ulkopuolella. Liitä palautuslaatikkoon pelkkä Begin-aliohjelma.
Arviointi: Käytä Set custom points -toimintoa TIMissa. Tee itsearvio pistemäärästäsi ja syötä omat pisteesi väliltä 0-1. Jos teit tehtävän mielestäsi täysin oikein, 1 piste, puoliksi oikein 0.5 pistettä jne.
En saa tähän Riderissa toimivaa koodia toimimaan? (Edit, tajusin virheen, kiitos avusta.)
Tässä on hieman koodia valmiina - paina "näytä koko koodi". Laita vastaukseen vain luokan sisältö.
—T6. Binäärilukuja (1 p.)
Lue ensin monisteesta: 26. Lukujen esitys tietokoneessa.
Binäärilukujärjestelmässä on kaksi numeroa, nolla ja yksi. Yhtä tällaista arvoa sanotaan bitiksi (bit, binary digit). Vähiten merkitsevä eli viimeisimmäksi kirjoitettu bitti tarkoittaa 10-järjestelmän lukua yksi, toiseksi vähiten merkitsevä bitti lukua kaksi, kolmanneksi vähiten merkitsevä lukumäärää neljä ja niin edelleen aina kakkosen potensseja jatkaen (8, 16, 32, 64, ...). Kokonaisen binääriluvun ilmoittama lukumäärä saadaan kun summataan nämä yksittäisten bittien ilmoittamat lukumäärät toisiinsa. Esimerkiksi binääriluku 1000101 olisi kymmenjärjestelmässä
1*64 + 0*32 + 0*16 + 0*8 + 1*4 + 0*2 + 1*1 == 69
Arviointi: Yhteenlaskettu maksimipistemäärä on 1 p. Kysymyskohtaiset pisteet näkyvät kysymysten yhteydessä.
T7. TIMiin tutustuminen (1 p.)
Tee tehtävät 7.1–7.6.
Arviointi: Yhteenlaskettu maksimipistemäärä on 1 p. Tehtäväkohtaiset pisteet näkyvät tehtävien yhteydessä.
Tämä oli mielestäni hieman epäselkeä, voisi tarkemmin viitata tämän sivun tehtävä 4. ja 5.
Hyvä pointti, korjattu -DZ
—V1. Tauno (1 p.)
Tehtävä koostuu kahdesta osatehtävästä, jotka ovat kummatkin 0,5 pisteen arvoisia.
Katso käyttöohje: Tauno
V2. ViLLE (1 p.)
Tee ViLLEstä tehtävät 2.2-2.6 ja 6.1-6.4. Muodollinen parametri on "turkulaisten kielessä" aliohjelman esittelyrivillä oleva muuttujan nimi (meillä tästä käytetään nimeä parametri), ja ''todellinen parametri'' sille kutsussa sijoitettu arvo (meillä argumentti).
Palauta tehtävä kirjoittamalla alla olevaan tekstilaatikkoon mitä opit ja mitä mieltä olit kerran Ville-tehtävistä ja auttoivatko Ville-tehtävät sinua yhtään. Muutama rivi riittää.
B1. Algoritmeja (1 p.)
Tee kohdat 1 ja 2. Kummastakin max 0.5 pistettä, eli tehtävästä saa yhteensä max 1 p.
Lue ensin: 3. Algoritmit
Johdanto: Algoritmi eli toimintaohje kuvataan usein perättäisinä askelina, joita edetään perättäisesti, tai tarvittaessa toistaen. Sinun pitäisi kirjoittaa tällainen toimintaohje perättäisinä askelina. Esimerkiksi, kuvitteellinen siirtyminen Agoran ala-aulasta työhuoneeseen voitaisiin kuvata seuraavilla askeleilla.
- Mene C-siiven portaiden juurelle.
- Kävele kerros ylöspäin.
- Jos olet kerroksessa nro 4, mene seuraavaan kohtaan. Muuten, palaa kohtaan 2.
- Kävele eteenpäin, kunnes näet huoneen C414.2. Olet perillä.
Arviointi: Käytä Set custom points -toimintoa TIMissa. Tee itsearvio pistemäärästäsi ja syötä omat pisteesi väliltä 0-0.5. Jos teit tehtävän mielestäsi täysin oikein, 0.5 pistettä, puoliksi oikein 0.25 pistettä jne.
B2. Khan Academy (1 p.)
Tee Khan Academyn neljä "luentoa" Intro to Variables, Using Variables, Challenge: Bucktooth Bunny ja More on Variables. Neljännessä tehtävässä (More on Variables) piirrä Winstonille hattu.
Tehtävän vastauksena palauta koodi neljännestä tehtävästä. Kirjoita perään lyhyt oppimispäiväkirja (mitä teit, mitä opit, jäikö jotain epäselvää).
Arviointi: Käytä Set custom points -toimintoa TIMissa. Tee itsearvio pistemäärästäsi ja syötä omat pisteesi väliltä 0-1. Jos teit tehtävän mielestäsi täysin oikein, 1 piste, puoliksi oikein 0.5 pistettä jne.
B3. Ongelma tai idea (1 p.)
Innovoi jokin ongelma/idea jonka voisi ratkaista ohjelmateknisesti/järjestelmällä jossa ohjelmateknisellä ratkaisulla on oma roolinsa. Kirjoita lyhyt selostus ongelmasta ja sen ratkaisuideasta. Muista että idea voi olla hyvinkin lennokas (esimerkiksi Microsoftin opiskelijakilpailun voittajasovellus auttoi säästämään 50 % kasteluvettä Australiassa). Saat merkitä itsellesi 1 pisteen, jos idea on sinunkin mielestäsi OIKEASTI hyvä. Tekijänoikeus säilyy keksijällä. AMK:ssa tällaisella kyselyllä syntyi useita jatkokehitykseen menneitä innovaatioita.
Arviointi: Käytä Set custom points -toimintoa TIMissa. Tee itsearvio pistemäärästäsi ja syötä omat pisteesi väliltä 0-1. Jos teit tehtävän mielestäsi täysin oikein, 1 piste, puoliksi oikein 0.5 pistettä jne.
G1-2. Suorakulmiot (2 p.)
Tee Jypeli-fysiikkapeli nimeltä SuorakulmiotFysiikalla.cs. Tee siihen aliohjelma nimeltä PiirraSuorakulmio(), joka lisää ruudulle (peliin) PhysicsObject-tyyppisen suorakulmion. Tee aliohjelma siten, että se ottaa parametrina suorakaiteen koordinaatit ja mitat. Laita peliin vielä painovoima seuraavasti (2d-vektori ottaa vastaan kaksi koordinaattia) ja sijoita se Begin()-aliohjelmaan
ja laita kenttään reunat, etteivät palaset putoile ulos ruudusta.
Lisää kentälle 100 eri kokoista suorakaidetta. Vinkki: for-silmukka ja RandomGen.
Huomaa, että tämä tehtävä on tehtävä Riderissa. TIMissä näkyy pelistä vain ensimmäinen frame ilman minkäänlaista liikettä.
Arviointi: Käytä Set custom points -toimintoa TIMissa. Tee itsearvio pistemäärästäsi ja syötä omat pisteesi väliltä 0-1. Jos teit tehtävän mielestäsi täysin oikein, 2 pistettä, puoliksi oikein 1 piste jne.
G3-4. Erilaisia lumiukkoja (2 p.)
Tee tarvittavat aliohjelmat jotta voit tehdä aliohjelmakutsun TeeLumiukko kaikilla seuraavilla tavoilla. Ratkaisussa ei saa olla toistoa koodissa, eli esimerkiksi pallon luontikoodia ei saa olla monessa aliohjelmassa.
Kun olet mielestäsi valmis, laita itse pisteesi "Set custom points"-toiminnolla, enintään 2.0 pistettä.
TeeLumiukko(5); // tekee 5-palloisen lumiukon origoon, väri valkoinen
TeeLumiukko(3, 100, 100); // 3 palloa, alin pallo x=100, y=100, väri valkoinen
TeeLumiukko(4, -100, -100, Color.Green); // 4 palloa, alin pallo x=-100, y=-100, väri vihreäVinkki/ohje: Aliohjelman kuormittaminen
Arviointi: Käytä Set custom points -toimintoa TIMissa. Tee itsearvio pistemäärästäsi ja syötä omat pisteesi väliltä 0-1. Jos teit tehtävän mielestäsi täysin oikein, 2 pistettä, puoliksi oikein 1 piste jne.
These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.
