Opintopiiriprojekti
Tietokoneen toiminta, Syksy 2005, Opintopiirin projekti PR 1
Raportin sisältö
on määritelty opintopiirityöskentelyn kuvauksessa ja sen viimeinen palautusajankohta: 27.11.2005 klo 23:55.
Suunnitelkaa ja toteuttakaa yksi (1)
kertaustehtävä
.
Kertaustehtävän aihepiiri valitaan siten, että
Ota kaikkien ryhmän jäsenten syntymäpäivistä päiväosa (Esim. luku 5, jos syntynyt 5.3.1988)
Laske kaikki päiväosat yhteen. (Esim. 5+13+8+25 = 51)
Jaa tulos neljällä, ota jakojäännös ja lisää siihen yksi. (Esim. "51 mod 4" +1 = 3+1 = 4)
Käytä tulosta luennon numerona aihepiirin valintaan. (Esim. Luento 4)
Suunnitelkaa ja toteuttakaa ttk-91 ohjelmisto, mihin sisältyy seuraavat osat:
funktio Alusta(T, n, x, y, z), joka alustaa 2D-taulukon T[n,n] siten, että T[i,j] = i*x + j* y + z;
T on viiteparametri, muut arvoparametreja
pitää olla 1 < n ≤ 20, -20 ≤ x ≤ +21, -100 ≤ y ≤ +100
, -1000 ≤ z ≤ +1000
palauttaa arvon 0, jos kaikki OK, ja arvon ≠ 0, jos joku virhe.
(Virheen lajin voi koodata paluuarvoon, jos haluaa.)
funktio Tulosta(T, n, i, j), joka tulostaa 2D-taulukon T[n,n] arvon T[i, j]
T on viiteparametri, muut arvoparametreja
pitää olla 1 ≤ n ≤ 20, 0 ≤ i < n, 0 ≤ j < n
palauttaa arvon 0, jos kaikki OK, ja arvon ≠ 0, jos joku virhe
funktio Summa (T, U, V, n), joka laskee alkioittain T = U+V, siten että T[i,j] = U[i,j] + V[i,j]
T, U, V on viiteparametri, muut arvoparametreja
pitää olla 1 ≤ n ≤ 20
palauttaa arvon 0, jos kaikki OK, ja arvon ≠ 0, jos joku virhe
Pääohjelma, jossa
määritellään 2D taulukot A[2,2], B[2,2] ja C[2,2] sekä E[5,5], F[5,5] ja G[5,5]
alustaa funktion Alusta() avulla taulukon A siten että A[i,j] = i + 2j + 1
alustaa funktion Alusta() avulla taulukon B siten että B[i,j] = 2i + 40j - 23
laskee funktion Summa() avulla taulukolle C arvo A+B
tulostaa arvot A[1,0], B[1,0] ja C[1,0]
alustaa funktion Alusta() avulla taulukon E siten että E[i,j] = i + j
alustaa funktion Alusta() avulla taulukon F siten että F[i,j] = i - j
laskee funktion Summa() avulla taulukolle G arvo E+F
lukee käyttäjältä indeksien i ja j arvot
tarkistaa, että 0 ≤ i < 5 ja 0 ≤ j < 5
tulostaa funktion Tulosta() avulla arvot E[i,j], F[i,j], ja G[i,j]
toistaa edellämainittua kolmea kohtaa, kunnes syötteenä on pari (0,0)
Noudattakaa luennoilla esitetyjä suositusten mukaisia aliohjelmien (funktioiden) kutsumekanismia.
Teemu Kerola