Ohjelmointi 1, syksy 2019, luento 12
Tämä ja ma 21.10 luento suoritetaan ja katsotaan itsenäisesti. Ohjeita alempana
12. luento: ti 15.10.2019 klo 14:15-16:00: Aliohjelmien kutsuminen, etsiminen taulukosta
Luento katsotaan itsenäisesti, katso ohjeita luennon sivulta.
- Näytelmä aliohjelmien kutsumisesta
- Näytelmä videona - käynnistä yhtäaikaa katsoessasi luennon videointia.
- Kutsuminen.cs - näytelmässä käytetty koodi
- Kutsuminen.asm - koodi optimoidusti käännettynä konekielelle (näkee kun painaa
Ctrl-Alt-D
debuggauksen aikana)
- SuurinJaPienin.cs - taulukon Suurimman ja pienimmän etsiminen
- SuurinJaPienin.cs - luennolla tehty versio jossa ei päästy yhtä pitkälle
- TIM-lisäsivut: 1-ulotteiset taulukot
- Kutsuminen.cs - esimerkkejä 1-ulotteisen taulukon käyttämisestä
- SuurinJaPienin.cs - mm. suurimman ja pienimmän sekä tietyn luvun etsiminen
- LumiukotTaulukolla.cs - lumiukon pallot taulukkoon
- Tutustu: demo 5 gurutehtävien malliratkaisut.
- Luennolle tehdyt koodit versionhallinnassa
- Luennon koodit versionhallinnassa
- 11. luento videona: Osa 1 ja 2 MP4 alkuperäinen MP4 kännykkäversio
- 12. luento videona: Osa 1 ja 2 MP4 alkuperäinen MP4 kännykkäversio
- luentoseinä
#
l12_13
Ohjeet ti 15.10 (luento 12) ja ma 21.10 (luento 13 ja demo 6)
Ti 15.10 luento 12
- luo alla olevilla (Kutsunäytelmä) ohjeilla itsellesi konsoliprojekti ja koita saada ikkunat kuten esimerkissä.
- ota valmiiksi eri ikkunaan kutsunäytelmävideo, älä vielä käynistä.
- voit yrittää debugata samaan tahtiin kuin aikaan videossa (pysäytä video jos tiput kyydistä ja koita päästä tahtiin).
- voit ottaa vielä yhteen ikkunaan näkyville vuoden 2018 luento 11 videon. Pistä tämä video käyntiin. Tai katso vain kutsunäytelmää tämän ajan.
- pistä Kutsunäytelmävideo käyntiin kun toisessa videossa käsketään
- pistä luentovideo äännettömäksi kunnes kutsunäytelmä loppuu
- alempana valmiit ikkunat katseluaikoineen
- kun kutsunäytelmä loppuu, katso vuoden 2018 luento 11 videota aikaväliltä
- [37:15, 45:00]
- [45:00, 54:58]
- [54:58, 1:08:36] vastaile samalla kysymyksiin, ks alempana
- sitten katso vuoden 2018 luento 12 videota aikaväliltä [00:00, 50:00] (tai missä kohti rupeaa tulemaan liikaa päällekkäistä vuoden 2019 luento 11 kanssa.
Ma 21.10 luento 13
- katso luentosivu
- ja vuoden 2018 luento 13 video:
Ma 21.10 demo 6 palautus
- katso mallivastaukset
- katso vuoden 2018 demo 6 palautusvideot, ryhmä 1
- katso vuoden 2018 demo 6 palautusvideot, ryhmä 2
Videot eivät aukea. Vika koneessa vai videoissa?
VL: koska kuten kirjoitin, en päässyt lentojen välissä antamaan noille oikeuksia normaaliin klo 13 aikaan. klo 19 jälkeen pitäisi olla olleet näkyvissä
Ti 22.10 luento 14
- pidetään normaalisti
#
kutsu
Kutsunäytelmä
- Näytelmä aliohjelmien kutsumisesta
- tee
Console Main
projektiKutsuminen
tiedostosta Kutsuminen.cs - laita breakpoint ekalle riville /16) ja aloita debug.
- Windows: laita näkyviin ikkunat:
Kutsuminen.cs
,Registers
,Disassembly
,Locals
,Call Stack
(ikkunat löytyyDebug/Windows
kun debuggaus on aloitettu). Koita sommitella kuten alla olevassa kuvassa. Ikkunoita voit siirrellä ottamalla otsikkopalkista kiinni ja pudottelemalla "tähtäimiä" käyttäen. - Mac: Saat näkyviin vain ikkunat
Kutsuminen.cs
(taiOhjelma.cs
jos et nimennyt uudelleen),Locals
jaCall Stack
(osa löytyyView/Debug pads
alta ja osaRun
alta). On myösRun/Show Disassembly
, mutta itse en saanut sitä näyttämään mitään järkevää. Seuraa siis tätä videosta. - voit myös katsella käsikirjoitusta tai still-kuvia etenemisestä samaan tahtiin.
- laita video: Näytelmä videona käyntiin samaan aikaan kun luennolla aloitetaan seuraaminen
- koita debugta samaan tahtiin kuin luennolla edetään
- sen jälkeen kun debuggauksessa ollaan edetty kohtaan jossa
luvut
jam
on esitelty (rivi 28), laita locals-ikkunassa hiiren oikealla myös taulukoilleMake object id
Videolla id:t ovat#
-alkuisia ja nyky VisualStudiossa$
-alkuisia. Esim $2 vastaa näytelmän arvoa234
(tai235
riippuen tulitaanko taulukon koko vai eka alkio taulukon aluksi). Macissä tätä(kään) ei voi tehdä. - tutki taulukkoviitteitä ja miten
m
jaluvut
osoittavat samaan paikkaan.
Kun näytelmä katsottu:
- seuraavat kaksi kohtaa videosta voit ohittaa jos asia ei kiinnosta:
- aloita debuggaus alusta ja katso miltä koodi näyttää konekielellä
- katso myös optimoitua käännöstä Kutsuminen.asm
- lisää
Suurempi
koodiinluku1 = 99;
ja kysy mitä tapahtuu pääohjelmassa - lisää
VaihdaSuuremmassa
luvut[1]=99
ja kysy mitä tapahtuu pääohjelmassa
#
kutsuminencs
Kysymyksiä
#
Aliohjelma
#
Mitonanarvoaliohjelmanluku1pohjelmassa
#
Mitonpaikassa1
Olioviitteet
- roskaksi muuttuminen
Tee tähän vielä kuva, jossa sama asia on piirrettynä ilman muistipaikkoja ja laatikot ovat irti toisistaan.
—1-ulotteiset taulukot
Muutetaan aliohjelmaksi
#
helloeka
These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.