in English suomeksi 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. o
  1. Suunnitelkaa ja toteuttakaa yksi (1) kertaustehtävä.

    Kertaustehtävän aihepiiri valitaan siten, että
    1. Ota kaikkien ryhmän jäsenten syntymäpäivistä päiväosa (Esim. luku 5, jos syntynyt 5.3.1988)
    2. Laske kaikki päiväosat yhteen. (Esim. 5+13+8+25 = 51)
    3. Jaa tulos neljällä, ota jakojäännös ja lisää siihen yksi. (Esim. "51 mod 4" +1 = 3+1 = 4)
    4. Käytä tulosta luennon numerona aihepiirin valintaan. (Esim. Luento 4)

  2. Suunnitelkaa ja toteuttakaa ttk-91 ohjelmisto, mihin sisältyy seuraavat osat:
    1. funktio Alusta(T, n, x, y, z), joka alustaa 2D-taulukon T[n,n] siten, että T[i,j] = i*x + j* y + z;
      1. T on viiteparametri, muut arvoparametreja
      2. pitää olla 1 < n ≤ 20, -20 ≤ x ≤ +21, -100 ≤ y ≤ +100 o, -1000 ≤ z ≤ +1000
      3. palauttaa arvon 0, jos kaikki OK, ja arvon ≠ 0, jos joku virhe.
        (Virheen lajin voi koodata paluuarvoon, jos haluaa.)
    2. funktio Tulosta(T, n, i, j), joka tulostaa 2D-taulukon T[n,n] arvon T[i, j]
      1. T on viiteparametri, muut arvoparametreja
      2. pitää olla 1 ≤ n ≤ 20, 0 ≤ i < n, 0 ≤ j < n
      3. palauttaa arvon 0, jos kaikki OK, ja arvon ≠ 0, jos joku virhe
    3. funktio Summa (T, U, V, n), joka laskee alkioittain T = U+V, siten että T[i,j] = U[i,j] + V[i,j]
      1. T, U, V on viiteparametri, muut arvoparametreja
      2. pitää olla 1 ≤ n ≤ 20
      3. palauttaa arvon 0, jos kaikki OK, ja arvon ≠ 0, jos joku virhe
    4. Pääohjelma, jossa
      1. 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]
      2. alustaa funktion Alusta() avulla taulukon A siten että A[i,j] = i + 2j + 1
      3. alustaa funktion Alusta() avulla taulukon B siten että B[i,j] = 2i + 40j - 23
      4. laskee funktion Summa() avulla taulukolle C arvo A+B
      5. tulostaa arvot A[1,0], B[1,0] ja C[1,0] o
      6. alustaa funktion Alusta() avulla taulukon E siten että E[i,j] = i + j
      7. alustaa funktion Alusta() avulla taulukon F siten että F[i,j] = i - j
      8. laskee funktion Summa() avulla taulukolle G arvo E+F
      9. lukee käyttäjältä indeksien i ja j arvot
      10. tarkistaa, että 0 ≤ i < 5 ja 0 ≤ j < 5
      11. tulostaa funktion Tulosta() avulla arvot E[i,j], F[i,j], ja G[i,j]
      12. toistaa edellämainittua kolmea kohtaa, kunnes syötteenä on pari (0,0)

Noudattakaa luennoilla esitetyjä suositusten mukaisia aliohjelmien (funktioiden) kutsumekanismia.


Teemu Kerola