Ohjelmointi 1, syksy 2024, luento12

# L12

12. luento: ti 7.10.2024 klo 14:15-16:00: Aliohjelmien kutsuminen, etsiminen taulukosta

Opiskelusta

  • tee ajatuksen kanssa demojen harjoittelutehtäviä
  • lue kerran luentomoniste läpi niin tiedät missä on mitäkin
  • KYSY kurssin keskustelussa
  • jos epäselviä demotehtäviä, laita kommentti viereen
  • bookamarkkaa (vasen yläkulma ja klemmari) itsellesi tärkeät sivut
  • älä seuraa jokaista linkkiä
  • jos luennolla ei näe, voi sielläkin pitää Zoomin auki

Ti 10.10 luento 12 aloitus

  • luo alla olevilla (Kutsunäytelmä) ohjeilla itsellesi konsoliprojekti nimeltä Kutsuminen ja koita saada ikkunat kuten alla esimerkkikuvassa Debuggeri Raiderissa.
  • voit yrittää debugata samaan tahtiin kuin aikanaan luennolla/videossa (videokatsoja: pysäytä video jos tiput kyydistä ja koita päästä tahtiin).
# kutsu

Kutsunäytelmä

  • Jos haluat valmiin pohjan, niin mene komentoriville ja (jos et ole koskaan tehnyt) ja luo uusi hakemiston ja siellä

    git clone https://gitlab.jyu.fi/tie/ohj1/2024s/esimerkit.git .

    Jos olet tuon joskus tehnyt, niin menet sinne vanhaan hakemistoon ja

    git pull

    Kopioi tuolta hakemisto live12 johonkin hakemistoon. Sitten avaa live12.sln.

TAI tee manuaalisesti:

  • Näytelmä aliohjelmien kutsumisesta
  • tee Console Main projekti Kutsuminen tiedostosta Kutsuminen.cs
  • laita breakpoint ekalle riville (eli riville 16) ja aloita debug.
  • laita näkyviin ikkunat: Kutsuminen.cs, Debug (ja sieltä Threads & Variables), IL Viewer (ikkunat löytyy View/Tool Windows kun debuggaus on aloitettu). Koita sommitella kuten alla olevassa kuvassa. Ikkunoita voit siirrellä ottamalla otsikkopalkista kiinni ja pudottelemalla. Seuraa siis tätä videosta.

    Debuggeri Visual Studiossa:

    Debuggeri Raiderissa:
  • voit myös katsella käsikirjoitusta tai still-kuvia etenemisestä samaan tahtiin.
  • Videokatsoja: voit seurata alkuperäistä videota alempana olevasta videokomponentista
  • koita debugata samaan tahtiin kuin luennolla edetään
  • sen jälkeen kun debuggauksessa ollaan edetty kohtaan jossa luvut ja m on esitelty (rivi 28), laita Muuttujat-ikkunassa hiiren oikealla taulukolle luvut Mark Object ja anna arvoksi 234. Videolla id:t ovat #-merkittyjä ja nyky VisualStudiossa $-alkuisia.
    Esim videon 1# vastaa näytelmän arvoa 234 (tai 235 riippuen tulkitaanko taulukon koko vai eka alkio taulukon aluksi).
    Riderissa voidaan nimet antaa miten tahansa. Jos haluta juuri kuin videossa, niin voit käyttää myös 1#. Kurssin muilla videoilla voi olla käytössä Visual Studio ja silloin nimiksi voi antaa sen tyyliin $1, $2 jne...
  • tutki taulukkoviitteitä ja miten m ja luvut osoittavat samaan paikkaan.
# videokutsumisesta

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 koodiin luku1 = 99; ja kysy mitä tapahtuu pääohjelmassa
  • lisää VaihdaSuuremmassa luvut[1]=99 ja kysy mitä tapahtuu pääohjelmassa
# kutsuminencs

Kysymyksiä

# kutsumemanim
# kutsuanimnorm
# kutsunormkuva

Vastaus:

ref args -> new $1 0
val a = 4
val b = 5
val iso
iso = 5
iso = 6
ref luvut -> [] $2 v 4
ref m -> $2
$2[2] = 4
$2[1] = 6
$2[3] = 9
text {x: 0} VaihdaSuurin
ref t -> $2
val korvaavaArvo = 5
$2[3] = 5

Olioviitteet

# ae_olioviitteet
# refanim2

1-ulotteiset taulukot

Muutetaan aliohjelmaksi

# helloeka
# matriisit

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