Ohjelmointikielten Periaatteet k-2001
Tentti 15.5. 2001
1. Millainen on mielestäsi ihanteellinen ohjelmointikieli? Perustele! Miksi jokin käyttämäsi tai tuntemasi ohjelmointikieli ei täytä näitä ihanteita (vai täyttääkö)?
2. Selvitä (esimerkkiohjelman avulla) miten aliohjelmien dynaaminen muistinhallinta ja kutsu-paluumekanismi toimivat. Selvitä erityisesti, miten aliohjelma 'löytää' omat paikalliset muuttujansa.
3. Kerro, mitä tarkoittaa oliokeskeisyys ja pohdiskele oliokeskeisen ohjelmoinnin etuja ja haittoja. Vai onko niitä?
4. Muunna alla oleva imperatiivinen ohjelmafunktionaaliseksi (korvaa vektori listalla). Ratkaisussa kannattaa hyödyntää korkeamman asteen funktioita. Perustele ratkaisusi.
TYPE vektori = ARRAY[1..Max] OF Integer;
FUNCTION huh(IN a: vektori): Integer;
VAR i, s, x: Integer;
BEGIN
s:= 0
FOR i := 1 TO Max DO BEGIN
IF (a[i] > 7) THEN BEGIN
x := a[i] *3-6;
s := s+x;
END;
END;
RETURN s;
END;