Tehtävä 2.3
Kirjoita luokka nimeltä 'HistoriaTaulu' jota käyttäen voi luoda kiinteän
mittaisia taulukoita joiden jokainen alkio muistaa kaikki aikaisemmat arvonsa.
Käyttöesimerkki:
use HistoriaTaulu 'historia';
tie @a, HistoriaTaulu, 1, 100;
foreach my $i ("a".."z") {
$a[10] = $i;
}
print $a[10], "\n";
print historia(@a, 10, 0), "\n";
print historia(@a, 10, -1), "\n";
print historia(@a, 10, -2), "\n";
Tämän pitää tulostaa
z
z
y
x
eli $a[10] nykyinen arvo kahdella eri tavalla, ja $a[10]:n edellinen,
ja edellisen edellinen arvo.
Lisäksi näiden yritysten
print $a[0], "\n";
$a[200] = "z";
print historia(@a, 10, -30), "\n";
pitää aiheuttaa virheet
HistoriaTaulu: indeksi 0 laiton: taulukon rajat ovat (1, 100)
HistoriaTaulu: indeksi 200 laiton: taulukon rajat ovat (1, 100)
HistoriaTaulu: historia -30 laiton: historian rajat ovat (-25, 0)
Palautuksessasi on oltava ainakin kaksi eri tiedostoa:
HistoriaTaulu.pm
historiataulu.pl
Eli luokkatiedosto (moduli) ja sitä testaava ohjelma (skripti).
Name Last modified Size Description
Parent Directory -
historiataulu.pl 1999-11-30 00:00 1.0K
HistoriaTaulu.pm 1999-11-30 00:00 3.7K
|