Last active
August 29, 2015 13:57
-
-
Save morganwilde/9570452 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
program Antrasis_lab_2_uzduotis; | |
//Gretos Gedminaites FDM2 | |
//Parasykite funkcija, kuri teksto eiluciu saraso( funkcijos parametras ) priekyje prideda tokia pat eilute kaip paskutine eilute. Naujai | |
//suformuota sarasa funkcija grazina kaip rezultata. | |
type PSar = ^TSar; | |
TSar = record | |
duomuo : string; | |
kitas : PSar; | |
end; | |
procedure KurkTuscia( var prad : PSar); | |
begin | |
prad := nil; | |
end; | |
function KurkElementa( duomuo : string ) : PSar; | |
var naujas : PSar; | |
begin | |
New( naujas ); | |
naujas^.duomuo := duomuo; | |
naujas^.kitas := nil; | |
KurkElementa := naujas; | |
end; | |
procedure PridekPo( elementas : PSar; var po_ko : PSar); | |
begin | |
po_ko^.kitas := elementas; | |
end; | |
procedure PridekPirma(elementas : PSar; var prad : PSar); | |
begin | |
prad := elementas; | |
end; | |
function SkaitykFaila( f_vardas : string) : PSar; | |
var f : text; | |
s : string; | |
prad, einamasis, t : PSar; | |
begin | |
assign(f, f_vardas); | |
reset(f); | |
KurkTuscia(prad); | |
if not eof(f) then | |
begin | |
readln(f, s); | |
einamasis := KurkElementa( s ); | |
PridekPirma( einamasis, prad); | |
end; | |
while not(eof(f)) do | |
begin | |
readln(f, s); | |
t := KurkElementa( s ); | |
PridekPo( t, einamasis); | |
einamasis := t; | |
end; | |
close(f); | |
SkaitykFaila := prad; | |
end; | |
function Rask_pask( prad : Psar) : string; | |
var t : PSar; | |
begin | |
t := prad; | |
while t <> nil do | |
begin | |
if t^.kitas=nil then | |
Rask_pask:=t^.duomuo; | |
t := t^.kitas; | |
end; | |
end; | |
procedure Spausdink( prad : PSar); | |
var t : PSar; | |
begin | |
t := prad; | |
while t <> nil do | |
begin | |
writeln( t^.duomuo ); | |
t := t^.kitas; | |
end; | |
end; | |
procedure Naikink( var prad : PSar); | |
var t : PSar; | |
begin | |
t := prad; | |
while t <> nil do | |
begin | |
prad := t^.kitas; | |
Dispose( t ); | |
t := prad; | |
end; | |
end; | |
var prad, kopija: PSar; | |
pask: string; | |
begin | |
{ Get data } | |
prad := SkaitykFaila('1.txt'); | |
KurkTuscia( kopija ); | |
{ Find last element } | |
pask := Rask_pask( prad ); | |
{ Create a copy } | |
kopija := KurkElementa( pask ); | |
kopija^.kitas := prad; | |
{ Overwrite prad with kopija? } | |
//prad := kopija; { prad & kopija are now the same thing } | |
{ Print and release memory } | |
Spausdink( kopija ); | |
//Naikink( prad ); { delete prad/kopija } | |
Naikink( kopija ); { nothing left to delete } | |
readln; | |
end. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment