Ohjelmoinnin alkeet 12.4.1999

Kurssin OA/3 tenttijät vastaavat kysymyksiin 1-3 ja kurssin OA/5 tenttijät vastaavat kysymyksiin 1-5. Kurssin OA/5 tekijöiltä vaaditaan aliohjelmamäärittelyjen käyttöä.

1. Selitä lyhyesti (yhdellä tai kahdella lauseella) seuraavat käsitteet

  1. looginen virhe
  2. yksinkertainen tyyppi
  3. liukuluku
  4. funktio
  5. kielioppi
  6. koodijärjestelmä

2. Miten Pascalin aliohjelmakutsumekanismi toimii? Parametreihin liittyvät käsitteet.

3. Ratkaise seuraavat kohdat.

a) Esitä seuraavien lausekkeiden toiminta ja tulos:
muuttujien arvot: q = True, p = False, x = 1.0 ja y = 2, q ja p ovat Boolean tyyppiä, y Integer ja x Real.

  1. p AND q OR (NOT p OR q)
  2. Round(y - x) + 1
  3. (x < 2.0) AND (y > 2.0)

b) Kirjoita lausekkeiksi:

  1. Totuusarvo on tosi, jos vain yhden totuusmuuttujan a, b tai c arvo on tosi, mutta ei useamman.
  2. Totuusarvo on tosi, jos kokonaisluku x on joki kokonaisluvuista välillä 1...10 (mukaanlukien 1 ja 10), muttei 5.
  3. Muuttaa merkin välillä '0'...'9' vastaavaksi kokonaisluvuksi välillä 0...9.

4. Vastaa lyhyesti ja ytimekkäästi: mitä tarkoitetaan sopimusohjelmoinnilla ja mitä hyötyä siitä on? Selosta myös sopimusohjelmointiin liittyvät keskeiset käsitteet.

5. Määrittele dynaaminen tietotyyppi yhteensuuntaan linkitettyä kokonaislukulistaa varten. Lista on tarkoitus pitää järjestyksessä pienimmästä suurimpaan. Kirjoita operaatio Lisaa, joka saa parametrinaan (muuttuja) osoittimen listan ensimmäiseen alkioon (NIL jos lista on tyhjä) ja lisättävän kokonaisluvun, joka sijoitetaan listassa oikeaan kohtaan.