Ahoj,
mam tento priklad, moc nevim jak to resit: Definujte objekt (včetně těl metod) se třemi datovými složkami A, B, C – soubory typu text,
dáles metodami Spoj a Srovnej. V textových souborech se pracuje s celými řádky. Metoda
Spojpředpokládá, že řádky souborů A a B jsou seřazeny podle abecedy, a sloučí je do souboru C tak,
abyměl také seřazeny řádky podle abecedy. Pro porovnání řetězců slouží metoda s názvem
Srovnej.Objekt navrhněte tak, aby mohl být polymorfní s jiným objektem, který bude mít jinou
metodu Srovnej.
program pr18;
type
prvni = object
a,b,c: text;
constructor init;
procedure spoj;
function srovnej(x,y:string):boolean; virtual;
end;
druhy = object(prvni)
constructor init;
function srovnej(x,y:string):boolean; virtual;
end;
pole = array[1..100] of string;
constructor prvni.init;
begin
assign(a,'pr18_a.txt');
assign(b,'pr18_b.txt');
assign(c,'pr18_c.txt');
reset(a);
reset(b);
rewrite(c);
end;
procedure prvni.spoj;
var ret,ret2,pom: string; i,j: byte; p:pole;
begin
i:=0;
while not eof(a) do begin
readln(a,ret);
inc(i);
p[i]:=ret;
//writeln(c,ret);
end;
while not eof(b) do begin
readln(b,ret);
inc(i);
p[i]:=ret;
//writeln(c,ret);
end;
for j:=i downto 2 do begin
while srovnej(p[j],p[j-1]) do begin
pom:=p[j];
p[j]:=p[j-1];
p[j-1]:=pom;
end;
end;
for j:=1 to i do writeln(p[j]);
close(a);
close(b);
close(c);
end;
function prvni.srovnej(x,y:string):boolean;
begin
srovnej:=x>y;
end;
constructor druhy.init;
begin
end;
function druhy.srovnej(x,y:string):boolean;
begin
srovnej:=x>y;
end;
var o: prvni;
begin
o.init;
o.spoj;
readln;
end.
Dekuji za pomoc