[12 p] Titokone, TitoTrainer
ja ttk-91. Oletetaan, että meillä on yksiulotteinen kokonaislukutaulukko T[5] ja kaksiulotteinen kokonaislukutaulukko A[5,4]. Taulukossa T on siis 5 alkiota (alkiot
T[0]...T[4]). Taulukossa A on 20 alkiota 5 rivissä, joista kussakin 4 alkiota. Taulukon A alkiot ovat siis A[0,0]...A[4,3]). Taulukko A on talletettu riveittäin.
Muuttujat i, j ja k on määritelty pääohjelmatasolla.
- Jos taulukko A on talletettu muistiosoitteeseen 185, niin missä muistiosoitteessa on taulukon alkio A[2, 3]?
- Toteuta ttk-91 symbolisella konekielellä sijoituslause T[3] = A[3, 2];
- Toteuta ttk-91 symbolisella konekielellä sijoituslause T[i] = A[j, k];
- Kokonaislukuarvoinen funktio fJotain(V, p, M, r, s) palauttaa kokonaisluvun paluuarvonaan. Parametri V on p-alkioinen yksiulotteinen taulukko ja parametri M on kaksiulotteinen taulukko, jossa on r riviä ja s saraketta. Parametrit V ja M ovat viiteparametreja. Parametrit p, r ja s ovat arvoparametreja.
Toteuta ttk-91 symbolisella konekielellä sijoituslause k = fJotain(T, 5, A, 5, 4);
- Oletetaan nyt, että edellämainitussa funktiossa fJotain() on määritelty yksi paikallinen muuttuja x ja funktion sisällä tälle paikalliselle muuttujalle x sijoitetaan parametritaulukon V alkion V[3] arvo.
Toteuta ttk-91 symbolisella konekielellä tämä funktion sisäinen sijoituslause x = V[3];
- Selitä sanallisesti, mitä tarkoittaa käsite aktivointitietuepino (activation record stack). Mikä se on ja mihin sitä käytetään?
Noudata suositusten mukaista aliohjelmien (funktioiden) kutsumekanismia.