3. type Typdat = real; Ukprvek = ^prvek; prvek = record data:Typdat; next: Ukprvek; end; seznam=Ukprvek; procedure vloz (s:Ukprvek; d:Typdat); !!! typ seznam neni pouzit !!! 1. par. odkazem var pom,pom1:Ukprvek; begin pom:=s; !!! chybi test na prazdnost pom1:=s^.next; while pom <> pom1 do begin pom:=pom^.next; !!! proc??? new(pom); pom^.data:=d; pom^.next:=s; end; end; 4. unit BStrom; interface type typdata=real; typklic=real; !!! data jsou pointer Ukuzel=^Uzel; Uzel=record klic:typklic; data:typdata; levy,pravy:Ukuzel; end; typfunkce=function(pr:Ukuzel;k:typklic):byte; strom=Ukuzel; procedure init(var s:strom); procedure vloz(var s:strom;d:typdata;k:typklic;f:typfunkce); procedure search(s:strom;k:typklic;f:typfunkce;pr:ukuzel); !!! neni v zadani implementation procedure init; begin t:=nil; end; procedure vloz; begin while t<>nil do begin !!! chybny algoritmus if f(pr,k)=0 then vloz(t^.levy,d,k,f) else vloz(t^.pravy,d,k,f) end; new(t); t^.data:=d; t^.klic:=k; t^.levy:=nil; t^.pravy:=nil; end; procedure search; var b:boolean; begin pr:=t; b:=false; while (pr<>nil) and (not b) do case f(pr,k) do 0:pr:=pr^.levy; 1:b:=true; 2:pr:=pr^.pravy; end; 5. const max=1000; typdat=longint; type po=array[1..max] of typprvek; pole= object p:po; procedure init (var k:p); procedure serad(var k:p; x:longint); !!! virtual end; procedure pole.init; begin end; procedure pole.serad; begin end; pole1= object(pole) procedure serad(var k:p); procedure pole1.init; begin end; procedure pole1.serad; begin end; end; !!! chybi temer vse