Ohjelmointi 1, syksy 2022, luento 05
#
L5
5. luento: ma 12.09.2022 klo 12:15-14:00: Aihe: Visual Studio, aliohjelmat, muuttujat (vastaaminen luentokysymyksiin)
- MUISTAKAA TEHDÄ luentovideoista hakemisto
- Ollaan aliohjelmia
- Luentokysymyksiä
- M: 10. Visual Studio
- Aliohjelmat:
- M: 6. Aliohjelmat, metodin kuormittaminen
- Laskuja.cs - yksinkertainen esimerkki funktioaliohjelmasta joka laskee ja PALAUTTAA keskiarvon
- LaskujaTest.cs - ComTestin generoima NUnit-tiedosto
- LumiukkoAli.cs - kuormitettu
PiirraLumiukko
- KaannaTaulukko.cs - taulukon kääntäminen tyhmästi
- KaannaTaulukkoAli.cs - taulukon kääntäminen aliohjelmalla (vielä puuttuu jotakin, mitä???)
- Matka.cs - idean alkua muunnokselle
- Jypelin "arkkitehtuurikuva"
- Luennolle tehdyt koodit versionhallinnassa
- Luennon koodit versionhallinnassa
- 5. luento videona: Osa 1 ja 2 MP4 alkuperäinen
- 5. luento videona (2020 versio kun 2022 jäi vajaaksi): Osa 1 ja 2 MP4 alkuperäinen
- luentoseinä
- Itsenäisesti katsottavaksi: tietokoneen toiminnasta:
- Katso myös YouTubesta suurennettu tietokone
Lunetotallenne kestää vähän yli 24 min, miksi koko luennon tallenne ei näy?
VL: En tiedä :-( Laitoin 2020 luennon, se näkyy kokonaan
—Kysymyksiä
#
Kokemus
Ollaan aliohjelmia salissa
Ohjeet
- Muodostakaa kolmen hengen ryhmiä vieruskavereiden tai lähiriveillä istuvien kanssa.
- Jos joku jää yksin, toimii hän "aputestaajana" yhdessä kolmen hengen ryhmässä (lukee aina testaaja-henkilön ohjeita).
- Jos jää kaksi yli, he muodostavat parin josta puuttuu testaaja.
- Yksi ryhmäläinen aukaiseen vihreän, toinen keltaisen ja kolmas punaisen sivun (ks alla).
- Ryhmä ottaa yhteensä n. 20 tyhjää valkoista lappua
- Tarkoitus on että kukin on vuorollaan "pääohjelma", "funktio" ja "testaaja".
- Pääohjelmana oleva aina aloittaa vuorossa olevan tehtävän lukemalla huolella (ei missään nimessä ääneen) saamansa ohjeen sisällön ja toimii sen mukaan.
- Funktio tekee, kuten omassa ohjeessa lukee.
- Testaaja katsoo että kaikki sujuu ja tarkistaa että tulokset ovat oikein.
- Puhua saa vain testaaja silloin kun joku menee väärin. Tai Funktio jos siihen on erikseen annettu lupa.
- Lukekaa ensin kukin omasta ohjeestanne vain Tehtävä 1 ja tehkää se.
- Kun Tehtävä 1 on tehty kokonaan, kierrättäkää vuorot ja tehkää Tehtävä 2 jne.
Nyt aukaiskaa ohjesivut:
- Yksi ryhmäläisistä klikkaa auki sivun Vihreä: Henkilö 1
- Toinen ryhmäläisistä klikkaa auki sivun Keltainen: Henkilö 2
- Kolmas ryhmäläisistä klikkaa auki sivun Punainen: Henkilö 3
Ollaan aliohjelmia Zoomissa
Avaa tästä ryhmäsi sivu:
Please
Kaikille: Mitä saitte tehtyä
Ruksikaa sitä mukaa kun tehtävät valmistuvat
#
oppi
#
arvoryhmat
Keskiarvo
Tutustu lisäsivuihin:
- C# -pikasyntaksi
- faktaa/fiktiota?
- Lisämateriaali
- muista "lutistaa"
Aliohjelman kirjoittaminen
- Jaa ongelma osiin.
- Mieti millaisella aliohjelmakutsulla pistät tietyn osaongelman ratkaisun käyntiin.
- Kirjoita aliohjelman kutsurivi ja mieti sen tarvitsemat parametrit.
- Kirjoita (aluksi manuaalisesti, myöhemmin generoi automaattisesti) aliohjelman esittelyrivi (otsikkorivi, eng. header).
- mieti tarve
public
,static
- sanoille - aliohjelman paluutyyppi
void
vai jotakin muuta? - aliohjelman nimi
- parametrin lukumäärä sama kuin kutsussa
- parametrien tyyppi sijoitusyhteensopivaksi kutsun kanssa.
- mieti tarve
- Tee aliohjelmasta syntaktisesti oikea tynkä joka kääntyy, esimerkiksi funktioaliohjelmassa pitää olla return-lause joka palauttaa lausekkeen (vaikka yksi luku) joka on samaa tyyppiä (tai muuntuu automaattisesti samaksi) kuin funktion tyyppi.
- Dokumentoi aliohjelma (nyt unohda mistä sitä kutsuttiin, sitä et enää saa ajatella).
- Kirjoita testit (TDD).
- Aja testit (pitää "feilata" = NÄE PUNAISTA).
- Muuta aliohjelma toimivaksi
- Aja testit (toista kohdat 8-10 kunnes toimii, = NÄE VIHREÄÄ)
- Siirry seuraavaan aliohjelmaan.
#
Laskuja
/// <summary>
///
/// </summary>
/// <param name="a"></param>
/// <param name="b"></param>
/// <returns></returns>
/// <example>
/// <pre name="test">
///
/// </pre>
/// </example>
~~~
1
3 = 0011
2 = 0010
========
0101
5 = 0101
5/2 = 0010
7 / 10
#
lumiukko1
These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.