unit Unit31; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Memo1: TMemo; Button5: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button5Click(Sender: TObject); private { Private declarations } public { Public declarations } end; uos = ^tos; tos = record text : string[55]; dalsi : uos; end; var Form1: TForm1; p : uos; zac : uos = nil; s : string[55]; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); var p:uos; begin p := zac; memo1.lines.clear; while p<>nil do begin memo1.lines.add(p^.text); p:=p^.dalsi; end; end; procedure pridej(var p:uos); begin if p=nil then begin new(p); p^.dalsi:=nil; p^.text:=inputbox('zadani','zadejte hodnotu:',''); end else pridej(p^.dalsi); end; procedure smazatk(var p:uos); begin if p^.dalsi=nil then begin dispose(p); p:=nil; end else smazatk(p^.dalsi); end; procedure TForm1.Button2Click(Sender: TObject); begin pridej(zac); Button1Click(Sender); end; procedure TForm1.Button4Click(Sender: TObject); begin if zac<>nil then smazatk(zac); Button1Click(Sender); end; procedure TForm1.Button3Click(Sender: TObject); var p:uos; begin if zac<>nil then begin p:=zac; zac:=p^.dalsi; dispose(p); end; Button1Click(Sender); end; procedure prideja(var p:uos); var q:uos; begin if p=nil then begin new(p); p^.dalsi:=nil; p^.text:= s ; exit; {opusteni procedury} end; if s<p^.text then begin new(q); q^.dalsi:=p^.dalsi; q^.text :=p^.text; p^.dalsi:=q; p^.text:= s ; end else prideja(p^.dalsi); end; procedure TForm1.Button5Click(Sender: TObject); begin s:=inputbox('zadani','zadejte hodnotu:',''); prideja(zac); Button1Click(Sender); end; end.