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

Avaa palautelomake klikkaamalla tästä

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!

# tehtava_mita_tulostaa_k1
# tehtava_mita_tulostaa_k2
# tehtava_mita_tulostaa_k3
# tehtava_mita_tulostaa_k4a
# tehtava_mita_tulostaa_k4b

T2. Tietojen tulostaminen (1 p.)

Tee (a)- ja (b)-kohdat.

Arviointi: (a)- ja (b)-kohdasta saa 0,5 pistettä ohjelman oikeasta toiminnasta.

# tehtava_tietojen_tulostaminen_a
# tehtava_tietojen_tulostaminen_b

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

# tehtava_mita_numeroa_tulostaa_k1

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.

# tehtava_mita_numeroa_tulostaa_k2

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.

# tehtava_mita_numeroa_tulostaa_k3

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!

14 Sep 25 (edited 14 Sep 25)
# tehtava_mita_numeroa_tulostaa_kokeilu
# portaat

T4*. Portaat (1 p.)

Lue ensin monisteesta: 6. Aliohjelmat.

Täydennä alla oleva ohjelma toimimaan koodissa olevan dokumentaation perusteella.

Tuloksen pelissä pitäisi näkyä viisi valkoista neliötä alla olevalla tavalla.

Jos haluat sijainninkin samalla tavalla kuin mallikuvassa, voit lisätä Begin-aliohjelman loppuun

Camera.ZoomToAllObjects(50);

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.

# tehtava_portaat
# tehtava_lumilyhty

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

double b = System.Math.Sqrt(c * c - a * a)

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.

# tehtava_lumilyhty

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

09 Sep 25 (edited 09 Sep 25)
# tehtava_lumilyhty_lisa

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

# tehtava_binaarilukuja_1
# tehtava_binaarilukuja_2
# tehtava_binaarilukuja_3

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

# tehtava_tim_1
# tehtava_tim_2
# tehtava_tim_3
# tehtava_tim_4
# tehtava_tim_5
# tehtava_tim_6

Tämä oli mielestäni hieman epäselkeä, voisi tarkemmin viitata tämän sivun tehtävä 4. ja 5.

Hyvä pointti, korjattu -DZ

11 Sep 25 (edited 11 Sep 25)

V1. Tauno (1 p.)

Tehtävä koostuu kahdesta osatehtävästä, jotka ovat kummatkin 0,5 pisteen arvoisia.

Katso käyttöohje: Tauno

# visu_tauno_summaa_luvut
# visu_tauno_summaa_joka_toinen
# visu_tauno_oppi

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

# visu_ville_t22_26

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.

  1. Mene C-siiven portaiden juurelle.
  2. Kävele kerros ylöspäin.
  3. Jos olet kerroksessa nro 4, mene seuraavaan kohtaan. Muuten, palaa kohtaan 2.
  4. 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.

# bonus_algoritmeja_1
# bonus_algoritmeja_2

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.

# bonus_khan_academy

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.

# bonus_ongelma_tai_idea

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

Gravity = new Vector(/*täydennä 2d-vektorin parametrit...*/);

Vector-luokan dokumentaatio.

ja laita kenttään reunat, etteivät palaset putoile ulos ruudusta.

Level.CreateBorders();

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.

# guru_suorakulmiot

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.

# guru_lumiukot_kuormitus

These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.