Anonymní profil Petra – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Petra – Programujte.comAnonymní profil Petra – Programujte.com

 

Příspěvky odeslané z IP adresy 89.176.25.–

Petra
Pascal › Pascal - razeni
22. 5. 2016   #210822

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

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý