Feladat: a) Olvassuk be int.be nevu szoveges allomanybol intervallumokat, es irassuk ki a kepernyore b) Szurjuk ki az intervallumok kozul a nem megfeleloeket veg<=kezdet -> int.ki c) Rendezzuk az intervallumokat a kezdopont szerint. -Rekord -Pointer -Filekezeles REKORD: Nev= Record N1: T1 {nev: típus} . . . Nk:Tk end; pl: intervallum=Record {ez egy tipus} start:Real stop:Real end; Hivatkozas int: Intervallum; int.start:=.... pl: Szemely=Rekord Nev:Strin; Szulev: Integer; No:Boolean; . . . End; var Bela: Szemely; Szoveges allomanyok: Text típus Assign(logikai, fizikai nev); Reset(file)- olvas Rewrite(file)-írás Close(file) -lezárja Readln(file, ...) Writeln(file,...) Kell: int.be 4 1 3 2 2 9 7 8 101 (touch paranccsal -letrehoz egy ures filet) /home/hpke/ps/Intervallum.pas POINTER: memoriacím | _______|_______________ |_______________________| <-memoria $00f2=0x00f2=15*16+2*1=248 (16-os szamrendszer) Nil=a pointer nem mutat sehova Lancolt lista |___|_| --> |__|_| --> |__|_| ....|___|_| -->Nil {elso} {aktualis} /home/hpke/ps/Intervallum.pas Program Intervallumok; Type IntMutat=^Int; Int=Record Start: Integer; Stop : Integer; Kovetkezo: IntMutat; End; Var be : Text; {bemeneti file} ki : Text; {kimeneti file} k, v, count, i : Integer; elso, aktualis, uj : IntMutat; Begin elso:=Nil; {belovasas} Assign(be, 'int.be'); Reset(be); ReadLn(be,count); for i:=1 to count do begin ReadLn(be, k, v); New(uj); uj^.Start:=k; uj^.Stop :=v; uj^.Kovetkezo :=Nil; if (elso=Nil) then elso:=uj else aktualis^.Kovetkezo:=uj; aktualis:=uj; end; Close(be); {vegigjaras es kiiratas} Assign(ki, 'int.ki'); ReWrite(ki); aktualis :=elso; while (aktualis<>nil) do begin if (aktualis^.Stop-aktualis^.Start) > 0 then WriteLn(ki, aktualis^.Start,' ', aktualis^.Stop); aktualis:=aktualis^.Kovetkezo; end; Close(ki); End. FELADAT: Kivalaszto rendezes: for i 1 ->N minT[i]; for j i+1 -> N if T[j] T[min] hogy mukdik? 2 8 1 7 3 1 8 2 7 3 1 2 8 7 3 1 2 3 7 8