uses crt; type loomaviit=^loom; loom=object constructor Init; procedure jutusta; virtual; end; kassiviit=^kass; kass=object(loom) procedure jutusta; virtual; end; koeraviit=^koer; koer=object(loom) procedure jutusta; virtual; end; hiireviit=^hiir; hiir=object(loom) procedure jutusta; virtual; end; loomapoeviit=^loomapood; loomapood=object loomadearv:integer; loomad:array[1..10] of loomaviit; constructor init; procedure lisaloom; procedure tutvusta(nr: integer); end; constructor loom.Init; begin end; procedure loom.jutusta; begin textcolor(blue); writeln('xxx'); textcolor(lightgray); end; procedure kass.jutusta; begin writeln('njau'); end; procedure koer.jutusta; begin writeln('uuu'); end; procedure hiir.jutusta; begin sound(1000); readkey; nosound; end; constructor loomapood.init; begin loomadearv:=0; end; procedure loomapood.lisaloom; var liik: integer; uusloom:loomaviit; begin if loomadearv<10 then begin inc(loomadearv); writeln('Kas soovid lisada 1-kassi 2-koera 3-hiire'); readln(liik); case liik of 1:uusloom:=new(kassiviit, init); 2:uusloom:=new(koeraviit, init); 3:uusloom:=new(hiireviit, init); else uusloom:=new(loomaviit); end; loomad[loomadearv]:=uusloom; end else writeln('Rohkem loomi poodi ei mahu'); end; procedure loomapood.tutvusta(nr: integer); begin if nr<=loomadearv then loomad[nr]^.jutusta else writeln('Sellise numbriga looma ei leidu'); end; var ElvaZoo:^loomapood; c:char; number:integer; begin new(ElvaZoo, init); repeat ElvaZoo^.lisaloom; writeln('Kas soovid veel lisada?'); c:=readkey; until c='e'; c:='j'; repeat writeln('Mitmenda looma vastu huvi tunned?'); readln(number); ElvaZoo^.tutvusta(number); writeln('Kas tunned veel huvi?'); c:=readkey; until c='e'; end.