Demo 3
Return demo tasks before Monday at 11:59.
Huomautus: Lopulliset demotehtävät julkaistaan aina tasan viikkoa ennen deadlinea. Demotehtäviin saattaa ennen sitä tulla muutoksia tai korjauksia. Tehtäviä voi tulla lisää tai tehtäviä voi poistua. Tehdessäsi tehtäviä ennen virallista julkaisua, ota tekemästäsi koodista aina varmuuskopio omalle tietokoneellesi.
Palauta ma 1.2. klo 11:59 mennessä.
Tästä demosta eteenpäin ohjelmointitehtävät tehdään Visual Studiolla. Osaathan luoda solutionin ja projektin sekä lisätä uuden projektin olemassa olevaan solutioniin? Kertaa tarvittaessa ohjeet Windowsille ja macOS:lle. Pyydä apua jos et ole vielä tähän mennessä saanut asennettua kurssin työkaluja.
Huomio ohjauksissa kävijät: Ota ohjauksiin aina kynä ja paperia!
Learning Goals
After these exercises you should
- be able to do a function, that takes a parameter and returns a value
- understand what function overload means
- be able to name variables in a meaningful way
- be able to do calculations in the integers of the 2 system and interpret the results of the invoices
Your time usage this week (0.5 p.)
Submitting time usage grants 0.5 points. Use the Set Custom Points feature to set your points. This includes all course-related work during the week (lectures, reading the course material, completing the exercises etc.)
Osaamistavoitteet
Tämän demokerran päätteeksi
- osaat tehdä funktion, joka ottaa vastaan parametrin ja palauttaa arvon
- ymmärrät, mitä tarkoittaa funktion kuormittaminen (function overload)
- osaat nimetä muuttujat ja aliohjelmat kuvaavasti
Ajankäyttösi tällä viikolla (0.5 p.)
Työtuntien kirjaamisesta saa 0.5 demopistettä. Aseta pisteesi Set Custom Points -toiminnolla.
Demokerran päätteeksi kirjoita arvio tällä viikolla käyttämästäsi työmäärästä. Laske työmäärään mukaan kaikki tällä viikolla (kalenteriviikko, ma klo 00:00 -- su klo 23:59) käyttämäsi aika: lähiopetukseen osallistuminen, oppimateriaalin lukeminen, demotehtävien tekeminen, luentovideon katsominen, demojen purkutilaisuuteen osallistuminen (maanantaina) ja niin edelleen. Voit päivittää lukua viikon edetessä, se voi helpottaa arvion tekemistä. Huom! Siis tähän ei laiteta kurssin alusta kaikkia tunteja yhteensä, vaan vain tämän viikon tunnit.
Verbal tasks
Task 1
M: 7. Variables. How would you declare (type and name of) the variables for the following situations. Also give an example of how you would set a value to the variable. Write each point in their own lines.
a) Length of the commute by bicycle
b) Number of the credits done
c) The size of the degree (bachelor/master) in credits
d) Number of demos done
e) The first letter of a book
f) The time of the winner of a 100 meter run
g) 3 month euribor-interest
h) Euro – Markka (old Finnish currency) exchange rate
a) Työmatkan pituus polkupyörällä
b) Suoritettujen opintopisteiden määrä
c) Koko tutkinnon laajuus opintopisteissä
d) Tehtyjen demojen lukumäärä
e) Kirjan ensimmäinen kirjain
f) Sadan metrin juoksun voittajan aika.
g) 3 kuukauden euribor-korko
h) euron markka-muuntokerroin
Arviointi: Käytä Set custom points -toimintoa. 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.
Task 2*
M: 7.Variables. Criticize the names and types of the following variables. Are they correct syntax wise? And are they good choices:
int kiloPriceOfStrawberries;
double default;
char myName;
double meterMm;
double hoursInADay;
real speed;
boolean DistanceOfTheSun;
ulong monthAverageTemperature;
int cats, 2_chikens, threeDogs;
int i,j,l,I;
Arviointi: Käytä Set custom points -toimintoa. 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.
Console Application -tasks
Open Visual Studio, start a new project and choose C# \(\rightarrow\) Jypeli \(\rightarrow\) ConsoleMain
(or C# \(\rightarrow\) Console application if you did not istall Jypeli.) Name your project as Muunnos
, and name your class also as Muunnos.cs
, if Visual studio does not do that automaticly. Write your code in Muunnos.cs
-class.
Paina tehtävissä olevien vastauslaatikoiden alareunassa olevaa Näytä koko koodi
linkkiä, niin näet miten funktiota kutsutaan.
Huom! Saadaksesi täydet pisteet tehtävissä 3-4 sinun täytyy tehdä seuraavat asiat:
- Aja koodi (0.25 p). Tämä onnistuu painamalla vastauslaatikon alla olevaa
Aja
-painiketta. - Aja testit painamalla
Test
-painiketta (0.25 p.). Testien tehtävänä on varmistaa, että funktio antaa oikean paluuarvon kullakin annetulla testisyötteellä. Tässä tehtävässä testit on siis kirjoitettu valmiiksi, mutta jatkoa varten Comtest-testien kirjoittamiseen itse löydät mallia monisteesta.
Jos/kun teet tehtävän Visual Studiossa, niin kopioi vastauslaatikkoon vain funktion esittelyrivi ja toteutus. Pääohjelma, dokumentaatiot ja testit ovat jo TIM-versiossa valmiiksi mukana. Vaatimus ja oletus on kuitenkin, että kirjoitat itse dokumentaatiot Visual Studiossa, vaikka niitä ei nyt näihin vastauslaatikoihin laitetakaan.
Task 3*
M: 9. Return value of the subclass.
Read also from the courses Wiki page about writing subroutines. Check from the internet how Fahrenheit are converted into Celsius. However don’t Copy/Paste anything from there because the symbols like minus sign might look correct but is in fact some other similar sign. In C# regardless of country a dot (.) is always used as a decimal separator instead of a comma (,). Write a subroutine (function) which can be called, for example to convert 13°F into Celsius, as follows:
double temperatureC;
temperatureC = FahrenheitToCelsius(13);
Arviointi: Koodin ajamisesta max 0.25 p., onnistuneesti ajetuista testeistä 0.25 p. Testit on kirjoitettu ennalta ja sisällytetty tehtävään.
Tehtävä 3b* (0.5 p.)
Tee funktio JaaKahdella
joka ottaa parametrina int
-tyyppisen kokonaisluvun ja palauttaa kyseisen luvun jaettuna kahdella.
Arviointi: Koodin ajamisesta max 0.25 p., onnistuneesti ajetuista testeistä 0.25 p. Testit on kirjoitettu ennalta ja sisällytetty tehtävään.
Vinkki: Muista int
-kokonaislukujen jakamiseen liittyvä erikoisuus, ks. M. 7.8.1.
Tehtävä 4a (0.5 p.)
Fahrenheit-asteet (\(F\)) muunnetaan celsius-asteiksi (\(C\)) seuraavalla kaavalla.
C = (F - 32) / 1.8
Tehtävä: Kirjoita funktio (aliohjelma joka palauttaa arvon) FahrenheitToCelsius
, joka ottaa parametrina fahrenheit-lämpötilan ja palauttaa sen celsiusasteina. Funktiota voi kutsua esimerkiksi seuraavasti:
NOTE: You can write number of functions into a same class (compare lecture video and an example Functions.cs or the same without comments). If you do this task in Visual Studio then copy to the answer box only the declaration line of the function AND the implementation of the function. Main class, comments and tests are already in this TIM version.
double lampotilaC;
lampotilaC = FahrenheitToCelsius(13);
Click Näytä koko koodi
link and you will see hoe function is being called.
Note! In order to get full points from a and be you need to do following steps:
- Run the code (0.3 p) by clicking
Aja
-button. - Make tests (0.1 p) and run them by clicking
Test
-button. - Generate documentation (0.1 p) by clicking
Document
link.
If you do this on Visual Studio then just copy the functions introduction line and function itself to return box. Main, comments and tests are already in the Tim version.
Tehtävä 4b (0.5 p.)
(Jos sinulla on ongelmia funktioiden laatimisen kanssa, kokeile tehdä harjoittelutehtävä 3.4.)
Write a function that converts miles to kilometers.
TODO: Funktioiden kieli yhtenäiseksi (englanti, suomi)
Task 4
M: 7.7 Operators (and arithmetic expressions). Write expressions that calculate the values given bellow and saves them into variables (which you have given appropriate names). Do this as a Console C# program. Main() is enough you don’t need subroutines:
a) number of seconds is in a day
b) number of hours in a year
c) how long it takes for light to travel from sun to earth
d) a lightyear in kilometers
Print values of variables, for Example:
int secondsInHour = 60*60;
System.Console.WriteLine("In one hour there are {0} seconds", secondsInHour);
Arviointi: Käytä Set custom points -toimintoa. 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.
Jypeli Tasks
These tasks should be done by using Visual Studio's Jypeli library. Open Visual Studio, start a new project and choose C# \(\rightarrow\) Jypeli \(\rightarrow\) FysiikkaPeli. Name your project for Example Stair
. Now Visual Studio creates automaticly Stair.cs
class. Write your code to this class. Notice that Visual Studio creates automaticly also Program.cs
file, that you should not change.
Task 5
Read function overloading, and check example code.
M: 6. Subroutines (Overloading). Take Demo 2's Stair example Add code in the class you created. Edit the code so that the DrawSquare can be called in two different ways and the code implements all Begin's subroutine calls.
- First five calls should work as they did before in the earlier Stare-task.
- Two calls after these should work as they did in the Stare-task, but last given argument point out size of the square.
Overloading means that there are many subroutines with the same name, but they have a different amount/type parameters.
NOTE! Subroutines should not have any reiteration.
Finished outcome should look like this:
Arviointi: Käytä Set custom points -toimintoa. 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.
Other tasks
L1. Liukuhihna
Dokumentissa Liukuhihna on hauska robotti. Vastaa siellä oleviin kysymyksiin. Maksimissaan voit tuolta kerätä 2.5 p. Kirjoita alla olevaan tehtävään miltä liukuhihnatehtävä tuntui ja laita itse tehtävän pisteisiin liukuhihnan tuloksesi.
Huom!. Pisterajatarkistus ei vättämättä toimi, joten et saa huijata laittamalla liikaa pisteitä!
Tauno 1 a (0.5 p)
Try to avoid unnecessary variables in your answer and think how well your answer can be generalized if the size of the table is changed.
Kunkin Tauno-tehtävän aluksi klikkaa Click here to show Tauno
-linkkiä.
Taunossa raahaa taulukon alkioita niin, että sinulla on lopuksi tehtävässä pyydetty lopputulos. Katso samalla minkälaista koodia Tauno sinulle generoi. Tämä on C#-kielinen algoritmi tehtävän suorittamiseksi. Jos haluat aloittaa Tauno-tehtävän alusta, piilota ja näytä Tauno uudelleen.
Raahaamisen sijaan (ja joissakin mobiileissa ei muuten voi tehdäkkään) voit myös tökätä ensin lähdealkiota ja sitten kohdealkiota.
Jos tarvitset apumuuttujia, joihin voit viedä alkioita tilapäiseen "säilöön", paina uusi muuttuja
-painiketta. Keksi muuttujalle kuvaava nimi. Muuttujalle voit antaa alkuarvon, mutta tämä ei ole pakollista jos olet heti aikeissa raahata siihen jonkin toisen muuttujan arvon talteen.
Laskutoimituksia voit tehdä raahaamalla arvoja vasemmassa alakulmassa olevaan laskualueeseen ja valitsemalla arvojen välistä minkä laskutoimituksen haluat tehdä. Laskun tuloksen voit sitten raahata takaisin johonkin muuttujaan (siis myös taulukon alkioksi).
Muuttujan arvoa voit lisätä/vähentää yhdellä vetämällä ++
tai --
-operaattorin muuttujan arvon päälle.
Kun olet saanut Taunolla ohjelman mielestäsi valmiiksi, voit painaa Aja
tai Test
-painikkeita nähdäksesi miten ohjelma toimii. Molemmissa tapauksissa Taunon tekemä ohjelmakoodi kopioidaan ohjelma-alueeseen ja ajetaan. Ajossa voidaan käyttää eri taulukkoakin kuin mitä Taunossa käytettiin, mutta hyvä "algortimi" selviää tästäkin. Jos testissä saat punaista, lue huolella virheilmoitus ja mieti mikä meni pieleen.
Halutessasi voit aloittaa Taunolla alusta tai sitten jos osaat, voit korjata suoraan ohjelma-alueeseen kopioitua koodia. Demotehtävän vastaukseksi riittää että Aja-napin yläpuolella on sama koodi kuin Taunon koodialueessa.
Näytä koko koodi
-linkistä voit katsoa minkälaisilla arvoilla ohjelma ajetaan tai minkälaisilla arvoilla testataan. Tästä kokonaisuudesta ei kurssin aluksi tarvitse vielä ymmärtää kaikkea. Voit tietysti yrittää "arvailla" mistä on kyse.
Koita vastauksissa välttää turhia apumuuttujia ja mieti kuinka hyvin ratkaisusi yleistyy jos taulukon kokoa kasvatetaan.
First add a variable named tulos
(result) in Tauno and then make a program which counts the sum of the numbers in the even slots (of the table) together and then subtracts the sum of the numbers in the uneven slots from it. The outcome is saved in the tulos
(result) variable. Do not modify the original table.
Tauno 1 b (0.5 p)
First add a variable named tulos
(result) in Tauno and then make a program which counts the numbers of the table together in a way that first the last number is subtracted from the first number and then the result of the second and second last is added to that and so on until all the numbers have been counted. The outcome is saved into the tulos
(result) variable.
Tasks only in Finnish
Ville 1
Tee Ville-tehtävät: 3.1, 3.2, 3.4, 7.1 - 7.6.
Muista: Villen käyttöohje.
Palauta tehtävä kirjoittamalla alla olevaan tekstilaatikkoon mitä opit ja mitä mieltä olit tämän kerran Ville-tehtävistä ja auttoivatko Ville-tehtävät sinua yhtään. Muutama rivi riittää.
Viime viikon villet
(Ne, jotka eivät viime viikolla saaneet tätä tehtyä kirjautumisongelmien vuoksi, voivat tehdä sen nyt. Jos teit nämä jo viime viikolla, et voi kirjata itsellesi uudestaan pisteitä. )
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
Katso Voimia ja sitominen. Tee ohjelmasta sellainen, että voit "pukkailla" keskipalloa nuoli vasemmalle ja nuoli oikealle näppäimillä. Tehtävä kannattaa tehdä Visual Studiolla. Kopioi tekemäsi koodi alle ja paina aja-nappia.
G1-2
Jatketaan demo 2:n laatikkotehtävää. Tee ohjelmasta sellainen, että se piirtää viiden laatikon sijaan n
laatikkoa, vieläpä siten, että laatikot pienenevät. Tällöin i
:nnen laatikon koko tulisi olla
(n + 1 - i) / n * laatikonKoko
eli esimerkiksi jos halutaan piirtää yhteensä 10 laatikkoa, niin 7:nnen laatikon koko on
(10 + 1 - 7) / 10 = 4 / 10 * laatikonKoko
Tehtävässä saa 0.1 pistettä dokumentaation luomisesta, kun olet tehnyt funktion valmiiksi. Dokumentaatio luodaan painamalla document-linkkiä.
These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.